All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tools.closure-compiler-unshaded.v20241106-1.source-code.runtime_libs.typedast Maven / Gradle / Ivy

Go to download

Closure Compiler is a JavaScript optimizing compiler. It parses your JavaScript, analyzes it, removes dead code and rewrites and minimizes what's left. It also checks syntax, variable references, and types, and warns about common JavaScript pitfalls. It is used in many of Google's JavaScript apps, including Gmail, Google Web Search, Google Maps, and Google Docs.

The newest version!

??
?M
'%%??f)?n*	2
8B	



^QO~

δ9m,?$qB
"

?ܪ??"m?*
2B
\??*?'?T
?9???B

/??OTy*2B

??S`,??

?!z??l
??x-D??*2B

A~ҫ

?0?f()??B
????LP*2B
X6??v
???W?AO?
??-v>Ж?*2B

??3????

"?RN?HÜ
??;???>*2B
?R??]
?????e9B
4???*2 8B

9?m
m3NV?B%45 !"#$%6&7'()*89+,:;-.<=>/?0
ј?
??$?*/208B

??
g??zHk?B>/@
%#aT?E?oIK*2238BABCDEFGHIJKLMN

4?/?
?NQ}?BOPQR/@
"
2
!?Z!??m?*6278BST

?٭m
?^Ԓ?y`BQ/@
"

"
,
<:???Cǔ?B,UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>
f7??.hk?*<2=8B???

V@/??@
?_I??B?m*?2@8B???

`?
fd???|?BX???????????%&?)??
??????
-???????????>/??????@

z??p???<
'%uH?oI?]?B???????????/?
"
A
"

20?)??gmhX*A2B8B?????????7????
??c??*G2H8B

?\?Ǎ??
?B???{B?6?7
[?vML/7?*J2K8B

???ΰ??
??&?|J??B?
tqձ???*M2N8B??

&c?C???6
9?xc^u?B???????
"
M
y???L??
*Q2R8B

y??zo?

????ȺG\
??Q?oj*T2U8B

????UX

SC?LG?"
<-?f?Qo*W2X8B

[???\*

?p?Q.?
}{??ʬ?]*Z2[8B

|??Í?

?"???T?
??7p?
?*]2^8B

`?????

z{?x??
?????֊*`2a8B

iҲ{????

%9??'??
??q?2h"*28B
??>??feģB???????????????????????????????????????????G????????????????????????????????????????IKMN??

??'/D[|4
????g??*f2gB
?J?Z??9
?NgϫR?B?????
"

"

??C?k*k2l8B

r?P$?f?
r4??D?_B??
"
,
"

^/?퟾{s*p2qB

??0?
A?q?ko?~B??
?hD~m??*s2t8B

F??
z@?v?>??B?
"
A
ƨ?????*w2xB

?@>??a

??25$t?w
v??|????*z2{8B?

p??j-??
;??+??B?-
????V?*}2~8B

O?????
XN{g|??B???
?mѯƺs*?2?8B

Bm??y?P"
?_?g?!MB?-
P?G?X?l?*?2?8B

[Ɨ?VY?

/-??0.??b?B!?45 !$%&'()*+,:?-.??̓?

w??Ih

"	
,z}?
"

??D????(*?2?8B?13

??.Ċ??

/?6(?߭
??????*?2?8B?13

p?;??X

f??m?_??
Ɛ#La?J*?2?8B?13

???帠?%

?R;???
????/?*?2?8B?13

?M???

?
m?Ȟ
\???&ڪ*?2?8B?13

*E??7z?D

ܒ??oMǶ
?v<?aV*?2?8B?13

%p??vɶ

??2??
????bn*?2?8B?13

2???R?

?E???
؃?C??O,*?2?8B?13

AUw?o

n??4l
?[?)??)U*?2?8B?13

%G=̢8??

?]?????b
??,DDl?P*?2?8B?13

?I?k??Se

??^???
?????\'*?2?8B

N}:2?sp
64iS?\M?LB(????????????????????
"
z?
?]?%??e*?2?B

?Q?g=4N
???k??B?
+)?{%T???*?2?8B?????????

9X?
N"????B???
+{?Li?o*?2?B
'????t:?
?
???B??
??`R??:?*?2?B
??
???#9B???$?(?0
??B}??7*?2?8B

d[q?
??2
?Er?p?B????
????
??B????????????????????????????????????????????????????????????????????????????????
??j;/?@O
???^߲?AB??
"

"

;?U??I) B???
?˸:?C?n*?2?8B
?"?w?
??B?

T????J?z
a?1?J?o? B???
??IrmW*?2?8B
|?]???PB????

??,_?Ժ?
?)p???%*?2?8B
c??~a5?B?

?3b"]??<
"
?
d?u???*?2?8B
????s??B??
&HՌ?woB????
???"??
????`ڹ*?2?8B
???P????B??
_a????B
?????
?@ᕱO?}*?2?8B?
??2IbƘB????????
20??Ӽ?ߩ?B$??????????????????
?x?!܎-BB??
?w*RdR?B?
?o?$L?~B?
???>@?_sB
"

"	
???

"
???
[Ϗz????*?2?8B
??O?UB??
o??!?5xB?
"

"
?
c_?F?h*?2?B
???_`l?B???
??8???)/
?~????hB?
??ԟ??VxB?
w?B???PB??$??(?0
"
,
??1?/?S*?2?8B
?k?̜ȧ?B??6?
"
,
"
?
l??UL?B???
?׸????BB??
??????B??
ؔp????B?
?'/?????*?2?8B
?K??B??
?Ώ??B????
??,????B?
=WJppjW*?2?8B
"
?
"

"

9^?ոuAB??

?a???n?X
?t???`*?2?8B
"
f

ɱ?gy>??
9?|??b??B??
?S??;??*?2?8B?
?`YB/
R)?????B??
?????q*?2?8B
"
,
"

?5bN3?B
?lZ^P5D?*?2?8B

?????>?

N
?+??
??َo`}+*?2?8B

H?)Q?5`

?{??/Nu
"

"
b

Q?
]G`

"
?
?p.i?	8?*?2?8B

_1?;d[lB

b?=a
?EBe??u?B?
??si=?a?B?
b`?[?M?*?2?8B

??3?nN

???`B?
"
,
??#ۂ~B?B?
|9??
B?B????
"
,
?G7F?@U[*?2?8B
??(fi?AB?
??6sy?;DB???
??Id(JuL*?2?8B
"
c
/???[?:?*?2?8B

D?eR
/?>

@?(?}U
	

  #%$%()))**+,,,),--.0/013235767:;=<=>??@@BABEFH,GHIK,JKLNMNPRMQRSUMTUVXMWXY[MZ[\^M]^_aM`abdcdegfgjlkloppqqrt,stvxwxyzwz{{|~}~?????????}?????????????????????????????????????????????????????????}??????????????????????M?????????????????????????????????????M????????????????????????????????????????????????????????????p????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ˤ
	prototype
asyncDispose

asyncIterator
dispose
for
hasInstance
isConcatSpreadable
iterator
keyFor
match
matchAll
replace
search
species
toPrimitive
toStringTag
unscopables
description
done
value
next
length
callee
caller
at
concat
entries
every
filter
find
	findIndex
findLast

findLastIndex
flat
flatMap
forEach
includes
indexOf
join
keys
lastIndexOf
map
reduce
reduceRight
slice
some
toString
values
from
isArray
of

copyWithin
fill
index
input
pop
push
reverse
shift
sort
splice
toSource
unshift
valueOf
EPSILON
MAX_SAFE_INTEGER
	MAX_VALUE
MIN_SAFE_INTEGER
	MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
isFinite
	isInteger
isNaN

isSafeInteger

parseFloat
parseInt

toExponential
toFixed
toLocaleString
toPrecision
asIntN
asUintN
E
LN10
LN2
LOG10E
LOG2E
PI
SQRT1_2
SQRT2
abs
acos
acosh
asin
asinh
atan
atan2
atanh
cbrt
ceil
clz32
cos
cosh
exp
expm1
floor
fround
hypot
imul
log
log10
log1p
log2
max
min
pow
random
round
sign
sin
sinh
sqrt
tan
tanh
trunc
UTC
now
parse
getDate
getDay
getFullYear
getHours
getMilliseconds

getMinutes
getMonth

getSeconds
getTime
getTimezoneOffset

getUTCDate
	getUTCDay
getUTCFullYear
getUTCHours
getUTCMilliseconds

getUTCMinutes
getUTCMonth

getUTCSeconds
getYear
setDate
setFullYear
setHours
setMilliseconds

setMinutes
setMonth

setSeconds
setTime

setUTCDate
setUTCFullYear
setUTCHours
setUTCMilliseconds

setUTCMinutes
setUTCMonth

setUTCSeconds
setYear
toDateString
toGMTString
toISOString
toJSON
toLocaleDateString
toLocaleFormat
toLocaleTimeString
toTimeString
toUTCString
fromCharCode

fromCodePoint
raw
anchor
big
blink
bold
charAt

charCodeAt
codePointAt
endsWith
fixed
	fontcolor
fontsize
italics
link

localeCompare
	normalize
padEnd
padStart
quote
repeat

replaceAll
small
split

startsWith
strike
sub
substr
	substring
sup
toLocaleLowerCase
toLocaleUpperCase
toLowerCase
toUpperCase
trim
trimEnd
trimLeft
	trimRight
	trimStart
compile
dotAll
exec
flags
global

ignoreCase
	lastIndex
	multiline
source
sticky
test
unicode
$1
$2
$3
$4
$5
$6
$7
$8
$9
	lastMatch
	lastParen
leftContext
rightContext
groups
indices
captureStackTrace
stackTraceLimit
cause
fileName

lineNumber
message
name
	sourceURL
stack

ActiveXObject
AggregateError
	Arguments
Array
ArrayBuffer
ArrayBufferView
AsyncGenerator

AsyncIterable

AsyncIterator
AsyncIteratorIterable
Atomics
BigInt

BigInt64Array
BigUint64Array
Boolean
BufferSource
CanvasPixelArray
DataView
Date
Error
	EvalError
FinalizationRegistry
Float32Array
Float64Array
Function
	Generator

IArrayLike
IIterableResult
IObject
ITemplateArray
	IThenable
Infinity

Int16Array

Int32Array
	Int8Array
Iterable
Iterator
IteratorIterable
JSON
JSONType
Map
Math
Number
Object
ObjectPropertyDescriptor
Promise

RangeError

ReadonlyArray
ReadonlyMap
ReferenceError
Reflect
RegExp
RegExpResult
RegExpResultIndices
Set
SharedArrayBuffer
String
SuppressedError
Symbol
SyntaxError
Thenable
Transferable

TrustedScript
	TypeError

TypedArray
URIError
Uint16Array
Uint32Array

Uint8Array
Uint8ClampedArray
WeakMap
WeakRef
WeakSet
	arguments
	decodeURI
decodeURIComponent
	encodeURI
encodeURIComponent
escape
eval

globalThis
	undefined
unescape
configurable

enumerable
get
set
writable
	stringify
return
throw
isView

byteLength
buffer

byteOffset
BYTES_PER_ELEMENT
subarray
getBigInt64
getBigUint64

getFloat32

getFloat64
getInt16
getInt32
getInt8
	getUint16
	getUint32
getUint8
setBigInt64
setBigUint64

setFloat32

setFloat64
setInt16
setInt32
setInt8
	setUint16
	setUint32
setUint8
then
AllSettledResultElement
PromiseWithResolvers
all

allSettled
any
race
reject
resolve

withResolvers
catch
finally
reason
status
promise
errors
apply
	construct
defineProperty
deleteProperty
getOwnPropertyDescriptor
getPrototypeOf
has
isExtensible
ownKeys
preventExtensions
setPrototypeOf
add
and
compareExchange
exchange

isLockFree
load
notify
or
store
wait
wake
xor
deref
register

unregister
superClass_
error

suppressed
constructor
size
clear
delete

ASSUME_ES5
ASSUME_NO_NATIVE_MAP
ASSUME_NO_NATIVE_SET
AsyncGeneratorWrapper
 AsyncGeneratorWrapper$ActionEnum
"AsyncGeneratorWrapper$ActionRecord
%AsyncGeneratorWrapper$ExecutionFrame_
$AsyncGeneratorWrapper$ExecutionNode_
%AsyncGeneratorWrapper$ExecutionQueue_
%AsyncGeneratorWrapper$GeneratorMethod
AsyncIteratorFromSyncWrapper
ES6_CONFORMANCE
FORCE_POLYFILL_PROMISE
2FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION
INSTRUMENT_ASYNC_CONTEXT
ISOLATE_POLYFILLS
IS_SYMBOL_NATIVE
MapEntry
POLYFILL_PREFIX
SIMPLE_FROUND_POLYFILL
TRUST_ES6_POLYFILLS
$USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS
arrayFromIterable
arrayFromIterator

arrayIterator
arrayIteratorImpl
assign
asyncExecutePromiseGenerator
$asyncExecutePromiseGeneratorFunction
#asyncExecutePromiseGeneratorProgram
atMethod
checkEs6ConformanceViaProxy
checkStringArgs
clearModules
createTemplateTagFirstArg
 createTemplateTagFirstArgWithRaw
findDescriptor
findInternal
findLastInternal
	generator
getConstructImplementation
getCurrentModulePath
	getGlobal
getRestArguments
getSuperPropertyDescriptor_
	hasModule
inherits

initSymbol
iteratorFromArray
iteratorPrototype
makeAsyncIterator
makeIterator
objectCreate
owns
patch
polyfill
polyfillIsolated
polyfillUnisolated
	polyfills
propertyToPolyfillSymbol

reflectObject
registerAndLoadModule
registerEs6ModuleExports
registerModule
require
scope

stringPadding
superGet
superSet
typedArrayAt
typedArrayCopyWithin
typedArrayFill
typedArrayFindLast
typedArrayFindLastIndex
underscoreProtoCanBeSet
i
v
AWAIT_VALUE

YIELD_STAR
YIELD_VALUE
action
NEXT
RETURN
THROW
method
param
frame
head_
tail_
drop
enqueue
first
isEmpty
boundHandleDelegateError_
boundHandleDelegateResult_
boundRejectAndClose_
	delegate_
executionQueue_

generator_
enqueueMethod_
handleDelegateError_
handleDelegateResult_
rejectAndClose_
runDelegateFrame_
	runFrame_
runGeneratorFrame_
Context
Engine_

Generator_
createGenerator
ensureIteratorResultIsObject_
context_
program_
	nextStep_
next_
return_
throw_

yieldAllStep_
PropertyIterator
abruptCompletion_

catchAddress_
finallyAddress_
finallyContexts_

isRunning_
nextAddress
yieldAllIterator_
yieldResult
enterCatchBlock
enterFinallyBlock
forIn
jumpThroughFinallyBlocks
jumpTo
	jumpToEnd
jumpToErrorHandler_
leaveFinallyBlock

leaveTryBlock
setCatchFinallyBlocks
setFinallyBlock
start_
stop_
yield
yieldAll
	exception
isException
object_
properties_
getNext
head
key
previous
x
entry
id
list
exports

exportAllFrom
blockingDeps
def
module
path
callback

requireSet
batch_
asyncExecute
asyncExecuteFunction
asyncThrow_

executeBatch_
	FULFILLED
PENDING
REJECTED
isRejectionHandled_
onSettledCallbacks_
result_
state_
callWhenSettled_
createResolveAndReject_
executeOnSettledCallbacks_
fulfill_
notifyUnhandledRejection_
reject_
resolveToNonPromiseObj_

resolveTo_
 scheduleUnhandledRejectionCheck_
settleSameAsPromise_
settleSameAsThenable_
settle_

cancelable
map_
$jscomp$symbol$id_
a
	__proto__
id_
window
self
JSCompiler_renameProperty
JSCOMPILER_PRESERVE
opt_description
sym
	opt_value
uri
str
num
base
code
__defineGetter__
sprop
fun
__defineSetter__
hasOwnProperty
propertyName

isPrototypeOf
other
__lookupGetter__
__lookupSetter__
__noSuchMethod__

__parent__
propertyIsEnumerable
var_args
call
arity
displayName

opt_separator
begin
end
opt_initialValue
opt_thisobj
obj

opt_fromIndex

opt_compareFn
howMany
arr
opt_fractionDigits

opt_digits

opt_precision
	opt_radix
arg
width
bigint
locales
options
radix
y

opt_yr_num

opt_mo_num
opt_day_num

opt_hr_num
opt_min_num
opt_sec_num

opt_ms_num
date
year
	opt_month
opt_date
	opt_hours

opt_minute

opt_second
opt_ms
dayValue

monthValue
opt_dayValue
	yearValue
opt_monthValue

hoursValue
opt_minutesValue
opt_secondsValue
opt_msValue
minutesValue
secondsValue
millisecondsValue
	timeValue
opt_locales
opt_options
formatString
opt_str
	opt_index
color
searchValue

hrefAttribute

compareString
regexp
pattern
replacement
opt_end
	opt_limit
start

opt_length
opt_pattern
	opt_flags
fileNameOrOptions
line
opt_constructor
progId
opt_location
bind
selfObj
create
proto

properties
prop

descriptor
defineProperties
props
getOwnPropertyNames
seal
freeze
isSealed
isFrozen
opt_key
opt_ignoredKey
jsonStr
opt_reviver
jsonObj
opt_replacer
	opt_space
value1
value2
is
b
targetLength

opt_padString
count
template
	codePoint
opt_form
searchString
opt_position
target
opt_thisArg
	opt_begin

searchElement
array

opt_offset
opt_compareFunction
opt_byteOffset
mapFn
thisArg
lengthOrArrayOrBuffer
bufferLength
opt_byteLength
opt_littleEndian
littleEndian
opt_onFulfilled
opt_onRejected
resolver
	opt_error
iterable

onRejected
	arrayLike
	opt_mapFn
opt_this
predicateFn
depth
getOwnPropertySymbols
string
hasOwn
fromEntries
iter
getOwnPropertyDescriptors
targetFn
argList
targetConstructorFn
opt_newTargetConstructorFn
propertyKey

attributes
opt_receiver

typedArray

expectedValue
replacementValue
timeout
cleanupCallback
	heldValue
unregisterToken
opt_iterable
$jscomp
require es6/array/at
require es6/array/copywithin
require es6/array/entries
require es6/array/fill
require es6/array/find
require es6/array/findindex
require es6/array/findlast
require es6/array/findlastindex
require es6/array/flat
require es6/array/flatmap
require es6/array/from
require es6/array/includes
require es6/array/keys
require es6/array/of
require es6/array/values
require es6/util/atmethod
require util/polyfill
Array.prototype.at
orig
es_next
es5
Array.prototype.copyWithin
len
	toInteger
to
final
n
es6
es3
"require es6/util/iteratorfromarray
Array.prototype.entries
Array.prototype.fill
	opt_start
require util/findinternal
Array.prototype.find
Array.prototype.findIndex
require util/findlastinternal
Array.prototype.findLast
Array.prototype.findLastIndex
Array.prototype.flat
	flattened
flattenElementIntoArray
element
inner
es9
Array.prototype.flatMap
mapped
mapAndFlattenElementIntoArray
result

Array.from
iteratorFunction
function
k
require es6/object/is
Array.prototype.includes
es7
Array.prototype.keys
Array.of
Array.prototype.values
es8
require base
"require es6/util/makeasynciterator
no frames in executionQueue
newFrame
node
record
thrownError
err
wasEmpty
genRec

resolvedValue
e
	thrownErr
-Unrecognized AsyncGeneratorWrapper$ActionEnum
 no delegate to perform execution
require util/global
proxied
proxy
Proxy
receiver
q
require es6/symbol
require es6/util/inherits
require es6/reflect/construct
Symbol.dispose
Symbol.asyncDispose
tmpError
require es6/generator_engine
passValueToGenerator
passErrorToGenerator
handleGeneratorRecord
generatorFunction
program
require es6/util/setprototypeof
require es6/util/makeiterator
Iterator result 
 is not an object
Generator is already running

resumeAddress
catchAddress
finallyAddress
nextCatchBlockAddress
nextCatchAddress
nextFinallyAddress
finallyDepth
preservedContext
abruptCompletion
object
property
yieldAllIterator
returnFunction

nextAction
resultValue

yieldValue
engine
es_2020
require es6/conformance
require es6/weakmap
require util/defines
require util/owns
	NativeMap
isConformant
s
t
item
idMap
DATA
HEAD
PolyfillMap

createHead
r

maybeGetEntry
getId
func
mapIndex
type
p_
require es6/math/acosh
require es6/math/asinh
require es6/math/atanh
require es6/math/cbrt
require es6/math/clz32
require es6/math/cosh
require es6/math/expm1
require es6/math/fround
require es6/math/hypot
require es6/math/imul
require es6/math/log10
require es6/math/log1p
require es6/math/log2
require es6/math/sign
require es6/math/sinh
require es6/math/tanh
require es6/math/trunc

Math.acosh

Math.asinh

Math.atanh
	Math.cbrt

Math.clz32
	Math.cosh

Math.expm1
d
z
zPrev
Math.fround

Math.hypot
sum
	Math.imul
ah
al
bh
bl
lh

Math.log10

Math.log1p
	Math.log2
	Math.sign
	Math.sinh
	Math.tanh

Math.trunc
require es6/map
require es6/set
Module
opt_exports
define
default

CacheEntry
callRequireCallback

opt_module
oldPath
currentModulePath

createRequire
moduleCache

normalizePath

components
/
.
..

getCacheEntry

cacheEntry
Module 
 does not exist.
	ensureMap

CallbackEntry
maybeNormalizePath
root
absOrRelativePath
./
../
/../
absPath

requireEnsure
requires
blockingRequires
required

callbackEntry
ensure

markAvailable

absModulePath
ensures
	moduleDef
opt_shallowDeps
 has already been registered.
Cannot nest modules.
shallowDeps
getTransitiveBlockingDepsOf

transitive
blocker

addAsBlocking
removeAsBlocking
moduleId
blocking
dep
"blockingModulePathToBlockedModules
blocked
blockedModules
blockedCacheEntry
Module at path 
 is already registered.
String.prototype.normalize
require es6/number/constants
require es6/number/isfinite
require es6/number/isinteger
require es6/number/isnan
 require es6/number/issafeinteger
require es6/number/parsefloat
require es6/number/parseint
Number.EPSILON
Number.MAX_SAFE_INTEGER
Number.MIN_SAFE_INTEGER
Number.isFinite
number
Number.isInteger
Number.isNaN
Number.isSafeInteger
Number.parseFloat
Number.parseInt
require es6/object/assign
require es6/object/entries
require es6/object/fromentries
,require es6/object/getownpropertydescriptors
(require es6/object/getownpropertysymbols
!require es6/object/setprototypeof
require es6/object/values
require es6/object/hasOwn
require es6/util/assign

Object.assign
Object.entries
require util/defineproperty
Object.fromEntries
 is not iterable

iteratorFn
pair
-iterable for fromEntries should yield objects
val
es_2019
require es6/reflect/ownkeys
 Object.getOwnPropertyDescriptors
Object.getOwnPropertySymbols

Object.hasOwn
	Object.is
left
right
Object.setPrototypeOf

Object.values
require es6/promise/promise
require es6/promise/allSettled
require es6/promise/finally
require es6/promise/any
"require es6/promise/aggregateerror
!require es6/promise/withResolvers
$jscomp$tmp$error
es_2021
Promise.allSettled
fulfilledResult
	fulfilled
rejectedResult
rejected
thenablesOrValues
PromiseConstructor
convertToAllSettledResult

maybeThenable
wrappedResults
Promise.any
aggregate_error_msg
All promises were rejected
resolvingArray
p
Promise.prototype.finally
	onFinally

NativePromise
&platformSupportsPromiseRejectionEvents
PromiseRejectionEvent
globalPromiseIsNative

[native code]
shouldForcePolyfillPromise

AsyncExecutor
f
nativeSetTimeout

setTimeout
executingBatch
PromiseState
PolyfillPromise
executor
resolveAndReject
thisPromise

alreadyCalled

firstCallWins
"A Promise cannot resolve to itself
isObject

thenMethod
settledState

valueOrReason
Cannot settle(
, 
#): Promise already settled in state

nativeConsole
console
NativeCustomEvent
CustomEvent
NativeEvent
Event
nativeDispatchEvent

dispatchEvent
event
unhandledrejection
createEvent
document
initCustomEvent

asyncExecutor
methods
thenable
onFulfilled
resolveChild
rejectChild
childPromise
createCallback
paramF
defaultF
Unexpected state: 
resolvingPromise

opt_reason
iterRec

resolveAll
	rejectAll
resultsArray
unresolvedCount
	ithResult
Promise.withResolvers
res
rej
require es6/reflect/apply
"require es6/reflect/defineproperty
"require es6/reflect/deleteproperty
require es6/reflect/get
,require es6/reflect/getownpropertydescriptor
"require es6/reflect/getprototypeof
require es6/reflect/has
 require es6/reflect/isextensible
%require es6/reflect/preventextensions
require es6/reflect/set
"require es6/reflect/setprototypeof
require es6/reflect/reflect

Reflect.apply
require es6/util/construct
Reflect.construct
Reflect.defineProperty
desc
Reflect.deleteProperty
require util/finddescriptor
Reflect.get
 Reflect.getOwnPropertyDescriptor
Reflect.getPrototypeOf
Reflect.has
Reflect.isExtensible
Reflect.ownKeys
symbolPrefix
jscomp_symbol_
isSymbol
names
symbols
Reflect.preventExtensions
Reflect.set
Reflect.setPrototypeOf
	NativeSet
PolyfillSet
require es6/string/at
require es6/string/codepointat
require es6/string/endswith
 require es6/string/fromcodepoint
require es6/string/includes
require es6/string/matchall
require es6/string/padend
require es6/string/padstart
require es6/string/raw
require es6/string/repeat
require es6/string/replaceall
require es6/string/startswith
require es6/string/trimend
require es6/string/trimstart
String.prototype.at
require util/checkstringargs
String.prototype.codePointAt
position
second
String.prototype.endsWith
j
String.fromCodePoint
invalid_code_point 
String.prototype.includes
String.prototype.matchAll
DRegExp passed into String.prototype.matchAll() must have global tag.
	regexCopy
g
matchString
finished
matchAllIterator
require util/stringpadding
String.prototype.padEnd
	padLength
String.prototype.padStart

String.raw
	stringRaw
strings
*Cannot convert undefined or null to object
rawlen
String.prototype.repeat
copies
Invalid count value
String.prototype.replaceAll
regExpEscape
([-()\[\]{}+?*.$\^|,:#xx(05l?c?!??
??0
x0x?0"x4???
??0x
??0x!0?0
0Hx:
x(0Sl?c?!??
??0
x0x?0"x4???
??0x
??0x!0?0
0Hx:
x(0q`?W?!??
??0
x0x?0"x(???
??0x0?00Dx:
x(0q`?W?!??
??0
x0x?0"x(???
??0x!0?00Bx:
x(0q`?W?!??
??0
x0x?0"x(???
??0x0?00Hx:
x(0a`?W?!??
??0
x0x?0"x(???
??0x0?00Hx:
x(0g[?R?!??
??0
x0x?0"x(???
??0x!0?0
0Hxx(0g*?!??
??0
x0x?0"x!(0c(?!??
??0
x0x?0"x!(^?W?!??
??0
x0x?0"x(???
??0x'0?00Px:
x(S?J? ??
??0
x0xQ0"x???0?00Dx:
x(0}S?J? ??
??0
x0x>0"x???0?008x:
x(0YT?K? ??
??0
x0x/0"x???0?008x:
x(0MS?J? ??
??0
x0x@0"x???0?006x:
x(0M5?
??0x?
??0x0?0(0K:
x[?R?!??
??0x0x?0&x(???
??0x0?004xx(07[?R?!??
??0x0x?0&x(???
??0x0?006xx(0Y*?!??
??0x0x?0&x(0[(?!??
??0x0x?0&x('? ??
??0x0x0&x!((?!??
??0x0x?0&x('? ??
??0x0x0&x((?!??
??0x0x?0&x(R?K? ??
??0x0x/0&x???0?00xx???0?00&xx(01`?W? ??
??0x(0x*00x(???
??0x0?00Bx:
x(0k`?W? ??
??0x(0x*'00x(???
??0x0?00>x:
x(0gl?c? ??
??0x(0x*-00x4???
??0x"
??0x"0?0
0@x:
x(0mT?K? ??
??0x(0x*/00x???0?00Fx:
x(0ik?b? ??
??0x(0x*+00x4???
??0x!
??0x0?0$0Bx:
x(0[l?b? ??
??0x(0x*,00x4???
??0x!
??0x0?0$0Lx:
x(0?l?b? ??
??0x(0x*00x4???
??0x!
??0x0?00@x:
x(0?k?b? ??
??0x(0x*00x4???
??0x!
??0x0?00Bx:
x(0l?b? ??
??0x(0x*$00x4???
??0x!
??0x0?00Dx:
x(0?m?c? ??
??0x(0x*&00x4???
??0x
??0
x"0?00Dx:
x(0?l?c? ??
??0x(0x*)00x4???
??0x
??0
x"0?00Lx:
x(0}l?b? ??
??0x(0x**00x4???
??0x!
??0x0?00x:
x(0{.?%??
??0x(0x*00:

x(0}3?
??0x+?
??0x0
?0(:
x+a?X?3??
??0x+0x-?
??0
x0.xx???0?00&xx(01`?W? ??
??0x+0x-0 x(???
??0x0?002x:
x(0[`?W? ??
??0x+0x-'0 x(???
??0x0?00.x:
x(0WT?K? ??
??0x+0x-80 x???0?00,x:
x(0]`?W? ??
??0x+0x-90 x(???
??0x0?00.x:
x(0AT?K? ??
??0x+0x-:0 x???0?004x:
x(0ST?K? ??
??0x+0x-;0 x???0?000x:
x(0Il?c? ??
??0x+0x--0 x4???
??0x"
??0x"0?0
00x:
x(0E`?W? ??
??0x+0x-<0 x(???
??0x!0?00.x:
x(0Yw?n? ??
??0x+0x-=0 x???(?	?60x"
??0x"
??0x0?002x:
x("0]/?&??
??0x+0x->0 :
x(0wR?K? ??
??0x+0x-/0 x???0?006x:
x(`?W? ??
??0x+0x-?0 x(???
??0x0?004x:
x(0Kk?b? ??
??0x+0x-+0 x4???
??0x!
??0x0?0$02x:
x(0Yk?b? ??
??0x+0x-,0 x4???
??0x!
??0x0?0$00$x???0?00:x:
x(07T?K? ??
??0x.0x0/0$x???0?00:x:
x(0OS?J? ??
??0x.0x0@0$x???0?008x:
x(0O5?
??0x1?
??0x0?0(0M:
x1`?W? ??
??0
x10x3O0"x(???
??0x"0?0(0Bx:
x(05`?W? ??
??0
x10x3P0"x(???
??0x"0?006x:
x(0{`?W? ??
??0
x10x3R0"x(???
??0x"0?00>x:
x(0_`?W? ??
??0
x10x3/0"x(???
??0x40?008x:
x(0m#??
??0
x1C0:

x(0_!??
??0
x1E0:

x(!??
??0
x1G0:

x(!??
??0
x1F0:

x(!??
??0
x1H0:

x(3?
??0x5?
??0x80?0
(:
x5`?W??
??0
x5S0x4???
??0x
??0x0?00 x:
x(0)`?W??
??0
x5T0x4???
??0x
??0x0?00"x:
x(0Ok?b? ??
??0
x50x7Q0"x4???
??0x9
??0x!0?00Dx:
x(0Q`?W? ??
??0
x50x7/0"x(???
??0x"0?008x:
x(0yS?J? ??
??0
x50x7@0"x???0?006x:
x(0W)???0x:?0p??????x:(0K:

T?K??
??0	x:]0
x(???
??0x0?00x:
x(0T?K??
??0	x:^0
x(???
??0x0?00x:
x(0-T?K??
??0	x:`0
x(???
??0x0?00x:
x(0/T?K??
??0	x:b0
x(???
??0x0?00x:
x(0/`?W??
??0	x:c0
x4???
??0x
??0x0?00x:
x(0/T?K??
??0	x:f0
x(???
??0x0?00x:
x(07T?K??
??0	x:h0
x(???
??0x0?00x:
x(0/T?K??
??0	x:j0
x(???
??0x0?00x:
x(0-T?K??
??0	x:l0
x(???
??0x0?00x:
x(0-T?K??
??0	x:p0
x(???
??0x0?00x:
x(01T?K??
??0	x:t0
x(???
??0x0?00x:
x(0-T?K??
??0	x:u0
x(???
??0x0?00x:
x(0;`?W??
??0	x:v0
x4???
??0x
??0x0?00x:
x(0;H????
??0	x:w0
x???0?00x:
x(03T?K??
??0	x:x0
x(???
??0x0?00x:
x(01T?K??
??0	x:z0
x(???
??0x0?00x:
x(01T?K??
??0	x:|0
x(???
??0x0?00x:
x(0-T?K??
??0	x:}0
x(???
??0x0?00x:
x(0/H????
??0	x:>0
x???0?00 x:
x(0-#??
??0	x:U0
:

x(05!??
??0	x:W0
:

x(!??
??0	x:V0
:

x(!??
??0	x:Y0
:

x(!??
??0	x:X0
:

x(!??
??0	x:Z0
:

x(!??
??0	x:[0
:

x(!??
??0	x:\0
:

x(}?
??0x;[?
??0x
??0x
??0x
??0x
??0x??(0ux
??0x0?0( :
x;I?@??
??0	x;?0
x???0?00x:
x(09U?L??
??0	x;?0
x(???
??0x0?00x:
x(0+?????
??0	x;?0
xr??[?
??0x
??0x"??(0x"
??0x"
??0x"
??0x"
??0x"0?00x:
x(07U?K?!??
??0	x;0x=?0x???0?002x:
x(0?T?K?!??
??0	x;0x=?0x???0?000x:
x(0GT?K?!??
??0	x;0x=?0x???0?004x:
x(0ET?K?!??
??0	x;0x=?0x???0?00:x:
x(0IT?K?!??
??0	x;0x=?0x???0?002x:
x(0OT?K?!??
??0	x;0x=?0x???0?004x:
x(0GT?K?!??
??0	x;0x=?0x???0?008x:
x(0IT?K?!??
??0	x;0x=?0x???0?008x:
x(0MT?K?!??
??0	x;0x=?0x???0?00Bx:
x(0MT?K?!??
??0	x;0x=?0x???0?002x:
x(0WT?K?!??
??0	x;0x=?0x???0?00Fx:
x(0GT?K?!??
??0	x;0x=?0x???0?008x:
x(0[T?K?!??
??0	x;0x=?0x???0?006x:
x(0MT?K?!??
??0	x;0x=?0x???0?00:x:
x(0KT?K?!??
??0	x;0x=?0x???0?00@x:
x(0OT?K?!??
??0	x;0x=?0x???0?00:x:
x(0UT?K?!??
??0	x;0x=?0x???0?00>x:
x(0OT?K?!??
??0	x;0x=?0x???0?00>x:
x(0ST?K?!??
??0	x;0x=?0x???0?00Hx:
x(0S`?W?!??
??0	x;0x=?0x(???
??0x0?002x:
x(0]l?c?!??
??0	x;0x=?0x4???
??0x
??0x"0?004x:
x(0Wz?q?!??
??0	x;0x=?0xB??)?
??0x
??0x"
??0 x"0?0(0x:
x(0y`?W?!??
??0	x;0x=?0x(???
??0x0?002x:
x(0k??}?!??
??0	x;0x=?0xN??7?
??0x
??0x"??(0x"
??0$x"0?004x:
x(0Y{?q?!??
??0	x;0x=?0xB??)?
??0x
??0x"
??0$x"0?0(0x:
x(0?l?c?!??
??0	x;0x=?0x4???
??0x
??0x"0?008x:
x(0s`?W?!??
??0	x;0x=?0x(???
??0x0?0&0Bx:
x(0`?W?!??
??0	x;0x=?0x(???
??0x0?002x:
x(0y`?W?!??
??0	x;0x=?0x(???
??0x0?008x:
x(0Yl?c?!??
??0	x;0x=?0x4???
??0x
??0x"0?00:x:
x(0]z?q?!??
??0	x;0x=?0xB??+?
??0x
??0x"??(0x"0?00@x:
x(0??}?!??
??0	x;0x=?0xN??7?
??0x
??0x"??(0x"
??0$x"0?00:x:
x(0m{?q?!??
??0	x;0x=?0xB??+?
??0x
??0x"??(0x"0?00>x:
x(0?l?c?!??
??0	x;0x=?0x4???
??0x
??0x"0?00>x:
x(0ia?W?!??
??0	x;0x=?0x(???
??0x0?0&0Hx:
x(0?S?J? ??
??0	x;0x=>0x???0?004x:
x(0T?K?!??
??0	x;0x=?0x???0?00?
??0x0?0(:
x>U?L??
??0
x>?0x(???
??0x0?00,x:
x(01U?L?!??
??0
x>0x@?0"x???0?004x:
x(0QU?L?!??
??0
x>0x@?0"x???0?00.x:
x(0IU?L?!??
??0
x>0x@?0"x???0?002x:
x(0CU?L?!??
??0
x>0x@?0"x???0?000x:
x(0G`?W?!??
??0
x>0x@?0"x'???	?60x0?004x:
x(0Ea?X?!??
??0
x>0x@?0"x(???
??0x"0?000x@0"x(???
??0x0?004x:
x(0cU?L?!??
??0
x>0x@?0"x???0?002x:
x(0Ya?X?!??
??0
x>0x@?0"x(???
??0x0?00:x:
x(0Ga?X?!??
??0
x>0x@?0"x(???
??0x0?008x:
x(0Yl?c? ??
??0
x>0x@&0"x4???
??0x
??0x"0?006x:
x(0UU?L?!??
??0
x>0x@?0"x???0?006x:
x(0l?c? ??
??0
x>0x@)0"x4???
??0x
??0x"0?00>x:
x(0Kb?X?!??
??0
x>0x@?0"x(???
??0x0?000x:
x(0?y?p?!??
??0
x>0x@?0"x@??)?
??0x
??0x9
??0x!0?00Bx:
x(0_`?V? ??
??0
x>0x@
0"x(???
??0x0?002x:
x(0?U?L?!??
??0
x>0x@?0"x???0?002x:
x(0Sk?b? ??
??0
x>0x@0"x4???
??0xC
??0xD0?006x:
x(0G_?V? ??
??0
x>0x@
0"x(???
??0xC0?004x:
x(0sl?c? ??
??0
x>0x@-0"x4???
??0x
??0x"0?002x:
x(0WU?L?!??
??0
x>0x@?0"x???0?002x:
x(0cm?d?!??
??0
x>0x@?0"x4???
??0x
??0x"0?002x:
x(0GT?K?!??
??0
x>0x@?0"x???0?004x:
x(0wU?L?!??
??0
x>0x@?0"x???0?00.x:
x(0Im?d?!??
??0
x>0x@?0"x4???
??0x
??0x"0?004x:
x(0Cm?d?!??
??0
x>0x@?0"x4???
??0x
??0x"0?00:x:
x(0kU?L?!??
??0
x>0x@?0"x???0?00.x:
x(0ka?X?!??
??0
x>0x@?0"x(???
??0x90?00Jx:
x(0Ca?X?!??
??0
x>0x@?0"x(???
??0x90?00Jx:
x(0uU?L?!??
??0
x>0x@?0"x???0?00>x:
x(0uU?L?!??
??0
x>0x@?0"x???0?00>x:
x(0SS?J? ??
??0
x>0x@>0"x???0?008x:
x(0ST?K? ??
??0
x>0x@/0"x???0?008x:
x(0M.?%??
??0
x>0x@@0":
x(0M'? ??
??0
x>0x@0"x(??
??0xE?
??0x
??0x0?0(:
xEl?c?!??
??0
xE0xB?0"x4???
??0x
??0x0?006x:
x(0O[?R?!??
??0
xE0xB?0"x(???
??0x0?0
00xx(0o[?R?!??
??0
xE0xB?0"x(???
??0x0?0
00xx(0KT?K? ??
??0
xE0xB/0"x???0?008x:
x(0K6?(????0?00xF?0xF(0M:
)? ??
??0xF0xH60.x(0;'? ??
??0xF0xH70.x('? ??
??0xF0xH0.x((?!??
??0xF0xH?0.x(4?(????0?00,xI?0xI(:
*?!??
??0'xI0xK?0??p????x>(?0:
H?p????x>(?0O?E???p????xc?p????xE??p????xE(?$0:
H?p????xE(?0O?E???p????xc?p????xF??p????xF(?$0
:
H?p????xF(?$0O?E???p????xc?p????xI??p????xI(?%0
:
H?p????xI(?$0	O?E???p????xc?p????xL??p????xL(?(0:
H?p????xL(?%0	O?E???p????xc?p????xP??p????xP(?)0:
H?p????xP(?(0O?E???p????xc?p????xS??p????xS(?)0:
H?p????xS(?)0O?E???p????xc?p????xV??p????xV(?)0:
H?p????xV(?)0O?E???p????xc?p????xY??p????xY(?)0:
H?p????xY(?)0O?E???p????xc?p????x\??p????x\(?*0:
H?p????x\(?)0O?E???p????xc?p????x_??p????x_(?*0:
H?p????x_(?*0-?#??p????xc?(?*0H?p????xb(?*0(:
?
??j?c?!??
??0x0x?0&x4???
??0x!
??0x0?004x:
x(DU?L?!??
??0
x>0x@?0"x???0?000x:
x(0kU?L?!??
??0
x>0x@?0"x???0?008x:
x(0EU?L?!??
??0
x>0x@?0"x???0?00:x:
x(0M(?
??0xe?00?0(0O:
	xe)? ??
??01xe0xg0Fxh(0G(?!??
??01xe0xg?0Fx!((?!??
??01xe0xg?0Fx!((?!??
??01xe0xg?0Fxi((?!??
??01xe0xg?0Fxi((?!??
??01xe0xg?0Fxi(_?X??
??0
x?0x4???
??0x!
??0x!0?00 x:
x(h?_??
??0
x?0x@??)?
??0x
??0
x'
??0xf0?000xx(0W\?S??
??0
x?0x4???
??0x
??0
x0?004xx(0oa?X??
??0
x?0x4???
??0x
??0
x'0?00Dx:
x(0]T?K??
??0
x(0x(???
??0x0?0
0x:
x(0kU?L??
??0
x?0x(???
??0x0?0
0:x:
x(07U?L??
??0
x?0x(???
??0x0?0
00x:
x(0UP?G??
??0
x?0x(???
??0x0?0
06xx(0KP?G??
??0
x?0x(???
??0x0?0
0xx(0QP?G??
??0
x?0x(???
??0x0?0
0 xx(07U?L??
??0
x?0x(???
??0x0?0
0,x:
x(0;U?L??
??0
x?0x(???
??0x0?0
0$x:
x(0GU?L??
??0
x?0x(???
??0x0?0
0$x:
x(0?[?R?!??
??0
x0x?0"x(???
??0x0?004xx(&0?O?F?!??
??0	x;0x=?0x???0?00:xx(0W[?R?!??
??0	x;0x=?0x(???
??0x0?0 00xx(0O(?
??0xj?0?0(0a:
xjm?d?!??
??0xj0xl?0&x4???
??0x
??0x!0?006x:
x(0'y?p?!??
??0xj0xl?0&x@??)?
??0x
??0xm
??0xn0?00>x:
x(0s?
??0xk(0?O?E???p????xc?p????xe??p????xe(?0:
	H?p????xe(?0	O?E???p????xc?p????xj??p????xj(?0:
H?p????xj(?0-?#??p????xc?(?0
H?p????xk(?0(:
??
???&?
??0xo?0?0(N:
	xoZ?Q? ??
??0xo0xq0(x(???
??0x0?006xx(0)Z?Q?!??
??0xo0xq?0(x'???	?0x0?00:xx(0][?R?!??
??0xo0xq?0(x(???
??0x0?008xx(0YS?J??
??0	x:q0
x'???	?0x0?00x:
x(0_S?J??
??0	x:s0
x'???	?0x0?00x:
x(09S?J??
??0	x:r0
x'???	?0x0?00x:
x(07S?J??
??0	x:k0
x'???	?0x0?00x:
x(09S?J??
??0	x:i0
x'???	?0x0?00x:
x(09S?J??
??0	x:{0
x'???	?0x0?00x:
x(07S?J??
??0	x:~0
x'???	?0x0?00x:
x(07S?J??
??0	x:_0
x'???	?0x0?00x:
x(07S?J??
??0	x:a0
x'???	?0x0?00x:
x(09S?J??
??0	x:d0
x'???	?0x0?00x:
x(09S?J??
??0	x:0
x'???	?0x0?00x:
x(09S?J??
??0	x:y0
x'???	?0x0?00x:
x(09S?J??
??0	x:e0
x'???	?0x0?00x:
x(07T?K??
??0	x:n0
x(???
??0x0?00x:
x(07`?W??
??0	x:o0
x4???
??0x
??0x0?00x:
x(0?S?J??
??0	x:g0
x'???	?0x0?00x:
x(0IS?J??
??0	x:m0
x'???	?0x0?00x:
x(09a?X??
??0
x?0x4???
??0x
??0x0?00x:
x(0;k?b? ??
??0
x10x3Q0"x4???
??0x9
??0x!0?00Dx:
x(05T?J? ??
??0
x10x3@0"x???0?006x:
x(0?_?V? ??
??0
x>0x@0"x'???	?60x0?00,x:
x(0Km?d?!??
??0
x>0x@?0"x4???
??0x
??0x0?004x:
x(0Km?d?!??
??0
x>0x@?0"x4???
??0x
??0x0?008x:
x(0b?X?!??
??0
x>0x@?0"x(???
??0x0?004x:
x(0?6?(????0?00"xr?0xr(0S:
*?!??
??0xr0xt?02x,(
0?Z?S??
??0
x>?0x4???
??0xs
??0x0?00xx(\?S??
??0
x>?0x4???
??0x
??0x0?00.xx(0S_?V?!??
??0
x>0x@?0"x'???	?60x0?00>x:
x(0i[?R?!??
??0
x>0x@?0"x(???
??0x0?00:xx(0]l?c?!??
??0
x>0x@?0"x4???
??0x
??0x"0?000x@?0"x4???
??0xu
??0xD0?000x@?0"x4???
??0x
??0x"0?008x:
x(0?l?b? ??
??0
x>0x@%0"x4???
??0x
??0x"0?008x:
x(0?V?L?!??
??0
x>0x@?0"x???0?00:x:
x(0?U?L?!??
??0
x>0x@?0"x???0?006x:
x(0O`?W? ??
??0
x>0x@0"x(???
??0xu0?008x:
x(0K(?
??0xv?0?0(0Y:
	xv4?
??0xy?	?0x0?0(0/:
xy*?!??
??0xy0x{?0,x(09i?b? ??
??0xy0x{-0,x4???
??0x
??0x"0?00x:
x(0?h?_?"????0x?0x?0*x4???
??0x
??0x0?00:xx(0Sx?o?"????0x?0x?50*x???(?	?0x
??0x"
??0x"0?008x:
x(0ym?d?"????0x?0x?0*x4???
??0x
??0x0?00xx(0?m?d?"????0x?0x?%0*x4???
??0x
??0x"0?00@x:
x(0}n?d?"????0x?0x?&0*x4???
??0x
??0x"0?00>x:
x(0?b?X?"????0x?0x?'0*x(???
??0x0?008x:
x(0?U?L?"????0x?0x?(0*x???0?008x:
x(0gm?d?"????0x?0x?)0*x4???
??0x
??0x"0?00Fx:
x(0M,?"????0x?0x?0*x(0?k?d?"????0x?0x?*0*x4???
??0x
??0x0?006x:
x(m?d?"????0x?0x?+0*x4???
??0x
??0x0?0$0x:
x(0?o?f?#????0x?0x??0*x5?????0x?
??0x"0?006x:
x(0Sn?e?"????0x?0x?-0*x4???
??0x"
??0x"0?00:x:
x(0mh?_?"????0x?0x?.0*x4???
??0x
??0x0?008xx(0sa?X?"????0x?0x?<0*x(???
??0x!0?0*08x:
x(0wo?f?#????0x?0x??0*x4???
??0x
??0x"0?00@x:
x(0sU?L?"????0x?0x?00*x???0?00x:
x(0?o?e?#????0x?0x??0&x4???
??0x
??0xi0?0$0x:
x(0?o?e?#????0x?0x??0&x4???
??0x
??0xi0?0$0@x:
x(0?o?e?#????0x?0x??0&x4???
??0x
??0xi0?0$0@x:
x(0?o?e?#????0x?0x??0&x4???
??0x
??0xi0?00Bx:
x(0?o?e?#????0x?0x??0&x4???
??0x
??0xi0?00Dx:
x(0?n?d?#????0x?0x??0&x3???
??0x	?0x0?00:x:
x(0?m?d?#????0x?0x??0&x3???
??0x	?0x0?00x:
x(0?z?p?#????0x?0x??0&x???(?
??0x	?0x
??0xi0?0$0x:
x(0?|?r?#????0x?0x??0&xA??*???(0Gx	?0x
??0xi0?0$0@x:
x(0?{?r?#????0x?0x??0&xA??*???(0Gx	?0x
??0xi0?0$0@x:
x(0Qy?p?#????0x?0x??0&x???(?
??0x	?0x
??0xi0?00Bx:
x(0Qz?p?#????0x?0x??0&x???(?
??0x	?0x
??0xi0?00Dx:
x(0??
??0x(0?*???0x??0?0(0:
	x?i?`?#????0x?0x??0(x4???
??0x!
??0"x!0?0 06xx(,0)7???0x??
??0x0?0(0?:
x?Q?H????0x??0x(???
??0x0?00$xx("05Q?H????0x??0x(???
??0x0?00"xx(0KQ?H????0x??0x(???
??0x0?00xx( 0IQ?H????0x??0x(???
??0x0?00xx(0AM?D????0x??0x????0?00Dx?:
	x?(0A9?0?$????0x??0/x?0x??0Tx(0Y6?/?$????0x??0/x?0x?0Tx(7?0?$????0x??0/x?0x??0Txh(O?H????0x??0x(???
??0x0?00*xx(Q?H????0x??0x(???
??0x0?00xx( 0OM?D????0x??0x????0?00>x?:
	x?(0C:?1?$????0x??0)x?0x??0Nx?(
0S7?0?$????0x??0)x?0x??0Nx(
7?0?$????0x??0)x?0x??0Nx(
C?<????0x??0x???0?000xx(i?`?#????0x?0x??0$x4???
??0x!
??0"x!0?0 02xx(,0E^?T?#????0x?0x??0$x(???
??0x0?004xx(40?]?T?#????0x?0x??0$x(???
??0x0?008xx(0]O?F??
??0x+30x(???
??0x0?00xx(0]h?_??
??0x+10xA??*???0x?
??0x!
??0x0?00xx(0;)? ??
??0x+0x-(0 x(0k,?%??
??0x+0x-00 :
x('? ??
??0x+0x-0 x(i?b? ??
??0x+0x-0 x4???
??0x
??0x0?00.x:
x(k?b? ??
??0x+0x-0 x4???
??0x
??0x0?008x:
x(0mk?b? ??
??0x+0x- 0 x4???
??0x
??0x0?006x:
x(0wk?b? ??
??0x+0x-!0 x4???
??0x
??0x0?00@x:
x(0uv?m? ??
??0x+0x-50 x???(?	?0x
??0x"
??0x"0?00.x:
x(0w?n? ??
??0x+0x-40 x@??)?
??0x
??0x
??0x"0?00:x:
x(0u_?V? ??
??0x+0x-0 x'???	?60x0?00*x:
x(0{l?c? ??
??0x+0x-%0 x4???
??0x
??0x"0?006x:
x(0Il?b? ??
??0x+0x-#0 x4???
??0x
??0x0?004x:
x(80?_?V? ??
??0x+0x-"0 x(???
??0x"0?00.x:
x(0k)? ??
??0x(0x*(00x(0M,?%??
??0x(0x*000:
x('? ??
??0x(0x*00x(i?b? ??
??0x(0x*00x4???
??0x
??0x0?00>x:
x(k?b? ??
??0x(0x*00x4???
??0x
??0x0?00Hx:
x(0}l?b? ??
??0x(0x* 00x4???
??0x
??0x0?00Fx:
x(0?l?b? ??
??0x(0x*!00x4???
??0x
??0x0?00Px:
x(0?`?V? ??
??0x(0x*00x'???	?60x0?00:x:
x(0?l?c? ??
??0x(0x*%00x4???
??0x
??0x"0?00Fx:
x(0Yl?b? ??
??0x(0x*#00x4???
??0x
??0x0?00Dx:
x(60?_?V? ??
??0x(0x*"00x(???
??0x"0?00>x:
x(0{P?B?5???
??0x
??0x0?00"x??0x?(0]:
,?#????0x?0x??02x,(0]*?#????0x?0x??02x(N?G??
??0
x?0x(???
??0x0?0
0>xx(\?S??
??0
x?0x4???
??0x
??0
x0?000xx(0Y#??
??0
x1A0:

x(0Y!??
??0
x1D0:

x(!??
??0
x1B0:

x(^?W??
??0
x1N0x4???
??0x
??0x"0?00$x:
x(T?K??
??0
x1M0x(???
??0x0?00(x:
x(0SS?J??
??0
x1K0x'???	?0x0?00x:
x(0IS?J??
??0
x1I0x'???	?0x0?00$x:
x(0=S?J??
??0
x1J0x'???	?0x0?00&x:
x(0CS?J??
??0
x1L0x'???	?0x0?00.x:
x(0Ea?X??
??0
x?0x4???
??0x
??0x!0?00 x:
x(0MT?K??
??0
x00x(???
??0x0?0
0 x:
x(0UT?K??
??0
x0x(???
??0x0?0
0"x:
x(0;a?X??
??0
x?0x4???
??0x
??0
x'0?00 x:
x(0=P?G??
??0
x?0x(???
??0x0?00*xx(0WU?L??
??0
x?0x(???
??0x0?0
0Fx:
x(0G+???0x??0p??????x?(0a:

i?`????0x??0x@??)?
??0x
??0x
??0x,0?00 xx(0l?c????0x??0xC??,???(0/xb
??0*x,??0x?0?080(xx(0ii?`????0x??0x@??)?
??0x
??0x
??0xf0?002xx(0{^?T????0x??0x4???
??0x
??0x0?002xx(0?n?e????0x??0x@??)?
??0x
??0x
??0x!0?00x:
x(0mb?Y????0x??0x4???
??0x
??0x0?00Fx:
x(0sW?M????0x??0x(???
??0x0?002x:
x(0?b?Y????0x??0x4???
??0x
??0x0?00x:
x(0SV?M????0x??0x(???
??0x0?00.x:
x(0WV?M????0x??0x(???
??0x0?00$x:
x(0OQ?H????0x??0x(???
??0x0?008xx(0Et?k????0x??0xK??4?
??0x
??0x	?0x
??0x!0?00xx(0Y^?T????0x??0x4???
??0x
??0x!0?002xx(0?+???0x??0p??????x?(0a:

h?_????0x??0x???(???0x?	?60x	?0x0?00xx(0h?_????0x??0x???(???0x?	?60x	?0x0?00xx(0aw?n????0x??0xN??7?
??(0;x?	?60x
??0x
??0x0?0$04xx(0ah?_????0x??0x???(???0x?	?60x	?0x0?00&xx(0oQ?H????0x??0x(???
??0x0?00*xx(0k]?T????0x??0x4?????0x?	?60x0?00xx(0Gi?`????0x??0x@??)???0x?	?60x
??0x"0?00"xx(0Uh?_????0x??0x???(???0x?	?60x	?0x0?00xx(0gh?_????0x??0x???(???0x?	?60x	?0x0?00 xx(0_h?_????0x??0x???(???0x?	?60x	?0x0?00xx(0et?k????0x??0xK??4???0x?	?60x	?0x
??0x"0?00xx(0ai?`????0x??0x@??)???0x?	?60x
??0x"0?00xx(0uh?_????0x??0x???(???0x?	?60x	?0x0?00xx(0c*???0x??0?0(0a:
	x?+?"????0x?0x?00x(01(???0x??0?0(:
	x?c?Z?5????0x?0x??
??0
x0>xx???0?000xx(01*???0x??0*?0(0u:
	x?*???0x??0?0(0A:
	x?\?S?"????0x?0x?02x(???
??0x0?00@xx(03\?S?#????0x?0x??02x'???	?0x0?00Dxx(0g]?T?#????0x?0x??02x(???
??0x0?00Bxx(0c6???0x??	?0x0?0(0i:
x?V?M?#????0x?0x??0$x???0?004x:
x(0/7???0x??
??0x0(?0"(0I:
x?w?n?#????0)x?0x??0>xB??+???(0[x
??0x
??0x0?0"0Txx(0]]?T?#????0)x?0x??0>x(???
??0x0?0"0Xxx(0O?
??0xc(
0?#??
??0
x0:

x(
0!??
??0
x0:

x(
M???0x?)?
??0x
??0x
??0x0?0(:
x?,?#????0x?0x??04x(0i*?#????0x?0x??04x(N?D???p????xc?p????xo??p????xo(R0:
	H?p????xo(?%0N?E???p????xc?p????xr??p????xr(?0
:
H?p????xr(Q0O?E???p????xc?p????xv??p????xv(?0:
	H?p????xv(?0	O?E???p????xc?p????xy??p????xy(?0:
H?p????xy(?0O?E???p????xc?p????x|??p????x|(?0:
H?p????x|(?0O?E???p????xc?p????x??p????x(?0:
H?p????x(?0-?#??p????xc?(?0
H?p????x(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0	R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0-?#??p????xc?(?
0
H?p????x(?0R?H???p????xc?p????x???p????x?(?
0:
H?p????x?(?
0	R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?
0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0-?#??p????xc?(?0
H?p????x(?0R?H???p????xc?p????x???p????x?(?0:
	H?p????x?(?0	R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0
:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0
:

H?p????x?(?0	R?H???p????xc?p????x???p????x?(?!0
:

H?p????x?(?0	R?H???p????xc?p????x???p????x?(?#0:
	H?p????x?(?!0	R?H???p????xc?p????x???p????x?(?#0:
	H?p????x?(?#0R?H???p????xc?p????x???p????x?(?$0:
	H?p????x?(?#0R?H???p????xc?p????x???p????x?(?$0:
	H?p????x?(?$0R?H???p????xc?p????x???p????x?(?$0:
H?p????x?(?$0R?H???p????xc?p????x???p????x?(?%0:
H?p????x?(?$0-?#??p????xc?(?%0
H?p????xc(?%0R?H???p????xc?p????x???p????x?(?%0:
H?p????x?(?%0	(:
? 
? ?(???0x??0?0(8:
	x?U?L?"????0x?0x?0,x???0?00@x:
x(0-m?d?"????0x?0x?$0,x4???
??0x
??0x0?00@x:
x(0Ub?Y?#????0x?0x??0,x(???
??0x0?0
08x:
x(0b?Y?#????0x?0x??0,x(???
??0x0?0
08x:
x(0SU?L?"????0x?0x?(0,x???0?00:x:
x(0S2?)????0x?0x??0,:

x(0OS?L?"????0x?0x?00,x???0?00>x:
x(h?_?5????0x?0x??
??0
x0:xx???0?00&x:
x(0S8???0x????0x?0?0(0g:
x?Q?H?#????0x?0x??0x???0?00,xx(05]?T?#????0x?0x??0x(???
??0x0?0
0.xx(0AU?L?"????0x?0x?0x???0?000x:
x(0Im?d?"????0x?0x?$0x4???
??0x
??0x0?000x:
x(0Eb?Y?#????0x?0x??0x(???
??0x0?0
0(x:
x(0ob?Y?#????0x?0x??0x(???
??0x0?0
0(x:
x(0CU?L?"????0x?0x?(0x???0?00*x:
x(0Cm?d?#????0x?0x??0x3???
??0x	?0
x0?00(x:
x(0?1?(????0x?0x??0:
x(0QS?L?"????0x?0x?00x???0?00.x:
x(h?_?5????0x?0x??
??0
x0*xx???0?00&x:
x(0C8???0x????0x?0?0(0W:
x?Q?H?#????0x?0x??0$x???0?004xx(0=]?T?#????0x?0x??0$x(???
??0x0?0
06xx(0Ib?Y?#????0x?0x??0$x(???
??0x0?0
00x:
x(0Qb?Y?#????0x?0x??0$x(???
??0x0?0
00x:
x(0Km?d?#????0x?0x??0$x3???
??0x	?0
x0?000x:
x(0K8???0x????0x?0?0(0Y:
x?a?X?#????0x?0x??0x'???	?0x0?00(x:
x(05Q?H?#????0x?0x??0x???0?00,xx(
0G\?S?#????0x?0x??0x'???	?0x0?00.xx(0AU?L?"????0x?0x?0x???0?000x:
x(0Mm?d?"????0x?0x?$0x4???
??0x
??0x0?000x:
x(0Ea?X?#????0x?0x??0x'???	?0x0?00(x:
x(0o,?#????0x?0x??0x(
0GS?L?"????0x?0x?(0x???0?00*x:
x(U?L?"????0x?0x?00x???0?00.x:
x(0?c?Z?5????0x?0x??
??0
x0*xx???0?00&xx(
0C8???0x????0x?0?0(0W:
x?a?X?#????0x?0x??0$x'???	?0x0?000x:
x(0=Q?H?#????0x?0x??0$x???0?004xx(
0O\?S?#????0x?0x??0$x'???	?0x0?006xx(0Ia?X?#????0x?0x??0$x'???	?0x0?000x:
x(0UQ?G???p????xc?p????x???p????x?(<0:
	H?p????x?(?0QQ?H???p????xc?p????x???p????x?(?0:
H?p????x?(;0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0R?H???p????xc?p????x???p????x?(?0:
H?p????x?(?0(:
"?
??>?2??	??x??0x?0x??0p??????x?(.:

8?/????0x??0x??0 x?:

x?(01(:
"?
?????x((???x(???x(???x(???x(???x(???x(???x(???x(???x(???x(???x(???x(???x(???x((:
"?
?????x((???x(???????0x??0x
??0"x??????0p??????x0V?-?
??0x??
??0x0p(0g ????0x??0x(0!00,x??(0x
??0xx((:
"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0w?
??
??
??1?
??0x
??0x??0p??????x"0??/?&???0	x0x?0p??????x(0[:?1???x ???x
??0x0p?xx(0:?1???x ???x
??0x0p?xx(0%o?f?R????x"
??0xx
??0x ???x
??0x0p?x0x?0p??????x(0#??????!???x?!0xxO??
??0	x:t0
x???x
??0x0x?!0x0x6??
??0	x:u0
x
??0x
??0x0
x0
x?0x(0c??????!???x?!0xxO??
??0	x:t0
x???x
??0x0x?!0x0x6??
??0	x:u0
x
??0x
??0x0
x0x10x(0???????!???x?!0xxO??
??0	x:t0
x???x
??0x0x?!0
x0x6??
??0	x:u0
x
??0x
??0
x0
x0x?0x(0??????x	?10
x0x??????1x
??0x0x??????1x?0x0xX?Q?H???x???x0
xx ??x??1x0
x0xx(00S?1?(?!??x???x0
x0xx(0	???1xx(0(0(0%0(00??u?l???x[??
??0	x:u0
x
??0x/????x	?10xx
??0x0x0xx(0	6?-???x???x	?10x0xx(0I?????x	?10x0x????#??
??0xx?0x0xT?M?D?!??x?
??0x0
xx??x
??0
x0xx(0%0<?3?*?#??x?
??0x0
x0xx(0	(0(0%0(0(0(0y??0x(0'00x?0p??????x(0!:
??
??0x???0p??????x0??=?4? ???x1
??0x0p?x?0p??????x(0+q?L????x
??0xx&???x?
??0x0x0x0x??
??0x(0I0(0,?#???x?!0x0x(00
(0x?
??0x(0000xD?=?4???x#???x>
??0x?0Hp????xx(050(02?)??
??0x0x?0p??????x(0Y8?/?#???x"?!0"x0x?0x(0??#???x?!0x0xp?i?`???xO??
??0	x:t0
x???x
??0x0x?!0
x0xx(00(01???0
???x
??0x0x???x0
x??2?)????x
??0x0x?0x(0%??]????x
??0xx7??
??0
x?0x
??0x
??0x0"x0x???0x(0?0 (0'0
(0/??0x(000x%0p??????x(0!:
?	?%0x(0008x??(0x
??0xx(("?
?????x( ???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0k????????0~?w?n????0x??0x?04xC?????0p??????x0??
??0x000x0x(0/00x?0p??????x(0!:
?
??0x(0{000x??(0x
??0xx(("?
?????x( ???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0S??y?e?????0p??????x0:?3?*??
??0x+10x
??0x0x,(0?00x?0p??????x(0!?
??0x(0'00x??(0x
??0xx(("?
?????x( ???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0o????????0?????????0x??0x?04xW??-???0p??????x??0p??????x0??
??0x000x0x(0/00x?0p??????x(0!:
?
??0x(0?004x??(0x
??0xx(("?O
?O????x((???x(???????0x??0x?p???!0x?(0Qx??!??0x?(0x??!@0x?(0x0Vp??????x?:

x?(???????0x??0x????,???0p??????x?0p??????x0x?6?,???0	x??0
x
??0x:

x(0?9?0???0	x?0
x?0Fp????x:

x(000Zx?:
x?(0???????0x??0x?Y??	?0x?(0[x?
??0x?0x?
??0x?0x0`p??????x?:

x?(0I???????0x??0x????W???(0gp??????x??0p??????x??0p??????x??0p??????x0??0?'???0	x??0
x
??0xx(0C0?'???0	x??0
x
??0xx(00?'???0	x??0
x
??0xx(00?'???0	x??0
x
??0xx(000`x?:
x?(.0O???????0x??0x????.???0p??????x??0p??????x?0n?4?*???0	x??0
x???0x?x?(0?1?(???0	x?0
x?
?0x?x?(000^x?:
x?(0???????0x??0x?{???0c?-?$???0	x??0
x?0xx(
0q-?$???0	x??0
x?0xx(000`x?:
x?(0????0?$????0x??0Kx?0x??0pxP???08?1?'???0	x??0
x??0x0x(0?00?xx(0????0?$????0x??0Kx?0x??0px????0??????0	x??0x?2?+?"???0	x??0x??0$x?(001?(??
??0xL
??0x0xM(0	(0(0?00?x:
x(0/????0?$????0x??0Kx?0x??0px????0??????0	x??0x???I?@???0	x??0
x?!???0	x??0x?00x?x?(0]????0	x??0x?0x4?-?$???0	x??0
x?0xx(00(00(0?00~xx(0'????0?$????0x??0Kx?0x??0px??????(0?p??????x?0??V?M?8????0x??0x???0Zx??0x0x??0p??????x?(0????0	x??0x?{???6?!???0	x??0x?0x???0$x?x?(03?*???0	x??0
x???0x?x?(0#0q?3?*???0	x??0
x???0x?x?(0	3?*???0	x??0
x???0x?x?(0(0(0?00?xx(0%???????0x??0x???????(0Gp??????xp0??0?'???0	x??0
xp
??0$xpxp(0-?$???0	x??0
x?0"xx(0#J?A???0	x??0
x?"????0x??0x?0.x?x?(0!g?^?$??x??
??0
x0xx1???0???0x?(0}0(0jxx(05&???0x??0p??????x?(0??????0	x??0
xe?????0p??????x
0:?3?*????0	x??0
x
??06x
x(0a00Dx:
x(0??????0	x??0
xe?????0p??????x0:?3?*????0	x??0
x
??04xx(0i00Bx:
x(09??????0	x??0
xe?????0p??????x0:?3?*????0	x??0
x
??0*xx(0O0
08x:
x(0700@x?:
x?(0!????0?$????0x??0+x?0x??0Px???/???(0yp??????x??0p??????x0??&???0x??0p??????x?(0!??????0x????-???0p??????x??0p??????x0??J?A?-?$????0	x??0x??0*x0x?0p??????x(0U????$????0	x??0x??0*xT????0x??0x?
??(x
??0x
??0x
??0x(0x?x(0C?
??0x.?'?????0	x??0
xx(00(0?00x0x?(000rxx(01????/?$????0x??0+x?0x?0Px??????0p??????x0c?\?R???0	x??0
x&????0x??0Kx??(0Vx
??0hx0x?(0?00^xx(0????0?$????0x??0+x?0x??0Px?????0p??????x0????????0	x??0
x&????0x??0Kx??(0VxU????0x??0x?&????0x??0Ax??(0Rx	?0lx(x?0x?(0}00bxx(0s????0?$????0x??0+x?0x??0Px??????0p??????x0c?\?R???0	x??0
x&????0x??0Kx??(0Vx
??0jx0x?(0?00`xx(0????0?$????0x??0+x?0x??0Px????0????3?*?!???0	x??0x??0*x0x0x??????z???0	x??0x?+?$????0	x??0
xx(0#0 -?$????0	x??0
xx(0	(0
(00Y?P???0p??????x7?0?'???0	x??0
x
??0*xx(00
(0(0E0@(0y00hxx(40u????0?$????0x??0+x?0x??0Px????0??'???0x??0p??????x?(0?I?@?+?!???0	x??0x??0*x0x??0p??????x?(0????s?j?V?4???0	x??0
xp???0x??0,xx???0x??0(x0x?0p??????x(0??8??
??0
x0x???0x??0@x?0x????"??
??0
x0x??0*x??$????0x??0Ax??0\x??????????T?F????0x??0x!??
??0
x0x?0:x(0	x??(0
x??????0p??????x0??j?a????0x??0xA??
??0x0x ??
??0
x0x0x0x?x(0+4?+?$????0	x??0x??0*xx(0U%?????0	x??0
xx(0(0x??????0p??????x0??3?*????0x??0x
??0xx(04?+?$????0	x??0x??0*xx(0%?????0	x??0
xx(0(0x(0	x??(0
x??0	x??(0xx?(0?(00	p(0??$????0x??0Ax??0\x??o?f????0	x??0
x?D????0x??0x!??
??0
x0x?0Nx0"x?x?(0M?D????0x??0x$????0x??0Kx??0zxx(0U3?*????0x??0x
??0xx(0'?????0	x??0
xx(0?(0	p(0??$????0x??0Ax??0\x??????????T?F????0x??0x!??
??0
x0x?0:x(0	x??(0
x??????0p??????x0??O?F????0x??0x&????0x??0Kx??(0dxx(0+3?*????0x??0x
??0xx(0'?????0	x??0
xx(00(0x??????0p??????x0??O?F????0x??0x&????0x??0Kx??(0dxx(0#3?*????0x??0x
??0xx(0'?????0	x??0
xx(00(0x(0	x??(0
x??0	x??(0xx?(0?(00	p(08?/?(??
??0xL
??0x0xM(0p(0(0?0X??3?*????0x??0x
??0xx(04?+?$????0	x??0x??0*xx(0%?????0	x??0
xx((0!(0U0??????0p??????x??3?*????0x??0x
??0xx(04?+?$????0	x??0x??0*xx(0%?????0	x??0
xx(0(0(000zxx(05????0?$????0x??0+x?0x??0Px????0??Y????0	x??0x?0x/?(??
??0xL
??0x0xM(0%0 (0?I?@?+?!???0	x??0x??0*x0x??0p??????x?(0#??7????0x??0x??0	x??0*x?0x??????????????g?Y?5???0	x??0
x????0x??0*xx???0x??0(x(0	x?(0
x??0	x??(0x??0	x??0Lx(0	x?(0
x??0	x??(05xx(00Y?P???0p??????x7?0?'???0	x??0
x
??04xx(00
(0(0C0 \?-?$???0	x??0
x?0"xx(0	$????0	x??0
xx(0!(0-(000xxx(0????0?$????0x??0+x?0x??0Px??????(0?p??????x
0??I?@?+?!???0	x??0x??0*x0x??0p??????x?(0??'??
??0
x
0x?0 x0x??-?$???0	x??0
x?0"xx(0/M?D????0x??0x$????0x??0Kx??0zxx(0!>?5????0x??0x?
??0
x
0*xx(0$????0	x??0
xx(00??g?^????0x??0x>? ??
??0
x
0x0x??0x0x0x?x(0	1?(?!???0	x??0x??0*xx(0S"????0	x??0
xx((0
(000?xx(0????0?$????0x??0+x?0x??0Px??????(0?p??????x0??I?@?+?!???0	x??0x??0*x0x??0p??????x?(0-?$???0	x??0
x?0"xx(0M?D????0x??0x$????0x??0Kx??0zxx(0!3?*????0x??0x
??0xx(0$????0	x??0
xx(000~xx(0????0?$????0x??0+x?0x??0Px??????0p??????x0????3?*?!???0	x??0x??0*x0x0x??S?J?7?+?!???0	x??0x??0*x09x??0:x
??0Hxx(0E1?(?!???0	x??0x??0*xx(0G0@(0???H???0	x??0
x?(???x??0	x??0"x?0$x0xiz?D?;?(???0	x??0
x?
??0xx
??0xx(0_-?$???0	x??0
x?0"xx(010 (0C?:?'???0	x??0
xp
??0 xx
??0xx(0%$????0	x??0
xx(
030
0txx(0(:
"?
?????x( ???????0x??0x????0??????&???0x??0p??????x?(0???????
??0
x?0x??,????0x??0xc
??0x0x??0x????????A???0p??????x??0p??????x??0
p??????x0z?s?j?B????x??0x?x???x
??0x0xx???x
??0x0x0x(0K00x?(0yx0x?0x0x?0x(06?-????x
??0xx?0x0x(0s09?0???0p??????x???0x(00
(0+(0]00Lxx( 5?,????0x??0x?0^x:
x(0r?i????0x??0xD????0x??0x ????0x??0x(x(0x:

x(0](:
"?
?????x( ???x(???x(???x(???x(???????0x??0x
??0"x??????0p??????x0a?/?
??0x??
??0x(00(0_)? ???x
??0x0p?x(000$x??(0x
??0xx(???????0x??0x
??0"x??????0p??????x0a?/?
??0x??
??0x(00(0i)? ???x
??0x0p?x(000.x??(0x
??0xx(0???????0x??0x
??0"x??????0p??????x0??/?
??0x??
??0x(00(0a????0p??????x?A???0p??????x??0p??????x??0p??????x0??{?'???x???0 x?0px0xI?B?9???0x?
??0 x
??0x
??0x0x?(0K0$(0e=?4? ???xL
??0x0p?xM?0p??????xM(
0_k????x
??0xM0xC?<?3???0	x??0
x?
??0xM?0,xx(0-0(0)<?3???0	x??0
x?
??0xM?00xx(00?'???0	x??0
x
??0xx(00?'???0	x??0
x
??0$xx(00(0:
x?@?7????0x??0x??0"x?
??0"xLx(0'??6?#????0x?0x??04x
??0Bxx(0C???0x?(0A00&x??(0x
??0xx(0("?

?
????x((???x(???????0x??0x??????0p??????xp0??r???0p??????x??0p??????x0(9?2?)??
??0xp0x	?0x0x
(0E0(0qxu???0p??????x???0p??????x0(;?4?+??
??0xp?0x
??0 x0x
(0E0(0/x??????0x????-???0p??????x??0p??????x0??????0p??????x???08p??????x
0*?????
??0
x
0x9?2?)???x?
??0
x
0xp?x(00??????|?n?H?:????0x??0x?
??0
x
0.x(0	x??(0
x??(0x
??0,x(0	x??(0
x??(0+x
??0.xx?(0	(0(00(0Ux;?2???x??
??0xp0x0,x
p?x(0I00x0x?(0100Nxx(8???????0x??0xs?????0p??????x0H?A?7????0x??0x???x0Jp?xp0x?(0?0&0^xx(<03???????0x??0x??????0p??????x0?????????0x??0xn?%????0x??0x??0,x?;?%????0x??0x??0,x?
??(x(x?(0x?0x?(0{00\xx(0[(:
"?`
?`????x( ???x(???x(7?/????0x??0x??0(x?:

x?(?????$????0x??0x??0$x??????0p??????x0??7????x
??0$x0x??(070(0?N?E?
??0x\0????x
??0*xx
??0x0x0x](000dx:
x(0'????%????0x??0x??0$x?????0??-?$???0	x??0
x?0$xx(0I-?$???0	x??0
x?02xx(0#0?'???0	x??0
x
??0&xx(016?-???0	x??0
x?!??0&xx(0%6?-???0	x??0
x?!0*xx(0%6?-???0	x??0
x?!0.xx(0)-?$???0	x??0
x?02xx(0--?$???0	x??0
x?00xx(.01008x?:
x?(0g????=?1?%????0x??0x??0x?0x??0Hx????0??N???0	x??0x/?(??
??0x\
??0x0x](0%0"(0k-?$???0	x??0
x?0$xx(0+00Zx:
x(03????=?1?%????0x??0x??0x?0x??0HxK???04?-?$???0	x??0
x?0$xx(0i00Xxx(0'????=?1?%????0x??0x??0x?0x??0Hxx???0a?Z?P???0	x??0
x3???0	x??0
x??0	x??06x0&xx(0?00txx(0'????=?1?%????0x??0x??0x?0x??0Hx`????0p??????x06?/?&???0	x??0
x	?0&xx(0s00Xxx(0U????=?1?%????0x??0x??0x?0x??0Hx??????0p??????x0??]?T???0	x??0
x?5??
??0x?0x??0x?0x02x?x?(0m$????0	x??0
xx(0i00Zxx(0)????=?1?%????0x??0x??0x?0x??0Hx?????0p??????x0??M?D???0	x??0
x?%???0?2?%????0x??0x??0x??0!x?0x??0jx????0????:????0	x??0x,0"x?!04x0x??J?<?(????0	x??0x,80"x0x?0p??????x(0':

R?-???x??0	x??0Rp????x0x??
??0x(0i0(090(0???0x(000~xx(0????%????0x??0x??0$x???????0p??????x0??\?S???0	x??0
x?/?%????0x??0x??0,x?0 x?:

x?(0W5?,???0	x??0
x
??0 x:

x(0'008x?:
x?(0????=?1?%????0x??0x??0x?0x??0Hx?????0p??????x0??1?(?!???0	x??0x??0xx(0s??"???0	x??0x??0$x?????{???0	x??0
x.?!???0	x??0x??0#x(0:x	?0Lx!???0	x??0x??0*x0x
(0E0B(<?3?!???0	x??0x??0x	?0(xx(0e&????0	x??0
x0x
(0'00Xxx(0#????=?1?%????0x??0x??0x?0x??0Hx?????0p??????x0??1?(?!???0	x??0x??0xx(0wE?7?"???0	x??0x??0Bx??0p??????x?(0:

????0x????????????x
??0xx???x
??0"x0&xp?????0p??????x0C?<?3??
??0x0x??0x0x0x?(00(0!x(0x?(0up??????x(0V:

a?W???0	x??0
x
??0&x	?0 x!???0	x??0x??0*x0x
(0?0$(0I<?3?!???0	x??0x??0x	?0*xx(0e&????0	x??0
x0x
(0)00\xx(0????=?1?%????0x??0x??0x?0x??0Hx??????0p??????x0??1?(?!???0	x??0x??0xx(0}??"???0	x??0x??0$x?????????0	x??0
x8?!???0	x??0x??0x
??0@x(0x
??0x#???0	x??0x??(07x0x
(0E0B(=?4?!???0	x??0x??0x
??0*xx(0&????0	x??0
x0x
(0)00Zxx(0????=?1?%????0x??0x??0x?0x??0Hx???B???(0op??????x?0p??????x??0p??????x0??????y?k?W??
??0
x?0x)???0	x??0x??(00p????x?(0Ax0x
?0p??????x
(0:

@?7?$????0x??0x??0$x
??0`x
x(0t???
??0
x
0x0xK?1?(?!???0	x??0x??0xx(0?
??0x
(0(0_7?)??
??0
x
0*x?0p??????x(0
:

0??????0p??????x??:?1?!???0	x??0x??0x?0Dxx(0=?4?!???0	x??0x??0x
??0*xx(0C&????0	x??0
x0x
(0)0(0?(09:?1?!???0	x??0x??0x?0Dxx(0I?@??
??0x?0x??0	x??0*x?
??0xx(0C&????0	x??0
x0x
(0=00hxx(0????=?1?%????0x??0x??0x?0x??0Hx????0????!???0	x??0x??0*x??????X?J?5???0	x??0
x??0	x??0&x?0x??0p??????x?(0:

????0x???1?(?!???0	x??0x??0xx(0F???!????0x?0$x0x??0x0$x0x?(0(0Y0????
??0x??=?4?!???0	x??0x??0x
??08xx(0=?4?!???0	x??0x??0x
??0*xx(070(0Q(0?06(0q1?(?!???0	x??0x??0xx(01??"???0	x??0x??0$x???E?7?"???0	x??0x??0Bx??0p??????x?(0):

:?1?!???0	x??0x??0x?0Dxx(0II????0!x??0*x'? ????0!x??0.x(0?0<(0CI?@?"????0!x??00x0x??0x02x0x?(00B(B?9????02p????x0x??0x0x0x?(0_00`xx(0????%????0x??0x??0$x???????0p??????x?0????????0	x?0
xg?????0p??????x0<?5?,????0
x??0x
??0x0x
(0;00x:

x(0[??????0	x??0
xg?????0p??????x0<?5?,????0
x??0x
??0x0x
(0=00x:

x(0+??????0	x??0
xe????0p??????x0;?4?+????0
x??0x	?0x0x
(0700x:

x(0-j?a?$??x??
??0
x0xx/???0???0x?(0A00&x:
x(0/00>x?:
x?(0i????$????0x??0x??0$x???-???0p??????x??0p??????x0??????n?%????0x??0x??0,x?;?%????0x??0x??0,x?
??04x0:x?(0x??0p??????x?(0a:

??7????0x??0x!?
??0x0Hx0xZ?S?J????0x??0p????x
??(0_x??
??0x0$xx(00*(0????0x?(000Hxx("0(:
"?
?????x((???x(???????0x??0x
??0"xe?????0p??????x0:?3?*???x???0x??0 xc0x(0W00x??(0x
??0xx((:
"?M
?M????x(*???x(???x(???x(???x(???x(???x(???????0x??0x?????0?????0	x??0
x?(07???0	x?0
x?(???0	x??0
x!(???0	x??0
x(???0	x?0
x(00&x?:
	x?(?J??J????0x??0x
??0"x?I???
??0x0?I??
???0p??????x?0?
???????d?3????0x??0x?
??0x(xx(??
??0xx
??0x(0xx+? ??
??0x0x0*x(0'xx4???
??0
x?0xx
??0x(0x0x???0x(0G0(0+???
?-?$?	??x???0vp????x?x?(0f?]?H??
??0
x?0x&???!@0x?0x0x?0x??0p??????x?(0u?v?b???0x?K????0x??0x)? ???0x?
??0
x0x,0*x,0x0x?*0p??????x?(03????????w?=?*??
?*0x??0x??0x?x
??0xx1??
?*0x??0x?!??0x0xxG??
?*0x??0x&???!@0x?0x0x?0
xxi?R??
?*0x??0x&???!@0x?0x0x?
??0xx?
?*0x?(0gxx1??
?*0x??0x?!@0x0x0x???0x(0_0(0g;?2???
?*0x?0x0x?0:p??????x(03?*???
??0	x0
x0x
?0x
(0G????b??
??0	x
0
xD?.??
??0	x
0
x,?!0xx??0x?0xxC?.??
??0	x
0
x,?!??0xx
??0x0x0x???0x(0y0
(08?/???x
??
??0	x0
x0x
x
(0??????u??
??0	x
0
xW?<?0??
??0	x
0
x,?!0x0x?0x?!@0x0xxE?.??
??0	x
0
x,?!??0xx
??0x(0?xx2?)???
??0	x0
x0x
0x0x0x???0x(0Y0$(0
??0x(009?0???0p??????x???0x(00
(0
(00(0+x?????0x??0xT?M?*???x???0x??0*x0x??
??0x02p(0_0\@?7????x0p?x??
??0x0 p(0	(0W(08?*????0x?0x??0p??????x?(09:

2?$??!0x?0p??????x(0:

2?$??!??0x?0p??????x(
0:

??????????0p??????x?0??4?+???x?
??0
xx?0x?x?(0MA?8???x?
??0
xx???x0p?x?x?(06?-???0	x??0
x?!0xx(0????0x???J?A?-????0x??0x??0*x?0x?0p??????x(0?
??0x(0???G?>?3???x
??
??0	x0
x0x
0)px
0.x0x??2?)????0
p????x
(0vx,?0x,(0Cz?q???0	x??0
x)???x,?!0
x0:p????x)???x,?!??0
x06p????xx(0o0&(00(000x??0p??????x?(0:
?	???#????0x?0x??0,x???$?
??0x?0
p??????x0??b?Y???xH?!???x?!0xx?!0x
??0x0xx(0]I?@?+???x?0x?
??0x0p?x??0p??????x?(0+??!????0x??0x?0x}?v?m????0x??0x,M?9???x?
??0
xx???0x??0xx?0x,0px,x,(00(07??!????0x??0x?0x?????????0x??0x???(???x?
??0
x0x(0x5?'???x?
??0
x0x?0*x?(0x)???x?
??0
x0x?(0x?
??0
x?(0x?	?0x(0	x0p??????x?x?(0L?C?"????0x??0	x,90x???0x??0x?x(0^?U?3?'???x?
??0
x0x?0x0(x????0x??00x?x?(0S?J?(???x?
??0
x0x?0x????0x??0&x?x?(05$????0	x??0
xx(0+0G?>?5?#????0x??0x?0x	?0 xx(0	(0
(0=??0x?(0#008xx(0?????#????0x?0x??0,x??????0p??????x0??I?@?+???x?0x?
??0x0p?x??0p??????x?(0U??<????0x??0x????0x??0x?0x???\?S?"????0x??0	x,=0x???0x?60 x?!??0xx,(0)??+?"????0x??0	x,0x0xP?G?B?;???x?
??0
xx???0x??0x0xx0p(0-h?_?1?%????0x??0x??0x?0"x?$????0x??0x?0@x?x?(0Ki?`?1?$????0x??0x?0	x??0x?%????0x??0x??0@x?x?(0/=?4?$????0x??0x??0x?0xx(0/$????0	x??0
xx(0??0x(0(07??0x(00
0>xx(
0????#????0x?0x??0,x????0??4?+???x?
??0
xx?0x?x?(0Mw?n???x?
??0
xxK?(???x?
??0
x0x?0x????x0"p?x?(0x?x?(06?-???0	x??0
x?!0xx(0300xx(0????"????0x?0x?$0,x???-???0p??????x??0p??????x0??9?0????0	x?0
x0x?0p??????x(0{?
??0x(0??G?>?3???x
??
??0	x0
x0x
0'px
0,x0x??*?!??
??0	x
0x,?0x,(0A?????
??0x?0x??(0,p????x+???x,?!??0x(0p????x+???x,?!0x(0p????x
?(03x?x(00&(000@xx(0p?g?:????0x?0p????x?
??0
x0??
??0x?0x??*x?
??0x0x0x7?0?'???x?
??0x?0xx(0;0(0??6??
??0x0x?
??0x?0(x0x??/?&???x?
??0x0xx(0=R?I???0x0x+? ???x
??0
x0p?x0x0x?(00(0!????x?0xx(0E0(0SK?B???0x0x$???!0
x0x0x0x?(0004x0x(000x?0x(0_????????0??(??
?0hpx??0p??????x?(03}?t????0	x??0
x?R????0	x?0
x?/????0	x??0
x???0x?0x?0 x?x?(0o???0x?(0O00x?0x(0G%???!0x?0x(0????????
??0x0??C?:?&???x?
??0x0x0x?0p??????x(0/??C????x
??0xx???x
??0x0x0x??*?!???x??0x(0?0(0!E?<?'???0x??!??0x0x??0p??????x?(0??????????0p??????x0t?>?5?"?	??x??!0xx
??0
xx(05-?$?	??x??!0x0x(00
0x?0p??????x($05?
??0x(000x??(0x
??0xx((&"?
?
????x( ?
??
????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0W??????????0p??????x0????0??
??0x0x?!@0&x0x??~?u??
??0x0xC??
??0	x:]0
x#???x?!0x0x0&x?!0x0x(0/0(0?6?
??0x
??0x
??0x	?t0
x(0i??N? ??tx?!0xx#???x?!0x0x0
x(???x?
??0x0x0x???x0$x????x??txh??
??0	x:t0
x	?t0x=??
??0	x:]0
x???x
??0x0x0
x0xx(0[0
(0??M? ??tx?!}Ô%?I?T0xx"??tx?!0??.?++0x0x0x??4??	?t0x0x??	?t0x0
p(0=*?!???x?!0xx(0!??#???x?!0x0
x(???x?
??0x0x0x???x0$x??_?V???xE?1???x1???x
??0x0xp?x	?t0x0xx(0I7?.???x???x
??0x0xx(050
(0E?<?(??
??0	x:|0
x
??0xx	?t0x0x(00??*?!???x?!0xx(0	??#???x?!0x0
x(???x?
??0x0x0x???x0$x??M?D???x3???x1???x
??0x0x0p?xx(0I7?.???x???x
??0x0xx(0)0
(03?*??
??0	x:|0
x
??0x0x(0(0%(0Q00x?0p??????x(0!?
??0x(0)00x??(0x
??0xx(('"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0U????????
??0x
??0x0??:?1???x ???x1
??0x0p?xx(
07:?1???x ???x1
??0x0p?xx(0]?T?@?%???x?!0@0x0px?!???@0x0
x?0p??????x(0@?7?#???x?!???@0x0
x?0p??????x(0+]?T?@?%???x?!0@0x0px?!???@0x0
x?0p??????x(0@?7?#???x?!???@0x0
x?0p??????x(0+????}?b?E????x
??0
xx???x
??0
x0
x0px?!0@0x0px?!0x0
x?0p??????x(0V?M?2????x
??0
xx
??0
x0px?!0x0x(0Q00x?0p??????x(0!?
??0x(0300x??(0x
??0xx((("?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0W??????????0p??????x0X?Q?H?(??
??0	x:p0
x
??0xx?
??0	x:V0x0x(0100x?0p??????x(0!?
??0x(0-00x??(0x
??0xx(()"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0W????????
??0x0??:?1???x ???x1
??0x0p?xx(01??X?!???x?!??0xx,???x??!??0x0x0x0x????
??0x?0x(01%???!??0x?0x(0??
??0x?0x(0%???!0x?0x(0%???!??0x?0x(0?????x
??0x0x??$????x
??0
xx(0!3?*???x??!??0x0
xx(0	?v???xe????x
??0x0px;????x
??0xx?
??0x0
px0
x0xx(00(0?
??0x(0=0(0L?C??
??0	x:p0
x#??!??x
??0x0x0x(000x?0p??????x(0!?
??0x(0+00x??(0x
??0xx((*"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0U??????????0p??????x0X?Q?H?(??
??0	x:p0
x
??0xx?
??0	x:W0x0x(0100x?0p??????x(0!?
??0x(0-00x??(0x
??0xx((+"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0U????????
??0x0??:?1???x ???x1
??0x0p?xx(01????I?!???x?!0xx??Kx
??0x0
p?xx
??0
xW?!???x?!0xx?!??0x??!??0x0x0x0x(000x?0p??????x(0!?
??0x(0_00x??(0x
??0xx((,"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0U1?(??
??0	x:j0xj0p??????x(0!????????
??0x0??:?1???x ???x1
??0x0p?xx(01F?#???x?!0x0x??
??0x0p(0v?m?R???jx
??0xp?x(??jx?
??0x0x0
p?x0px?!@0x0x(0'00x?0p??????x(0?
??0x(0;00x??(0x
??0xx((-"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0U????????
??0x0??:?1???x ???x1
??0x0p?xx(01F?#???x?!0x0x??
??0x0p(0????l??
??0	x:j0
xL???!@0xx*??
??0	x:]0
x
??0x0x0x0x?0p??????x(0'r?i?U?%??!??x
??0x0px%??!??x
??0x0px0x?0p??????x(0=T?K?!???x?!0xx?
??0x0x
??0x0x(0-00x?0p??????x(0!?
??0x(0+00x??(0x
??0xx((."?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0W????????
??0x0??:?1???x ???x1
??0x0p?xx(01????r?C???Kx
??0xp?x???x
??0x0xx&???x?
??0x0x0xx#???x?!0x0x0x??
??0x0p(0h?^?J??
??0	x:l0
x*??
??0	x:]0
x
??0x0x0x?0p??????x(0?T?K?!???x?!0xx?
??0x0x
??0x0x(0700x?0p??????x(0!?
??0x(0+00x??(0x
??0xx((/"?W
?W????x(R???x(???x(???x(?V??V??V???0?V????????-???0p??????x??0p??????x0?5?,???0	x??0
x
??0x:

x(0IA?8???0	x??0
x???x?0x?0xx(000x??0p??????x?(0:
????#????0
x?0x??0"x??????0p??????x0??&???0x??0p??????x?(0]&???0x??0p??????x?(0???
??0x0

??0x????w?N????x
??0xx*???x???0
x??0x0xx???x??0x?0$x0x??(0{0(0)?????	??x?
??0xx????0x?(0x??????????0p??????x0T?M?D???0-?&????x
??0x0x(000x(0#0
0px??(0x0
p?x?(0x0x?x?(00(0e?\?/?#????0x??0
xc?0
x?0,x???0
x??0\x??0 x?x(0
00Bxx(0????????B???0p??????x!??0
p??????x???0p??????x0??0?'???0	x??0
x!
??0x!x!(0U3?*???0	x??0
x???0x?x?(00?'???0	x??0
x
??0xx(0B?9???0	x??0
x????0x?0(x?:

x?(000x??0p??????x?(0q:
????#????0x?0x??0*x????0??????0	x??0x!??1?(???0	x??0x?0p??????x(0-?$???0	x??0
x?0xx(0>?5???x
??0(x??0	x??0x?p?x(00(0I*?!???0	x??0
x??0&x(05008xx(03??
??0x.???0p??????x??0p??????x?0&??'??
??0x?0p??????x(0a????????0x???1?(???x???0x??0>xx(0??w??
??0x?0x
??(0x?!???x??0x?0p?x???0x??00x
??(0Mx?x(0'0=?4?+???x???0x??0"xp?x(0	(0(00?(0+?$????x
??0(xx(00(00(0x+?"????0x?0x??0x?(0/??	?0(x?0x(0+??
??0x???0p??????x0??H???+??
??0	x?0
x
??0x0x,?0p??????x,(05%???!0x?0x(07??(???x?
??0x,0x0x????0????x,
??0xx
??0x0xJ?C?:??
??0x,=0x
??0$x?!??0xx,(0/0
????????B???x0????x,
??0xx
??0x0
xx?6???x,#???x?!??0x0x0xx?K?4???x,#???x?!??0x0xx
??0x(0Yx(0x?S?L?C??
??0x,=0x?
??0x0$x?!@0xx,(090!?????xx(0	(0#(0p(070&(03?*??
??0x,'0x
??0 x0x(00(0/xZ?Q????0x??0x1???0??
??0x(0O00>xx(
01??
??0x???0p??????x0??K?B?-????0x??0x
??0 x0x??0p??????x?(01~??	??x?
??0x0xU?N?E?
??0xL0????x
??0xx
??0
x0x0xM(070(0A???0x?(0E0(0x8?*????0x?0x??0p??????x?(0:

???????.???0p??????x???0p??????x0v?8?/???0	x??0
x???0$x?:

x?(0a5?,???0	x??0
x
??0 x:

x(0#00 x??0p??????x?(0':
??
??0x-???0p??????x??0p??????x0$????a?)??
??0#x?0$x
??0:xx-??
??0#x?0$x
??0:x(09x0xV?O?F???x0????x
??0xx
??0x0x0p?x(0M0??
??0x(0	(0?(0e0&(0#x?
?
??0x???0p??????x?0?
?????0p??????x???0p??????x0????
??0x?0x(0Cp???0x?Z?S?J???x9???x???0x??0x$????0x??0
x??0pxx(0S????#????0x??0x?$00xf?????0p??????x0;?4?+???x??0x?
??0&xp?x(0_00@xx(0K??-?$????0#x??0x??0@x0xr?(????x??0"x?p?x(0OA?8???x$????0#x??0
x??0Nxp?x(0!0J(0E0&0 xx(0S0(0i0(09x???????0x??0x???C???(0Gp??????x??0p??????x??0p??????x,0??????#????0x??0x?0 x?
??0x0.x,Y?????0p??????x0.?'????x
??0xp?x(0o00 xx(0QK?B????0x??0x
??0.x
??0x
??0x,x(000@xx(0+???????0x??0x???-???0p??????x??0p??????x0????,????0x??0x
??0 x0xW?P?G?
??0xL2????x
??0(xx
??0 x(0x0xM(0C0 (0?w?n?Y???0x??0x-???0x?
??0x
??0x0x?
??0x(x??0p??????x?(0SA?8????0x??0x
??0 x??0x?x?(0y'????x
??0xp?x(0=00Fxx(0en?e????0x??0xE???0.?'?????0x??0xx(0?00.xx(000pxp?x((:
0"?
?????x(.R?K????0x??0x
??0"x?0x
??0x
??0xx(T?K????0x??0x
??0"x?0?+??
??0x?0x
??0 x0x0p??????x(0??0?)???	?0x0x0x
?0x
0
??
??0
x
0x0"x0???x
??	?0x0x0x
0x
??+?!??
??0
x
0x?0x(0?m?3????x
??0xp?x
??0x0x/?(??
??0x\
??0x0x](010(08?/?#???x?!0
x0x?0x(0+8?/?#???x?!??0
x0x?0x(08?/??	??x?
??0xx
??0xx(00"(0=???0x?(00(0x?
??0x(000,x??(0x
??0xx((:
="?
?????x( ???x(???????0x??0x
??0"x??????0p??????x0??.?
??0x??
??0x0p(0???????????0p??????x0??&???0x??0p??????x?(0WH???,????0x??0x
??0 x0x,(0p??????x,(0??#???!0x?0x0
'???x?	?(0	x,0x0x???x0x??????.?	??x???(x,
??0
x0x'xJ??
??0
x?0x
??0@x??(x,
??0
x0
x'0x?x?(0G0
(05???0x?(0{0
08x?0p??????x(0!?
??0x(000Hx??(0x
??0xx((>"?
?????x( ???????0x??0x
??0"x??????0p??????x0k?-?
??0x??
??0x0p(0{5?,???0???0x,000x(0!00@x??(03x
??0xx((?"?
?????x(*???????0x??0x
??0"x??????0p??????x0??/?
??0x??
??0x(00(0]???????-???0p??????x??0p??????x0^?W?N?-?!??
??0
x0x?0x?0@x
??0Jx
??0x0x(0K00x?0p??????x(0?
??0x(0k00"x??(0x
??0xx((:
@"?
?????x( ???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0U???????-???0p??????x??0p??????x0???????x
??0x0x??????%???x?!0x0pxW?!??!??x
??0xx)??!??x??06p????x0x0px0x(0#0[?R?I????x
??0x0px???x
??0x0px0x(0	(0u(0E00x?0p??????x(0!?
??0x(0Q00x??(0x
??0xx((A"?
?????x((???x(???????0x??0x
??0"xe?????0p??????x0:?3?*???x???0x??0 x!0x(0m002x??(0x
??0xx((:
B"?
?????x( ???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0]??????????0p??????x0??$???0x,?0p??????x,(01???
??0x0

??0x????8????0x??0x
??0x
??0
x0xK?D?;??
??0
x,90x???x
??0x0xx(030(0%0
(0?
??0x,(0'0
0x00p??????x(0!?	?00x(000"x??(0x
??0xx((C"t
p????x((???x(???x(???x(???x(???x((:
D"?
?????x((???x(???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0_???????-???0p??????x??0p??????x0??=?4? ???xL
??0x0(p?xM?0p??????xM(0Mk????x
??0xM0xC?<?3???0	x??0
x?
??0#xM?0>xx(0?0&(0;6?-???0	x??0
x,??0Zp????x,x,(0<?3???0	x??0
x?
??0#xM?0Bxx(0Y00x??0p??????x?(0!:
@?7????0x??0x??0"x?
??0xLx(0!??6?#????0x?0x??0&x
??04xx(05???0x?(0300$x??(0x
??0xx((:
E"?
?????x((???x(???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0g???0p??????x??0p??????x0F???6??
??0x?0x?	?0x0x0x?(0;0(0!x????0p??????x???0p??????x0H?A?8??
??0x?0x?
??0x?0x0x?(0;0(0Kx??????????0p??????x0??&???0*x??0p??????x?(0Q????0p??????x???0p??????x02q?j?a?=?/????0%x??0&x
??06x(0x??(0x??(0/x
??0"x0x?(0_0(01xS?J?6??
??0x+10x
??0x
??0&x(x,?0p??????x,(
096?-????0%x??0&x
??0.x,0x?(0C0&0x?0p??????x(0K:
?
??0x(0?00,x??(0x
??0xx((:
F"?	
?	????x(*???x(???x(???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0Y'??
??0,x?0p??????x(0!????0p??????x???0p??????x0???????x
??0(x+0x??
??0x,(090<?3?*??
??0x+10x
??0x0x,(0	(0(0?0(03x????????
??0x0??:?1???x, ???x
??0x0(p?x,x,(0Q?????????
??(0x??(0x???
??0#x,*0$x??????0p??????x0??????9?-????0x??0x
??0 x0%x??0&xG?????0p??????x0??
??0x(00
(0%xG?????0p??????x0??
??0x(00
(0x0x?(0I00,x(0x,(0x??( 0xj?????0p??????x,0=?6?-???0x?
??0x,
??0x0x?(00(0xG?????0p??????x0??
??0x(00
(0Ex0x?(0E0&0x?0p??????x(0+?
??0x(0%00x??(0x
??0xx((:
G"?
?????x( ???x(???????0x??0x
??0"x??????0p??????x0??-?
??0x??
??0x0p(0u??????????0p??????x0????????0	x??0
x?????0p??????x0??U?L?7????0x??0x???x0 p?x0x??0p??????x?(0Z?Q????0x??0x.???0??	?0x000x0x?(0;0(0x??????0p??????x0??U?L?7????0x??0x???x0 p?x0x??0p??????x?(0[?R????0x??0x/???0??
??0x000x0x?(0;0(0Ux0x?(0A00x?0p??????x(0!:
?
??0x(0_00:x??(0x
??0xx((H"?d
?d????x( ???x(???x(???x(???x(?c??c????0x??0x
??0"x?c?????0p??????x0?b?~???0p??????x?0LX?Q?H?3?,????0x??0xc
??0x0xx
??0:x0x(0_0(03x????0p??????x?0*??????*????0x??0xc
??0xx??^?K?@?7?,????0x??0xc
??0x03x/04x0Ix&0Jx
??0x,(0O-?$???0	x??0
x,?0x,x,(0_??#???!0x?0x0
(???x?
??0x,0&x0x?
??0x0.x??8?/?#???x,
??0x0>p????x?0x(0[4?+????x,
??0xx!?0
xx(0c|?"?????xp?x(00O?H?
??0x7?0?'???0	x??0
x
??0"xx(00((0'0(00((0a-?$???0	x??0
x?0xx(0-00Pxx(0+????#????0x?0x??00x??????0p??????x0\?U?L???0	x??0
x/???0??
??0x0004xx(0o00Lxx(0??}?h???!0x?(0!x??!??0x?(0x??!@0x?(0x0x??0p??????x?(0]:

??????????0p??????x0??=?4???0	x??0
x???0x??06xx(0M0?'???0	x??0
x
??0xx(0-?$???0	x??0
x,?06x,x,(0-?$???0	x??0
x?06xx(05<?3????0	x??0
x0&x??0p??????x?(05??T?M?D???x???0!x??04x???0!x??0Vxp?x(00\?S???0p??????x:?3?*????0!x??0"x
??00xx(00(0E(0-00$x??0p??????x?(0:
????#????0x?0x??04x????0??&???0x??0p??????x?(0y???0 x?0x(0#????0p??????x???0p??????x0??????????0p??????x0?????
??0x0xi?!????x?0 xx(0#??6??
??0
x?0x??0x?
??0xx(00(0500x(090(0'x??|?8?*???x??0	x??0&x0p?x?(0	x8?*???x??0	x??0&x0p?x?(0-x0x?(0=00hxx( 07????#????0x?0x??04x?????0p??????x0??????x?0x?0xL?E?<???0	x??0
x?
??0x\
??0x0x]x(0#0??????x??0"x?0x=?6?-???0	x??0
x?0vp????x?x(0U0"???????x	?0x0p?x<?5?,???0	x??0
x?0jp????xx(0308?/?&???0	x??0
x	?0xx(0	(0_(0kp(0+p(0i00Nxx(03????#????0x?0x??04x??????0p??????x0????
??0x?0x(0??7?0?'???x?
??0x?0"xx(00b?Y???0p??????x@?0?'???0	x??0
x
??0xx(0?(00(0(0!??&??
??0xx
??0x0xJ?C?:???0	x??0
x
??06x??0Lp????x?x(0E09?0?'???0	x??0
x
??0xx(0	(0w(00
0hxx(0#??
??0x??0p??????x0?????	?0x0x@?
??0
x+?"???x!?0x0x(00	p(0.?
??0
x???0x(00	p(0# ????0x(0p(0(0-0(0#x????#????0x?0x??04x{?????0p??????x0P?I?@???0	x??0
x???0x??04x
??0.xx(0e00Hx:
x(0????#????0x?0x??04xy????0p??????x0O?H?????0	x??0
x???0x??04x	?00xx(0e00Jx:
x(0K????#????0x?0x??04x???-???0p??????x??0p??????x0????6???0	x??0
x???0x??08x0x??????
??0xLw?V?A?.????x
??0&xx
??0xx
??0xx??(0Qxx??0	x??0Zx(0x0xM(0M0,(0?0?'???0	x??0
x
??0xx(0[0?'???0	x??0
x
??0xx(0l?6???0	x??0
x???0x??0:x0x+?$????0	x??0
xx(0Q0.(0$????0	x??0
xx(000Hx:
x(0M????#????0x?0x??04x????0??'???0x??0p??????x?(0???????x????0???? ????0	x??0
x0x??I?@?,????0x??0xc
??0x0 x?0p??????x(0Gw?&??
??0xx
??0$x0xF???6??
??0x?0x???0	x??02xx(0O0(0E0D(0300"x?!??(0-xp?x(000zxx(0????#????0x?0x??04x????0??6???0	x??0x???0x(0704(0}I?@?,????0x??0xc
??0x0(x?0p??????x(0I?@?,????0x??0xc
??0x0x?0p??????x(0MI?@?,????0x??0xc
??0x0,x?0p??????x(0AH?&??
??0xx
??00x0x???0x(0[0(0Q?
??0x(0??&??
??0xx
??0,x0xa?Z?Q???x@?
??0x
??0$x???0x?0x0,x?(0xx(0U0????&??
??0xx
??0 x0x_?X?O???x>?
??0x
??0x???0x?0x0,x?0xx(0W0??g?^???xM?8?,????0x??0xc
??0x05x?06x
??00x0xx(0	T?K??
??0x?0x??(0x?0Tx	?(0)x
??0xx(0](0k(0op(02?)??
??0x?0x??0 x?x?(0A<?3??
??0x?0x??0	x??0(xx(0)? ???x
??0(x0p?x(000lxx(0	????#????0x?0x??04x????0????'???0	x??0
x??08x0x????#???!0x?0x0
2???x???0	x??0'x,0:x0x?
??0x0BxY?R?I????0x??0x)???0	x??0
x,
??02x06xx(0o0(0G-?$???0	x??0
x?06xx(0k0(000nxx(098?*????0x?0 x??0p??????x?(0=:

????#????0x?0x??04x??????0p??????x?0??=?3????0	x??0
x0x??0p??????x?(0?Y?P????0x??0x???0x??0Bx???0x??02xx(000bxx(0/????#????0x?0x??04x???0???(0kp??????x??0p??????x?0??<?3????0	x??0
x0x??0p??????x?(0/??l?e?\??
??0x?0x??0 x????0x??0$x???0x??02xx(00\?S???0p??????x:?3?*????0x??0x
??0xx(00(0U(000dxx(0W????#????0x?0x??04x???-???0p??????x!??0p??????x!0???
??0x(0??
??0x(0????????0x????-???0p??????x??0p??????x0Q?$????x
??0xx(0}$????x
??0xx(000 x0x??0p??????x?(0????0p??????x-???0p??????x??0p??????x0????&??
??0xx
??0x0x??????????0p??????x0????D?=?4???x ???x
??0x0p?xp?x(00P?G???0p??????x.?'????x
??0xp?x(00(0'(0!00x(0=0??
??0x(0	(0(0O0(0x??{???0	x??0
x.???x
??0x!
??0x(0p?x.???x
??0x!
??0x(07p?xx(0???0x?(0=00Bxx(
0%????#????0x?0x??04xq?????0p??????x0F???6???0	x??0
x
??0x
??0x0x?(0i00Dxx(0????#????0x?0x??04x???/???(0ap??????x??0p??????x0??&???0x??08p??????x?(05????0p??????x?0???????0x??0(xh????0x??0$xF?4?+???x???0x??00xp?x(0?(00	p(0h????0x??0$xF?4?+???x???0x??0.xp?x(0?(00	p(0X?O?H???
??0xL*???x???0x??0Fx0x0xM(0p(0(0#0(0Sx??'???0	x??0
x??08x0x:?3?*????0x??0x
??06xx(0G0D?;?2????0	x??0'x,902x
??0x
0
 ??
??	0x
0x(0Qx2???	x
??	?0x0x0x
(0x
f?_?V?7?+???x?
??	0x
02x0?p?x?0@x
??0@x
??0xx(0;0"(0100 x0x?(0g0&0xx(
0?????	??x?
??0 xx??????0p??????x0??H???,????0x??0x
??0*x0x00p??????x(0e2?)???	?0x0x0x
?	0>x
(0o???
??	0x
0x-?&????x?0"x,0p?x(00????????0x????-???	0p??????x??	0p??????x0??$???0x,?	0p??????x,(0q%???!0$x?	0x(0%????0p??????x???0p??????x0??????????	0p??????x0??7?.????	x,
??0xx
??	0
xx(01????	xx(0#Z?#???	x?!0&x0x.?'????	x
??	0x,p?x(0/0(00x(0+0(0+x????1?(??
??	0x,90x
??0$xx(0????	xx(0#????;?-???x?
??	0x
02x(0	p?x?(0
xH???x0??
??	0x,0x?!??0,x0x(0p?x
??	0xx(7?.???	x
??	?0x0x0x
x
(0[0 ??
??	0x
0x(0x(
0!00 x0x?(0	(0%(0Q0&0xx(0???0x?(
00(0x??(0x
??0xx((I"?
?????x(*???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0m????????0???
??0x(0/?
??0x(0????????0x????-???	0p??????x??	0
p??????x0Q?$????x
??	0xx(0U$????x
??	0xx(00
0x0x??0p??????x?(0[?R????0x??0x??
??0x?0x?
??0x?0x0x?(000x?0p??????x(0!?
??0x(0k002x??(0x
??0xx((:
J"?
?????	x(&???x(???	x(???	x(???	x(???	x(???	x(???	x(???	x(???x(???	x(???	x(???	x((:
K"?
?????x( ???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0]>?5?!??
??0x0x?06x?0p??????x(0!???????A???0p??????x??0p??????x??0p??????x,0S?L?C??
??0x?0x
??0x
??0x
??0x,0x(0_00x?0p??????x( 0?
??0x(0I00"x??(0x
??0xx((L"?
?????	x(*???x(???	x(???????0x??0x
??	0"xR?????0p??????x0'? ????0x??0x(0e00*x??(0x
??0xx((:
M"?	
?????x( ???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0o???????A???0p??????x??0p??????x??0p??????xf0??????J?A??
??0
x?0x
??0,x
??0x
??0xfx(0V?M?8??
??0
x?0x
??0@x
??0x0x??	0p??????x?(0U4????	0x?0x???0x0p(0e??????I??
??	0	xf?0
xi*??
??0xf?0xi?06x0.pxxM??
??	0	xf?0
xi*??
??0xf?0xi?02x0*px(0ixx????x
??	0xfx??3??
??	0	xf0
xh?
??0xf04xhxM??
??	0	xf?0
xi*??
??0xf?0xi?0.x0&px(0x(0x{?5??
??	0	xf?0
x!?
??0xf?00x!x9??
??	0	xf?0
x!?
??0xf?00x!(0x(0[x(0Ypx0x(0#09?0???0p??????x???0x(00
(01(0m00x?0p??????x(0!?
??0x(0004x??(0x
??0xx((N"?
?????x( ???x(???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0o???????-???0p??????x??0p??????x0??c?A?8????0x??0x
??0x
??0x0x0x???0x(0K0(0Uz?6?/?&????x
??0x0x0x(009?0???0p??????x???0x(00
(0)(000x?0p??????x(0!?
??0x(0004x??(0x
??0xx((O"?
?????	x( ???x(???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0Y???????A???0p??????x??0p??????x??0p??????x!0??h?0??
??0x0x?!@0(x0x-?&????x
??0x0x(010(0qW?N?9????0x??0x
??0.x
??0x0x??0p??????x?(0????0x??x?o??
??0xf?0x!7?"??
??0xf?0x?0x
??0$x!0x?
??0xf02xh0xh(00(0[?
??0x(0s00x?0p??????x(0!?
??0x(000x??(0x
??0xx((P"?
?????x( ???	x(???????0x??0x
??	0"xe?????0p??????x0:?3?)???x?
??0
x?0x0x(0?00Hx??(0x
??0xx((Q"?
?????x( ???	x(???????0x??0x
??	0"xd?????0p??????x09?2?)???x?
??0
x?0x0x(0o004x??(0x
??0xx((R"?
?????x( ???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0Y????l??-???0p??????x??0p??????x0-?&????x
??0x0x(0U00x?0p??????x(0!?
??0x(0/00x??(0x
??0xx((S"?
?????x( ???x(???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0k??T????0x??0x2???
??0
x?0xx
??0.x0,x0x'? ??
??0
x?0x(0?0(0!5?,???0???0x000x(0000x??(03x
??0xx((T"?
?????x( ???	x(???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0!'??
??	0x?	0p??????x(0!????	0p??????x???0p??????x0k?d?[?F??
??0x?0x?!0x?
??	0x0 xx
??	00x0x(0)0
(0%x??????????0p??????x0??#???0x,(0p??????x,(0;H???+??
??0
x?0x
??06x0x,?	0p??????x,(0H???+??
??0
x?0x
??0:x0x,?	0p??????x,(0M??#???!0x?0x0
(???x?
??	0x,0x0x???x0x??????^?S?1???	x???	x,
??0x0xp?x
??	0x,	?(0x,0Ipx,90Lx???	x,
??0x0xx(0I0
(0U2?)??	?(0	x,0
x
??	0x,0x,(0e00x?0p??????x(0c?
??0x(0)0(0x??(0x
??0xx((U"?
?????x( ???x(???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0u??_?V????0x??0x2???
??0
x?0xx
??08x0,x0px0x=?6?,???0???0x000x(0?0(0!??????????0p??????x0x?2?)??
??0
x?0x
??02xx(0;=?4?+??
??0
x?0x
??0(x0x0x(0100x?0p??????x(09?
??0x(0;00:x??(0x
??0xx((V"?
?????x( ???????0x??0x
??0"xr?????0p??????x0G?-?
??0x??
??0x0p(0Q??0x?(0!00x??(0x
??0xx((W"?
?????	x( ???	x(???	x(???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0Y???????T???0p??????x??0p??????x?0p??????x??0p??????x!0??W?N?9????0x??0x
??0.x
??0x0x??0p??????x?(0?????0x?0x????,????0x??0x
??0*x0xO?6?-????x
??0xx	?0xx(0???0x(0+0(0??0x(00(0[???
??0xf?0x!??????"??
??0xf?0x?0xO?.??
??0x0x?!@0&xx
??0x!
??0x0$x!	?0xx(0??0x(00????U??
??0xf?0xi4?+??
??0
x?0x
??0 x0x0*x0xiO?6?-????x
??0xx	?0xx(0o??0x(0+0(0p(0??0x(000x?0p??????x(0!?
??0x(000x??(0x
??0xx((X"?
?????x((???	x(???x(???????0x??0x??	(0x??????0p??????x0????
??0x??
??0x(00???????0x??0x!??9?+????0x??02x?0p??????x(0A:

???????-???0p??????x??0p??????x!0????L?3?*???x
??0x
??0x!p?x(0??0x(0-09?0???0p??????x???0x(00(0
(0I00x?0p??????x(0)?
??0x(000???0x(0	(0(0p(00(x??(0x
??0xx((:
Y"?$
?$????x( ???x(???x(???x(???x(?#??#????0x??0x
??0"x?#???
??	0x0?"?????0p??????x?0????????d?3????0x??0x?
??	0x(xx(??
??	0xx
??0x(0xx+? ??
??	0x0x0*x(0'xx4???
??0
x?0xx
??0x(0x0x???0x(0G0(0+????-?$?	??	x???	0vp????x?x?(0e?\?H??
??0
x?0x&???!@0x?0x0x?0x?0p??????x?(0uj?a?L???	0x?5????0x??0x?
?0x?0*x,0x0x??0p??????x?(07??????????n?3?,????0x??0x
?0x?0xx2????0x??0x?!??0x0xxA?+????0x??0x
?0x?x???0x?0
xx4????0x??0x?!??0x(0kxx]?G????0x??0x&???!@0x?0x0x?x???0x?0
xx2????0x??0x?!@0x0x0x???0x(0w0(0[<?3?????0x?0x0x?0p??????x(03?*???
??0	x0
x0x
?0x
(0????a??
??0	x
0
xC?.??
??0	x
0
x,?!0xx
?0x?0xxC?.??
??0	x
0
x,?!??0xx
?0x?0x0x???0x(0?0(08?/???x
??
??0	x0
x0x
x
(0??????a??
??0	x
0
xC?.??
??0	x
0
x,?!0xx
?0x?0xxW?<?0??
??0	x
0
x,?!0x0x?0x?!@0x0xxk?.??
??0	x
0
x,?!??0xx0??
??0	x
0
x,?!0x0x(0sx0x???0x(0C0(0
2?)???
??0	x0
x0x
0&x(009?0???0p??????x???0x(00
(0
(00(0+x?????0x??0xT?M?*???	x???0x??0*x0x??
??	0x02p(0_0\@?7????x0p?x??
??	0x0 p(0	(0W(0??????????0p??????x?0??B?9???0	x??0
x????0x?0x?:

x?(0M????0x???J?A?-????0x??0x??0*x?0x?0p??????x(0?
??0x(0???G?>?3???x
??
??0	x0
x0x
0)px
0.x0xi?0?'????0
p????x
0lx?0x(0C0?'???0	x??0
x
??0xx(0e0&(00(0G?>???0	x??0
x!???0	x??0	x??0,xx(000x??	0p??????x?(09:
????#????	0x?0x??0,x????	?0x0??_?V??xF? ??x?!0xx?!0x	?0x0xx(0SH???!???0	x??0	x??0x	?0x	?0xx?(03G?>???0	x??0
x!???0	x??0	x??0,xx(0)??0x?(0008xx(
0????#????	0x?0x??0,x?????0p??????x0??R?I?5?!???0	x??0	x??0x	?0"x0x?0p??????x(0YG?>???0	x??0
x!???0	x??0	x??0,xx(0;?
??0x(000>xx(
0????#????	0x?0x??0,x????0n?1?(?!???0	x??0	x??0xx(0M4?-???0	x??0
x?!0xx(00?5?!???0	x??0	x??0x	?0x0x(0S008xx(
0??{?"????	0x?0x?0,xP???09?2?)? ???0	x??0	x?0x0x(0Q00@xx(
0-??{?"????	0x?0x?00,xP???09?2?)? ???0	x??0	x?00x0x(0O00>xx(
0V?M?"????	0x?0x?(0,x"????	0x?0x?00fxx(
0p?g?:????	0x?0p????x?
??0
x0????0x??0x?00x?0x
??0x0x?0p??????x(0?2?)??
??0
x0x?0p??????x(0aS?J???	x9????x1
??	0xp?x?!0x0xx(0??T?K?!???	x?!0xx???	x
??0x0
x0px0x)?"???!0
x0x(0M0(0==?4???	x#???	x?!0x0xx(0H???+??
??0
x?0x
??	0$x0x?0p??????x(0+????M?!???x?!?@0xx#???x?!??@0x0xx6?!???	x?!??0xx
??0x0x0x??
??0x(0y0(0;a?X?D??
??0
x?0x#???	x?!??0x0$x0x?	0p??????x(0t?O?!???	x?!??@0xx#???	x?!???@0x0x0x??
??0x(0K0(0Su?l?Q?>?%???x?!?@0x0px?!?@0xx
??	0xx?!?@0x0x(000x?0p??????x(0!:
?
??0x(0Y00@x??(0x
??0xx((]"?
?????	x( ???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0u????????
??0x
??0x"0??^?U?A????0x??0x?00x
??0x
??0x0x?0p??????x(0c6?-???x???x	?0x0xx(0qk?,???x"??!0
x0"x0x4?+?&???x?
??0
x0,xx0p(0;???????
??0	x:t0
x?!0xZ??
??0	x:u0
x#???x?!0x0x?
??0
x0x0x0x?0x(0W*?!??
??0x0"x?	0x(0]??O?!???	x?!0xx#???x?!0x0
x0x|?u?U?$???x?
??0x0xx&???x?
??	0x0x0x0x???0x0p(0)0(0,?#???	x?!0
x0x(0]00x?0p??????x(0!:
?
??0x(000:x??(0x
??0xx((^"?	
?	????x( ?	??	????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0k??????????0p??????x0????	?0x?0x(0???#???!0x?0x0
(???x?
??0x0x0x???x0$x??H???3???x1???x
??0x0x0p?x?0x(0Q????M?!???x?!0xx#???x?!??0A0x0
xx=???x*??
??0	x:l0
x
??0x0x0x0xB?;?2?
??0xS???	x
??00x0x0xT(0w0(07??#???x?!???@0x0xL?E?<???x+??
??0
x>?0x
??0(x0xx(0#0??*?!???x?!?@0xx(0	??????xz??
??0
x>?0xY?>?%???x?!$@0x0px?!??@0xx?!?@0x0(x0xx(0w?n???x]??
??0
x>?0x<?!???x?!??@0xx?!??@0x0(x0xx(0k(01(0]0
(0?
??0x(0a00x?0p??????x(0!?
??0x(0000x??(0x
??0xx((_"?
?????	x( ???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0u???????-???0p??????x??0p??????x"0??]?T?@????0x??0x?00x
??0x	?%0x0x?0p??????x(0cz?q?M??
??0
x&0x
??0x#???x"?!0 x0xx??!??0x0x0x(0q00x?0p??????x(0!:
?
??0x(0{00:x??(0x
??0xx((`"?

?
????x((???x(?
??
????0x??0x
??	0"x?	?????0p??????x0?	?-?
??0x??
??0x0p(0u??????????0p??????x0???E????x
??0$xEx??
??0
xA?0x0x0x/?(??
??0x\
??	0x0x](0[0(0;|?s?_?
??0xE
??0x<????x
??0$xEx
??0x
??	0x0x(0xA?	0&p??????xA(0+$???0x?	0p??????x(0{???0x?	0&x(0#????????????0??X?
??	0xC?<?3??
??0x0x??0x0x0x?(00(0I?@?,??
??	0xA?0x
??	0x0x?
0p??????x?(0C???
?
0x?0xf?!????	x?0xx(0<?3??
??0x0x??0x0x0x?(00(05~?4? ??
xG?!0xx	?0x0x??8?/??
??	0xA?0x?!??0.xx(0%0(0C;?2??	?
0xG0xG??0x0x0x?(0100x(0)x0&x??	0p??????x?(0;i?`?'?	??	x??
??0
x00xx0???0????	0x?000&xx(0????	0pp????x?(0o00x?0p??????x(&0!:
?
??0x(0s00:x??(0x
??0xx((:
a"?
?????	x( ???	x(???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0q???????-???0p??????x??0p??????x0??[?R?>????0x??0x?00x?0x
??0x0x?0p??????x(0aE?<?(???x?
??0
x0,x0x?	0p??????x(0aT?K???x8????0x??0x
??0,x
??	0x0x0x(0=00x?0p??????x(0!:
?
??0x(0m006x??(0x
??0xx((b"?
?????	x( ???x(???	x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0u???????-???0p??????x??0p??????x0??[?R?>????0x??0x?00x?0x
??0x0x?0p??????x(0eE?<?(???x?
??0
x0,x0x?	0p??????x(0aT?K?6????0x??0x
??0,x
??	0xx
??0x0x(0=00x?0p??????x(0!:
?
??0x(0u00:x??(0x
??0xx((c"?
?????x(*???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0W???????-???	0p??????xs??0p??????x0??T????	xs?0x0x/?(??
??0x\
??	0x0x](0%0(0S3?*??
??	0xs?0x,?0p??????x,(0+2?)??
??0x,0x?	0p??????x(0??	?0x?0x(0??#???!0x?0x0
???x
??	0x0x?
??0x0x??7?.???x???x,
??0x0xx(0=????8?%???x?!??0x0px
??	0
xxE?%???x?!??0x0px?
??0x0x0x0xm?f?]???xL???x>6???x#???x?!??0x0x0x0p?xx(0c0$(00(0?
??0x(0A00x?	0p??????x(0!?
??	0x(000x??(0x
??0xx((:
d"?
?????	x( ???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0q????????
??	0x0??S?J?>????0x??0x?00x?0x
??0x0x?0x(0;??O?!???	x?!0xx#???	x?!?????A0x0
x0x/?(??
??0xS
??	0x0xT(0I0(0a=?4???	x#???	x?!0x0xx(0-??	?0x?0x(0#??
??	0x??W?#???	x?!??0x0x)? ????x
??0xx0p(0Y?%???	x?!??0x0
px)? ????x
??0xx0p(030(0?
??0x(0A00x?0p??????x(0!:
?
??0x(0006x??(0x
??0xx((e"?
?????x(*???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0y????	0p??????x???0p??????x0??????r?e?/?"???x>
??0x(0p?x(0x???	x??	x(0xA
??	0Bx(0x(0x???	x??	x(0AxA
??	0x0x(0-0(0!x???????-???0p??????xu??0p??????xD0????E????xu
??0.xEx??
??0xA?0x0x0x1?*?!?
??0x\??	(0x0x](0o0((0_k????xu
??0.xE0xC?<?3???0	x0
x
??0xA
??0xD0x(0A0(0u?l???0	x0
xC?
??0xE ???	x
??0x0p?x
??	0x(0xA
??0xD0x(
0E00x?0p??????x(0/:
?
??0x(0c00>x??(0x
??0xx((:
f"?
?????	x( ???x(???????0x??0x
??	0"x??????0p??????x0??-?
??0x??
??0x0p(0y???????%?
??0x??0p??????x"0??^?U?A????0x??0x?00x
??0x
??0x0x?0p??????x(0c6?-???x???x	?0x0xx(0q2?)??
??0
x0 x?	0p??????x(0;2?)??
??0x02x?	0p??????x(0???????
??0	x:t0
x?!(0xb??
??0	x:u0
x+???0p????x?!0 x0>x?
??0
x0x(x0x?0x(0%???!0x?	0x(0m??C????	x
??	0xx???x
??	0x0x0xx?q?Q?"???x???x0xx$???x???	x0x0x0x???0x0p(0C0(0&????	x
??	0
x0x(0]00x?0p??????x(0!:
?
??0x(000>x??(0x
??0xx((g"?
?????x((???????0x??0x
??	0"x??????0p??????x0??t???0p??????x?0I?B?9???0	x0
x???	x0xA	?0x0x(0#0(
0w:
x&????x
??0x0x(0G000x@?02x0x(0s008x??(0x
??0xx(0(:
h"?
?????x((???????0x??0x
??	0"x??????0p??????x0??t???0p??????x?0I?B?9???0	x0
x???	x0xA	?0x0x(0#0(
0u:
x&????x
??0x0x(0G00:x??(0x
??0xx(???????0x??0x
??	0"xo?????0p??????x0D?=?4???x!??
??0
x>0x@?02x0x(0w00xx(h?_????0x??0x??
(0x???0x??0Tx
??0x0px?
??0
x?(0ax???-???0p??????x??0p??????x!0????#???!??0x?0x0
(???x?
??0x0x0x???x0$x??2?)????x
??0x0x?0x(0Q*??
??0x0x??0p(0-???
??0x0

??0x????8????0x??0x
??0x
??0x0xO?F?A????x
??0xx???x
??0x0xx0p(0+0(00
(01?
??0x(0o0(x(0xx( (:
t"?
?????x((???x(???????0x??0x?????60p??????x0??$???0x?0p??????x(0AW?N?B?'??
??0	x:0
x	?60xx?!0x0x?
0x(0b?#???
x?!0x0x4?+?&???
x?
??0x0(xx0p(0Kw?T?!???
x?!0xx(???
x?
??0x0(x0
x0x??
??0x0p(0C&????x
??
0x0x(0q00&x:
x((:
u"?
?
????
x(*???x(???
x(???????0x??0x????0??????
0p??????x?0*??2???
0p??????x??0?0(0:
x?2???
0p??????x??0?0(0:
x?????
0x?x?(0MK?B????0x??0x??
0$x??0x,??
0x?x?(02?)????
0x?x???
0$x?0x(070(0[x??l?G????0x??0x'????0x?x
??0x0>xx???0x??(0Qx0x???D????
x0p?x%?????0x??0x02p(0)4?+????0x??04x?
0p??????x(0G???????B???0p??????xb??0p??????x,??
0p??????x?0??I?@?,???
x
??0 xb
??0x,0p?x?
0p??????x(0{e???
0x?O?F?A????0x??0x
??
0.x?
??
0xb0&xx0p(0C?
??
0x(0]00&x?
0p??????x(0+?
??
0x(00&(0=????0p??????x:???0p??????xb??0p??????x,??
0x?0??R??	??
x?
??0$x0x)? ????
xb
??0 xbxb0p(0aR?I?5??
??
0x0x?
??0
x0Dx0x?0p??????x(0aI?@?,????0x??0x
??0*x0x?0p??????x(0M>?5?!??
??0x0x?06x?0p??????x(0=`?W?C??
??0x?0x
??0xb
??0x
??0
x,0x?
0p??????x(0&????
x
??0x0x(0C0(0x?
??0x(000Jxx(v?m????0x??0xH?7?,?"????0x??0"x@0x0[x?@0\x(0p????x:

x(0(:
v"?
?????x((???????0x??0xs?????
0p??????xs0H?A?8????0x??0x
??
0Rxs
??
0xs0xs(0q00Hx:
x(???????0x??0x???/???
(0]p??????xs??
0p??????xs0??2?)??
??
0xs?0xs
??
0&xsxs(0A?????
??0
x?0xa?)??
??0
x?0x
??
0xsxs+??
??0
x?0x
??
0xs0xs0$pxsxs(0%???
0Np????xs(0y0"0Vx:
x(0(:
w"?
?????x((???
x(???x(???????0x??0x???-???
0p??????x??
0p??????x0??^?U??
??
0x0x7????0x??0x?
??
0x0@x0,xx(0a=?4?!??
??
0x0x?0(x
??
0Dxx(03?????0x??0x!u?9?+????0x??02x?0p??????x(03:

3?*???x
??
0x
??
0xp?x(0)00?????
??0x0

??
0
x??5????x	?0
x0x??(0'0(0/???
??0
x?0x??N?E?8??
??0
x?0x
??
0@x
??0x0x??0x?(05g???0x?Q?J?A??
??0
x?0x
??
0,x
??0x
??0xfx(00(0y02S?J?A????
x
??0xx???
x
??0x0
xx(0	(0A(00(0	(0)(0e@?7??
??
0x?0x??
??
0x0Fx?x?(
0?00&xx(D(:
x"?
?????x(&???????0x??0x???%?
??0x??
0p??????x0??c????x
??0"x>0x;?2?-???x???x?	?0x0xx0p(0i%???!0x?0x(0Y???0x0x(0????????????0????C??	?0xx(???x?
??0x0x0x0x??-?$????x0x60p??????x(09o?f?H?=???
x	?60x???x	?60x0x0p?x0x??0x0x0x?(00(0 ???x?0xx(0mK?B???0x0x$???!0
x0x0x0x?(0
00x(0x0x??0p??????x?(0i?`?'?	??x??
??0
x0xx0???0????0x?000&xx(0G???0x?(0W008xx((:
y"?
?
????x(&???x(???????0x??0x??????0p??????x?0??J?A?-?
??0px??
??0
x0"x00x?
0p??????x(0Yd????
x
??04x0x<?5?,??
??
0+x?0,x??06x?0x(0M0(0Mb?Y????0x??0x?5????0x??0x??(0Up????x?0Jx0x?(0G008xx(?
??
????0x??0x??
????0p??????x0?	?e?\?$??x??
??0
x0xx/???0???0x?(0K000xx(0of?]?$??x??
??0
x0xx0???0??	?0x(0A00&xx(0??????0	x?0
x??????0p??????x0\?U?L????0x??0x)??	?0x0x
??0x0 x
0x?(0300xx(0??????x?
??0
xx??????0p??????x0????????0x????-???0p??????x??0p??????x0??9?0???x
??0x0x?
0p??????x(0U?????
x
??0x0xZ?S?J???x6??
??
0x?0x	?0x
??0x0xp?x(010??9?0???x
??0x0x?
0p??????x(0	^????
x
??0x0x6?-?(??
??
0x?0x	?0xx0p(0)<?3???x?
??0x\
??
0x0x]p?x(0G(03(0-00x0x?(0;00xx(0M??/???x
??0xx
??0x0x????????x?
??0
xx??????0p??????x0b?[?R????0x??0x/???x
??0xx
??0x0 x0x?(0=00xx(
0G0(
0500Nx?:
x?(0
(:
z"?
?????	x(&???????0x??0x??????0p??????x?0????????C?$??
??0xx
??0xx?
??0
x0,xx?4???0p????x?
??0
x0"x(0Apx0&x?0p??????x(0OQ?
??0x<?5?,??
??0!x?0"x??0,x?0x(0'0$(0A??9?$??	??x?	?0x0xx
??0x0xB?;?2????0x??0x??0Zp????x,0x(0Q0(0=R?I?
??0xL4????x>??0x?p?x
??
0x0x0xM(0k00.xx((:
{"?
?????x(4???????0x??0x????0??:?1????x1?0x0p?x?
0p??????x(0G$???0x,?
0p??????x,(0/????
??
0x?0x0
(???x?
??0x0x0x???x0$xd?]?T?.???
x,???x
??
0x0xx???x
??0x0xx(0c0
(0?
??
0x,(0M006x:
x((:
|"?
?????x(*???x(???
x(???????0x??0x????0??;?2????0x?0x0x??0p??????x?(0U&???0x??0p??????x?(0??_?6?-????0x??0x???0x?x?(0 ????0x??0x(00'????0p??????x?0(0
(0??0x(000Dxx(???????0x??0x!??V????0x??0x2???
??0
x?0xx
??02x(x0px?
??0
x?(0]x??????0x??0xx???-???0p??????x??0p??????x!0??2?)??
??0
x?0x!
??0&x!x!(0sx?+??
??0
x?0x!
??0*x!0xB?;?2?
??0x\???x
??
0x0x0x](0;0(0%?
??0x(0=00Hx	?(0	x(x!02x!x!(0(:
}"?&
?&????x( ???x(???x(???x(???x(???x(?&??%????0x??0x
??0"x?%?????
0p??????x0?%?????0p??????x?0??[?;??
??
0xx??
??0
x?0x0"x0x???0x0p(0+????H???*??
??0
x?0x?0x?0x??0p??????x?(0H???*??
??0
x?0x?0x?0x??0p??????x?(0'????v???
(0p????x?W?&???0x??!@0x0x,&???0x??!@0x0x,0x,0x?*0p??????x?(0'????C?*??
?*0x??0x??0x?x?!@0xxE?*??
?*0x??0x??0x?x?!@0x0
x0x???0x0p(0?3?*??
?*0x??0x??0x?x(0]F?=??
?*0x??0x??0x??!@0xx?(0????3?,??
?*0x??0x??0x?0xxE?*??
?*0x??0x??0x?x?!@0x0x0x(009?0???0p??????x???0x(00
(0G(0U0(
03x?????0x??0xT?M?*???
x???0x??02x0x??
??
0x02p(0_0\@?7????x0p?x??
??
0x0 p(0	(0_(0N?E?1???
x??
??0	x:w0
x0(x0x?0p??????x(092???
0p??????x??0"?0(0=:
x?????
0p??????x???0p??????x0??0?'??
??0x0x?0p??????x(0-s?j?B????x
??0xx???x?0x0x0px???x
??0x0x0x(0#0
(09x????
0p??????x???0p??????x0????A?8????0x??0x
??0x
??0x0x0x??3?*????
0x?0x??0p??????x?(0=b?Y????0x??0x
??0.x
??0x!????0x?0x?0x?x(00(0+0(0qx????0p??????x???0p??????x0
??0????0x??0x??(0906(0%:?1????x
??0x0x?
0p??????x(0??
??
0x?????????x
??0xx??????0p??????x0???????x??
0$x?0x????0x?(0M0&??d?+??
??0
x?0x
??0(x0x.?'????
x
??0xp?x(0=0(0	)? ???
x
??0
x0p?x(0(0(0;00xx(00(0#0(0ax'????x
??0xp?x(
0''????x
??0xp?x(0'????x
??0xp?x(0$???!0x60x(
0??????????0p??????x?0????????0	x??0
xa?X?M??6x9???
??0	x:w0
xx?!??0 x0px0;px/0>x0x:

x(0U????0x???J?A?-????0x??0x??0*x?0x?0p??????x(0?
??0x(0???G?>?3???x
??
??0	x0
x0x
0)px
0.x0x??*?!??
??0x
0x,?0x,(0Cz?q???0	x??0
x)???x,?!0
x0:p????x)???x,?!??0
x06p????xx(00&(00(0K00$x??
0p??????x?(&0:
????#????
0x?0x??04x???,???0p??????x?0
p??????x0??c?)? ???
x
??0x0p?x0x/?(??
??0xL
??
0x0xM(0'0(0e'????
x
??0xp?x(0#??A?8????0x??0x
??0x
??0
x0x0xB?;?2?
??0xL???
x
??0.x0x0xM(070(0
S?J?8????x
??0xx??0	x??0xx	?0xx(0Q??0x?(0+00@xx(0?????#????
0x?0x??04x??????0p??????x0??????_????
x
??0xp?x8????0x??0x
??0x
??0
x0xx:????x
??0xx??0	x??0x0x??(0x0x(0W0
0@xx(0????#????
0x?0x??04x??????0p??????x0??????_????
x
??0xp?x8????0x??0x
??0x
??0
x0xxW????0x??0x???x
??0x0x??0	x??0x(0Ox0x(0W0
0@xx(0k????#????
0x?0x??04x??????0p??????x0??????q?'? ???
x
??0x0p?xxA?8????0x??0x
??0x
??0
x0x0xx`?U????0x??0x???x
??0x0x??0	x??0x0x(0Mx0x???0x(0K0(0]L?C?:????x
??0xx??0	x??0x0x0x(00
0Fxx(0;???
0x?(030(0x??(0x
??0xx((~"?
?????x( ???x(???x(???x(???????0x??0x
??0"x??????
0p??????x0??????0p??????x?0??[?;??
??
0xx??
??0
x?0x0"x0x???0x0p(0+????H???*??
??0
x?0x?0x?0x??0p??????x?(0H???*??
??0
x?0x?0x?0x??0p??????x?(0'Q?H?3???
(0p????x????0x?0x,0x??0p??????x?(0'??l?4?-????0x??0x??0x?0xx-????0x??0x??0x?0x0x???0x0p(0'4?+????0x??0x??0x?x(0K5?,????0x??0x??0x?x?(0u?l?4?-????0x??0x??0x?0xx-????0x??0x??0x?0x0x(009?0???0p??????x???0x(00
(0;(0U0(
03x?????0x??0xT?M?*???
x???0x??02x0x??
??
0x02p(0_0\@?7????x0p?x??
??
0x0 p(0	(0_(0??????????0p??????x?0??B?9???0	x??0
x????0x?0x?:

x?(0U????0x???J?A?-????0x??0x??0*x?0x?0p??????x(0?
??0x(0???G?>?3???x
??
??0	x0
x0x
0)px
0.x0xc?*?!??
??0x
0x?0x(0C0?'???0	x??0
x
??0xx(00&(00(000$x??
0p??????x?(09:
????#????
0x?0x??04x??????
0p??????x0a?G?>?!???0	x??0	x??0x
??
0x?0xx?(0Y??0x?(0'00@xx(0????#????
0x?0x??04xq?????
0p??????x0F???6?!???0	x??0	x??0x
??
0x0x(0Y00@xx(0????#????
0x?0x??04xq?????
0p??????x0F???6?!???0	x??0	x??0x
??
0"x0x(0_00Fxx(0-???
0x?(030(0x??(0x
??0xx(("?
?????x(2???????0x??0x???-???0p??????x??0p??????x0??3?*??
??0
x?00x?0p??????x(0u3?*??
??0
x?0Dx?0p??????x(0)5?,? ???x
??0x0p?x!?
0x!(0=?????
x!?0x0x??:?1???
x! ???x
??
0x0p?x!x!(0#?????
x!?0x0x??C?:?-???x
??
02x
??0
x0p?x??	0x?(0@??	??	x??0x0x??
??	0xf(00(0Q0(0)0(01?
??0x(000Lxx(???????0x??0x???-???0p??????x??0p??????x0??U?L?8????0x??0x
??0Hx
??0x0x?	0p??????x(0_??????	xq??
??	0	x?0
x7?"??
??	0	x?0x?0x
??0x0x?
??	0	x0x0px0x(0m00&xx(0???????0x??0x???@???0p??????x??0p??????x?0p??????x0??U?L?8????0x??0x
??0Hx
??0x0x?	0p??????x(0m??
??	0x??l???
??	0	x?0x0xB?;?2?
??0x\???
x
??02x0x0x](00(0I?@?"??
??	0	x?0x?0x
??0x	?0xx(0]0??6?-????x
??0xx	?0 xx(0	(0!(0m?	?0x(0100&xx(0i(:
?"?
?????
x((???
x(???
x(???
x(???x(???
x(???x(???
x(???
x(???
x(???
x(???
x(???x(???
x(???x(???
x(???
x(???
x(???
x(???x(???x(???x(???
x(???x(???
x((:
?" 
????
x(*(:
?"?
?????x( ???????0x??0x???A???0p??????x??0p??????x??0
p??????x0??~????x?0x0xY?R?I?
??0x\4????
x
??0Vxx??
(0Ux(0x0x](0%0(0i?????x
??0xE0xY?R?I?
??0x\4????
x
??0Pxx??
(0Ox(0x0x](010(0%????x	?0x0x(0004xx((?"?
?????x((???????0x??0x??R????0x??0x2???
??0
x?0xx
??06x0,xx?
??0
x?(0ax???A???0p??????x??0p??????x'??0p??????xf0????c?&???x?
??0x+0 x-x2???0p????x?
??0
x0$x(0x0x??
??0x(0a0$(0IB?9????x
??0x'x?
??0xf0.xhxh(0?
??0x(0%0(x(0xx((:
?"?
?????x( 3?,????0x??0x?0*x:
x(5?,????0x??0x?0>x:
x(0)5?,????0x??0x?0>x:
x(0=5?,????0x??0x?0Bx:
x(0=5?,????0x??0x?08x:
x(0A5?,????0x??0x?0Bx:
x(075?,????0x??0x?0zx:
x(0A5?,????0x??0x?0Fx:
x(0y(?"?
?????	x( ???	x(???????0x??0x???-???0p??????x??0p??????x0????
??0x?0&x(0i??
??0x!??O?F?9????0x??0x
??0Bx
??0
x0x??0x?(00???0x???
??0xf(00(0iF?=???x!,????0x??0x
??0.x0x!x!(00
(01?
??0x(0=002xx((?"?
?????x(&???????0x??0x???9?
??0x??0p??????x??0p??????x0??l????x
??0"x>0xD?=?4???x#???x>
??0x?0Hp????xx(050(0o2?)??
??0x0x?0p??????x(0Y??#???!0x?0x0
???x
??0x0x???x0
x??1?(????x
??0x0x0x(07??N??
??0x?0x
??0x	?0x
??0x
??0x0xE?<?7??
??0x?0x?	?0x?0x0x?0p(0#0
(0_?V?%???!??0x0x?0x%???!0
x0x?0x0x?(000.xx((:
?"?
?????x(&???????0x??0x???9?
??0x??0p??????x??0p??????x0??l????x
??0"x>0xD?=?4???x#???x>
??0x?0Hp????xx(050(0w2?)??
??0x0x?0p??????x(0Y??6?/?#???x?!??0x0x?0x0
#???x?!0
x0x???x0x??1?(????x
??0x0x0x(0A??N??
??0x?0x
??0x	?0x
??0x
??0x0xE?<?7??
??0x?0x?	?0x?0x0x?0p(0#0
(0_?V?%???!??0x0x?0x%???!0
x0x?0x0x?(0006xx((:
?"?
?????x((???????0x??0x??????
0p??????x!0????????<?$???x?
??0xc0xx
??0xc(
0'x???
(0Ax!9?$???x?
??0x0xx
??0x(x;?$???x?
??0x0xx
??0x(09x;?$???x?
??0x0xx
??0x(05x0$p??????x,?
0p??????x,(0Q??#???!0x?0x0
(???x?
??
0x,0(x0x?
??0x00x??2?)????
x,
??0 x0x?
0x(0]n?C???
x0????
x
??0xx
??0x:0x0x ????
0>p????xc(0[0(0C0(0=??}?l?_?S?F???0/?(??
??0xL
??
0x0xM(0#00x@(0x(0 x?@(0x(0,p????x(0E00(x:
x(W?N????0x??0xc)????0x??0x?0$xc0"xc:

xc(03(:
?"?
?????x(&???????0x??0x??V????0x??0x2???
??0
x?0xx
??0"x0,x0px?
??0
x?(0Ox?????0p??????x0??@?2????0?00x??
0p??????x?(0#:
1?(????
0	x?0
x	?0"xx(0+????
0x?0x?(0!0(x(0xx((:
?"?
?????x( ???????0x??0x???-???0p??????x??0
p??????x0^?W?N?-?!??
??0
x0x?0x?0@x
??0Jx
??0
x0x(0A00xx((?"?
?????x((???????0x??0x???-???0p??????x??
0p??????x!0?????????0x??0x
??06xn?????
0p??????x0C?<?3???
x ???
x!
??
0x0p?x0x(0g00xx(0O00 x:
x((:
?"?"
?"????x((???x(???x(???
x(6?/????0x??0x??0(x?:

x?(8?/????0x??0x??0Fx?:

x?(&0'8?/????0x??0x
??
04x:

x(0E???????C???(0Op??????x??0p??????x??
0p??????xi0??R?-???
xi???x?0x0(x0xi??
??0x(0K0(0KN?@?,????0x??0x
??0Bx0"x?
0p??????x(0:

R????
x?0$x0x-?&????x
??0x0x(030(0k??1????x
??
0x0x?0p??????x(
0:

X?O????x
??0xx
??0x???x
??0x0x0x(
0+0$0@x?
0p??????x(,03:
???????0x??0x???U???0p??????x??0p??????x!??
0p??????x??
0p??????x0??*??
??0x!0x??0p(0{?????0x??0x^?W?N????0x??0x
??02x
??0x
??
0x
??
0xx(0906`?W?N????0x??0x
??06x
??0x
??
0x
??
0xx(0	(0_(000&x:
x(40g???????0x??0x???U???0p??????x??0p??????x??
0p??????x??
0p??????x0??-?#????0x??0xc?0xc(0?H???+??
??0
x?0x
??0x0x,?0p??????x,(0??#???!0x?0x0
C???x0??
??0x,0x?!??0x0x0x???x0x??2?)????x,
??0x0x?0x(0Q??(????x
??0x0px0x??0p(07?.???x???x
??0x0xx(0%0
(01`?W?C???x,0??
??0x,0x?!??0x0x0x?0p??????x(0:?1????x
??0x0x?0p??????x(0G=?4? ???x
??0x0p?x?
0p??????x(0W?@????
x
??0xx???
x?0x0x0x??0p(0'???????0x??0x??(0x
??0
xI???0x?0x??0x?0x?
??
0x0x0x?x(0C00:xx( 0u???????0x??0x???U???0p??????x??0p??????x??
0p??????x??
0p??????x0??I???+??
??0
x?0x
??0x0x,?0p??????x,(0?M?D?0??
??0x,0x?!??0"x0x?
0p??????x(01@?7?#???x,?!0x0x?0p??????x(0G?
??
0x(
0!??F??
??
0xx*???x???0x??0 x0 x0x8?1?(???
x???0x??0,xx(0[0&:?1?(???
xc???0x??0,xcxc(0	(0(0??#???!0x?0x0
C???x0??
??0x,0x?!??0x0x0x???x0x??2?)????x,
??0x0x?0x(0Q??(????x
??
0x0px0x??0p(07?.???
x???
x
??0x0xx(050
(0`?W?C???x,0??
??0x,0x?!??0x0x0x?0p??????x(07????r?=????0x??0x???
x
??0x08xx???
x
??0x(0kx	?(0x0x?
0p??????x(0G=?4? ???x
??
0x0p?x?
0p??????x(03????
x?0x0x??(00(0'??
??
0x?????????0x??0x???0x??(0x
??0&xK???0x?0x??0x?0x?
??
0x0x(0%x?x(00???????
x
??
0x0x??????*????0x??0x
??0Bxx
??0x0x??q?h?T?9???
??0	x:w0
xx?!e??A0 x0px?!0x0x?	0p??????x(0w????*????0x??0x
??0Bxx?????0x??0xA?*????0x??0xc
??0xx
??0x(0QxT?=?*????0x??0x
??	04xx
??
0xx
??0x(01x0xx(0M0(0;N?@?,????0x??0x
??0Bx0"x?
0p??????x(0]:

???????0x??0x??
(0x
??
0xK???0x?0x??0x?0x?
??
0x0x(0x?x(
0k0(0Up(0006xx(60?(:
?"?
?????x( ??y????0x??0xY??-???0p??????x!??0p??????x0??
??0x(0Y000xx( (?"?
?????x(,???????0x??0xm?$??
??0xx
??0xx<?'? ???x
??0x0p?xx
??
0x0x(0x:

x(p?g????0x??0xB?????0x??0xx???0x??0Jx(0x:

x(0u(:
?"?
?????	x( ???????0x??0x???-???
0p??????x??	0p??????x0??o?f?R????
x
??0xx ???x>
??
0x0p?x
??
0x0x?
0p??????x(0il?J?,?%???	x?!0x0pxx?
??
0x0x0x??	?0x0p(0we?\?H??
??0	x:f0
x(???	x?
??
0x0(x0x0x?
0p??????x(0Qg?^?7?+??
??
0x?0x
??
0x0/x?00x?!0&x
??	0x0x(0G000xx((?*??


 [synthetic:externs] (08
??
externs.zip//es3.js??/*
 * Copyright 2008 The Closure Compiler Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview ECMAScript 3 Built-Ins. This include common extensions so this
 * is actually ES3+Reality.
 * @externs
 * @author [email protected] (Steve Yegge)
 * @author [email protected] (Nick Santos)
 * @author [email protected] (Erik Arvidsson)
 * @author [email protected] (John Lenz)
 */


// START ES6 RETROFIT CODE
// symbol, Symbol and Symbol.iterator are actually ES6 types but some
// base types require them to be part of their definition (such as Array).


/**
 * @constructor
 * @param {*=} opt_description
 * @return {symbol}
 * @nosideeffects
 * Note: calling `new Symbol('x');` will always throw, but we mark this
 * nosideeffects because the compiler does not promise to preserve all coding
 * errors.
 */
function Symbol(opt_description) {}


/**
 * @const {string|undefined}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description
 */
Symbol.prototype.description;


/**
 * @param {string} sym
 * @return {symbol}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for
 */
Symbol.for = function(sym) {};


/**
 * @param {symbol} sym
 * @return {string|undefined}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/keyFor
 */
Symbol.keyFor = function(sym) {};


// Well known symbols

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator
 * @const {symbol}
 */
Symbol.asyncIterator;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance
 * @const {symbol}
 */
Symbol.hasInstance;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable
 * @const {symbol}
 */
Symbol.isConcatSpreadable;

/**
 * @const {symbol}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator
 */
Symbol.iterator;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match
 * @const {symbol}
 */
Symbol.match;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/matchAll
 * @const {symbol}
 */
Symbol.matchAll;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/replace
 * @const {symbol}
 */
Symbol.replace;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/search
 * @const {symbol}
 */
Symbol.search;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species
 * @const {symbol}
 */
Symbol.species;

// /**
//  * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split
//  * @const {symbol}
//  */
// Symbol.split;

/**
 * @const {symbol}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive
 */
Symbol.toPrimitive;

/**
 * @const {symbol}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag
 */
Symbol.toStringTag;

/**
 * @const {symbol}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/unscopables
 */
Symbol.unscopables;


/**
 * @record
 * @template TYield
 */
function IIterableResult() {};

/** @type {boolean} */
IIterableResult.prototype.done;

/** @type {TYield} */
IIterableResult.prototype.value;



/**
 * @interface
 * @template T, TReturn, TNext
 */
function Iterable() {}

// TODO(johnlenz): remove the suppression when the compiler understands
// "symbol" natively
/**
 * @return {!Iterator}
 * @suppress {externsValidation}
 */
Iterable.prototype[Symbol.iterator] = function() {};



/**
 * TODO(b/142881197): TReturn and TNext are not yet used for anything.
 * https://github.com/google/closure-compiler/issues/3489
 * @interface
 * @template T, TReturn, TNext
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol
 */
function Iterator() {}

/**
 * @param {?=} opt_value
 * @return {!IIterableResult}
 */
Iterator.prototype.next = function(opt_value) {};


/**
 * Use this to indicate a type is both an Iterator and an Iterable.
 *
 * @interface
 * @extends {Iterator}
 * @extends {Iterable}
 * @template T, TReturn, TNext
 */
function IteratorIterable() {}

// END ES6 RETROFIT CODE


/**
 * @interface
 * @template IOBJECT_KEY, IOBJECT_VALUE
 */
function IObject() {}

/**
 * @record
 * @extends {IObject}
 * @template VALUE2
 */
function IArrayLike() {}

/** @type {number} */
IArrayLike.prototype.length;

/**
 * @constructor
 * @implements {IArrayLike}
 * @implements {Iterable}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments
 */
function Arguments() {}

/**
 * @type {Function}
 * @see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments/callee
 */
Arguments.prototype.callee;

/**
 * Use the non-standard {@see Function.prototype.caller} property of a function
 * object instead.
 * @type {Function}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/caller
 * @deprecated
 */
Arguments.prototype.caller;

/**
 * @type {number}
 * @see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments/length
 */
Arguments.prototype.length;

/**
 * Not actually a global variable, when running in a browser environment. But
 * we need it in order for the type checker to typecheck the "arguments"
 * variable in a function correctly.
 *
 * TODO(tbreisacher): There should be a separate 'arguments' variable of type
 * `Array`, in the d8 externs.
 *
 * @type {!Arguments}
 * @see http://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments
 */
var arguments;

/**
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity
 * @const
 */
var Infinity;

/**
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN
 * @const
 */
var NaN;

/**
 * @type {undefined}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined
 * @const
 */
var undefined;

/**
 * @param {string} uri
 * @return {string}
 * @throws {URIError} when used wrongly.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI
 */
function decodeURI(uri) {}

/**
 * @param {string} uri
 * @return {string}
 * @throws {URIError} when used wrongly.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent
 */
function decodeURIComponent(uri) {}

/**
 * @param {string} uri
 * @return {string}
 * @throws {URIError} if one attempts to encode a surrogate which is not part of
 * a high-low pair.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI
 */
function encodeURI(uri) {}

/**
 * @param {string} uri
 * @return {string}
 * @throws {URIError} if one attempts to encode a surrogate which is not part of
 * a high-low pair.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
 */
function encodeURIComponent(uri) {}

/**
 * Should only be used in browsers where encode/decodeURIComponent
 * are not present, as the latter handle fancy Unicode characters.
 * @param {string} str
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions
 */
function escape(str) {}

/**
 * Should only be used in browsers where encode/decodeURIComponent
 * are not present, as the latter handle fancy Unicode characters.
 * @param {string} str
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions
 */
function unescape(str) {}

/**
 * @param {*} num
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite
 */
function isFinite(num) {}

/**
 * @param {*} num
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
 */
function isNaN(num) {}

/**
 * @param {*} num
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat
 */
function parseFloat(num) {}

/**
 * Parse an integer. Use of `parseInt` without `base` is strictly
 * banned in Google. If you really want to parse octal or hex based on the
 * leader, then pass `undefined` as the base.
 *
 * @param {*} num
 * @param {number|undefined} base
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
 */
function parseInt(num, base) {}


/**
 * Represents a string of JavaScript code that is known to have come from a
 * trusted source. Part of Trusted Types.
 *
 * The main body Trusted Types type definitions reside in the  file
 * `w3c_trusted_types.js`. This definition was placed here so that it would be
 * accessible to `eval()`.
 *
 * @constructor
 * @see https://w3c.github.io/webappsec-trusted-types/dist/spec/#trusted-script
 */
function TrustedScript() {}


/**
 * @param {string|!TrustedScript} code
 * @return {*}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
 */
function eval(code) {}



/**
 * @constructor
 * @param {*=} opt_value
 * @return {!Object}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
 */
function Object(opt_value) {}

/**
 * The constructor of the current object.
 * @type {Function}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor
 */
Object.prototype.constructor = function() {};

/**
 * Binds an object's property to a function to be called when that property is
 * looked up.
 * Mozilla-only.
 *
 * @param {string} sprop
 * @param {Function} fun
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineGetter
 * @return {undefined}
 * @deprecated
 */
Object.prototype.__defineGetter__ = function(sprop, fun) {};

/**
 * Binds an object's property to a function to be called when an attempt is made
 * to set that property.
 * Mozilla-only.
 *
 * @param {string} sprop
 * @param {Function} fun
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineSetter
 * @return {undefined}
 * @deprecated
 */
Object.prototype.__defineSetter__ = function(sprop, fun) {};

/**
 * Returns whether the object has a property with the specified name.
 *
 * @param {*} propertyName Implicitly cast to a string.
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
 */
Object.prototype.hasOwnProperty = function(propertyName) {};

/**
 * Returns whether an object exists in another object's prototype chain.
 *
 * @param {Object} other
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf
 */
Object.prototype.isPrototypeOf = function(other) {};

/**
 * Return the function bound as a getter to the specified property.
 * Mozilla-only.
 *
 * @param {string} sprop a string containing the name of the property whose
 * getter should be returned
 * @return {Function}
 * @nosideeffects
 * @deprecated
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/lookupGetter
 */
Object.prototype.__lookupGetter__ = function(sprop) {};

/**
 * Return the function bound as a setter to the specified property.
 * Mozilla-only.
 *
 * @param {string} sprop a string containing the name of the property whose
 *     setter should be returned.
 * @return {Function}
 * @nosideeffects
 * @deprecated
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/lookupSetter
 */
Object.prototype.__lookupSetter__ = function(sprop) {};

/**
 * Executes a function when a non-existent method is called on an object.
 * Mozilla-only.
 *
 * @param {Function} fun
 * @return {*}
 * @deprecated
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod
 */
Object.prototype.__noSuchMethod__ = function(fun) {};

/**
 * Points to an object's context.  For top-level objects, this is the e.g. window.
 * Mozilla-only.
 *
 * @type {Object}
 * @deprecated
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/parent
 */
Object.prototype.__parent__;

/**
 * Points to the object which was used as prototype when the object was instantiated.
 * Mozilla-only.
 *
 * Will be null on Object.prototype.
 *
 * @type {Object}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto
 */
Object.prototype.__proto__;

/**
 * Determine whether the specified property in an object can be enumerated by a
 * for..in loop, with the exception of properties inherited through the
 * prototype chain.
 *
 * @param {string|symbol} propertyName
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
 */
Object.prototype.propertyIsEnumerable = function(propertyName) {};

/**
 * Returns a localized string representing the object.
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString
 */
Object.prototype.toLocaleString = function() {};

/**
 * Returns a string representing the source code of the object.
 * Mozilla-only.
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource
 */
Object.prototype.toSource = function() {};

/**
 * Returns a string representing the object.
 * @this {*}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
 */
Object.prototype.toString = function() {};

/**
 * Returns the object's `this` value.
 * @return {*}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf
 */
Object.prototype.valueOf = function() {};

/**
 * @constructor
 * @param {...*} var_args
 * @throws {Error}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
 */
function Function(var_args) {}

/**
 * @param {...*} var_args
 * @return {*}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call
 */
Function.prototype.call = function(var_args) {};

/**
 * @param {...*} var_args
 * @return {*}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
 */
Function.prototype.apply = function(var_args) {};

Function.prototype.arguments;

/**
 * @type {number}
 * @deprecated
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arity
 */
Function.prototype.arity;

/**
 * Nonstandard; Mozilla and JScript only.
 * @type {Function}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller
 */
Function.prototype.caller;

/**
 * Nonstandard.
 * @type {?}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/displayName
 */
Function.prototype.displayName;

/**
 * Expected number of arguments.
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length
 */
Function.prototype.length;

/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
 */
Function.prototype.name;

/**
 * @this {Function}
 * @return {string}
 * @nosideeffects
 * @override
 */
Function.prototype.toString = function() {};


/**
 * @record
 * @extends {IArrayLike}
 * @extends {Iterable}
 * @template T
 */
function ReadonlyArray() {}

// TODO(johnlenz): remove the suppression when the compiler understands
// "symbol" natively
/**
 * @return {Iterator}
 * @suppress {externsValidation}
 */
ReadonlyArray.prototype[Symbol.iterator] = function() {};

/**
 * Returns a new array comprised of this array joined with other array(s)
 * and/or value(s).
 *
 * @param {...*} var_args
 * @return {!Array}
 * @this {*}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
 */
ReadonlyArray.prototype.concat = function(var_args) {};

/**
 * Joins all elements of an array into a string.
 *
 * @param {*=} opt_separator Specifies a string to separate each element of the
 *     array. The separator is converted to a string if necessary. If omitted,
 *     the array elements are separated with a comma.
 * @return {string}
 * @this {IArrayLike|string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
 */
ReadonlyArray.prototype.join = function(opt_separator) {};

/**
 * Extracts a section of an array and returns a new array.
 *
 * @param {?number=} begin Zero-based index at which to begin extraction.
 * @param {?number=} end Zero-based index at which to end extraction.  slice
 *     extracts up to but not including end.
 * @return {!Array}
 * @this {IArrayLike|string}
 * @template T
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
 */
ReadonlyArray.prototype.slice = function(begin, end) {};

/**
 * @this {ReadonlyArray}
 * @return {string}
 * @nosideeffects
 * @override
 */
ReadonlyArray.prototype.toString = function() {};

/**
 * Apply a function simultaneously against two values of the array (from
 * left-to-right) as to reduce it to a single value.
 *
 * @param {?function(?, T, number, !ReadonlyArray) : R} callback
 * @param {*=} opt_initialValue
 * @return {R}
 * @this {IArrayLike|string}
 * @template T,R
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
 */
ReadonlyArray.prototype.reduce = function(callback, opt_initialValue) {};

/**
 * Apply a function simultaneously against two values of the array (from
 * right-to-left) as to reduce it to a single value.
 *
 * @param {?function(?, T, number, !ReadonlyArray) : R} callback
 * @param {*=} opt_initialValue
 * @return {R}
 * @this {IArrayLike|string}
 * @template T,R
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight
 */
ReadonlyArray.prototype.reduceRight = function(callback, opt_initialValue) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !ReadonlyArray): *} callback
 * @param {S=} opt_thisobj
 * @return {boolean}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
 */
ReadonlyArray.prototype.every = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !ReadonlyArray): *} callback
 * @param {S=} opt_thisobj
 * @return {!Array}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
 */
ReadonlyArray.prototype.filter = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !ReadonlyArray): ?} callback
 * @param {S=} opt_thisobj
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
 * @return {undefined}
 */
ReadonlyArray.prototype.forEach = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?} obj
 * @param {number=} opt_fromIndex
 * @return {number}
 * @this {IArrayLike|string}
 * @nosideeffects
 * @template T
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
 */
ReadonlyArray.prototype.indexOf = function(obj, opt_fromIndex) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?} obj
 * @param {number=} opt_fromIndex
 * @return {number}
 * @this {IArrayLike|string}
 * @nosideeffects
 * @template T
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf
 */
ReadonlyArray.prototype.lastIndexOf = function(obj, opt_fromIndex) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !ReadonlyArray): R} callback
 * @param {S=} opt_thisobj
 * @return {!Array}
 * @this {IArrayLike|string}
 * @template T,S,R
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
 */
ReadonlyArray.prototype.map = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !ReadonlyArray): *} callback
 * @param {S=} opt_thisobj
 * @return {boolean}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
 */
ReadonlyArray.prototype.some = function(callback, opt_thisobj) {};

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length
 */
ReadonlyArray.prototype.length;

/**
 * @constructor
 * @implements {IArrayLike}
 * @implements {Iterable}
 * @implements {ReadonlyArray}
 * @param {...*} var_args
 * @return {!Array}
 * @nosideeffects
 * @template T
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
 */
function Array(var_args) {}

/**
 * @return {Iterator}
 * @suppress {externsValidation}
 * @override
 */
Array.prototype[Symbol.iterator] = function() {};

// Functions:

/**
 * Returns a new array comprised of this array joined with other array(s)
 * and/or value(s).
 *
 * @param {...*} var_args
 * @return {!Array}
 * @this {*}
 * @nosideeffects
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
 */
Array.prototype.concat = function(var_args) {};

/**
 * Joins all elements of an array into a string.
 *
 * @param {*=} opt_separator Specifies a string to separate each element of the
 *     array. The separator is converted to a string if necessary. If omitted,
 *     the array elements are separated with a comma.
 * @return {string}
 * @this {IArrayLike|string}
 * @nosideeffects
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
 */
Array.prototype.join = function(opt_separator) {};

/**
 * Removes the last element from an array and returns that element.
 *
 * @return {T}
 * @this {IArrayLike}
 * @modifies {this}
 * @template T
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop
 */
Array.prototype.pop = function() {};

// TODO(bradfordcsmith): remove "undefined" from the var_args of push
/**
 * Mutates an array by appending the given elements and returning the new
 * length of the array.
 *
 * @param {...(T|undefined)} var_args
 * @return {number} The new length of the array.
 * @this {IArrayLike}
 * @template T
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
 */
Array.prototype.push = function(var_args) {};

/**
 * Transposes the elements of an array in place: the first array element becomes the
 * last and the last becomes the first. The mutated array is also returned.
 *
 * @return {THIS} A reference to the original modified array.
 * @this {THIS}
 * @template THIS
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
 */
Array.prototype.reverse = function() {};

/**
 * Removes the first element from an array and returns that element. This
 * method changes the length of the array.
 *
 * @this {IArrayLike}
 * @modifies {this}
 * @return {T}
 * @template T
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
 */
Array.prototype.shift = function() {};

/**
 * Extracts a section of an array and returns a new array.
 *
 * @param {?number=} begin Zero-based index at which to begin extraction.
 * @param {?number=} end Zero-based index at which to end extraction.  slice
 *     extracts up to but not including end.
 * @return {!Array}
 * @this {IArrayLike|string}
 * @template T
 * @nosideeffects
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
 */
Array.prototype.slice = function(begin, end) {};

/**
 * Sorts the elements of an array in place.
 *
 * @param {function(T,T):number=} opt_compareFn Specifies a function that
 *     defines the sort order.
 * @this {IArrayLike}
 * @template T
 * @modifies {this}
 * @return {!Array}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
 */
Array.prototype.sort = function(opt_compareFn) {};

/**
 * Changes the content of an array, adding new elements while removing old
 * elements.
 *
 * @param {?number=} index Index at which to start changing the array. If
 *     negative, will begin that many elements from the end.
 * @param {?number=} howMany An integer indicating the number of old array
 *     elements to remove.
 * @param {...T} var_args
 * @return {!Array}
 * @this {IArrayLike}
 * @modifies {this}
 * @template T
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
 */
Array.prototype.splice = function(index, howMany, var_args) {};

/**
 * @return {string}
 * @this {Object}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSource
 */
Array.prototype.toSource;

/**
 * @this {Array}
 * @return {string}
 * @nosideeffects
 * @override
 */
Array.prototype.toString = function() {};

/**
 * Adds one or more elements to the beginning of an array and returns the new
 * length of the array.
 *
 * @param {...*} var_args
 * @return {number} The new length of the array
 * @this {IArrayLike}
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift
 */
Array.prototype.unshift = function(var_args) {};

/**
 * Apply a function simultaneously against two values of the array (from
 * left-to-right) as to reduce it to a single value.
 *
 * @param {?function(?, T, number, !Array) : R} callback
 * @param {*=} opt_initialValue
 * @return {R}
 * @this {IArrayLike|string}
 * @template T,R
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
 */
Array.prototype.reduce = function(callback, opt_initialValue) {};

/**
 * Apply a function simultaneously against two values of the array (from
 * right-to-left) as to reduce it to a single value.
 *
 * @param {?function(?, T, number, !Array) : R} callback
 * @param {*=} opt_initialValue
 * @return {R}
 * @this {IArrayLike|string}
 * @template T,R
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight
 */
Array.prototype.reduceRight = function(callback, opt_initialValue) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !Array): *} callback
 * @param {S=} opt_thisobj
 * @return {boolean}
 * @this {IArrayLike|string}
 * @template T,S
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
 */
Array.prototype.every = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !Array): *} callback
 * @param {S=} opt_thisobj
 * @return {!Array}
 * @this {IArrayLike|string}
 * @template T,S
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
 */
Array.prototype.filter = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !Array): ?} callback
 * @param {S=} opt_thisobj
 * @return {undefined}
 * @this {IArrayLike|string}
 * @template T,S
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
 */
Array.prototype.forEach = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {T} obj
 * @param {number=} opt_fromIndex
 * @return {number}
 * @this {IArrayLike|string}
 * @nosideeffects
 * @template T
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
 */
Array.prototype.indexOf = function(obj, opt_fromIndex) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {T} obj
 * @param {number=} opt_fromIndex
 * @return {number}
 * @this {IArrayLike|string}
 * @nosideeffects
 * @template T
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf
 */
Array.prototype.lastIndexOf = function(obj, opt_fromIndex) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !Array): R} callback
 * @param {S=} opt_thisobj
 * @return {!Array}
 * @this {IArrayLike|string}
 * @template T,S,R
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
 */
Array.prototype.map = function(callback, opt_thisobj) {};

/**
 * Available in ECMAScript 5, Mozilla 1.6+.
 * @param {?function(this:S, T, number, !Array): *} callback
 * @param {S=} opt_thisobj
 * @return {boolean}
 * @this {IArrayLike|string}
 * @template T,S
 * @override
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
 */
Array.prototype.some = function(callback, opt_thisobj) {};

/**
 * @type {number}
 */
Array.prototype.index;

/**
 * @type {?string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/input
 */
Array.prototype.input;

/**
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length
 */
Array.prototype.length;

/**
 * Introduced in 1.8.5.
 * @param {*} arr
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray
 */
Array.isArray = function(arr) {};

/**
 * @constructor
 * @param {*=} opt_value
 * @return {boolean}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean
 */
function Boolean(opt_value) {}

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toSource
 * @override
 */
Boolean.prototype.toSource = function() {};

/**
 * @this {boolean|Boolean}
 * @return {string}
 * @nosideeffects
 * @override
 */
Boolean.prototype.toString = function() {};

/**
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/valueOf
 * @override
 */
Boolean.prototype.valueOf = function() {};

/**
 * @constructor
 * @param {*=} opt_value
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
 */
function Number(opt_value) {}

/**
 * @this {Number|number}
 * @param {number=} opt_fractionDigits
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential
 */
Number.prototype.toExponential = function(opt_fractionDigits) {};

/**
 * @this {Number|number}
 * @param {number=} opt_digits
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
 */
Number.prototype.toFixed = function(opt_digits) {};

/**
 * @this {Number|number}
 * @param {number=} opt_precision
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision
 */
Number.prototype.toPrecision = function(opt_precision) {};

/**
 * Returns a string representing the number.
 * @this {Number|number}
 * @param {(number|Number)=} opt_radix An optional radix.
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
 * @override
 */
Number.prototype.toString = function(opt_radix) {};

// Properties.
/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE
 */
Number.MAX_VALUE;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE
 */
Number.MIN_VALUE;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN
 */
Number.NaN;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY
 */
Number.NEGATIVE_INFINITY;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY
 */
Number.POSITIVE_INFINITY;

/**
 * @constructor
 * @param {number|string|bigint} arg
 * @return {bigint}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
 */
function BigInt(arg) {}

/**
 * Wraps a BigInt value to a signed integer between -2^(width-1) and
 * 2^(width-1)-1.
 * @param {number} width
 * @param {bigint} bigint
 * @return {bigint}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asIntN
 */
BigInt.asIntN = function(width, bigint) {};

/**
 * Wraps a BigInt value to an unsigned integer between 0 and (2^width)-1.
 * @param {number} width
 * @param {bigint} bigint
 * @return {bigint}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asUintN
 */
BigInt.asUintN = function(width, bigint) {};

/**
 * Returns a string with a language-sensitive representation of this BigInt.
 * @param {string|!Array=} locales
 * @param {Object=} options
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString
 * @override
 */
BigInt.prototype.toLocaleString = function(locales, options) {};

/**
 * Returns a string representing the specified BigInt object. The trailing "n"
 * is not part of the string.
 * @this {BigInt|bigint}
 * @param {number=} radix
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/toString
 * @override
 */
BigInt.prototype.toString = function(radix) {};

/**
 * Returns the wrapped primitive value of a BigInt object.
 * @return {bigint}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/valueOf
 * @override
 */
BigInt.prototype.valueOf = function() {};


/**
 * @const
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math
 */
var Math = {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/abs
 */
Math.abs = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acos
 */
Math.acos = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asin
 */
Math.asin = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan
 */
Math.atan = function(x) {};

/**
 * @param {?} y
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2
 */
Math.atan2 = function(y, x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil
 */
Math.ceil = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cos
 */
Math.cos = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/exp
 */
Math.exp = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
 */
Math.floor = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log
 */
Math.log = function(x) {};

/**
 * @param {...?} var_args
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max
 */
Math.max = function(var_args) {};

/**
 * @param {...?} var_args
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min
 */
Math.min = function(var_args) {};

/**
 * @param {?} x
 * @param {?} y
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow
 */
Math.pow = function(x, y) {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
 */
Math.random = function() {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
 */
Math.round = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sin
 */
Math.sin = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt
 */
Math.sqrt = function(x) {};

/**
 * @param {?} x
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tan
 */
Math.tan = function(x) {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/toSource
 */
Math.toSource = function() {};

// Properties:

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/E
 */
Math.E;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2
 */
Math.LN2;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10
 */
Math.LN10;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E
 */
Math.LOG2E;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E
 */
Math.LOG10E;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI
 */
Math.PI;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2
 */
Math.SQRT1_2;

/**
 * @const {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2
 */
Math.SQRT2;


/**
 * @param {?=} opt_yr_num
 * @param {?=} opt_mo_num
 * @param {?=} opt_day_num
 * @param {?=} opt_hr_num
 * @param {?=} opt_min_num
 * @param {?=} opt_sec_num
 * @param {?=} opt_ms_num
 * @constructor
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
 */
function Date(opt_yr_num, opt_mo_num, opt_day_num, opt_hr_num, opt_min_num,
    opt_sec_num, opt_ms_num) {}

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
 */
Date.now = function() {};

/**
 * Parses a string representation of a date, and returns the number
 * of milliseconds since January 1, 1970, 00:00:00, local time.
 * @param {*} date
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
 */
Date.parse = function(date) {};

/**
 * @param {number} year
 * @param {number=} opt_month
 * @param {number=} opt_date
 * @param {number=} opt_hours
 * @param {number=} opt_minute
 * @param {number=} opt_second
 * @param {number=} opt_ms
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC
 */
Date.UTC = function(year, opt_month,
                    opt_date, opt_hours, opt_minute, opt_second, opt_ms) {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate
 */
Date.prototype.getDate = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay
 */
Date.prototype.getDay = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth
 */
Date.prototype.getMonth = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear
 */
Date.prototype.getFullYear = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear
 */
Date.prototype.getYear = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours
 */
Date.prototype.getHours = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes
 */
Date.prototype.getMinutes = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds
 */
Date.prototype.getSeconds = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds
 */
Date.prototype.getMilliseconds = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime
 */
Date.prototype.getTime = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset
 */
Date.prototype.getTimezoneOffset = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDate
 */
Date.prototype.getUTCDate = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDay
 */
Date.prototype.getUTCDay = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth
 */
Date.prototype.getUTCMonth = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear
 */
Date.prototype.getUTCFullYear = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours
 */
Date.prototype.getUTCHours = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes
 */
Date.prototype.getUTCMinutes = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds
 */
Date.prototype.getUTCSeconds = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds
 */
Date.prototype.getUTCMilliseconds = function() {};

/**
 * Sets the day of the month for a specified date according to local time.
 *
 * @param {number} dayValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate
 * @return {number}
 */
Date.prototype.setDate = function(dayValue) {};

/**
 * Set the month for a specified date according to local time.
 *
 * @param {number} monthValue
 * @param {number=} opt_dayValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMonth
 * @return {number}
 */
Date.prototype.setMonth = function(monthValue, opt_dayValue) {};

/**
 * Sets the full year for a specified date according to local time.
 *
 * @param {number} yearValue
 * @param {number=} opt_monthValue
 * @param {number=} opt_dayValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear
 * @return {number}
 */
Date.prototype.setFullYear =
    function(yearValue, opt_monthValue, opt_dayValue) {};

/**
 * Sets the year for a specified date according to local time.
 *
 * @param {number} yearValue
 * @deprecated
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setYear
 * @return {number}
 */
Date.prototype.setYear = function(yearValue) {};

/**
 * Sets the hours for a specified date according to local time.
 *
 * @param {number} hoursValue
 * @param {number=} opt_minutesValue
 * @param {number=} opt_secondsValue
 * @param {number=} opt_msValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours
 * @return {number}
 */
Date.prototype.setHours = function(hoursValue, opt_minutesValue,
                                   opt_secondsValue, opt_msValue) {};

/**
 * Sets the minutes for a specified date according to local time.
 *
 * @param {number} minutesValue
 * @param {number=} opt_secondsValue
 * @param {number=} opt_msValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMinutes
 * @return {number}
 */
Date.prototype.setMinutes =
    function(minutesValue, opt_secondsValue, opt_msValue) {};

/**
 * Sets the seconds for a specified date according to local time.
 *
 * @param {number} secondsValue
 * @param {number=} opt_msValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setSeconds
 * @return {number}
 */
Date.prototype.setSeconds = function(secondsValue, opt_msValue) {};

/**
 * Sets the milliseconds for a specified date according to local time.
 *
 * @param {number} millisecondsValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds
 * @return {number}
 */
Date.prototype.setMilliseconds = function(millisecondsValue) {};

/**
 * Sets the Date object to the time represented by a number of milliseconds
 * since January 1, 1970, 00:00:00 UTC.
 *
 * @param {number} timeValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setTime
 * @return {number}
 */
Date.prototype.setTime = function(timeValue) {};

/**
 * Sets the day of the month for a specified date according to universal time.
 *
 * @param {number} dayValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCDate
 * @return {number}
 */
Date.prototype.setUTCDate = function(dayValue) {};

/**
 * Sets the month for a specified date according to universal time.
 *
 * @param {number} monthValue
 * @param {number=} opt_dayValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth
 * @return {number}
 */
Date.prototype.setUTCMonth = function(monthValue, opt_dayValue) {};

/**
 * Sets the full year for a specified date according to universal time.
 *
 * @param {number} yearValue
 * @param {number=} opt_monthValue
 * @param {number=} opt_dayValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear
 * @return {number}
 */
Date.prototype.setUTCFullYear = function(yearValue, opt_monthValue,
                                         opt_dayValue) {};

/**
 * Sets the hour for a specified date according to universal time.
 *
 * @param {number} hoursValue
 * @param {number=} opt_minutesValue
 * @param {number=} opt_secondsValue
 * @param {number=} opt_msValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours
 * @return {number}
 */
Date.prototype.setUTCHours = function(hoursValue, opt_minutesValue,
                                      opt_secondsValue, opt_msValue) {};

/**
 * Sets the minutes for a specified date according to universal time.
 *
 * @param {number} minutesValue
 * @param {number=} opt_secondsValue
 * @param {number=} opt_msValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes
 * @return {number}
 */
Date.prototype.setUTCMinutes = function(minutesValue, opt_secondsValue,
                                        opt_msValue) {};


/**
 * Sets the seconds for a specified date according to universal time.
 *
 * @param {number} secondsValue
 * @param {number=} opt_msValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds
 * @return {number}
 */
Date.prototype.setUTCSeconds = function(secondsValue, opt_msValue) {};

/**
 * Sets the milliseconds for a specified date according to universal time.
 *
 * @param {number} millisecondsValue
 * @modifies {this}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds
 * @return {number}
 */
Date.prototype.setUTCMilliseconds = function(millisecondsValue) {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toSource
 * @override
 */
Date.prototype.toSource = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString
 */
Date.prototype.toDateString = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toGMTString
 */
Date.prototype.toGMTString = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString
 */
Date.prototype.toTimeString = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString
 */
Date.prototype.toUTCString = function() {};

/**
 * @param {(string|Array)=} opt_locales
 * @param {Object=} opt_options
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
 */
Date.prototype.toLocaleDateString = function(opt_locales, opt_options) {};

/**
 * @param {string} formatString
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat
 */
Date.prototype.toLocaleFormat = function(formatString) {};

/**
 * @param {string|Array=} opt_locales
 * @param {Object=} opt_options
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
 * @see http://www.ecma-international.org/ecma-402/1.0/#sec-13.3.1
 * @override
 */
Date.prototype.toLocaleString = function(opt_locales, opt_options) {};

/**
 * @param {(string|Array)=} opt_locales
 * @param {Object=} opt_options
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString
 */
Date.prototype.toLocaleTimeString = function(opt_locales, opt_options) {};

/**
 * @this {Date}
 * @return {string}
 * @nosideeffects
 * @override
 */
Date.prototype.toString = function() {};

/**
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf
 */
Date.prototype.valueOf;

/**
 * @constructor
 * @implements {Iterable}
 * @param {*=} opt_str
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
 */
function String(opt_str) {}

/**
 * @param {...number} var_args
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
 */
String.fromCharCode = function(var_args) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/anchor
 */
String.prototype.anchor = function() {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/big
 */
String.prototype.big = function() {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/blink
 */
String.prototype.blink = function() {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/bold
 */
String.prototype.bold = function() {};

/**
 * Returns the specified character from a string.
 *
 * @this {String|string}
 * @param {number} index
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt
 */
String.prototype.charAt = function(index) {};

/**
 * Returns a number indicating the Unicode value of the character at the given
 * index.
 *
 * @this {String|string}
 * @param {number=} opt_index
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
 */
String.prototype.charCodeAt = function(opt_index) {};

/**
 * Combines the text of two or more strings and returns a new string.
 *
 * @this {String|string}
 * @param {...*} var_args
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat
 */
String.prototype.concat = function(var_args) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fixed
 */
String.prototype.fixed = function() {};

/**
 * @this {String|string}
 * @param {string} color
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fontcolor
 */
String.prototype.fontcolor = function(color) {};

/**
 * @this {String|string}
 * @param {number} size
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fontsize
 */
String.prototype.fontsize = function(size) {};

/**
 * Returns the index within the calling String object of the first occurrence
 * of the specified value, starting the search at fromIndex, returns -1 if the
 * value is not found.
 *
 * @this {String|string}
 * @param {string|null} searchValue
 * @param {(number|null)=} opt_fromIndex
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
 */
String.prototype.indexOf = function(searchValue, opt_fromIndex) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/italics
 */
String.prototype.italics = function() {};

/**
 * Returns the index within the calling String object of the last occurrence of
 * the specified value, or -1 if not found. The calling string is searched
 * backward, starting at fromIndex.
 *
 * @this {String|string}
 * @param {string|null} searchValue
 * @param {(number|null)=} opt_fromIndex
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf
 */
String.prototype.lastIndexOf = function(searchValue, opt_fromIndex) {};

/**
 * @this {String|string}
 * @param {string} hrefAttribute
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/link
 */
String.prototype.link = function(hrefAttribute) {};

/**
 * Returns a number indicating whether a reference string comes before or after
 * or is the same as the given string in sort order.
 *
 * @this {*}
 * @param {?string} compareString
 * @param {string|Array=} locales
 * @param {Object=} options
 * @return {number}
 * @nosideeffects
 * @see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/String/localeCompare
 * @see http://www.ecma-international.org/ecma-402/1.0/#sec-13.1.1
 */
String.prototype.localeCompare = function(compareString, locales, options) {};

/**
 * Used to retrieve the matches when matching a string against a regular
 * expression.
 *
 * @this {String|string}
 * @param {*} regexp
 * @return {RegExpResult} This should really return an Array with a few
 *     special properties, but we do not have a good way to model this in
 *     our type system. Also see Regexp.prototype.exec.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
 */
String.prototype.match = function(regexp) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/quote
 */
String.prototype.quote = function() {};

/**
 * Finds a match between a regular expression and a string, and replaces the
 * matched substring with a new substring.
 *
 * This may have side-effects if the replacement function has side-effects.
 *
 * @this {String|string}
 * @param {RegExp|string} pattern
 * @param {?string|function(string, ...?):*} replacement
 * @return {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
 */
String.prototype.replace = function(pattern, replacement) {};

/**
 * Executes the search for a match between a regular expression and this String
 * object.
 *
 * @this {String|string}
 * @param {RegExp|string} pattern
 * @return {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search
 */
String.prototype.search = function(pattern) {};

/**
 * @this {String|string}
 * @param {number} begin
 * @param {number=} opt_end
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice
 */
String.prototype.slice = function(begin, opt_end) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/small
 */
String.prototype.small = function() {};

/**
 * @this {String|string}
 * @param {*=} opt_separator
 * @param {number=} opt_limit
 * @return {!Array}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
 */
String.prototype.split = function(opt_separator, opt_limit) {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/strike
 */
String.prototype.strike = function() {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/sub
 */
String.prototype.sub = function() {};

/**
 * @this {String|string}
 * @param {number} start
 * @param {number=} opt_length
 * @return {string} The specified substring.
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
 */
String.prototype.substr = function(start, opt_length) {};

/**
 * @this {String|string}
 * @param {number} start
 * @param {number=} opt_end
 * @return {string} The specified substring.
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring
 */
String.prototype.substring = function(start, opt_end) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/sup
 */
String.prototype.sup = function() {};

/**
 * @this {String|string}
 * @param {(string|Array)=} opt_locales
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase
 */
String.prototype.toLocaleUpperCase = function(opt_locales) {};

/**
 * @this {String|string}
 * @param {(string|Array)=} opt_locales
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase
 */
String.prototype.toLocaleLowerCase = function(opt_locales) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase
 */
String.prototype.toLowerCase = function() {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase
 */
String.prototype.toUpperCase = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toSource
 * @override
 */
String.prototype.toSource = function() {};

/**
 * @this {string|String}
 * @return {string}
 * @nosideeffects
 * @override
 */
String.prototype.toString = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/valueOf
 */
String.prototype.valueOf;

/**
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length
 */
String.prototype.length;

/**
 * @constructor
 * @param {*=} opt_pattern
 * @param {*=} opt_flags
 * @return {!RegExp}
 * @throws {SyntaxError} if opt_pattern is an invalid pattern.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
function RegExp(opt_pattern, opt_flags) {}

/**
 * @param {*} pattern
 * @param {*=} opt_flags
 * @return {void}
 * @modifies {this}
 * @deprecated
 * @see http://msdn.microsoft.com/en-us/library/x9cswe0z(v=VS.85).aspx
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/compile
 */
RegExp.prototype.compile = function(pattern, opt_flags) {};

/**
 * @param {*} str The string to search.
 * @return {?RegExpResult}
 * @see http://msdn.microsoft.com/en-us/library/z908hy33(VS.85).aspx
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
 */
RegExp.prototype.exec = function(str) {};

/**
 * @param {*} str The string to search.
 * @return {boolean} Whether the string was matched.
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
 */
RegExp.prototype.test = function(str) {};

/**
 * @this {RegExp}
 * @return {string}
 * @nosideeffects
 * @override
 */
RegExp.prototype.toString = function() {};

/**
 * @constructor
 * @extends {Array}
 */
var RegExpResult = function() {};


/** @type {number} */
RegExpResult.prototype.index;


/** @type {string} */
RegExpResult.prototype.input;


/** @type {number} */
RegExpResult.prototype.length;


/**
 * Not actually part of ES3; was added in 2018.
 * https://github.com/tc39/proposal-regexp-named-groups
 *
 * @type {!Object}
 */
RegExpResult.prototype.groups;


/**
 * Not actually part of ES3; was added in 2022.
 * https://github.com/tc39/proposal-regexp-match-indices
 *
 * @constructor
 * @extends {Array|undefined>}
 */
var RegExpResultIndices = function() {};


/** @type {!Object|undefined>} */
RegExpResultIndices.prototype.groups;


/** @type {!RegExpResultIndices} */
RegExpResult.prototype.indices;


// Constructor properties:

/**
 * The string against which the last regexp was matched.
 * @type {string}
 * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_input.html
 */
RegExp.input;

/**
 * The last matched characters.
 * @type {string}
 * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_lastMatch.html
 */
RegExp.lastMatch;

/**
 * The last matched parenthesized substring, if any.
 * @type {string}
 * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_lastParen.html
 */
RegExp.lastParen;

/**
 * The substring of the input up to the characters most recently matched.
 * @type {string}
 * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_leftContext.html
 */
RegExp.leftContext;

/**
 * The substring of the input after the characters most recently matched.
 * @type {string}
 * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_rightContext.html
 */
RegExp.rightContext;

/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$1;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$2;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$3;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$4;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$5;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$6;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$7;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$8;
/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
 */
RegExp.$9;

// Prototype properties:

/**
 * Whether to test the regular expression against all possible matches
 * in a string, or only against the first.
 * @type {boolean}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global
 */
RegExp.prototype.global;

/**
 * The dotAll property indicates whether or not the "s" flag is used with the regular expression.
 *
 * @type {boolean}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/dotAll
 */
RegExp.prototype.dotAll;

/**
 * Whether to ignore case while attempting a match in a string.
 * @type {boolean}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase
 */
RegExp.prototype.ignoreCase;

/**
 * The index at which to start the next match.
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex
 */
RegExp.prototype.lastIndex;

/**
 * Whether or not the regular expression uses lastIndex.
 * @type {boolean}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/sticky
 */
RegExp.prototype.sticky;

/**
 * Whether or not to search in strings across multiple lines.
 * @type {boolean}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline
 */
RegExp.prototype.multiline;

/**
 * The text of the pattern.
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source
 */
RegExp.prototype.source;

/**
 * The flags the regex was created with.
 * @type {string}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/flags
 */
RegExp.prototype.flags;

/**
 * The unicode property indicates whether or not the "u" flag is used with a regular expression.
 *
 * @type {boolean}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicode
 */
RegExp.prototype.unicode;

/**
 * @constructor
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!Error}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
 */
function Error(message, fileNameOrOptions, line) {}


/**
 * Chrome/v8 specific, altering the maximum depth of the stack trace
 * (10 by default).
 * @type {number}
 * @see http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
 */
Error.stackTraceLimit;


/**
 * Chrome/v8 specific, adds a stack trace to the error object. The optional
 * constructorOpt parameter allows you to pass in a function value. When
 * collecting the stack trace all frames above the topmost call to this
 * function, including that call, will be left out of the stack trace.
 * @param {Object} error The object to add the stack trace to.
 * @param {Function=} opt_constructor A function in the stack trace
 * @see http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
 * @return {undefined}
 */
Error.captureStackTrace = function(error, opt_constructor){};

/**
 * New in ES 2022, adds a cause to the error which is useful for chaining errors
 * @type {?Error}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause
 */
Error.prototype.cause;


/**
 * IE-only.
 * @type {string}
 * @see http://msdn.microsoft.com/en-us/library/2w6a45b5.aspx
 */
Error.prototype.description;


/**
 * Mozilla-only.
 * @type {number}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/lineNumber
 */
Error.prototype.lineNumber;

/**
 * Mozilla-only
 * @type {string}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/fileName
 */
Error.prototype.fileName;

/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name
 */
Error.prototype.name;

/**
 * @type {string}
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/message
 */
Error.prototype.message;

/**
 * Doesn't seem to exist, but closure/debug.js references it.
 */
Error.prototype.sourceURL;

/** @type {string} */
Error.prototype.stack;


/**
 * @constructor
 * @extends {Error}
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!EvalError}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError
 */
function EvalError(message, fileNameOrOptions, line) {}

/**
 * @constructor
 * @extends {Error}
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!RangeError}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError
 */
function RangeError(message, fileNameOrOptions, line) {}

/**
 * @constructor
 * @extends {Error}
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!ReferenceError}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError
 */
function ReferenceError(message, fileNameOrOptions, line) {}

/**
 * @constructor
 * @extends {Error}
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!SyntaxError}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError
 */
function SyntaxError(message, fileNameOrOptions, line) {}

/**
 * @constructor
 * @extends {Error}
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!TypeError}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError
 */
function TypeError(message, fileNameOrOptions, line) {}

/**
 * @constructor
 * @extends {Error}
 * @param {*=} message
 * @param {*=} fileNameOrOptions
 * @param {*=} line
 * @return {!URIError}
 * @nosideeffects
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError
 */
function URIError(message, fileNameOrOptions, line) {}

// JScript extensions.
// @see http://msdn.microsoft.com/en-us/library/894hfyb4(VS.80).aspx

/**
 * @see http://msdn.microsoft.com/en-us/library/7sw4ddf8.aspx
 * @type {function(new:?, string, string=)}
 * @deprecated
 */
function ActiveXObject(progId, opt_location) {}
(0??8?
?<
externs.zip//es5.js?;/*
 * Copyright 2009 The Closure Compiler Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview Definitions for ECMAScript 5.
 * @see https://es5.github.io/
 * @externs
 */


/**
 * @param {?Object|undefined} selfObj Specifies the object to which |this|
 *     should point when the function is run. If the value is null or undefined,
 *     it will default to the global object.
 * @param {...*} var_args Additional arguments that are partially
 *     applied to fn.
 * @return {!Function} A partially-applied form of the Function on which
 *     bind() was invoked as a method.
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
 */
Function.prototype.bind = function(selfObj, var_args) {};


/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim
 */
String.prototype.trim = function() {};


/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft
 */
String.prototype.trimLeft = function() {};


/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight
 */
String.prototype.trimRight = function() {};


/**
 * A object property descriptor used by Object.create, Object.defineProperty,
 * Object.defineProperties, Object.getOwnPropertyDescriptor.
 *
 * @record
 * @template THIS
 */
function ObjectPropertyDescriptor() {}

/** @type {(*|undefined)} */
ObjectPropertyDescriptor.prototype.value;

/** @type {(function(this: THIS):?)|undefined} */
ObjectPropertyDescriptor.prototype.get;

/** @type {(function(this: THIS, ?):void)|undefined} */
ObjectPropertyDescriptor.prototype.set;

/** @type {boolean|undefined} */
ObjectPropertyDescriptor.prototype.writable;

/** @type {boolean|undefined} */
ObjectPropertyDescriptor.prototype.enumerable;

/** @type {boolean|undefined} */
ObjectPropertyDescriptor.prototype.configurable;


/**
 * @param {?Object} proto
 * @param {?Object>=} properties
 *     A map of ObjectPropertyDescriptors.
 * @return {!Object}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create
 */
Object.create = function(proto, properties) {};


/**
 * @template T
 * @param {T} obj
 * @param {string|symbol} prop
 * @param {!ObjectPropertyDescriptor} descriptor A ObjectPropertyDescriptor.
 * @return {T}
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty
 */
Object.defineProperty = function(obj, prop, descriptor) {};


/**
 * @template T
 * @param {T} obj
 * @param {!Object>} props A map of
 *     ObjectPropertyDescriptors.
 * @return {T}
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties
 */
Object.defineProperties = function(obj, props) {};


/**
 * @param {T} obj
 * @param {string|symbol} prop
 * @return {!ObjectPropertyDescriptor|undefined}
 * @nosideeffects
 * @template T
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor
 */
Object.getOwnPropertyDescriptor = function(obj, prop) {};


/**
 * @param {!Object} obj
 * @return {!Array}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys
 */
Object.keys = function(obj) {};


/**
 * @param {!Object} obj
 * @return {!Array}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames
 */
Object.getOwnPropertyNames = function(obj) {};


/**
 * @param {!Object} obj
 * @return {Object}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf
 */
Object.getPrototypeOf = function(obj) {};


/**
 * @param {T} obj
 * @return {T}
 * @template T
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions
 */
Object.preventExtensions = function(obj) {};


/**
 * @param {T} obj
 * @return {T}
 * @template T
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal
 */
Object.seal = function(obj) {};


/**
 * @param {T} obj
 * @return {T}
 * @template T
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze
 */
Object.freeze = function(obj) {};


/**
 * @param {!Object} obj
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible
 */
Object.isExtensible = function(obj) {};


/**
 * @param {!Object} obj
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed
 */
Object.isSealed = function(obj) {};


/**
 * @param {!Object} obj
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen
 */
Object.isFrozen = function(obj) {};


/**
 * We acknowledge that this function does not exist on the `Object.prototype`
 * and is declared in this file for other reasons.
 *
 * When `toJSON` is defined as a property on an object it can be used in
 * conjunction with the JSON.stringify() function.
 *
 * It is defined here to:
 * (1) Prevent the compiler from renaming the property on internal classes.
 * (2) Enforce that the signature is correct for users defining it.
 *
 * @param {string=} opt_key The JSON key for this object.
 * @return {*} The serializable representation of this object. Note that this
 *     need not be a string. See http://goo.gl/PEUvs.
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()_behavior
 */
Object.prototype.toJSON = function(opt_key) {};


/**
 * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString
 * @return {string}
 */
Date.prototype.toISOString = function() {};


/**
 * @param {*=} opt_ignoredKey
 * @return {string}
 * @override
 */
Date.prototype.toJSON = function(opt_ignoredKey) {};


/**
 * A fake type to model the JSON object.
 * @constructor
 */
function JSONType() {}


/**
 * @param {string} jsonStr The string to parse.
 * @param {(function(this:?, string, *) : *)=} opt_reviver
 * @return {*} The JSON object.
 * @this {?} this doesn't require a this type in practice
 * @throws {Error}
 */
JSONType.prototype.parse = function(jsonStr, opt_reviver) {};


/**
 * @param {*} jsonObj Input object.
 * @param {(Array|(function(this:?, string, *) : *)|null)=} opt_replacer
 * @param {(number|string)=} opt_space
 * @return {string} JSON string which represents jsonObj.
 * @this {?} this doesn't require a this type in practice
 * @throws {Error}
 */
JSONType.prototype.stringify = function(jsonObj, opt_replacer, opt_space) {};


/**
 * @type {!JSONType}
 * @suppress {duplicate}
 */
var JSON;
(0?;8?
Γ
externs.zip//es6.js??/*
 * Copyright 2014 The Closure Compiler Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview Definitions for ECMAScript 6 and later.
 * @see https://tc39.github.io/ecma262/
 * @see https://www.khronos.org/registry/typedarray/specs/latest/
 * @externs
 */

/**
 * Some es6 definitions:
 * Symbol, IIterableResult, Iterable, IteratorIterable, Iterator,
 * IteratorIterable moved to es3 file, because some base type requires them, and
 * we want to keep them together. If you add new externs related to those types
 * define them together in the es3 file.
 */

/**
 * TODO(b/142881197): TReturn and TNext are not yet used for anything.
 * https://github.com/google/closure-compiler/issues/3489
 * @interface
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator
 * @extends {IteratorIterable}
 * @template T, TReturn, TNext
 */
function Generator() {}

/**
 * @param {?=} opt_value
 * @return {!IIterableResult}
 * @override
 */
Generator.prototype.next = function(opt_value) {};

/**
 * @param {T} value
 * @return {!IIterableResult}
 */
Generator.prototype.return = function(value) {};

/**
 * @param {?} exception
 * @return {!IIterableResult}
 */
Generator.prototype.throw = function(exception) {};



/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.log10 = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.log2 = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.log1p = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.expm1 = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.cosh = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.sinh = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.tanh = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.acosh = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.asinh = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.atanh = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.trunc = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.sign = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 */
Math.cbrt = function(value) {};

/**
 * @param {...number} var_args
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/hypot
 */
Math.hypot = function(var_args) {};

/**
 * @param {number} value1
 * @param {number} value2
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
 */
Math.imul = function(value1, value2) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32
 */
Math.clz32 = function(value) {};

/**
 * @param {number} value
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround
 */
Math.fround = function(value) {};


/**
 * @param {*} a
 * @param {*} b
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
 */
Object.is = function(a, b) {};


/**
 * Returns a language-sensitive string representation of this number.
 * @param {(string|!Array)=} opt_locales
 * @param {Object=} opt_options
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
 * @see http://www.ecma-international.org/ecma-402/1.0/#sec-13.2.1
 * @override
 */
Number.prototype.toLocaleString = function(opt_locales, opt_options) {};

/**
 * Returns the wrapped primitive value of this Number object.
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/valueOf
 * @override
 */
Number.prototype.valueOf = function() {};

/**
 * NOTE: this is an ES2022 extern.
 * @param {number} index
 * @return {string}
 * @this {String|string}
 * @nosideeffects
 * @see https://tc39.github.io/ecma262/#sec-string.prototype.at
 */
String.prototype.at = function(index) {};

/**
 * Pads the end of the string so that it reaches the given length.
 * NOTE: this is an ES2017 (ES8) extern.
 *
 * @param {number} targetLength The target length.
 * @param {string=} opt_padString The string to pad with.
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd
 */
String.prototype.padEnd = function(targetLength, opt_padString) {};

/**
 * Pads the start of the string so that it reaches the given length.
 * NOTE: this is an ES2017 (ES8) extern.
 *
 * @param {number} targetLength The target length.
 * @param {string=} opt_padString The string to pad with.
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
 */
String.prototype.padStart = function(targetLength, opt_padString) {};

/**
 * Repeats the string the given number of times.
 *
 * @param {number} count The number of times the string is repeated.
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat
 */
String.prototype.repeat = function(count) {};

/**
 * @constructor
 * @extends {Array}
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-gettemplateobject
 */
var ITemplateArray = function() {};

/**
 * @type {!Array}
 */
ITemplateArray.prototype.raw;

/**
 * @param {!ITemplateArray} template
 * @param {...*} var_args Substitution values.
 * @return {string}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw
 */
String.raw = function(template, var_args) {};


/**
 * @param {number} codePoint
 * @param {...number} var_args Additional codepoints
 * @return {string}
 */
String.fromCodePoint = function(codePoint, var_args) {};


/**
 * @param {number} index
 * @return {number}
 * @nosideeffects
 */
String.prototype.codePointAt = function(index) {};


/**
 * @param {string=} opt_form
 * @return {string}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
 */
String.prototype.normalize = function(opt_form) {};


/**
 * @param {string} searchString
 * @param {number=} opt_position
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
 */
String.prototype.startsWith = function(searchString, opt_position) {};

/**
 * @param {!RegExp|string} searchValue
 * @param {?string|function(string, ...?):*} replacement
 * @return {string}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
 */
String.prototype.replaceAll = function(searchValue, replacement) {};

/**
 * @param {string} searchString
 * @param {number=} opt_position
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
 */
String.prototype.endsWith = function(searchString, opt_position) {};

/**
 * @param {string} searchString
 * @param {number=} opt_position
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
 */
String.prototype.includes = function(searchString, opt_position) {};

/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart
 */
String.prototype.trimStart = function() {};


/**
 * @this {String|string}
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd
 */
String.prototype.trimEnd = function() {};


/**
 * @this {String|string}
 * @param {!RegExp|string} regexp
 * @return {!IteratorIterable}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll
 */
String.prototype.matchAll = function(regexp) {};


/**
 * @see http://dev.w3.org/html5/postmsg/
 * @interface
 */
function Transferable() {}

/**
 * @param {number} length The length in bytes
 * @constructor
 * @throws {Error}
 * @implements {Transferable}
 */
function ArrayBuffer(length) {}

/** @type {number} */
ArrayBuffer.prototype.byteLength;

/**
 * @param {number} begin
 * @param {number=} opt_end
 * @return {!ArrayBuffer}
 * @nosideeffects
 */
ArrayBuffer.prototype.slice = function(begin, opt_end) {};

/**
 * @param {*} arg
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView
 */
ArrayBuffer.isView = function(arg) {};


/**
 * @constructor
 */
function ArrayBufferView() {}

/** @type {!ArrayBuffer} */
ArrayBufferView.prototype.buffer;

/** @type {number} */
ArrayBufferView.prototype.byteOffset;

/** @type {number} */
ArrayBufferView.prototype.byteLength;


/**
 * @param {number} length The length in bytes
 * @constructor
 * @throws {Error}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
 */
function SharedArrayBuffer(length) {}

/** @type {number} */
SharedArrayBuffer.prototype.byteLength;

/**
 * @param {number=} begin
 * @param {number=} end
 * @return {!SharedArrayBuffer}
 * @nosideeffects
 */
SharedArrayBuffer.prototype.slice = function(begin, end) {};


/**
 * @typedef {!ArrayBuffer|!ArrayBufferView}
 */
var BufferSource;


/**
 * @constructor
 * @implements {IArrayLike}
 * @implements {Iterable}
 * @extends {ArrayBufferView}
 */
function TypedArray() {};

/** @const {number} */
TypedArray.prototype.BYTES_PER_ELEMENT;

/**
 * NOTE: this is an ES2022 extern.
 * @param {number} index
 * @return {(number|undefined)}
 * @this {THIS}
 * @template THIS
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/at
 */
TypedArray.prototype.at = function(index) {};

/**
 * @param {number} target
 * @param {number} start
 * @param {number=} opt_end
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin
 */
TypedArray.prototype.copyWithin = function(target, start, opt_end) {};

/**
 * @return {!IteratorIterable>}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries
 */
TypedArray.prototype.entries = function() {};

/**
 * @param {function(this:S, number, number, !TypedArray) : *} callback
 * @param {S=} opt_thisArg
 * @return {boolean}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/every
 */
TypedArray.prototype.every = function(callback, opt_thisArg) {};

/**
 * @param {number} value
 * @param {number=} opt_begin
 * @param {number=} opt_end
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/fill
 */
TypedArray.prototype.fill = function(value, opt_begin, opt_end) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : *} callback
 * @param {S=} opt_thisArg
 * @return {THIS}
 * @this {THIS}
 * @template THIS,S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/filter
 */
TypedArray.prototype.filter = function(callback, opt_thisArg) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : *} callback
 * @param {S=} opt_thisArg
 * @return {(number|undefined)}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/find
 */
TypedArray.prototype.find = function(callback, opt_thisArg) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : *} callback
 * @param {S=} opt_thisArg
 * @return {number}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex
 */
TypedArray.prototype.findIndex = function(callback, opt_thisArg) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : boolean} callback
 * @param {S=} opt_thisArg
 * @return {(number|undefined)}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findLast
 */
TypedArray.prototype.findLast = function(callback, opt_thisArg) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : boolean} callback
 * @param {S=} opt_thisArg
 * @return {number}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findLastIndex
 */
TypedArray.prototype.findLastIndex = function(callback, opt_thisArg) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : ?} callback
 * @param {S=} opt_thisArg
 * @return {undefined}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/forEach
 */
TypedArray.prototype.forEach = function(callback, opt_thisArg) {};

/**
 * NOTE: this is an ES2016 (ES7) extern.
 * @param {number} searchElement
 * @param {number=} opt_fromIndex
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/includes
 */
TypedArray.prototype.includes = function(searchElement, opt_fromIndex) {};

/**
 * @param {number} searchElement
 * @param {number=} opt_fromIndex
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/indexOf
 */
TypedArray.prototype.indexOf = function(searchElement, opt_fromIndex) {};

/**
 * @param {string=} opt_separator
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join
 */
TypedArray.prototype.join = function(opt_separator) {};

/**
 * @return {!IteratorIterable}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/keys
 */
TypedArray.prototype.keys = function() {};

/**
 * @param {number} searchElement
 * @param {number=} opt_fromIndex
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/lastIndexOf
 */
TypedArray.prototype.lastIndexOf = function(searchElement, opt_fromIndex) {};

/** @type {number} */
TypedArray.prototype.length;

/**
 * @param {function(this:S, number, number, !TypedArray) : number} callback
 * @param {S=} opt_thisArg
 * @return {THIS}
 * @this {THIS}
 * @template THIS,S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/map
 */
TypedArray.prototype.map = function(callback, opt_thisArg) {};

/**
 * @param {function((number|INIT|RET), number, number, !TypedArray) : RET}
 *     callback
 * @param {INIT=} opt_initialValue
 * @return {RET}
 * @template INIT,RET
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce
 */
TypedArray.prototype.reduce = function(callback, opt_initialValue) {};

/**
 * @param {function((number|INIT|RET), number, number, !TypedArray) : RET}
 *     callback
 * @param {INIT=} opt_initialValue
 * @return {RET}
 * @template INIT,RET
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduceRight
 */
TypedArray.prototype.reduceRight = function(callback, opt_initialValue) {};

/**
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reverse
 */
TypedArray.prototype.reverse = function() {};

/**
 * @param {!ArrayBufferView|!Array} array
 * @param {number=} opt_offset
 * @return {undefined}
 * @throws {!RangeError}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set
 */
TypedArray.prototype.set = function(array, opt_offset) {};

/**
 * @param {number=} opt_begin
 * @param {number=} opt_end
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice
 */
TypedArray.prototype.slice = function(opt_begin, opt_end) {};

/**
 * @param {function(this:S, number, number, !TypedArray) : *} callback
 * @param {S=} opt_thisArg
 * @return {boolean}
 * @template S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/some
 */
TypedArray.prototype.some = function(callback, opt_thisArg) {};

/**
 * @param {(function(number, number) : number)=} opt_compareFunction
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/sort
 */
TypedArray.prototype.sort = function(opt_compareFunction) {};

/**
 * @param {number} begin
 * @param {number=} opt_end
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray
 */
TypedArray.prototype.subarray = function(begin, opt_end) {};

/**
 * @return {!IteratorIterable}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/values
 */
TypedArray.prototype.values = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/toLocaleString
 * @override
 */
TypedArray.prototype.toLocaleString = function() {};

/**
 * @return {string}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/toString
 * @override
 */
TypedArray.prototype.toString = function() {};

/** @override */
TypedArray.prototype[Symbol.iterator] = function() {};

/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments} If the user passes a backing array, then indexed
 *     accesses will modify the backing array. JSCompiler does not model
 *     this well. In other words, if you have:
 *     
 *     var x = new ArrayBuffer(1);
 *     var y = new Int8Array(x);
 *     y[0] = 2;
 *     
 *     JSCompiler will not recognize that the last assignment modifies x.
 *     We workaround this by marking all these arrays as @modifies {arguments},
 *     to introduce the possibility that x aliases y.
 */
function Int8Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Int8Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Int8Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Int8Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Int8Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Int8Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Uint8Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Uint8Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Uint8Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Uint8Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Uint8Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Uint8Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Uint8ClampedArray(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Uint8ClampedArray.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Uint8ClampedArray}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Uint8ClampedArray.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Uint8ClampedArray}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Uint8ClampedArray.of = function(var_args) {};


/**
 * @typedef {Uint8ClampedArray}
 * @deprecated CanvasPixelArray has been replaced by Uint8ClampedArray
 *     in the latest spec.
 * @see http://www.w3.org/TR/2dcontext/#imagedata
 */
var CanvasPixelArray;


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Int16Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Int16Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Int16Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Int16Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Int16Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Int16Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Uint16Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Uint16Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Uint16Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Uint16Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Uint16Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Uint16Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Int32Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Int32Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Int32Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Int32Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Int32Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Int32Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Uint32Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Uint32Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Uint32Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Uint32Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Uint32Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Uint32Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Float32Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Float32Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Float32Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Float32Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Float32Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Float32Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     length or array or buffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} opt_byteOffset
 * @param {number=} opt_length
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function Float64Array(length, opt_byteOffset, opt_length) {}

/** @const {number} */
Float64Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): number=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!Float64Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
Float64Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...number} var_args
 * @return {!Float64Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
Float64Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     lengthOrArrayOrBuffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} byteOffset
 * @param {number=} bufferLength
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function BigInt64Array(lengthOrArrayOrBuffer, byteOffset, bufferLength) {}

/** @const {number} */
BigInt64Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): bigint=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!BigInt64Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
BigInt64Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...bigint} var_args
 * @return {!BigInt64Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
BigInt64Array.of = function(var_args) {};


/**
 * @param {number|ArrayBufferView|Array|ArrayBuffer|SharedArrayBuffer}
 *     lengthOrArrayOrBuffer
 *     NOTE: We require that at least this first argument be present even though
 *         the ECMAScript spec allows it to be absent, because this is better
 *         for readability and detection of programmer errors.
 * @param {number=} byteOffset
 * @param {number=} bufferLength
 * @constructor
 * @extends {TypedArray}
 * @throws {Error}
 * @modifies {arguments}
 */
function BigUint64Array(lengthOrArrayOrBuffer, byteOffset, bufferLength) {}

/** @const {number} */
BigUint64Array.BYTES_PER_ELEMENT;

/**
 * @param {string|!IArrayLike|!Iterable} source
 * @param {function(this:S, ?, number): bigint=} mapFn
 * @param {S=} thisArg
 * @template S
 * @return {!BigUint64Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from
 */
BigUint64Array.from = function(source, mapFn, thisArg) {};

/**
 * @param {...bigint} var_args
 * @return {!BigUint64Array}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of
 */
BigUint64Array.of = function(var_args) {};

/**
 * @param {ArrayBuffer|SharedArrayBuffer} buffer
 * @param {number=} opt_byteOffset
 * @param {number=} opt_byteLength
 * @constructor
 * @extends {ArrayBufferView}
 * @throws {Error}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays/DataView
 */
function DataView(buffer, opt_byteOffset, opt_byteLength) {}

/**
 * @param {number} byteOffset
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getInt8 = function(byteOffset) {};

/**
 * @param {number} byteOffset
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getUint8 = function(byteOffset) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} opt_littleEndian
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getInt16 = function(byteOffset, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} opt_littleEndian
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getUint16 = function(byteOffset, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} opt_littleEndian
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getInt32 = function(byteOffset, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} opt_littleEndian
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getUint32 = function(byteOffset, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} opt_littleEndian
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getFloat32 = function(byteOffset, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} opt_littleEndian
 * @return {number}
 * @throws {Error}
 */
DataView.prototype.getFloat64 = function(byteOffset, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} littleEndian
 * @return {bigint}
 * @throws {Error}
 */
DataView.prototype.getBigInt64 = function(byteOffset, littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {boolean=} littleEndian
 * @return {bigint}
 * @throws {Error}
 */
DataView.prototype.getBigUint64 = function(byteOffset, littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setInt8 = function(byteOffset, value) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setUint8 = function(byteOffset, value) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @param {boolean=} opt_littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setInt16 = function(byteOffset, value, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @param {boolean=} opt_littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setUint16 = function(byteOffset, value, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @param {boolean=} opt_littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setInt32 = function(byteOffset, value, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @param {boolean=} opt_littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setUint32 = function(byteOffset, value, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @param {boolean=} opt_littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setFloat32 = function(
    byteOffset, value, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {number} value
 * @param {boolean=} opt_littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setFloat64 = function(
    byteOffset, value, opt_littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {bigint} value
 * @param {boolean=} littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setBigInt64 = function(byteOffset, value, littleEndian) {};

/**
 * @param {number} byteOffset
 * @param {bigint} value
 * @param {boolean=} littleEndian
 * @throws {Error}
 * @return {undefined}
 */
DataView.prototype.setBigUint64 = function(byteOffset, value, littleEndian) {};


/**
 * @see https://github.com/promises-aplus/promises-spec
 * @typedef {{then: ?}}
 */
var Thenable;


/**
 * This is not an official DOM interface. It is used to add generic typing
 * and respective type inference where available.
 * {@see goog.Thenable} inherits from this making all promises
 * interoperate.
 * @interface
 * @struct
 * @template TYPE
 */
function IThenable() {}


/**
 * @param {?(function(TYPE):VALUE)=} opt_onFulfilled
 * @param {?(function(*): *)=} opt_onRejected
 * @return {RESULT}
 * @template VALUE
 *
 * When a `Thenable` is fulfilled or rejected with another `Thenable`, the
 * payload of the second is used as the payload of the first.
 *
 * @template RESULT := type('IThenable',
 *     cond(isUnknown(VALUE), unknown(),
 *       mapunion(VALUE, (V) =>
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *           templateTypeOf(V, 0),
 *           cond(sub(V, 'Thenable'),
 *              unknown(),
 *              V)))))
 * =:
 */
IThenable.prototype.then = function(opt_onFulfilled, opt_onRejected) {};


/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
 * @param {function(
 *             function((TYPE|IThenable|Thenable|null)=),
 *             function(*=))} resolver
 * @constructor
 * @implements {IThenable}
 * @template TYPE
 */
function Promise(resolver) {}


/**
 * @param {VALUE=} opt_value
 * @return {RESULT}
 * @template VALUE
 * @template RESULT := type('Promise',
 *     cond(isUnknown(VALUE), unknown(),
 *       mapunion(VALUE, (V) =>
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *           templateTypeOf(V, 0),
 *           cond(sub(V, 'Thenable'),
 *              unknown(),
 *              V)))))
 * =:
 */
Promise.resolve = function(opt_value) {};


/**
 * @param {*=} opt_error
 * @return {!Promise}
 */
Promise.reject = function(opt_error) {};


/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
 * @param {!Iterable} iterable
 * @return {!Promise>}
 * @template VALUE
 * @template RESULT := mapunion(VALUE, (V) =>
 *     cond(isUnknown(V),
 *         unknown(),
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *             templateTypeOf(V, 0),
 *             cond(sub(V, 'Thenable'), unknown(), V))))
 * =:
 */
Promise.all = function(iterable) {};

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
 * @param {!Iterable} iterable
 * @return {!Promise}
 * @template VALUE
 * @template RESULT := mapunion(VALUE, (V) =>
 *     cond(isUnknown(V),
 *         unknown(),
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *             templateTypeOf(V, 0),
 *             cond(sub(V, 'Thenable'), unknown(), V))))
 * =:
 */
Promise.any = function(iterable) {};

/**
 * Record type representing a single element of the array value one gets from
 * Promise.allSettled.
 *
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
 * @record
 * @template VALUE
 */
Promise.AllSettledResultElement = function() {};

/**
 * 'fulfilled' or 'rejected' to indicate the final state of the corresponding
 * Promise.
 * @type {string}
 */
Promise.AllSettledResultElement.prototype.status;

/**
 * Exists only if the status field is 'fulfilled'
 * @type {VALUE|undefined}
 */
Promise.AllSettledResultElement.prototype.value;

/**
 * Exists only if the status field is 'rejected'
 * @type {*|undefined}
 */
Promise.AllSettledResultElement.prototype.reason;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
 * @param {!Iterable} iterable
 * @return {!Promise>>}
 * @template VALUE
 * @template RESULT := mapunion(VALUE, (V) =>
 *     cond(isUnknown(V),
 *         unknown(),
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *             templateTypeOf(V, 0),
 *             cond(sub(V, 'Thenable'), unknown(), V))))
 * =:
 */
Promise.allSettled = function(iterable) {};


/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
 * @param {!Iterable} iterable
 * @return {!Promise}
 * @template VALUE
 * @template RESULT := mapunion(VALUE, (V) =>
 *     cond(isUnknown(V),
 *         unknown(),
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *             templateTypeOf(V, 0),
 *             cond(sub(V, 'Thenable'), unknown(), V))))
 * =:
 */
Promise.race = function(iterable) {};

/**
 * Record type representing the return of Promise.withResolvers.
 *
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers
 * @record
 * @template VALUE
 */
Promise.PromiseWithResolvers = function() {};

/**
 * @type {!Promise}
 */
Promise.PromiseWithResolvers.prototype.promise;

/**
 * @type {function((VALUE|IThenable|Thenable)=)}
 */
Promise.PromiseWithResolvers.prototype.resolve;

/**
 * @type {function(*=)}
 */
Promise.PromiseWithResolvers.prototype.reject;

/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers
 * @return {!Promise.PromiseWithResolvers}
 * @template VALUE
 */
Promise.withResolvers = function() {};

/**
 * @param {?(function(this:void, TYPE):VALUE)=} opt_onFulfilled
 * @param {?(function(this:void, *): *)=} opt_onRejected
 * @return {RESULT}
 * @template VALUE
 *
 * When a `Thenable` is fulfilled or rejected with another `Thenable`, the
 * payload of the second is used as the payload of the first.
 *
 * @template RESULT := type('Promise',
 *     cond(isUnknown(VALUE), unknown(),
 *       mapunion(VALUE, (V) =>
 *         cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *           templateTypeOf(V, 0),
 *           cond(sub(V, 'Thenable'),
 *              unknown(),
 *              V)))))
 * =:
 * @override
 */
Promise.prototype.then = function(opt_onFulfilled, opt_onRejected) {};


/**
 * @param {function(*):VALUE} onRejected
 * @return {!Promise} A Promise of the original type or a possibly
 *     a different type depending on whether the parent promise was rejected.
 *
 * @template VALUE
 *
 * When a `Thenable` is rejected with another `Thenable`, the payload of the
 * second is used as the payload of the first.
 *
 * @template RESULT := cond(
 *     isUnknown(VALUE),
 *     unknown(),
 *     mapunion(VALUE, (V) =>
 *         cond(
 *             isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
 *             templateTypeOf(V, 0),
 *             cond(
 *                 sub(V, 'Thenable'),
 *                 unknown(),
 *                 V))))
 * =:
 */
Promise.prototype.catch = function(onRejected) {};


/**
 * @param {function()} callback
 * @return {!Promise}
 */
Promise.prototype.finally = function(callback) {};


/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of
 * @param {...T} var_args
 * @return {!Array}
 * @template T
 */
Array.of = function(var_args) {};


/**
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from
 * @param {string|!IArrayLike|!Iterable} arrayLike
 * @param {function(this:S, (string|T), number): R=} opt_mapFn
 * @param {S=} opt_this
 * @return {!Array}
 * @template T,S,R
 */
Array.from = function(arrayLike, opt_mapFn, opt_this) {};


/**
 * @override
 * @return {!IteratorIterable}
 */
Array.prototype.keys;


/**
 * @override
 * @return {!IteratorIterable}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/values
 */
Array.prototype.values;


/**
 * @override
 * @return {!IteratorIterable>} Iterator of [key, value] pairs.
 */
Array.prototype.entries;


/**
 * @override
 * @param {function(this:S, T, number, !Array): *} predicateFn
 * @param {S=} opt_this
 * @return {T|undefined}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.find
 */
Array.prototype.find = function(predicateFn, opt_this) {};


/**
 * @override
 * @param {function(this:S, T, number, !Array): *} predicateFn
 * @param {S=} opt_this
 * @return {number}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.findindex
 */
Array.prototype.findIndex = function(predicateFn, opt_this) {};

/**
 * NOTE: this is an ES2023 extern.
 * @override
 * @param {function(this:S, T, number, !Array): boolean} predicateFn
 * @param {S=} opt_this
 * @return {T|undefined}
 * @this {IArrayLike|string}
 * @template T,S
 * @see https://tc39.es/ecma262/#sec-array.prototype.findlast
 */
Array.prototype.findLast = function(predicateFn, opt_this) {};


/**
 * NOTE: this is an ES2023 extern.
 * @override
 * @param {function(this:S, T, number, !Array): boolean} predicateFn
 * @param {S=} opt_this
 * @return {number}
 * @this {IArrayLike|string}
 * @template T,S
 * @see https://tc39.es/ecma262/#sec-array.prototype.findlastindex
 */
Array.prototype.findLastIndex = function(predicateFn, opt_this) {};

/**
 * @param {T} value
 * @param {number=} opt_begin
 * @param {number=} opt_end
 * @return {!Array}
 * @this {!IArrayLike|string}
 * @template T
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.fill
 */
Array.prototype.fill = function(value, opt_begin, opt_end) {};


/**
 * @param {number} target
 * @param {number} start
 * @param {number=} opt_end
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.copywithin
 * @this {!IArrayLike|string}
 * @template T
 * @return {!Array}
 */
Array.prototype.copyWithin = function(target, start, opt_end) {};


/**
 * NOTE: this is an ES2022 extern.
 * @override
 * @param {number} index
 * @return {T}
 * @this {!IArrayLike|string}
 * @template T
 * @nosideeffects
 * @see https://tc39.github.io/ecma262/#sec-array.prototype.at
 */
Array.prototype.at = function(index) {};

/**
 * NOTE: this is an ES2016 (ES7) extern.
 * @override
 * @param {T} searchElement
 * @param {number=} opt_fromIndex
 * @return {boolean}
 * @this {!IArrayLike|string}
 * @template T
 * @nosideeffects
 * @see https://tc39.github.io/ecma262/#sec-array.prototype.includes
 */
Array.prototype.includes = function(searchElement, opt_fromIndex) {};

/**
 * Generates an array by passing every element of this array to a callback that
 * returns an array of zero or more elements to be added to the result.
 *
 * NOTE: The specified behavior of the method is that the callback can return
 * either an Array, which will be flattened into the result, or a non-array,
 * which will simply be included.
 *
 * However, while defining that in the type information here is possible it's
 * very hard to understand both for humans and automated tools other than
 * closure-compiler that process these files. Also, we think it's best to
 * encourage writing callbacks that just always return an Array for the sake
 * of readability.
 *
 * The polyfill for this method provided by closure-compiler does behave as
 * defined in the specification, though.
 *
 * @override
 * @param {function(this: THIS, T, number, !IArrayLike): !ReadonlyArray}
 *     callback
 * @param {THIS=} thisArg
 * @return {!Array}
 * @this {!IArrayLike}
 * @template T, THIS, S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap
 */
Array.prototype.flatMap = function(callback, thisArg) {};

/**
 * @override
 * @param {number=} depth
 * @return {!Array}
 * @this {!IArrayLike}
 * @template T, S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat
 */
Array.prototype.flat = function(depth) {};

/** @return {!IteratorIterable} */
ReadonlyArray.prototype.keys;


/**
 * @return {!IteratorIterable}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/values
 */
ReadonlyArray.prototype.values;


/**
 * @return {!IteratorIterable>} Iterator of [key, value] pairs.
 */
ReadonlyArray.prototype.entries;


/**
 * @param {function(this:S, T, number, !Array): *} predicateFn
 * @param {S=} opt_this
 * @return {T|undefined}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.find
 */
ReadonlyArray.prototype.find = function(predicateFn, opt_this) {};


/**
 * @param {function(this:S, T, number, !Array): *} predicateFn
 * @param {S=} opt_this
 * @return {number}
 * @this {IArrayLike|string}
 * @template T,S
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.findindex
 */
ReadonlyArray.prototype.findIndex = function(predicateFn, opt_this) {};

/**
 * NOTE: this is an ES2023 extern.
 * @param {function(this:S, T, number, !Array): boolean} predicateFn
 * @param {S=} opt_this
 * @return {T|undefined}
 * @this {IArrayLike|string}
 * @template T,S
 * @see https://tc39.es/ecma262/#sec-array.prototype.findlast
 */
ReadonlyArray.prototype.findLast = function(predicateFn, opt_this) {};


/**
 * NOTE: this is an ES2023 extern.
 * @param {function(this:S, T, number, !Array): boolean} predicateFn
 * @param {S=} opt_this
 * @return {number}
 * @this {IArrayLike|string}
 * @template T,S
 * @see https://tc39.es/ecma262/#sec-array.prototype.findlastindex
 */
ReadonlyArray.prototype.findLastIndex = function(predicateFn, opt_this) {};


/**
 * NOTE: this is an ES2022 extern.
 * @param {number} index
 * @return {T}
 * @this {!IArrayLike|string}
 * @template T
 * @nosideeffects
 * @see https://tc39.github.io/ecma262/#sec-array.prototype.at
 */
ReadonlyArray.prototype.at = function(index) {};

/**
 * NOTE: this is an ES2016 (ES7) extern.
 * @param {?} searchElement
 * @param {number=} opt_fromIndex
 * @return {boolean}
 * @this {!IArrayLike|string}
 * @template T
 * @nosideeffects
 * @see https://tc39.github.io/ecma262/#sec-array.prototype.includes
 */
ReadonlyArray.prototype.includes = function(searchElement, opt_fromIndex) {};

/**
 * Generates an array by passing every element of this array to a callback that
 * returns an array of zero or more elements to be added to the result.
 *
 * NOTE: The specified behavior of the method is that the callback can return
 * either an Array, which will be flattened into the result, or a non-array,
 * which will simply be included.
 *
 * However, while defining that in the type information here is possible it's
 * very hard to understand both for humans and automated tools other than
 * closure-compiler that process these files. Also, we think it's best to
 * encourage writing callbacks that just always return an Array for the sake
 * of readability.
 *
 * The polyfill for this method provided by closure-compiler does behave as
 * defined in the specification, though.
 *
 * @param {function(this: THIS, T, number, !IArrayLike): !ReadonlyArray}
 *     callback
 * @param {THIS=} thisArg
 * @return {!Array}
 * @this {!IArrayLike}
 * @template T, THIS, S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap
 */
ReadonlyArray.prototype.flatMap = function(callback, thisArg) {};

/**
 * @param {number=} depth
 * @return {!Array}
 * @this {!IArrayLike}
 * @template T, S
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat
 */
ReadonlyArray.prototype.flat = function(depth) {};

/**
 * @param {!Iterable<*>} errors
 * @param {string} message
 * @constructor
 * @extends {Error}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError/AggregateError
 */
var AggregateError = function(errors, message) {};

/** @type {!Array} */
AggregateError.prototype.errors;

/** @type {string} */
AggregateError.prototype.message;

/**
 * @param {!Object} obj
 * @return {!Array}
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-object.getownpropertysymbols
 */
Object.getOwnPropertySymbols = function(obj) {};


/**
 * @param {!Object} obj
 * @param {?} proto
 * @return {!Object}
 * @see http://www.ecma-international.org/ecma-262/6.0/#sec-object.setprototypeof
 */
Object.setPrototypeOf = function(obj, proto) {};


/**
 * @const {number}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON
 */
Number.EPSILON;

/**
 * @const {number}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER
 */
Number.MIN_SAFE_INTEGER;

/**
 * @const {number}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
 */
Number.MAX_SAFE_INTEGER;



/**
 * Parse an integer. Use of `parseInt` without `base` is strictly
 * banned in Google. If you really want to parse octal or hex based on the
 * leader, then pass `undefined` as the base.
 *
 * @param {string} string
 * @param {number|undefined} radix
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt
 */
Number.parseInt = function(string, radix) {};

/**
 * @param {string} string
 * @return {number}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat
 */
Number.parseFloat = function(string) {};

/**
 * @param {*} value
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN
 */
Number.isNaN = function(value) {};

/**
 * @param {*} value
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite
 */
Number.isFinite = function(value) {};

/**
 * @param {*} value
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger
 */
Number.isInteger = function(value) {};

/**
 * @param {*} value
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger
 */
Number.isSafeInteger = function(value) {};



/**
 * @param {!Object} target
 * @param {...(Object|null|undefined)} var_args
 * @return {!Object}
 * @modifies {arguments}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
 */
Object.assign = function(target, var_args) {};

/**
 * TODO(dbeam): find a better place for ES2017 externs like this one.
 * NOTE: this is an ES2017 (ES8) extern.
 * @param {!Object} obj
 * @return {!Array} values
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values
 * @throws {Error}
 * @template T
 */
Object.values = function(obj) {};

/**
 * NOTE: this is an ES2017 (ES8) extern.
 * @param {!Object} obj
 * @return {!Array>} entries
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
 * @throws {Error}
 * @template T
 */
Object.entries = function(obj) {};

/**
 * NOTE: this is an ES2022 extern.
 * Returns whether the specified object has indicated property as its own
 * property.
 * @param {!Object} obj
 * @param {string|symbol} propertyName
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn
 */
Object.hasOwn = function(obj, propertyName) {};

/**
 * @param {!Iterable<*>} iter
 * @return {!Object}
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
 */
Object.fromEntries = function(iter) {};

/**
 * NOTE: this is an ES2017 (ES8) extern.
 * @param {!Object} obj
 * @return {!Object} descriptors
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors
 * @throws {Error}
 * @template T
 */
Object.getOwnPropertyDescriptors = function(obj) {};



/**
 * @const
 * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect
 */
var Reflect = {};

/**
 * @param {function(this: THIS, ...?): RESULT} targetFn
 * @param {THIS} thisArg
 * @param {!Array} argList
 * @return {RESULT}
 * @template THIS, RESULT
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply
 */
Reflect.apply = function(targetFn, thisArg, argList) {};

/**
 * @param {function(new: ?, ...?)} targetConstructorFn
 * @param {!Array} argList
 * @param {function(new: TARGET, ...?)=} opt_newTargetConstructorFn
 * @return {TARGET}
 * @template TARGET
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct
 */
Reflect.construct = function(
    targetConstructorFn, argList, opt_newTargetConstructorFn) {};

/**
 * @param {!Object} target
 * @param {string} propertyKey
 * @param {!ObjectPropertyDescriptor} attributes
 * @return {boolean}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty
 */
Reflect.defineProperty = function(target, propertyKey, attributes) {};

/**
 * @param {!Object} target
 * @param {string} propertyKey
 * @return {boolean}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty
 */
Reflect.deleteProperty = function(target, propertyKey) {};

/**
 * @param {!Object} target
 * @param {string} propertyKey
 * @param {!Object=} opt_receiver
 * @return {*}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/get
 */
Reflect.get = function(target, propertyKey, opt_receiver) {};

/**
 * @param {!Object} target
 * @param {string} propertyKey
 * @return {?ObjectPropertyDescriptor}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getOwnPropertyDescriptor
 */
Reflect.getOwnPropertyDescriptor = function(target, propertyKey) {};

/**
 * @param {!Object} target
 * @return {?Object}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf
 */
Reflect.getPrototypeOf = function(target) {};

/**
 * @param {!Object} target
 * @param {string} propertyKey
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has
 */
Reflect.has = function(target, propertyKey) {};

/**
 * @param {!Object} target
 * @return {boolean}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible
 */
Reflect.isExtensible = function(target) {};

/**
 * @param {!Object} target
 * @return {!Array<(string|symbol)>}
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys
 */
Reflect.ownKeys = function(target) {};

/**
 * @param {!Object} target
 * @return {boolean}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions
 */
Reflect.preventExtensions = function(target) {};

/**
 * @param {!Object} target
 * @param {string} propertyKey
 * @param {*} value
 * @param {!Object=} opt_receiver
 * @return {boolean}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set
 */
Reflect.set = function(target, propertyKey, value, opt_receiver) {};

/**
 * @param {!Object} target
 * @param {?Object} proto
 * @return {boolean}
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf
 */
Reflect.setPrototypeOf = function(target, proto) {};


/**
 * @const
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics
 */
var Atomics = {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.add = function(typedArray, index, value) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.and = function(typedArray, index, value) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} expectedValue
 * @param {number} replacementValue
 * @return {number}
 */
Atomics.compareExchange = function(
    typedArray, index, expectedValue, replacementValue) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.exchange = function(typedArray, index, value) {};

/**
 * @param {number} size
 * @return {boolean}
 */
Atomics.isLockFree = function(size) {};

/**
 * @param {!TypedArray} typedArray
 * @param {number} index
 * @return {number}
 */
Atomics.load = function(typedArray, index) {};

/**
 * @param {!Int32Array|!BigInt64Array} typedArray
 * @param {number} index
 * @param {number=} count
 * @return {number}
 */
Atomics.notify = function(typedArray, index, count) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.or = function(typedArray, index, value) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.store = function(typedArray, index, value) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.sub = function(typedArray, index, value) {};

/**
 * @param {!Int32Array|!BigInt64Array} typedArray
 * @param {number} index
 * @param {number} value
 * @param {number=} timeout
 * @return {string}
 */
Atomics.wait = function(typedArray, index, value, timeout) {};

/**
 * @param {!Int32Array} typedArray
 * @param {number} index
 * @param {number=} count
 * @return {number}
 */
Atomics.wake = function(typedArray, index, count) {};

/**
 * @param {!Int8Array|!Uint8Array|!Int16Array|!Uint16Array|!Int32Array|!Uint32Array|!BigInt64Array|!BigUint64Array}
 *     typedArray
 * @param {number} index
 * @param {number} value
 * @return {number}
 */
Atomics.xor = function(typedArray, index, value) {};


/**
 * TODO(b/142881197): TReturn and TNext are not yet used for anything.
 * https://github.com/google/closure-compiler/issues/3489
 * @interface
 * @template T, TReturn, TNext
 * @see https://tc39.github.io/proposal-async-iteration/
 */
function AsyncIterator() {}

/**
 * @param {?=} opt_value
 * @return {!Promise>}
 */
AsyncIterator.prototype.next;


/**
 * @interface
 * @template T, TReturn, TNext
 */
function AsyncIterable() {}


/**
 * @return {!AsyncIterator}
 */
AsyncIterable.prototype[Symbol.asyncIterator] = function() {};


/**
 * @interface
 * @extends {AsyncIterator}
 * @extends {AsyncIterable}
 * @template T
 * @see https://tc39.github.io/proposal-async-iteration/
 */
function AsyncIteratorIterable() {}

/**
 * TODO(b/142881197): TReturn and TNext are not yet used for anything.
 * https://github.com/google/closure-compiler/issues/3489
 * @interface
 * @see https://tc39.github.io/proposal-async-iteration/
 * @extends {AsyncIteratorIterable}
 * @template T, TReturn, TNext
 */
function AsyncGenerator() {}

/**
 * @param {?=} opt_value
 * @return {!Promise>}
 * @override
 */
AsyncGenerator.prototype.next = function(opt_value) {};

/**
 * @param {T} value
 * @return {!Promise>}
 */
AsyncGenerator.prototype.return = function(value) {};

/**
 * @param {?} exception
 * @return {!Promise>}
 */
AsyncGenerator.prototype.throw = function(exception) {};

/**
 * @constructor
 * @struct
 * @param {TYPE} value
 * @template TYPE
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakRef
 */
function WeakRef(value) {}

/**
 * @return {TYPE}
 * @nosideeffects
 */
WeakRef.prototype.deref = function() {};

/**
 * @constructor
 * @struct
 * @param {function(HELDVALUE)} cleanupCallback
 * @template TARGET, HELDVALUE, TOKEN
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry
 */
function FinalizationRegistry(cleanupCallback) {}

/**
 * @param {TARGET} target
 * @param {HELDVALUE} heldValue
 * @param {TOKEN=} unregisterToken
 * @return {void}
 */
FinalizationRegistry.prototype.register = function(
    target, heldValue, unregisterToken) {};

/**
 * @param {TOKEN} unregisterToken
 * @return {void}
 */
FinalizationRegistry.prototype.unregister = function(unregisterToken) {};

/**
 * @type {!Global}
 */
var globalThis;

/**
 * @const {symbol}
 */
Symbol.dispose;

/**
 * @const {symbol}
 */
Symbol.asyncDispose;

/**
 * Wraps an error that suppresses another error, and the error that was
 * suppressed.
 *
 * @constructor
 * @extends {Error}
 * @param {?} error The error that resulted in a suppression.
 * @param {?} suppressed The error that was suppressed.
 * @param {string=} message The message for the error.
 * @return {!SuppressedError}
 * @nosideeffects
 */
function SuppressedError(error, suppressed, message) {}

/**
 * The error that resulted in a suppression.
 * @type {?}
 */
SuppressedError.prototype.error;

/**
 * The error that was suppressed.
 * @type {?}
 */
SuppressedError.prototype.suppressed;
(0??8?
?1
externs.zip//es6_collections.js?1/*
 * Copyright 2014 The Closure Compiler Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview Definitions for ECMAScript 6.
 * @see http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
 * @externs
 */

// TODO(johnlenz): Use Tuples for the Map and Set iterators where appropriate.
/**
 * @interface
 * @extends {Iterable>}
 * @template K, V
 */
function ReadonlyMap() {}

/**
 * @return {!IteratorIterable>}
 * @nosideeffects
 */
ReadonlyMap.prototype.entries = function() {};

/**
 * @param {function(this:THIS, V, K, MAP): ?} callback
 * @param {THIS=} opt_thisArg
 * @this {MAP}
 * @template MAP, THIS
 * @return {undefined}
 */
ReadonlyMap.prototype.forEach = function(callback, opt_thisArg) {};

/**
 * @param {K} key
 * @return {V|undefined}
 * @nosideeffects
 */
ReadonlyMap.prototype.get = function(key) {};

/**
 * @param {K} key
 * @return {boolean}
 * @nosideeffects
 */
ReadonlyMap.prototype.has = function(key) {};

/**
 * @return {!IteratorIterable}
 * @nosideeffects
 */
ReadonlyMap.prototype.keys = function() {};

/**
 * @const {number}
 * @nosideeffects
 */
ReadonlyMap.prototype.size;

/**
 * @return {!IteratorIterable}
 * @nosideeffects
 */
ReadonlyMap.prototype.values = function() {};

/**
 * @return {!Iterator>}
 * @nosideeffects
 */
ReadonlyMap.prototype[Symbol.iterator] = function() {};

/**
 * @constructor @struct
 * @param {Iterable>|!Array>=} opt_iterable
 * @implements {ReadonlyMap}
 * @template K, V
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
 */
function Map(opt_iterable) {}

/** @return {void} */
Map.prototype.clear = function() {};

/**
 * @param {K} key
 * @return {boolean}
 */
Map.prototype.delete = function(key) {};

/**
 * @override
 * @return {!IteratorIterable>}
 * @nosideeffects
 */
Map.prototype.entries = function() {};

/**
 * @override
 * @param {function(this:THIS, V, K, MAP): ?} callback
 * @param {THIS=} opt_thisArg
 * @this {MAP}
 * @template MAP,THIS
 * @return {undefined}
 */
Map.prototype.forEach = function(callback, opt_thisArg) {};

/**
 * @override
 * @param {K} key
 * @return {V}
 * @nosideeffects
 */
Map.prototype.get = function(key) {};

/**
 * @override
 * @param {K} key
 * @return {boolean}
 * @nosideeffects
 */
Map.prototype.has = function(key) {};

/**
 * @override
 * @return {!IteratorIterable}
 * @nosideeffects
 */
Map.prototype.keys = function() {};

/**
 * @param {K} key
 * @param {V} value
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 */
Map.prototype.set = function(key, value) {};

/**
 * @override
 * @type {number}
 * @nosideeffects
 */
Map.prototype.size;

/**
 * @override
 * @return {!IteratorIterable}
 * @nosideeffects
 */
Map.prototype.values = function() {};

/**
 * @override
 * @return {!Iterator>}
 * @nosideeffects
 */
Map.prototype[Symbol.iterator] = function() {};


/**
 * @constructor @struct
 * @param {Iterable>|!Array>=} opt_iterable
 * @template K, V
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap
 */
function WeakMap(opt_iterable) {}

/** @return {void} */
WeakMap.prototype.clear = function() {};

/**
 * @param {K} key
 * @return {boolean}
 */
WeakMap.prototype.delete = function(key) {};

/**
 * @param {K} key
 * @return {V}
 * @nosideeffects
 */
WeakMap.prototype.get = function(key) {};

/**
 * @param {K} key
 * @return {boolean}
 * @nosideeffects
 */
WeakMap.prototype.has = function(key) {};

/**
 * @param {K} key
 * @param {V} value
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 */
WeakMap.prototype.set = function(key, value) {};

/**
 * @constructor @struct
 * @param {Iterable|Array=} opt_iterable
 * @implements {Iterable}
 * @template VALUE
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
 */
function Set(opt_iterable) {}

/**
 * @param {VALUE} value
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 */
Set.prototype.add = function(value) {};

/**
 * @return {void}
 */
Set.prototype.clear = function() {};

/**
 * @param {VALUE} value
 * @return {boolean}
 */
Set.prototype.delete = function(value) {};

/**
 * @return {!IteratorIterable>} Where each array has two entries:
 *     [value, value]
 * @nosideeffects
 */
Set.prototype.entries = function() {};

/**
 * @param {function(this: THIS, VALUE, VALUE, SET)} callback
 * @param {THIS=} opt_thisArg
 * @this {SET}
 * @template SET,THIS
 */
Set.prototype.forEach = function(callback, opt_thisArg) {};

/**
 * @param {VALUE} value
 * @return {boolean}
 * @nosideeffects
 */
Set.prototype.has = function(value) {};

/**
 * @type {number} (readonly)
 */
Set.prototype.size;

/**
 * @return {!IteratorIterable}
 * @nosideeffects
 */
Set.prototype.keys = function() {};

/**
 * @return {!IteratorIterable}
 * @nosideeffects
 */
Set.prototype.values = function() {};

/**
 * @return {!Iterator}
 */
Set.prototype[Symbol.iterator] = function() {};



/**
 * @constructor @struct
 * @param {Iterable|Array=} opt_iterable
 * @template VALUE
 * @nosideeffects
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
 */
function WeakSet(opt_iterable) {}

/**
 * @param {VALUE} value
 * @return {THIS}
 * @this {THIS}
 * @template THIS
 */
WeakSet.prototype.add = function(value) {};

/**
 * @return {void}
 */
WeakSet.prototype.clear = function() {};

/**
 * @param {VALUE} value
 * @return {boolean}
 */
WeakSet.prototype.delete = function(value) {};

/**
 * @param {VALUE} value
 * @return {boolean}
 * @nosideeffects
 */
WeakSet.prototype.has = function(value) {};
(0?18?
6
+src/com/google/javascript/jscomp/js/base.js(0?8
;
0src/com/google/javascript/jscomp/js/es6/array.js(0?8%
>
3src/com/google/javascript/jscomp/js/es6/array/at.js(0?8
F
;src/com/google/javascript/jscomp/js/es6/array/copywithin.js(0?8Q
C
8src/com/google/javascript/jscomp/js/es6/array/entries.js(0?	8(
@
5src/com/google/javascript/jscomp/js/es6/array/fill.js(0?82
@
5src/com/google/javascript/jscomp/js/es6/array/find.js(0?	8)
E
:src/com/google/javascript/jscomp/js/es6/array/findindex.js(0?
8)
D
9src/com/google/javascript/jscomp/js/es6/array/findlast.js(0?
8)
I
>src/com/google/javascript/jscomp/js/es6/array/findlastindex.js(0?
8)
@
5src/com/google/javascript/jscomp/js/es6/array/flat.js(0?
87
C
8src/com/google/javascript/jscomp/js/es6/array/flatmap.js(0?8<
@
5src/com/google/javascript/jscomp/js/es6/array/from.js(0?8C
D
9src/com/google/javascript/jscomp/js/es6/array/includes.js(0?89
@
5src/com/google/javascript/jscomp/js/es6/array/keys.js(0?8$
>
3src/com/google/javascript/jscomp/js/es6/array/of.js(0?	8(
B
7src/com/google/javascript/jscomp/js/es6/array/values.js(0?8*
N
Bsrc/com/google/javascript/jscomp/js/es6/async_generator_wrapper.js(0?m8?
A
6src/com/google/javascript/jscomp/js/es6/conformance.js(0?8>
=
2src/com/google/javascript/jscomp/js/es6/dispose.js(0?8X
M
Bsrc/com/google/javascript/jscomp/js/es6/execute_async_generator.js(0?8z
H
;src/com/google/javascript/jscomp/js/es6/generator_engine.js(0??8?
@
5src/com/google/javascript/jscomp/js/es6/globalthis.js(0?8
:
.src/com/google/javascript/jscomp/js/es6/map.js(0?M8?
:
/src/com/google/javascript/jscomp/js/es6/math.js(0?8'
@
5src/com/google/javascript/jscomp/js/es6/math/acosh.js(0?8&
@
5src/com/google/javascript/jscomp/js/es6/math/asinh.js(0?	8(
@
5src/com/google/javascript/jscomp/js/es6/math/atanh.js(0?	8(
?
4src/com/google/javascript/jscomp/js/es6/math/cbrt.js(0?	8(
@
5src/com/google/javascript/jscomp/js/es6/math/clz32.js(0?8:
?
4src/com/google/javascript/jscomp/js/es6/math/cosh.js(0?8'
@
5src/com/google/javascript/jscomp/js/es6/math/expm1.js(0?88
A
6src/com/google/javascript/jscomp/js/es6/math/fround.js(0?87
@
5src/com/google/javascript/jscomp/js/es6/math/hypot.js(0?8?
?
4src/com/google/javascript/jscomp/js/es6/math/imul.js(0?
81
@
5src/com/google/javascript/jscomp/js/es6/math/log10.js(0?8%
@
5src/com/google/javascript/jscomp/js/es6/math/log1p.js(0?86
?
4src/com/google/javascript/jscomp/js/es6/math/log2.js(0?8%
?
4src/com/google/javascript/jscomp/js/es6/math/sign.js(0?	8(
?
4src/com/google/javascript/jscomp/js/es6/math/sinh.js(0?8(
?
4src/com/google/javascript/jscomp/js/es6/math/tanh.js(0?	8*
@
5src/com/google/javascript/jscomp/js/es6/math/trunc.js(0?	8(
F
:src/com/google/javascript/jscomp/js/es6/modules/runtime.js(0?e8?
@
5src/com/google/javascript/jscomp/js/es6/nopolyfill.js(0?	8"
<
1src/com/google/javascript/jscomp/js/es6/number.js(0?8
F
;src/com/google/javascript/jscomp/js/es6/number/constants.js(0?
81
E
:src/com/google/javascript/jscomp/js/es6/number/isfinite.js(0?8&
F
;src/com/google/javascript/jscomp/js/es6/number/isinteger.js(0?8'
B
7src/com/google/javascript/jscomp/js/es6/number/isnan.js(0?8&
J
?src/com/google/javascript/jscomp/js/es6/number/issafeinteger.js(0?	8(
G

:
.src/com/google/javascript/jscomp/js/es6/set.js(0?$8?
<
1src/com/google/javascript/jscomp/js/es6/string.js(0?8$
?
4src/com/google/javascript/jscomp/js/es6/string/at.js(0?8
H
=src/com/google/javascript/jscomp/js/es6/string/codepointat.js(0?8:
E
:src/com/google/javascript/jscomp/js/es6/string/endswith.js(0?80
J
?src/com/google/javascript/jscomp/js/es6/string/fromcodepoint.js(0?84
E
:src/com/google/javascript/jscomp/js/es6/string/includes.js(0?
8*
E
:src/com/google/javascript/jscomp/js/es6/string/matchall.js(0?8X
C
8src/com/google/javascript/jscomp/js/es6/string/padend.js(0?
8+
E
:src/com/google/javascript/jscomp/js/es6/string/padstart.js(0?
8+
@
5src/com/google/javascript/jscomp/js/es6/string/raw.js(0?87
C
8src/com/google/javascript/jscomp/js/es6/string/repeat.js(0?82
G
src/com/google/javascript/jscomp/js/es6/typedarray/findlast.js(0?8M
N
Csrc/com/google/javascript/jscomp/js/es6/typedarray/findlastindex.js(0?8M
L
Asrc/com/google/javascript/jscomp/js/es6/util/arrayfromiterable.js(0?8&
L
Asrc/com/google/javascript/jscomp/js/es6/util/arrayfromiterator.js(0?	8*
H
=src/com/google/javascript/jscomp/js/es6/util/arrayiterator.js(0?
85
A
6src/com/google/javascript/jscomp/js/es6/util/assign.js(0?8;
C
8src/com/google/javascript/jscomp/js/es6/util/atmethod.js(0?8.
D
9src/com/google/javascript/jscomp/js/es6/util/construct.js(0?8a
T
Isrc/com/google/javascript/jscomp/js/es6/util/createtemplatetagfirstarg.js(0?8;
C
8src/com/google/javascript/jscomp/js/es6/util/inherits.js(0?8X
L
Asrc/com/google/javascript/jscomp/js/es6/util/iteratorfromarray.js(0?84
L
Asrc/com/google/javascript/jscomp/js/es6/util/makeasynciterator.js(0?8d
G
src/com/google/javascript/jscomp/js/es6/util/setprototypeof.js(0?
8>
>
2src/com/google/javascript/jscomp/js/es6/weakmap.js(0?28?
=
2src/com/google/javascript/jscomp/js/es6/weakset.js(0?8]
B
7src/com/google/javascript/jscomp/js/es6_dart_runtime.js(0?8Y
=
2src/com/google/javascript/jscomp/js/es6_runtime.js(0?8/
9
.src/com/google/javascript/jscomp/js/modules.js(0?8
F
;src/com/google/javascript/jscomp/js/util/checkstringargs.js(0?
8*
E
:src/com/google/javascript/jscomp/js/util/defineproperty.js(0?89
>
3src/com/google/javascript/jscomp/js/util/defines.js(0?8O
E
:src/com/google/javascript/jscomp/js/util/finddescriptor.js(0?	8'
C
8src/com/google/javascript/jscomp/js/util/findinternal.js(0?8/
G