-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathutility-frame.opt.js
311 lines (311 loc) · 96 KB
/
utility-frame.opt.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
{var cajaBuildVersion='6014',StringMap,exports,ses;typeof window!=='undefined'&&(window['cajaBuildVersion']=cajaBuildVersion),(function(){'use strict';var
create,createNull,freeze;create=Object.create,freeze=Object.freeze;if(!freeze)return;function
constFunc(func){return func.prototype=null,freeze(func)}function assertString(x){if('string'!==typeof
x)throw new TypeError(('Not a string: '+x));return x}typeof ses==='undefined'||!ses.ok()||ses.es5ProblemReports.FREEZING_BREAKS_PROTOTYPES.beforeFailure?(createNull=function(){return{}}):(createNull=function(){return Object.create(null)}),StringMap=function
StringMap(){var objAsMap=createNull();return freeze({'get':constFunc(function(key){return objAsMap[assertString(key)+'$']}),'set':constFunc(function(key,value){objAsMap[assertString(key)+'$']=value}),'has':constFunc(function(key){return assertString(key)+'$'in
objAsMap}),'delete':constFunc(function(key){return delete objAsMap[assertString(key)+'$']})})}})(),exports={};function
require(name){return exports}function define(d,f){f(exports)}define.amd=true,(function(root,mod){if(typeof
exports=='object'&&typeof module=='object')return mod(exports);if(typeof define=='function'&&define.amd)return define(['exports'],mod);mod(root.acorn||(root.acorn={}))})(this,function(exports){'use strict';var
_assign,_bin1,_bin10,_bin2,_bin3,_bin4,_bin5,_bin6,_bin7,_bin8,_braceL,_braceR,_bracketL,_bracketR,_break,_case,_catch,_colon,_comma,_continue,_debugger,_default,_do,_dot,_else,_eof,_eq,_false,_finally,_for,_function,_if,_in,_incdec,_name,_new,_null,_num,_parenL,_parenR,_plusmin,_prefix,_question,_regexp,_return,_semi,_slash,_string,_switch,_this,_throw,_true,_try,_var,_while,_with,containsEsc,defaultOptions,empty,getLineInfo,inFunction,input,inputLen,isIdentifierChar,isIdentifierStart,isKeyword,isReservedWord3,isReservedWord5,isStrictBadIdWord,isStrictReservedWord,keywordTypes,kw,labels,lastEnd,lastEndLoc,lastStart,lineBreak,loopLabel,newline,nonASCIIidentifier,nonASCIIidentifierChars,nonASCIIidentifierStart,nonASCIIidentifierStartChars,nonASCIIwhitespace,options,sourceFile,strict,switchLabel,tokCurLine,tokEnd,tokEndLoc,tokLineStart,tokPos,tokRegexpAllowed,tokStart,tokStartLoc,tokType,tokVal;exports.version='0.4.0',exports.parse=function(inpt,opts){return input=String(inpt),inputLen=input.length,setOptions(opts),initTokenState(),parseTopLevel(options.program)},defaultOptions=exports.defaultOptions={'ecmaVersion':5,'strictSemicolons':false,'allowTrailingCommas':true,'forbidReserved':false,'locations':false,'onComment':null,'ranges':false,'program':null,'sourceFile':null};function
setOptions(opts){var opt;options=opts||{};for(opt in defaultOptions)Object.prototype.hasOwnProperty.call(options,opt)||(options[opt]=defaultOptions[opt]);sourceFile=options.sourceFile||null}getLineInfo=exports.getLineInfo=function(input,offset){var
cur,line,match;for(line=1,cur=0;;){lineBreak.lastIndex=cur,match=lineBreak.exec(input);if(match&&match.index<offset)++line,cur=match.index+match[0].length;else
break}return{'line':line,'column':offset-cur}},exports.tokenize=function(inpt,opts){var
t;input=String(inpt),inputLen=input.length,setOptions(opts),initTokenState(),t={};function
getToken(forceRegexp){return readToken(forceRegexp),t.start=tokStart,t.end=tokEnd,t.startLoc=tokStartLoc,t.endLoc=tokEndLoc,t.type=tokType,t.value=tokVal,t}return getToken.jumpTo=function(pos,reAllowed){var
match;tokPos=pos;if(options.locations){tokCurLine=1,tokLineStart=lineBreak.lastIndex=0;while((match=lineBreak.exec(input))&&match.index<pos)++tokCurLine,tokLineStart=match.index+match[0].length}tokRegexpAllowed=reAllowed,skipSpace()},getToken};function
raise(pos,message){var loc=getLineInfo(input,pos),err;throw message+=' ('+loc.line+':'+loc.column+')',err=new
SyntaxError(message),err.pos=pos,err.loc=loc,err.raisedAt=tokPos,err}empty=[],_num={'type':'num'},_regexp={'type':'regexp'},_string={'type':'string'},_name={'type':'name'},_eof={'type':'eof'},_break={'keyword':'break'},_case={'keyword':'case','beforeExpr':true},_catch={'keyword':'catch'},_continue={'keyword':'continue'},_debugger={'keyword':'debugger'},_default={'keyword':'default'},_do={'keyword':'do','isLoop':true},_else={'keyword':'else','beforeExpr':true},_finally={'keyword':'finally'},_for={'keyword':'for','isLoop':true},_function={'keyword':'function'},_if={'keyword':'if'},_return={'keyword':'return','beforeExpr':true},_switch={'keyword':'switch'},_throw={'keyword':'throw','beforeExpr':true},_try={'keyword':'try'},_var={'keyword':'var'},_while={'keyword':'while','isLoop':true},_with={'keyword':'with'},_new={'keyword':'new','beforeExpr':true},_this={'keyword':'this'},_null={'keyword':'null','atomValue':null},_true={'keyword':'true','atomValue':true},_false={'keyword':'false','atomValue':false},_in={'keyword':'in','binop':7,'beforeExpr':true},keywordTypes={'break':_break,'case':_case,'catch':_catch,'continue':_continue,'debugger':_debugger,'default':_default,'do':_do,'else':_else,'finally':_finally,'for':_for,'function':_function,'if':_if,'return':_return,'switch':_switch,'throw':_throw,'try':_try,'var':_var,'while':_while,'with':_with,'null':_null,'true':_true,'false':_false,'new':_new,'in':_in,'instanceof':{'keyword':'instanceof','binop':7,'beforeExpr':true},'this':_this,'typeof':{'keyword':'typeof','prefix':true,'beforeExpr':true},'void':{'keyword':'void','prefix':true,'beforeExpr':true},'delete':{'keyword':'delete','prefix':true,'beforeExpr':true}},_bracketL={'type':'[','beforeExpr':true},_bracketR={'type':']'},_braceL={'type':'{','beforeExpr':true},_braceR={'type':'}'},_parenL={'type':'(','beforeExpr':true},_parenR={'type':')'},_comma={'type':',','beforeExpr':true},_semi={'type':';','beforeExpr':true},_colon={'type':':','beforeExpr':true},_dot={'type':'.'},_question={'type':'?','beforeExpr':true},_slash={'binop':10,'beforeExpr':true},_eq={'isAssign':true,'beforeExpr':true},_assign={'isAssign':true,'beforeExpr':true},_plusmin={'binop':9,'prefix':true,'beforeExpr':true},_incdec={'postfix':true,'prefix':true,'isUpdate':true},_prefix={'prefix':true,'beforeExpr':true},_bin1={'binop':1,'beforeExpr':true},_bin2={'binop':2,'beforeExpr':true},_bin3={'binop':3,'beforeExpr':true},_bin4={'binop':4,'beforeExpr':true},_bin5={'binop':5,'beforeExpr':true},_bin6={'binop':6,'beforeExpr':true},_bin7={'binop':7,'beforeExpr':true},_bin8={'binop':8,'beforeExpr':true},_bin10={'binop':10,'beforeExpr':true},exports.tokTypes={'bracketL':_bracketL,'bracketR':_bracketR,'braceL':_braceL,'braceR':_braceR,'parenL':_parenL,'parenR':_parenR,'comma':_comma,'semi':_semi,'colon':_colon,'dot':_dot,'question':_question,'slash':_slash,'eq':_eq,'name':_name,'eof':_eof,'num':_num,'regexp':_regexp,'string':_string};for(kw
in keywordTypes)exports.tokTypes['_'+kw]=keywordTypes[kw];function makePredicate(words){var
cat,cats,f,i,j;words=words.split(' '),f='',cats=[];a:for(i=0;i<words.length;++i){for(j=0;j<cats.length;++j)if(cats[j][0].length==words[i].length){cats[j].push(words[i]);continue a}cats.push([words[i]])}function
compareTo(arr){var i;if(arr.length==1)return f+='return str === '+JSON.stringify(arr[0])+';';f+='switch(str){';for(i=0;i<arr.length;++i)f+='case '+JSON.stringify(arr[i])+':';f+='return true}return false;'}if(cats.length>3){cats.sort(function(a,b){return b.length-a.length}),f+='switch(str.length){';for(i=0;i<cats.length;++i)cat=cats[i],f+='case '+cat[0].length+':',compareTo(cat);f+='}'}else
compareTo(words);return new Function('str',f)}isReservedWord3=makePredicate('abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile'),isReservedWord5=makePredicate('class enum extends super const export import'),isStrictReservedWord=makePredicate('implements interface let package private protected public static yield'),isStrictBadIdWord=makePredicate('eval arguments'),isKeyword=makePredicate('break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this'),nonASCIIwhitespace=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,nonASCIIidentifierStartChars='\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc',nonASCIIidentifierChars='\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f',nonASCIIidentifierStart=new
RegExp(('['+nonASCIIidentifierStartChars+']')),nonASCIIidentifier=new RegExp(('['+nonASCIIidentifierStartChars+nonASCIIidentifierChars+']')),newline=/[\n\r\u2028\u2029]/,lineBreak=/\r\n|[\n\r\u2028\u2029]/g,isIdentifierStart=exports.isIdentifierStart=function(code){return code<65?code===36:code<91?true:code<97?code===95:code<123?true:code>=170&&nonASCIIidentifierStart.test(String.fromCharCode(code))},isIdentifierChar=exports.isIdentifierChar=function(code){return code<48?code===36:code<58?true:code<65?false:code<91?true:code<97?code===95:code<123?true:code>=170&&nonASCIIidentifier.test(String.fromCharCode(code))};function
line_loc_t(){this.line=tokCurLine,this.column=tokPos-tokLineStart}function initTokenState(){tokCurLine=1,tokPos=tokLineStart=0,tokRegexpAllowed=true,skipSpace()}function
finishToken(type,val){tokEnd=tokPos,options.locations&&(tokEndLoc=new line_loc_t),tokType=type,skipSpace(),tokVal=val,tokRegexpAllowed=type.beforeExpr}function
skipBlockComment(){var startLoc=options.onComment&&options.locations&&new line_loc_t,start=tokPos,end=input.indexOf('*/',tokPos+=2),match;end===-1&&raise(tokPos-2,'Unterminated comment'),tokPos=end+2;if(options.locations){lineBreak.lastIndex=start;while((match=lineBreak.exec(input))&&match.index<tokPos)++tokCurLine,tokLineStart=match.index+match[0].length}options.onComment&&options.onComment(true,input.slice(start+2,end),start,tokPos,startLoc,options.locations&&new
line_loc_t)}function skipLineComment(){var start=tokPos,startLoc=options.onComment&&options.locations&&new
line_loc_t,ch=input.charCodeAt(tokPos+=2);while(tokPos<inputLen&&ch!==10&&ch!==13&&ch!==8232&&ch!==8233)++tokPos,ch=input.charCodeAt(tokPos);options.onComment&&options.onComment(false,input.slice(start+2,tokPos),start,tokPos,startLoc,options.locations&&new
line_loc_t)}function skipSpace(){var ch,next;while(tokPos<inputLen){ch=input.charCodeAt(tokPos);if(ch===32)++tokPos;else
if(ch===13)++tokPos,next=input.charCodeAt(tokPos),next===10&&++tokPos,options.locations&&(++tokCurLine,tokLineStart=tokPos);else
if(ch===10||ch===8232||ch===8233)++tokPos,options.locations&&(++tokCurLine,tokLineStart=tokPos);else
if(ch>8&&ch<14)++tokPos;else if(ch===47){next=input.charCodeAt(tokPos+1);if(next===42)skipBlockComment();else
if(next===47)skipLineComment();else break}else if(ch===160)++tokPos;else if(ch>=5760&&nonASCIIwhitespace.test(String.fromCharCode(ch)))++tokPos;else
break}}function readToken_dot(){var next=input.charCodeAt(tokPos+1);return next>=48&&next<=57?readNumber(true):(++tokPos,finishToken(_dot))}function
readToken_slash(){var next=input.charCodeAt(tokPos+1);return tokRegexpAllowed?(++tokPos,readRegexp()):next===61?finishOp(_assign,2):finishOp(_slash,1)}function
readToken_mult_modulo(){var next=input.charCodeAt(tokPos+1);return next===61?finishOp(_assign,2):finishOp(_bin10,1)}function
readToken_pipe_amp(code){var next=input.charCodeAt(tokPos+1);return next===code?finishOp(code===124?_bin1:_bin2,2):next===61?finishOp(_assign,2):finishOp(code===124?_bin3:_bin5,1)}function
readToken_caret(){var next=input.charCodeAt(tokPos+1);return next===61?finishOp(_assign,2):finishOp(_bin4,1)}function
readToken_plus_min(code){var next=input.charCodeAt(tokPos+1);return next===code?next==45&&input.charCodeAt(tokPos+2)==62&&newline.test(input.slice(lastEnd,tokPos))?(tokPos+=3,skipLineComment(),skipSpace(),readToken()):finishOp(_incdec,2):next===61?finishOp(_assign,2):finishOp(_plusmin,1)}function
readToken_lt_gt(code){var next=input.charCodeAt(tokPos+1),size=1;return next===code?(size=code===62&&input.charCodeAt(tokPos+2)===62?3:2,input.charCodeAt(tokPos+size)===61?finishOp(_assign,size+1):finishOp(_bin8,size)):next==33&&code==60&&input.charCodeAt(tokPos+2)==45&&input.charCodeAt(tokPos+3)==45?(tokPos+=4,skipLineComment(),skipSpace(),readToken()):(next===61&&(size=input.charCodeAt(tokPos+2)===61?3:2),finishOp(_bin7,size))}function
readToken_eq_excl(code){var next=input.charCodeAt(tokPos+1);return next===61?finishOp(_bin6,input.charCodeAt(tokPos+2)===61?3:2):finishOp(code===61?_eq:_prefix,1)}function
getTokenFromCode(code){var next;switch(code){case 46:return readToken_dot();case
40:return++tokPos,finishToken(_parenL);case 41:return++tokPos,finishToken(_parenR);case
59:return++tokPos,finishToken(_semi);case 44:return++tokPos,finishToken(_comma);case
91:return++tokPos,finishToken(_bracketL);case 93:return++tokPos,finishToken(_bracketR);case
123:return++tokPos,finishToken(_braceL);case 125:return++tokPos,finishToken(_braceR);case
58:return++tokPos,finishToken(_colon);case 63:return++tokPos,finishToken(_question);case
48:next=input.charCodeAt(tokPos+1);if(next===120||next===88)return readHexNumber();case
49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return readNumber(false);case
34:case 39:return readString(code);case 47:return readToken_slash(code);case 37:case
42:return readToken_mult_modulo();case 124:case 38:return readToken_pipe_amp(code);case
94:return readToken_caret();case 43:case 45:return readToken_plus_min(code);case
60:case 62:return readToken_lt_gt(code);case 61:case 33:return readToken_eq_excl(code);case
126:return finishOp(_prefix,1)}return false}function readToken(forceRegexp){var
ch,code,tok;forceRegexp?(tokPos=tokStart+1):(tokStart=tokPos),options.locations&&(tokStartLoc=new
line_loc_t);if(forceRegexp)return readRegexp();if(tokPos>=inputLen)return finishToken(_eof);code=input.charCodeAt(tokPos);if(isIdentifierStart(code)||code===92)return readWord();tok=getTokenFromCode(code);if(tok===false){ch=String.fromCharCode(code);if(ch==='\\'||nonASCIIidentifierStart.test(ch))return readWord();raise(tokPos,'Unexpected character \''+ch+'\'')}return tok}function
finishOp(type,size){var str=input.slice(tokPos,tokPos+size);tokPos+=size,finishToken(type,str)}function
readRegexp(){var content='',start=tokPos,ch,escaped,inClass,mods;for(;;){tokPos>=inputLen&&raise(start,'Unterminated regular expression'),ch=input.charAt(tokPos),newline.test(ch)&&raise(start,'Unterminated regular expression');if(!escaped){if(ch==='[')inClass=true;else
if(ch===']'&&inClass)inClass=false;else if(ch==='/'&&!inClass)break;escaped=ch==='\\'}else
escaped=false;++tokPos}return content=input.slice(start,tokPos),++tokPos,mods=readWord1(),mods&&!/^[gmsiy]*$/.test(mods)&&raise(start,'Invalid regexp flag'),finishToken(_regexp,new
RegExp(content,mods))}function readInt(radix,len){var start=tokPos,total=0,code,e,i,val;for(i=0,e=len==null?Infinity:len;i<e;++i){code=input.charCodeAt(tokPos),code>=97?(val=code-97+10):code>=65?(val=code-65+10):code>=48&&code<=57?(val=code-48):(val=Infinity);if(val>=radix)break;++tokPos,total=total*radix+val}return tokPos===start||len!=null&&tokPos-start!==len?null:total}function
readHexNumber(){var val;return tokPos+=2,val=readInt(16),val==null&&raise(tokStart+2,'Expected hexadecimal number'),isIdentifierStart(input.charCodeAt(tokPos))&&raise(tokPos,'Identifier directly after number'),finishToken(_num,val)}function
readNumber(startsWithDot){var start=tokPos,isFloat=false,octal=input.charCodeAt(tokPos)===48,next,str,val;return!startsWithDot&&readInt(10)===null&&raise(start,'Invalid number'),input.charCodeAt(tokPos)===46&&(++tokPos,readInt(10),isFloat=true),next=input.charCodeAt(tokPos),(next===69||next===101)&&(next=input.charCodeAt(++tokPos),(next===43||next===45)&&++tokPos,readInt(10)===null&&raise(start,'Invalid number'),isFloat=true),isIdentifierStart(input.charCodeAt(tokPos))&&raise(tokPos,'Identifier directly after number'),str=input.slice(start,tokPos),isFloat?(val=parseFloat(str)):!octal||str.length===1?(val=parseInt(str,10)):/[89]/.test(str)||strict?raise(start,'Invalid number'):(val=parseInt(str,8)),finishToken(_num,val)}function
readString(quote){var ch,octal,out;++tokPos,out='';for(;;){tokPos>=inputLen&&raise(tokStart,'Unterminated string constant'),ch=input.charCodeAt(tokPos);if(ch===quote)return++tokPos,finishToken(_string,out);if(ch===92){ch=input.charCodeAt(++tokPos),octal=/^[0-7]+/.exec(input.slice(tokPos,tokPos+3)),octal&&(octal=octal[0]);while(octal&&parseInt(octal,8)>255)octal=octal.slice(0,octal.length-1);octal==='0'&&(octal=null),++tokPos;if(octal)strict&&raise(tokPos-2,'Octal literal in strict mode'),out+=String.fromCharCode(parseInt(octal,8)),tokPos+=octal.length-1;else
switch(ch){case 110:out+='\n';break;case 114:out+='\r';break;case 120:out+=String.fromCharCode(readHexChar(2));break;case
117:out+=String.fromCharCode(readHexChar(4));break;case 85:out+=String.fromCharCode(readHexChar(8));break;case
116:out+='\t';break;case 98:out+='\b';break;case 118:out+='\x0b';break;case 102:out+='\f';break;case
48:out+='\x00';break;case 13:input.charCodeAt(tokPos)===10&&++tokPos;case 10:options.locations&&(tokLineStart=tokPos,++tokCurLine);break;default:out+=String.fromCharCode(ch)}}else(ch===13||ch===10||ch===8232||ch===8233)&&raise(tokStart,'Unterminated string constant'),out+=String.fromCharCode(ch),++tokPos}}function
readHexChar(len){var n=readInt(16,len);return n===null&&raise(tokStart,'Bad character escape sequence'),n}function
readWord1(){var ch,esc,escStr,first,start,word;containsEsc=false,first=true,start=tokPos;for(;;){ch=input.charCodeAt(tokPos);if(isIdentifierChar(ch))containsEsc&&(word+=input.charAt(tokPos)),++tokPos;else
if(ch===92)containsEsc||(word=input.slice(start,tokPos)),containsEsc=true,input.charCodeAt(++tokPos)!=117&&raise(tokPos,'Expecting Unicode escape sequence \\uXXXX'),++tokPos,esc=readHexChar(4),escStr=String.fromCharCode(esc),escStr||raise(tokPos-1,'Invalid Unicode escape'),(first?isIdentifierStart(esc):isIdentifierChar(esc))||raise(tokPos-4,'Invalid Unicode escape'),word+=escStr;else
break;first=false}return containsEsc?word:input.slice(start,tokPos)}function readWord(){var
word=readWord1(),type=_name;return containsEsc||(isKeyword(word)?(type=keywordTypes[word]):(options.forbidReserved&&(options.ecmaVersion===3?isReservedWord3:isReservedWord5)(word)||strict&&isStrictReservedWord(word))&&raise(tokStart,'The keyword \''+word+'\' is reserved')),finishToken(type,word)}function
next(){lastStart=tokStart,lastEnd=tokEnd,lastEndLoc=tokEndLoc,readToken()}function
setStrict(strct){strict=strct,tokPos=lastEnd;if(options.locations)while(tokPos<tokLineStart)tokLineStart=input.lastIndexOf('\n',tokLineStart-2)+1,--tokCurLine;skipSpace(),readToken()}function
node_t(){this.type=null,this.start=tokStart,this.end=null}function node_loc_t(){this.start=tokStartLoc,this.end=null,sourceFile!==null&&(this.source=sourceFile)}function
startNode(){var node=new node_t;return options.locations&&(node.loc=new node_loc_t),options.ranges&&(node.range=[tokStart,0]),node}function
startNodeFrom(other){var node=new node_t;return node.start=other.start,options.locations&&(node.loc=new
node_loc_t,node.loc.start=other.loc.start),options.ranges&&(node.range=[other.range[0],0]),node}function
finishNode(node,type){return node.type=type,node.end=lastEnd,options.locations&&(node.loc.end=lastEndLoc),options.ranges&&(node.range[1]=lastEnd),node}function
isUseStrict(stmt){return options.ecmaVersion>=5&&stmt.type==='ExpressionStatement'&&stmt.expression.type==='Literal'&&stmt.expression.value==='use strict'}function
eat(type){if(tokType===type)return next(),true}function canInsertSemicolon(){return!options.strictSemicolons&&(tokType===_eof||tokType===_braceR||newline.test(input.slice(lastEnd,tokStart)))}function
semicolon(){!eat(_semi)&&!canInsertSemicolon()&&unexpected()}function expect(type){tokType===type?next():unexpected()}function
unexpected(){raise(tokStart,'Unexpected token')}function checkLVal(expr){expr.type!=='Identifier'&&expr.type!=='MemberExpression'&&raise(expr.start,'Assigning to rvalue'),strict&&expr.type==='Identifier'&&isStrictBadIdWord(expr.name)&&raise(expr.start,'Assigning to '+expr.name+' in strict mode')}function
parseTopLevel(program){var first,node,stmt;lastStart=lastEnd=tokPos,options.locations&&(lastEndLoc=new
line_loc_t),inFunction=strict=null,labels=[],readToken(),node=program||startNode(),first=true,program||(node.body=[]);while(tokType!==_eof)stmt=parseStatement(),node.body.push(stmt),first&&isUseStrict(stmt)&&setStrict(true),first=false;return finishNode(node,'Program')}loopLabel={'kind':'loop'},switchLabel={'kind':'switch'};function
parseStatement(){var clause,cur,expr,i,init,isBreak,isCase,kind,lab,maybeName,node,sawDefault,starttype;(tokType===_slash||tokType===_assign&&tokVal=='/=')&&readToken(true),starttype=tokType,node=startNode();switch(starttype){case
_break:case _continue:next(),isBreak=starttype===_break,eat(_semi)||canInsertSemicolon()?(node.label=null):tokType!==_name?unexpected():(node.label=parseIdent(),semicolon());for(i=0;i<labels.length;++i){lab=labels[i];if(node.label==null||lab.name===node.label.name){if(lab.kind!=null&&(isBreak||lab.kind==='loop'))break;if(node.label&&isBreak)break}}return i===labels.length&&raise(node.start,'Unsyntactic '+starttype.keyword),finishNode(node,isBreak?'BreakStatement':'ContinueStatement');case
_debugger:return next(),semicolon(),finishNode(node,'DebuggerStatement');case _do:return next(),labels.push(loopLabel),node.body=parseStatement(),labels.pop(),expect(_while),node.test=parseParenExpression(),semicolon(),finishNode(node,'DoWhileStatement');case
_for:return next(),labels.push(loopLabel),expect(_parenL),tokType===_semi?parseFor(node,null):tokType===_var?(init=startNode(),next(),parseVar(init,true),finishNode(init,'VariableDeclaration'),init.declarations.length===1&&eat(_in)?parseForIn(node,init):parseFor(node,init)):(init=parseExpression(false,true),eat(_in)?(checkLVal(init),parseForIn(node,init)):parseFor(node,init));case
_function:return next(),parseFunction(node,true);case _if:return next(),node.test=parseParenExpression(),node.consequent=parseStatement(),node.alternate=eat(_else)?parseStatement():null,finishNode(node,'IfStatement');case
_return:return inFunction||raise(tokStart,'\'return\' outside of function'),next(),eat(_semi)||canInsertSemicolon()?(node.argument=null):(node.argument=parseExpression(),semicolon()),finishNode(node,'ReturnStatement');case
_switch:next(),node.discriminant=parseParenExpression(),node.cases=[],expect(_braceL),labels.push(switchLabel);for(;tokType!=_braceR;)tokType===_case||tokType===_default?(isCase=tokType===_case,cur&&finishNode(cur,'SwitchCase'),node.cases.push(cur=startNode()),cur.consequent=[],next(),isCase?(cur.test=parseExpression()):(sawDefault&&raise(lastStart,'Multiple default clauses'),sawDefault=true,cur.test=null),expect(_colon)):(cur||unexpected(),cur.consequent.push(parseStatement()));return cur&&finishNode(cur,'SwitchCase'),next(),labels.pop(),finishNode(node,'SwitchStatement');case
_throw:return next(),newline.test(input.slice(lastEnd,tokStart))&&raise(lastEnd,'Illegal newline after throw'),node.argument=parseExpression(),semicolon(),finishNode(node,'ThrowStatement');case
_try:return next(),node.block=parseBlock(),node.handler=null,tokType===_catch&&(clause=startNode(),next(),expect(_parenL),clause.param=parseIdent(),strict&&isStrictBadIdWord(clause.param.name)&&raise(clause.param.start,'Binding '+clause.param.name+' in strict mode'),expect(_parenR),clause.guard=null,clause.body=parseBlock(),node.handler=finishNode(clause,'CatchClause')),node.guardedHandlers=empty,node.finalizer=eat(_finally)?parseBlock():null,!node.handler&&!node.finalizer&&raise(node.start,'Missing catch or finally clause'),finishNode(node,'TryStatement');case
_var:return next(),parseVar(node),semicolon(),finishNode(node,'VariableDeclaration');case
_while:return next(),node.test=parseParenExpression(),labels.push(loopLabel),node.body=parseStatement(),labels.pop(),finishNode(node,'WhileStatement');case
_with:return strict&&raise(tokStart,'\'with\' in strict mode'),next(),node.object=parseParenExpression(),node.body=parseStatement(),finishNode(node,'WithStatement');case
_braceL:return parseBlock();case _semi:return next(),finishNode(node,'EmptyStatement');default:maybeName=tokVal,expr=parseExpression();if(starttype===_name&&expr.type==='Identifier'&&eat(_colon)){for(i=0;i<labels.length;++i)labels[i].name===maybeName&&raise(expr.start,'Label \''+maybeName+'\' is already declared');return kind=tokType.isLoop?'loop':tokType===_switch?'switch':null,labels.push({'name':maybeName,'kind':kind}),node.body=parseStatement(),labels.pop(),node.label=expr,finishNode(node,'LabeledStatement')}return node.expression=expr,semicolon(),finishNode(node,'ExpressionStatement')}}function
parseParenExpression(){var val;return expect(_parenL),val=parseExpression(),expect(_parenR),val}function
parseBlock(allowStrict){var node=startNode(),first=true,strict=false,oldStrict,stmt;node.body=[],expect(_braceL);while(!eat(_braceR))stmt=parseStatement(),node.body.push(stmt),first&&allowStrict&&isUseStrict(stmt)&&(oldStrict=strict,setStrict(strict=true)),first=false;return strict&&!oldStrict&&setStrict(false),finishNode(node,'BlockStatement')}function
parseFor(node,init){return node.init=init,expect(_semi),node.test=tokType===_semi?null:parseExpression(),expect(_semi),node.update=tokType===_parenR?null:parseExpression(),expect(_parenR),node.body=parseStatement(),labels.pop(),finishNode(node,'ForStatement')}function
parseForIn(node,init){return node.left=init,node.right=parseExpression(),expect(_parenR),node.body=parseStatement(),labels.pop(),finishNode(node,'ForInStatement')}function
parseVar(node,noIn){var decl;node.declarations=[],node.kind='var';for(;;){decl=startNode(),decl.id=parseIdent(),strict&&isStrictBadIdWord(decl.id.name)&&raise(decl.id.start,'Binding '+decl.id.name+' in strict mode'),decl.init=eat(_eq)?parseExpression(true,noIn):null,node.declarations.push(finishNode(decl,'VariableDeclarator'));if(!eat(_comma))break}return node}function
parseExpression(noComma,noIn){var expr=parseMaybeAssign(noIn),node;if(!noComma&&tokType===_comma){node=startNodeFrom(expr),node.expressions=[expr];while(eat(_comma))node.expressions.push(parseMaybeAssign(noIn));return finishNode(node,'SequenceExpression')}return expr}function
parseMaybeAssign(noIn){var left=parseMaybeConditional(noIn),node;return tokType.isAssign?(node=startNodeFrom(left),node.operator=tokVal,node.left=left,next(),node.right=parseMaybeAssign(noIn),checkLVal(left),finishNode(node,'AssignmentExpression')):left}function
parseMaybeConditional(noIn){var expr=parseExprOps(noIn),node;return eat(_question)?(node=startNodeFrom(expr),node.test=expr,node.consequent=parseExpression(true),expect(_colon),node.alternate=parseExpression(true,noIn),finishNode(node,'ConditionalExpression')):expr}function
parseExprOps(noIn){return parseExprOp(parseMaybeUnary(),-1,noIn)}function parseExprOp(left,minPrec,noIn){var
prec=tokType.binop,exprNode,node;if(prec!=null&&(!noIn||tokType!==_in)){if(prec>minPrec)return node=startNodeFrom(left),node.left=left,node.operator=tokVal,next(),node.right=parseExprOp(parseMaybeUnary(),prec,noIn),exprNode=finishNode(node,/\x26\x26|\|\|/.test(node.operator)?'LogicalExpression':'BinaryExpression'),parseExprOp(exprNode,minPrec,noIn)};return left}function
parseMaybeUnary(){var expr,node,update;if(tokType.prefix)return node=startNode(),update=tokType.isUpdate,node.operator=tokVal,node.prefix=true,tokRegexpAllowed=true,next(),node.argument=parseMaybeUnary(),update?checkLVal(node.argument):strict&&node.operator==='delete'&&node.argument.type==='Identifier'&&raise(node.start,'Deleting local variable in strict mode'),finishNode(node,update?'UpdateExpression':'UnaryExpression');expr=parseExprSubscripts();while(tokType.postfix&&!canInsertSemicolon())node=startNodeFrom(expr),node.operator=tokVal,node.prefix=false,node.argument=expr,checkLVal(expr),next(),expr=finishNode(node,'UpdateExpression');return expr}function
parseExprSubscripts(){return parseSubscripts(parseExprAtom())}function parseSubscripts(base,noCalls){var
node;return eat(_dot)?(node=startNodeFrom(base),node.object=base,node.property=parseIdent(true),node.computed=false,parseSubscripts(finishNode(node,'MemberExpression'),noCalls)):eat(_bracketL)?(node=startNodeFrom(base),node.object=base,node.property=parseExpression(),node.computed=true,expect(_bracketR),parseSubscripts(finishNode(node,'MemberExpression'),noCalls)):!noCalls&&eat(_parenL)?(node=startNodeFrom(base),node.callee=base,node.arguments=parseExprList(_parenR,false),parseSubscripts(finishNode(node,'CallExpression'),noCalls)):base}function
parseExprAtom(){var node,tokStart1,tokStartLoc1,val;switch(tokType){case _this:return node=startNode(),next(),finishNode(node,'ThisExpression');case
_name:return parseIdent();case _num:case _string:case _regexp:return node=startNode(),node.value=tokVal,node.raw=input.slice(tokStart,tokEnd),next(),finishNode(node,'Literal');case
_null:case _true:case _false:return node=startNode(),node.value=tokType.atomValue,node.raw=tokType.keyword,next(),finishNode(node,'Literal');case
_parenL:return tokStartLoc1=tokStartLoc,tokStart1=tokStart,next(),val=parseExpression(),val.start=tokStart1,val.end=tokEnd,options.locations&&(val.loc.start=tokStartLoc1,val.loc.end=tokEndLoc),options.ranges&&(val.range=[tokStart1,tokEnd]),expect(_parenR),val;case
_bracketL:return node=startNode(),next(),node.elements=parseExprList(_bracketR,true,true),finishNode(node,'ArrayExpression');case
_braceL:return parseObj();case _function:return node=startNode(),next(),parseFunction(node,false);case
_new:return parseNew();default:unexpected()}}function parseNew(){var node=startNode();return next(),node.callee=parseSubscripts(parseExprAtom(),true),eat(_parenL)?(node.arguments=parseExprList(_parenR,false)):(node.arguments=empty),finishNode(node,'NewExpression')}function
parseObj(){var node=startNode(),first=true,sawGetSet=false,conflict,i,isGetSet,kind,other,prop;node.properties=[],next();while(!eat(_braceR)){if(!first){expect(_comma);if(options.allowTrailingCommas&&eat(_braceR))break}else
first=false;prop={'key':parsePropertyName()},isGetSet=false,eat(_colon)?(prop.value=parseExpression(true),kind=prop.kind='init'):options.ecmaVersion>=5&&prop.key.type==='Identifier'&&(prop.key.name==='get'||prop.key.name==='set')?(isGetSet=sawGetSet=true,kind=prop.kind=prop.key.name,prop.key=parsePropertyName(),tokType!==_parenL&&unexpected(),prop.value=parseFunction(startNode(),false)):unexpected();if(prop.key.type==='Identifier'&&(strict||sawGetSet))for(i=0;i<node.properties.length;++i)other=node.properties[i],other.key.name===prop.key.name&&(conflict=kind==other.kind||isGetSet&&other.kind==='init'||kind==='init'&&(other.kind==='get'||other.kind==='set'),conflict&&!strict&&kind==='init'&&other.kind==='init'&&(conflict=false),conflict&&raise(prop.key.start,'Redefinition of property'));node.properties.push(prop)}return finishNode(node,'ObjectExpression')}function
parsePropertyName(){return tokType===_num||tokType===_string?parseExprAtom():parseIdent(true)}function
parseFunction(node,isStatement){var first,i,id,j,oldInFunc,oldLabels;tokType===_name?(node.id=parseIdent()):isStatement?unexpected():(node.id=null),node.params=[],first=true,expect(_parenL);while(!eat(_parenR))first?(first=false):expect(_comma),node.params.push(parseIdent());oldInFunc=inFunction,oldLabels=labels,inFunction=true,labels=[],node.body=parseBlock(true),inFunction=oldInFunc,labels=oldLabels;if(strict||node.body.body.length&&isUseStrict(node.body.body[0]))for(i=node.id?-1:0;i<node.params.length;++i){id=i<0?node.id:node.params[i],(isStrictReservedWord(id.name)||isStrictBadIdWord(id.name))&&raise(id.start,'Defining \''+id.name+'\' in strict mode');if(i>=0)for(j=0;j<i;++j)id.name===node.params[j].name&&raise(id.start,'Argument name clash in strict mode')}return finishNode(node,isStatement?'FunctionDeclaration':'FunctionExpression')}function
parseExprList(close,allowTrailingComma,allowEmpty){var elts=[],first=true;while(!eat(close)){if(!first){expect(_comma);if(allowTrailingComma&&options.allowTrailingCommas&&eat(close))break}else
first=false;allowEmpty&&tokType===_comma?elts.push(null):elts.push(parseExpression(true))}return elts}function
parseIdent(liberal){var node=startNode();return node.name=tokType===_name?tokVal:liberal&&!options.forbidReserved&&tokType.keyword||unexpected(),tokRegexpAllowed=false,next(),finishNode(node,'Identifier')}}),(function(){'use strict';var
BinaryPrecedence,FORMAT_DEFAULTS,FORMAT_MINIFY,Precedence,Regex,SourceNode,Syntax,base,directive,escapeless,estraverse,extra,hexadecimal,indent,isArray,json,newline,parentheses,parse,quotes,renumber,safeConcatenation,semicolons,sourceMap,space;estraverse=require('estraverse'),Syntax={'AssignmentExpression':'AssignmentExpression','ArrayExpression':'ArrayExpression','ArrayPattern':'ArrayPattern','ArrowFunctionExpression':'ArrowFunctionExpression','BlockStatement':'BlockStatement','BinaryExpression':'BinaryExpression','BreakStatement':'BreakStatement','CallExpression':'CallExpression','CatchClause':'CatchClause','ComprehensionBlock':'ComprehensionBlock','ComprehensionExpression':'ComprehensionExpression','ConditionalExpression':'ConditionalExpression','ContinueStatement':'ContinueStatement','DirectiveStatement':'DirectiveStatement','DoWhileStatement':'DoWhileStatement','DebuggerStatement':'DebuggerStatement','EmptyStatement':'EmptyStatement','ExpressionStatement':'ExpressionStatement','ForStatement':'ForStatement','ForInStatement':'ForInStatement','FunctionDeclaration':'FunctionDeclaration','FunctionExpression':'FunctionExpression','Identifier':'Identifier','IfStatement':'IfStatement','Literal':'Literal','LabeledStatement':'LabeledStatement','LogicalExpression':'LogicalExpression','MemberExpression':'MemberExpression','NewExpression':'NewExpression','ObjectExpression':'ObjectExpression','ObjectPattern':'ObjectPattern','Program':'Program','Property':'Property','ReturnStatement':'ReturnStatement','SequenceExpression':'SequenceExpression','SwitchStatement':'SwitchStatement','SwitchCase':'SwitchCase','ThisExpression':'ThisExpression','ThrowStatement':'ThrowStatement','TryStatement':'TryStatement','UnaryExpression':'UnaryExpression','UpdateExpression':'UpdateExpression','VariableDeclaration':'VariableDeclaration','VariableDeclarator':'VariableDeclarator','WhileStatement':'WhileStatement','WithStatement':'WithStatement','YieldExpression':'YieldExpression'},Precedence={'Sequence':0,'Assignment':1,'Conditional':2,'ArrowFunction':2,'LogicalOR':3,'LogicalAND':4,'BitwiseOR':5,'BitwiseXOR':6,'BitwiseAND':7,'Equality':8,'Relational':9,'BitwiseSHIFT':10,'Additive':11,'Multiplicative':12,'Unary':13,'Postfix':14,'Call':15,'New':16,'Member':17,'Primary':18},BinaryPrecedence={'||':Precedence.LogicalOR,'\x26\x26':Precedence.LogicalAND,'|':Precedence.BitwiseOR,'^':Precedence.BitwiseXOR,'\x26':Precedence.BitwiseAND,'==':Precedence.Equality,'!=':Precedence.Equality,'===':Precedence.Equality,'!==':Precedence.Equality,'is':Precedence.Equality,'isnt':Precedence.Equality,'\x3c':Precedence.Relational,'\x3e':Precedence.Relational,'\x3c=':Precedence.Relational,'\x3e=':Precedence.Relational,'in':Precedence.Relational,'instanceof':Precedence.Relational,'\x3c\x3c':Precedence.BitwiseSHIFT,'\x3e\x3e':Precedence.BitwiseSHIFT,'\x3e\x3e\x3e':Precedence.BitwiseSHIFT,'+':Precedence.Additive,'-':Precedence.Additive,'*':Precedence.Multiplicative,'%':Precedence.Multiplicative,'/':Precedence.Multiplicative},Regex={'NonAsciiIdentifierPart':new
RegExp('[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]')};function
getDefaultOptions(){return{'indent':null,'base':null,'parse':null,'comment':false,'format':{'indent':{'style':' ','base':0,'adjustMultilineComment':false},'json':false,'renumber':false,'hexadecimal':false,'quotes':'single','escapeless':false,'compact':false,'parentheses':true,'semicolons':true,'safeConcatenation':false},'moz':{'starlessGenerator':false,'parenthesizedComprehensionBlock':false},'sourceMap':null,'sourceMapRoot':null,'sourceMapWithCode':false,'directive':false,'verbatim':null}}function
stringToArray(str){var length=str.length,result=[],i;for(i=0;i<length;i+=1)result[i]=str.charAt(i);return result}function
stringRepeat(str,num){var result='';for(num|=0;num>0;num>>>=1,str+=str)num&1&&(result+=str);return result}isArray=Array.isArray,isArray||(isArray=function
isArray(array){return Object.prototype.toString.call(array)==='[object Array]'});function
SourceNodeMock(line,column,filename,chunk){var result=[];function flatten(input){var
i,iz;if(isArray(input))for(i=0,iz=input.length;i<iz;++i)flatten(input[i]);else if(input
instanceof SourceNodeMock)result.push(input);else if(typeof input==='string'&&input)result.push(input)}flatten(chunk),this.children=result}SourceNodeMock.prototype.toString=function
toString(){var res='',i,iz,node;for(i=0,iz=this.children.length;i<iz;++i)node=this.children[i],node
instanceof SourceNodeMock?(res+=node.toString()):(res+=node);return res},SourceNodeMock.prototype.replaceRight=function
replaceRight(pattern,replacement){var last=this.children[this.children.length-1];return last
instanceof SourceNodeMock?last.replaceRight(pattern,replacement):typeof last==='string'?(this.children[this.children.length-1]=last.replace(pattern,replacement)):this.children.push(''.replace(pattern,replacement)),this},SourceNodeMock.prototype.join=function
join(sep){var result=[],iz=this.children.length,i;if(iz>0){for(i=0,iz-=1;i<iz;++i)result.push(this.children[i],sep);result.push(this.children[iz]),this.children=result}return this};function
hasLineTerminator(str){return/[\r\n]/g.test(str)}function endsWithLineTerminator(str){var
ch=str.charAt(str.length-1);return ch==='\r'||ch==='\n'}function updateDeeply(target,override){var
key,val;function isHashObject(target){return typeof target==='object'&&target instanceof
Object&&!(target instanceof RegExp)}for(key in override)override.hasOwnProperty(key)&&(val=override[key],isHashObject(val)?isHashObject(target[key])?updateDeeply(target[key],val):(target[key]=updateDeeply({},val)):(target[key]=val));return target}function
generateNumber(value){var exponent,point,pos,result,temp;if(value!==value)throw new
Error('Numeric literal whose value is NaN');if(value<0||value===0&&1/value<0)throw new
Error('Numeric literal whose value is negative');if(value===(1/0))return json?'null':renumber?'1e400':'1e+400';result=''+value;if(!renumber||result.length<3)return result;point=result.indexOf('.'),!json&&result.charAt(0)==='0'&&point===1&&(point=0,result=result.slice(1)),temp=result,result=result.replace('e+','e'),exponent=0,(pos=temp.indexOf('e'))>0&&(exponent=+temp.slice(pos+1),temp=temp.slice(0,pos)),point>=0&&(exponent-=temp.length-point-1,temp=+(temp.slice(0,point)+temp.slice(point+1))+''),pos=0;while(temp.charAt(temp.length+pos-1)==='0')pos-=1;return pos!==0&&(exponent-=pos,temp=temp.slice(0,pos)),exponent!==0&&(temp+='e'+exponent),(temp.length<result.length||hexadecimal&&value>1.0E12&&Math.floor(value)===value&&(temp='0x'+value.toString(16)).length<result.length)&&+temp===value&&(result=temp),result}function
escapeRegExpCharacter(ch,previousIsBackslash){return(ch&-2)===8232?(previousIsBackslash?'u':'\\u')+(ch===8232?'2028':'2029'):ch===10||ch===13?(previousIsBackslash?'':'\\')+(ch===10?'n':'r'):String.fromCharCode(ch)}function
generateRegExp(reg){var result=reg.toString(),ch,characterInBrack,flags,i,iz,match,previousIsBackslash;if(reg.source){match=result.match(/\/([^\/]*)$/);if(!match)return result;flags=match[1],result='',characterInBrack=false,previousIsBackslash=false;for(i=0,iz=reg.source.length;i<iz;++i)ch=reg.source.charCodeAt(i),previousIsBackslash?(result+=escapeRegExpCharacter(ch,previousIsBackslash),previousIsBackslash=false):(characterInBrack?ch===93&&(characterInBrack=false):ch===47?(result+='\\'):ch===91&&(characterInBrack=true),result+=escapeRegExpCharacter(ch,previousIsBackslash),previousIsBackslash=ch===92);return'/'+result+'/'+flags}return result}function
escapeAllowedCharacter(ch,next){var code=ch.charCodeAt(0),hex=code.toString(16),result='\\';switch(ch){case'\b':result+='b';break;case'\f':result+='f';break;case'\t':result+='t';break;default:json||code>255?(result+='u'+'0000'.slice(hex.length)+hex):ch==='\x00'&&'0123456789'.indexOf(next)<0?(result+='0'):ch==='\x0b'?(result+='x0B'):(result+='x'+'00'.slice(hex.length)+hex)}return result}function
escapeDisallowedCharacter(ch){var result='\\';switch(ch){case'\\':result+='\\';break;case'\n':result+='n';break;case'\r':result+='r';break;case'\u2028':result+='u2028';break;case'\u2029':result+='u2029';break;default:throw new
Error('Incorrectly classified character')}return result}function escapeDirective(str){var
buf=str,ch,i,iz,quote;typeof buf[0]==='undefined'&&(buf=stringToArray(buf)),quote=quotes==='double'?'\"':'\'';for(i=0,iz=buf.length;i<iz;i+=1){ch=buf[i];if(ch==='\''){quote='\"';break}else
if(ch==='\"'){quote='\'';break}else if(ch==='\\')i+=1}return quote+str+quote}function
escapeString(str){var result='',singleQuotes=0,doubleQuotes=0,ch,i,len,single;typeof
str[0]==='undefined'&&(str=stringToArray(str));for(i=0,len=str.length;i<len;i+=1){ch=str[i];if(ch==='\'')singleQuotes+=1;else
if(ch==='\"')doubleQuotes+=1;else if(ch==='/'&&json)result+='\\';else if('\\\n\r\u2028\u2029'.indexOf(ch)>=0){result+=escapeDisallowedCharacter(ch);continue}else
if(json&&ch<' '||!(json||escapeless||ch>=' '&&ch<='~')){result+=escapeAllowedCharacter(ch,str[i+1]);continue}result+=ch}single=!(quotes==='double'||quotes==='auto'&&doubleQuotes<singleQuotes),str=result,result=single?'\'':'\"',typeof
str[0]==='undefined'&&(str=stringToArray(str));for(i=0,len=str.length;i<len;i+=1)ch=str[i],(ch==='\''&&single||ch==='\"'&&!single)&&(result+='\\'),result+=ch;return result+(single?'\'':'\"')}function
isWhiteSpace(ch){return'\t\x0b\f \xa0'.indexOf(ch)>=0||ch.charCodeAt(0)>=5760&&'\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff'.indexOf(ch)>=0}function
isLineTerminator(ch){return'\n\r\u2028\u2029'.indexOf(ch)>=0}function isIdentifierPart(ch){return ch==='$'||ch==='_'||ch==='\\'||ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'||ch>='0'&&ch<='9'||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierPart.test(ch)}function
isDecimalDigit(ch){return ch>=48&&ch<=57}function toSourceNode(generated,node){if(node==null){if(generated
instanceof SourceNode)return generated;node={}}return node.loc==null?new SourceNode(null,null,sourceMap,generated,(node.name||null)):new
SourceNode(node.loc.start.line,node.loc.start.column,(sourceMap===true?node.loc.source||null:sourceMap),generated,(node.name||null))}function
join(left,right){var leftSource=toSourceNode(left).toString(),rightSource=toSourceNode(right).toString(),leftChar=leftSource.charAt(leftSource.length-1),rightChar=rightSource.charAt(0);return(leftChar==='+'||leftChar==='-')&&leftChar===rightChar||isIdentifierPart(leftChar)&&isIdentifierPart(rightChar)||leftChar==='/'&&rightChar==='i'?[left,' ',right]:isWhiteSpace(leftChar)||isLineTerminator(leftChar)||isWhiteSpace(rightChar)||isLineTerminator(rightChar)?[left,right]:[left,space,right]}function
addIndent(stmt){return[base,stmt]}function withIndent(fn){var previousBase=base,result;return base+=indent,result=fn.call(this,base),base=previousBase,result}function
calculateSpaces(str){var i;for(i=str.length-1;i>=0;i-=1)if(isLineTerminator(str.charAt(i)))break;return str.length-1-i}function
adjustMultilineComment(value,specialBase){var array=value.split(/\r\n|[\r\n]/),spaces=Number.MAX_VALUE,i,j,len,line,previousBase;for(i=1,len=array.length;i<len;i+=1){line=array[i],j=0;while(j<line.length&&isWhiteSpace(line[j]))j+=1;spaces>j&&(spaces=j)}typeof
specialBase!=='undefined'?(previousBase=base,array[1][spaces]==='*'&&(specialBase+=' '),base=specialBase):(spaces&1&&(spaces-=1),previousBase=base);for(i=1,len=array.length;i<len;i+=1)array[i]=toSourceNode(addIndent(array[i].slice(spaces))).join('');return base=previousBase,array.join('\n')}function
generateComment(comment,specialBase){return comment.type==='Line'?endsWithLineTerminator(comment.value)?'//'+comment.value:'//'+comment.value+'\n':extra.format.indent.adjustMultilineComment&&/[\n\r]/.test(comment.value)?adjustMultilineComment('/*'+comment.value+'*/',specialBase):'/*'+comment.value+'*/'}function
addCommentsToStatement(stmt,result){var comment,fragment,i,len,save,specialBase,tailingToStatement;if(stmt.leadingComments&&stmt.leadingComments.length>0){save=result,comment=stmt.leadingComments[0],result=[],safeConcatenation&&stmt.type===Syntax.Program&&stmt.body.length===0&&result.push('\n'),result.push(generateComment(comment)),endsWithLineTerminator(toSourceNode(result).toString())||result.push('\n');for(i=1,len=stmt.leadingComments.length;i<len;i+=1)comment=stmt.leadingComments[i],fragment=[generateComment(comment)],endsWithLineTerminator(toSourceNode(fragment).toString())||fragment.push('\n'),result.push(addIndent(fragment));result.push(addIndent(save))}if(stmt.trailingComments){tailingToStatement=!endsWithLineTerminator(toSourceNode(result).toString()),specialBase=stringRepeat(' ',calculateSpaces(toSourceNode([base,result,indent]).toString()));for(i=0,len=stmt.trailingComments.length;i<len;i+=1)comment=stmt.trailingComments[i],tailingToStatement?(i===0?(result=[result,indent]):(result=[result,specialBase]),result.push(generateComment(comment,specialBase))):(result=[result,addIndent(generateComment(comment))]),i!==len-1&&!endsWithLineTerminator(toSourceNode(result).toString())&&(result=[result,'\n'])}return result}function
parenthesize(text,current,should){return current<should?['(',text,')']:text}function
maybeBlock(stmt,semicolonOptional,functionBody){var noLeadingComment=!extra.comment||!stmt.leadingComments,result;return stmt.type===Syntax.BlockStatement&&noLeadingComment?[space,generateStatement(stmt,{'functionBody':functionBody})]:stmt.type===Syntax.EmptyStatement&&noLeadingComment?';':(withIndent(function(){result=[newline,addIndent(generateStatement(stmt,{'semicolonOptional':semicolonOptional,'functionBody':functionBody}))]}),result)}function
maybeBlockSuffix(stmt,result){var ends=endsWithLineTerminator(toSourceNode(result).toString());return stmt.type===Syntax.BlockStatement&&(!extra.comment||!stmt.leadingComments)&&!ends?[result,space]:ends?[result,base]:[result,newline,base]}function
generateVerbatim(expr,option){var result=expr[extra.verbatim].split(/\r\n|\n/),i;for(i=1;i<result.length;++i)result[i]=newline+base+result[i];return result=parenthesize(result,Precedence.Sequence,option.precedence),toSourceNode(result,expr)}function
generateIdentifier(node){return toSourceNode(node.name,node)}function generateFunctionBody(node){var
arrow=node.type===Syntax.ArrowFunctionExpression,expr,i,len,result;if(arrow&&node.params.length===1&&node.params[0].type===Syntax.Identifier)result=[generateIdentifier(node.params[0])];else{result=['('];for(i=0,len=node.params.length;i<len;i+=1)result.push(generateIdentifier(node.params[i])),i+1<len&&result.push(','+space);result.push(')')}return arrow&&result.push(space,'=\x3e'),node.expression?(result.push(space),expr=generateExpression(node.body,{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true}),expr.toString().charAt(0)==='{'&&(expr=['(',expr,')']),result.push(expr)):result.push(maybeBlock(node.body,false,true)),result}function
generateExpression(expr,option){var precedence=option.precedence,allowIn=option.allowIn,allowCall=option.allowCall,type=expr.type||option.type,allowUnparenthesizedNew,currentPrecedence,fragment,i,leftChar,leftSource,len,multiline,property,raw,result,rightChar;if(extra.verbatim&&expr.hasOwnProperty(extra.verbatim))return generateVerbatim(expr,option);switch(type){case
Syntax.SequenceExpression:result=[],allowIn|=Precedence.Sequence<precedence;for(i=0,len=expr.expressions.length;i<len;i+=1)result.push(generateExpression(expr.expressions[i],{'precedence':Precedence.Assignment,'allowIn':allowIn,'allowCall':true})),i+1<len&&result.push(','+space);result=parenthesize(result,Precedence.Sequence,precedence);break;case
Syntax.AssignmentExpression:allowIn|=Precedence.Assignment<precedence,result=parenthesize([generateExpression(expr.left,{'precedence':Precedence.Call,'allowIn':allowIn,'allowCall':true}),space+expr.operator+space,generateExpression(expr.right,{'precedence':Precedence.Assignment,'allowIn':allowIn,'allowCall':true})],Precedence.Assignment,precedence);break;case
Syntax.ArrowFunctionExpression:allowIn|=Precedence.ArrowFunction<precedence,result=parenthesize(generateFunctionBody(expr),Precedence.ArrowFunction,precedence);break;case
Syntax.ConditionalExpression:allowIn|=Precedence.Conditional<precedence,result=parenthesize([generateExpression(expr.test,{'precedence':Precedence.LogicalOR,'allowIn':allowIn,'allowCall':true}),space+'?'+space,generateExpression(expr.consequent,{'precedence':Precedence.Assignment,'allowIn':allowIn,'allowCall':true}),space+':'+space,generateExpression(expr.alternate,{'precedence':Precedence.Assignment,'allowIn':allowIn,'allowCall':true})],Precedence.Conditional,precedence);break;case
Syntax.LogicalExpression:case Syntax.BinaryExpression:currentPrecedence=BinaryPrecedence[expr.operator],allowIn|=currentPrecedence<precedence,fragment=generateExpression(expr.left,{'precedence':currentPrecedence,'allowIn':allowIn,'allowCall':true}),leftSource=fragment.toString(),leftSource.charAt(leftSource.length-1)==='/'&&isIdentifierPart(expr.operator.charAt(0))?(result=[fragment,' ',expr.operator]):(result=join(fragment,expr.operator)),fragment=generateExpression(expr.right,{'precedence':currentPrecedence+1,'allowIn':allowIn,'allowCall':true}),expr.operator==='/'&&fragment.toString().charAt(0)==='/'||expr.operator.slice(-1)==='\x3c'&&fragment.toString().slice(0,3)==='!--'?result.push(' ',fragment):(result=join(result,fragment)),expr.operator==='in'&&!allowIn?(result=['(',result,')']):(result=parenthesize(result,currentPrecedence,precedence));break;case
Syntax.CallExpression:result=[generateExpression(expr.callee,{'precedence':Precedence.Call,'allowIn':true,'allowCall':true,'allowUnparenthesizedNew':false})],result.push('(');for(i=0,len=expr['arguments'].length;i<len;i+=1)result.push(generateExpression(expr['arguments'][i],{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true})),i+1<len&&result.push(','+space);result.push(')'),result=allowCall?parenthesize(result,Precedence.Call,precedence):['(',result,')'];break;case
Syntax.NewExpression:len=expr['arguments'].length,allowUnparenthesizedNew=option.allowUnparenthesizedNew===undefined||option.allowUnparenthesizedNew,result=join('new',generateExpression(expr.callee,{'precedence':Precedence.New,'allowIn':true,'allowCall':false,'allowUnparenthesizedNew':allowUnparenthesizedNew&&!parentheses&&len===0}));if(!allowUnparenthesizedNew||parentheses||len>0){result.push('(');for(i=0;i<len;i+=1)result.push(generateExpression(expr['arguments'][i],{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true})),i+1<len&&result.push(','+space);result.push(')')}result=parenthesize(result,Precedence.New,precedence);break;case
Syntax.MemberExpression:result=[generateExpression(expr.object,{'precedence':Precedence.Call,'allowIn':true,'allowCall':allowCall,'allowUnparenthesizedNew':false})],expr.computed?result.push('[',generateExpression(expr.property,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':allowCall}),']'):(expr.object.type===Syntax.Literal&&typeof
expr.object.value==='number'&&(fragment=toSourceNode(result).toString(),fragment.indexOf('.')<0&&!/[eExX]/.test(fragment)&&isDecimalDigit(fragment.charCodeAt(fragment.length-1))&&!(fragment.length>=2&&fragment.charCodeAt(0)===48)&&result.push('.')),result.push('.',generateIdentifier(expr.property))),result=parenthesize(result,Precedence.Member,precedence);break;case
Syntax.UnaryExpression:fragment=generateExpression(expr.argument,{'precedence':Precedence.Unary,'allowIn':true,'allowCall':true}),space===''?(result=join(expr.operator,fragment)):(result=[expr.operator],expr.operator.length>2?(result=join(result,fragment)):(leftSource=toSourceNode(result).toString(),leftChar=leftSource.charAt(leftSource.length-1),rightChar=fragment.toString().charAt(0),(leftChar==='+'||leftChar==='-')&&leftChar===rightChar||isIdentifierPart(leftChar)&&isIdentifierPart(rightChar)?result.push(' ',fragment):result.push(fragment))),result=parenthesize(result,Precedence.Unary,precedence);break;case
Syntax.YieldExpression:expr.delegate?(result='yield*'):(result='yield'),expr.argument&&(result=join(result,generateExpression(expr.argument,{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true})));break;case
Syntax.UpdateExpression:expr.prefix?(result=parenthesize([expr.operator,generateExpression(expr.argument,{'precedence':Precedence.Unary,'allowIn':true,'allowCall':true})],Precedence.Unary,precedence)):(result=parenthesize([generateExpression(expr.argument,{'precedence':Precedence.Postfix,'allowIn':true,'allowCall':true}),expr.operator],Precedence.Postfix,precedence));break;case
Syntax.FunctionExpression:result='function',expr.id?(result=[result+' ',generateIdentifier(expr.id),generateFunctionBody(expr)]):(result=[result+space,generateFunctionBody(expr)]);break;case
Syntax.ArrayPattern:case Syntax.ArrayExpression:if(!expr.elements.length){result='[]';break}multiline=expr.elements.length>1,result=['[',multiline?newline:''],withIndent(function(indent){for(i=0,len=expr.elements.length;i<len;i+=1)expr.elements[i]?result.push(multiline?indent:'',generateExpression(expr.elements[i],{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true})):(multiline&&result.push(indent),i+1===len&&result.push(',')),i+1<len&&result.push(','+(multiline?newline:space))}),multiline&&!endsWithLineTerminator(toSourceNode(result).toString())&&result.push(newline),result.push(multiline?base:'',']');break;case
Syntax.Property:expr.kind==='get'||expr.kind==='set'?(result=[expr.kind+' ',generateExpression(expr.key,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),generateFunctionBody(expr.value)]):expr.shorthand?(result=generateExpression(expr.key,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})):expr.method?(result=[],expr.value.generator&&result.push('*'),result.push(generateExpression(expr.key,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),generateFunctionBody(expr.value))):(result=[generateExpression(expr.key,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),':'+space,generateExpression(expr.value,{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true})]);break;case
Syntax.ObjectExpression:if(!expr.properties.length){result='{}';break}multiline=expr.properties.length>1,withIndent(function(){fragment=generateExpression(expr.properties[0],{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true,'type':Syntax.Property})});if(!multiline){if(!hasLineTerminator(toSourceNode(fragment).toString())){result=['{',space,fragment,space,'}'];break}}withIndent(function(indent){result=['{',newline,indent,fragment];if(multiline){result.push(','+newline);for(i=1,len=expr.properties.length;i<len;i+=1)result.push(indent,generateExpression(expr.properties[i],{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true,'type':Syntax.Property})),i+1<len&&result.push(','+newline)}}),endsWithLineTerminator(toSourceNode(result).toString())||result.push(newline),result.push(base,'}');break;case
Syntax.ObjectPattern:if(!expr.properties.length){result='{}';break}multiline=false;if(expr.properties.length===1)property=expr.properties[0],property.value.type!==Syntax.Identifier&&(multiline=true);else
for(i=0,len=expr.properties.length;i<len;i+=1){property=expr.properties[i];if(!property.shorthand){multiline=true;break}}result=['{',multiline?newline:''],withIndent(function(indent){for(i=0,len=expr.properties.length;i<len;i+=1)result.push(multiline?indent:'',generateExpression(expr.properties[i],{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})),i+1<len&&result.push(','+(multiline?newline:space))}),multiline&&!endsWithLineTerminator(toSourceNode(result).toString())&&result.push(newline),result.push(multiline?base:'','}');break;case
Syntax.ThisExpression:result='this';break;case Syntax.Identifier:result=generateIdentifier(expr);break;case
Syntax.Literal:if(expr.hasOwnProperty('raw')&&parse)try{raw=parse(expr.raw).body[0].expression;if(raw.type===Syntax.Literal){if(raw.value===expr.value){result=expr.raw;break}}}catch(e){}if(expr.value===null){result='null';break}if(typeof
expr.value==='string'){result=escapeString(expr.value);break}if(typeof expr.value==='number'){result=generateNumber(expr.value);break}if(typeof
expr.value==='boolean'){result=expr.value?'true':'false';break}result=generateRegExp(expr.value);break;case
Syntax.ComprehensionExpression:result=['[',generateExpression(expr.body,{'precedence':Precedence.Assignment,'allowIn':true,'allowCall':true})];if(expr.blocks)for(i=0,len=expr.blocks.length;i<len;i+=1)fragment=generateExpression(expr.blocks[i],{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),result=join(result,fragment);expr.filter&&(result=join(result,'if'+space),fragment=generateExpression(expr.filter,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),extra.moz.parenthesizedComprehensionBlock?(result=join(result,['(',fragment,')'])):(result=join(result,fragment))),result.push(']');break;case
Syntax.ComprehensionBlock:expr.left.type===Syntax.VariableDeclaration?(fragment=[expr.left.kind+' ',generateStatement(expr.left.declarations[0],{'allowIn':false})]):(fragment=generateExpression(expr.left,{'precedence':Precedence.Call,'allowIn':true,'allowCall':true})),fragment=join(fragment,expr.of?'of':'in'),fragment=join(fragment,generateExpression(expr.right,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})),extra.moz.parenthesizedComprehensionBlock?(result=['for'+space+'(',fragment,')']):(result=join('for'+space,fragment));break;default:throw new
Error(('Unknown expression type: '+expr.type))}return toSourceNode(result,expr)}function
generateStatement(stmt,option){var allowIn=true,semicolon=';',functionBody=false,directiveContext=false,fragment,i,len,node,result;option&&(allowIn=option.allowIn===undefined||option.allowIn,!semicolons&&option.semicolonOptional===true&&(semicolon=''),functionBody=option.functionBody,directiveContext=option.directiveContext);switch(stmt.type){case
Syntax.BlockStatement:result=['{',newline],withIndent(function(){for(i=0,len=stmt.body.length;i<len;i+=1)fragment=addIndent(generateStatement(stmt.body[i],{'semicolonOptional':i===len-1,'directiveContext':functionBody})),result.push(fragment),endsWithLineTerminator(toSourceNode(fragment).toString())||result.push(newline)}),result.push(addIndent('}'));break;case
Syntax.BreakStatement:stmt.label?(result='break '+stmt.label.name+semicolon):(result='break'+semicolon);break;case
Syntax.ContinueStatement:stmt.label?(result='continue '+stmt.label.name+semicolon):(result='continue'+semicolon);break;case
Syntax.DirectiveStatement:stmt.raw?(result=stmt.raw+semicolon):(result=escapeDirective(stmt.directive)+semicolon);break;case
Syntax.DoWhileStatement:result=join('do',maybeBlock(stmt.body)),result=maybeBlockSuffix(stmt.body,result),result=join(result,['while'+space+'(',generateExpression(stmt.test,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')'+semicolon]);break;case
Syntax.CatchClause:withIndent(function(){result=['catch'+space+'(',generateExpression(stmt.param,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')']}),result.push(maybeBlock(stmt.body));break;case
Syntax.DebuggerStatement:result='debugger'+semicolon;break;case Syntax.EmptyStatement:result=';';break;case
Syntax.ExpressionStatement:result=[generateExpression(stmt.expression,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})],fragment=toSourceNode(result).toString(),fragment.charAt(0)==='{'||fragment.slice(0,8)==='function'&&' ('.indexOf(fragment.charAt(8))>=0||directive&&directiveContext&&stmt.expression.type===Syntax.Literal&&typeof
stmt.expression.value==='string'?(result=['(',result,')'+semicolon]):result.push(semicolon);break;case
Syntax.VariableDeclarator:stmt.init?(result=[generateExpression(stmt.id,{'precedence':Precedence.Assignment,'allowIn':allowIn,'allowCall':true}),space,'=',space,generateExpression(stmt.init,{'precedence':Precedence.Assignment,'allowIn':allowIn,'allowCall':true})]):(result=generateIdentifier(stmt.id));break;case
Syntax.VariableDeclaration:result=[stmt.kind],stmt.declarations.length===1&&stmt.declarations[0].init&&stmt.declarations[0].init.type===Syntax.FunctionExpression?result.push(' ',generateStatement(stmt.declarations[0],{'allowIn':allowIn})):withIndent(function(){node=stmt.declarations[0],extra.comment&&node.leadingComments?result.push('\n',addIndent(generateStatement(node,{'allowIn':allowIn}))):result.push(' ',generateStatement(node,{'allowIn':allowIn}));for(i=1,len=stmt.declarations.length;i<len;i+=1)node=stmt.declarations[i],extra.comment&&node.leadingComments?result.push(','+newline,addIndent(generateStatement(node,{'allowIn':allowIn}))):result.push(','+space,generateStatement(node,{'allowIn':allowIn}))}),result.push(semicolon);break;case
Syntax.ThrowStatement:result=[join('throw',generateExpression(stmt.argument,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})),semicolon];break;case
Syntax.TryStatement:result=['try',maybeBlock(stmt.block)],result=maybeBlockSuffix(stmt.block,result);if(stmt.handlers)for(i=0,len=stmt.handlers.length;i<len;i+=1)result=join(result,generateStatement(stmt.handlers[i])),(stmt.finalizer||i+1!==len)&&(result=maybeBlockSuffix(stmt.handlers[i].body,result));else{stmt.handler&&(result=join(result,generateStatement(stmt.handler)),(stmt.finalizer||stmt.guardedHandlers.length>0)&&(result=maybeBlockSuffix(stmt.handler.body,result)));for(i=0,len=stmt.guardedHandlers.length;i<len;i+=1)result=join(result,generateStatement(stmt.guardedHandlers[i])),(stmt.finalizer||i+1!==len)&&(result=maybeBlockSuffix(stmt.guardedHandlers[i].body,result))}stmt.finalizer&&(result=join(result,['finally',maybeBlock(stmt.finalizer)]));break;case
Syntax.SwitchStatement:withIndent(function(){result=['switch'+space+'(',generateExpression(stmt.discriminant,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')'+space+'{'+newline]});if(stmt.cases)for(i=0,len=stmt.cases.length;i<len;i+=1)fragment=addIndent(generateStatement(stmt.cases[i],{'semicolonOptional':i===len-1})),result.push(fragment),endsWithLineTerminator(toSourceNode(fragment).toString())||result.push(newline);result.push(addIndent('}'));break;case
Syntax.SwitchCase:withIndent(function(){stmt.test?(result=[join('case',generateExpression(stmt.test,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})),':']):(result=['default:']),i=0,len=stmt.consequent.length,len&&stmt.consequent[0].type===Syntax.BlockStatement&&(fragment=maybeBlock(stmt.consequent[0]),result.push(fragment),i=1),i!==len&&!endsWithLineTerminator(toSourceNode(result).toString())&&result.push(newline);for(;i<len;i+=1)fragment=addIndent(generateStatement(stmt.consequent[i],{'semicolonOptional':i===len-1&&semicolon===''})),result.push(fragment),i+1!==len&&!endsWithLineTerminator(toSourceNode(fragment).toString())&&result.push(newline)});break;case
Syntax.IfStatement:withIndent(function(){result=['if'+space+'(',generateExpression(stmt.test,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')']}),stmt.alternate?(result.push(maybeBlock(stmt.consequent)),result=maybeBlockSuffix(stmt.consequent,result),stmt.alternate.type===Syntax.IfStatement?(result=join(result,['else ',generateStatement(stmt.alternate,{'semicolonOptional':semicolon===''})])):(result=join(result,join('else',maybeBlock(stmt.alternate,semicolon===''))))):result.push(maybeBlock(stmt.consequent,semicolon===''));break;case
Syntax.ForStatement:withIndent(function(){result=['for'+space+'('],stmt.init?stmt.init.type===Syntax.VariableDeclaration?result.push(generateStatement(stmt.init,{'allowIn':false})):result.push(generateExpression(stmt.init,{'precedence':Precedence.Sequence,'allowIn':false,'allowCall':true}),';'):result.push(';'),stmt.test?result.push(space,generateExpression(stmt.test,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),';'):result.push(';'),stmt.update?result.push(space,generateExpression(stmt.update,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')'):result.push(')')}),result.push(maybeBlock(stmt.body,semicolon===''));break;case
Syntax.ForInStatement:result=['for'+space+'('],withIndent(function(){stmt.left.type===Syntax.VariableDeclaration?withIndent(function(){result.push(stmt.left.kind+' ',generateStatement(stmt.left.declarations[0],{'allowIn':false}))}):result.push(generateExpression(stmt.left,{'precedence':Precedence.Call,'allowIn':true,'allowCall':true})),result=join(result,'in'),result=[join(result,generateExpression(stmt.right,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})),')']}),result.push(maybeBlock(stmt.body,semicolon===''));break;case
Syntax.LabeledStatement:result=[stmt.label.name+':',maybeBlock(stmt.body,semicolon==='')];break;case
Syntax.Program:len=stmt.body.length,result=[safeConcatenation&&len>0?'\n':''];for(i=0;i<len;i+=1)fragment=addIndent(generateStatement(stmt.body[i],{'semicolonOptional':!safeConcatenation&&i===len-1,'directiveContext':true})),result.push(fragment),i+1<len&&!endsWithLineTerminator(toSourceNode(fragment).toString())&&result.push(newline);break;case
Syntax.FunctionDeclaration:result=[stmt.generator&&!extra.moz.starlessGenerator?'function* ':'function ',generateIdentifier(stmt.id),generateFunctionBody(stmt)];break;case
Syntax.ReturnStatement:stmt.argument?(result=[join('return',generateExpression(stmt.argument,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true})),semicolon]):(result=['return'+semicolon]);break;case
Syntax.WhileStatement:withIndent(function(){result=['while'+space+'(',generateExpression(stmt.test,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')']}),result.push(maybeBlock(stmt.body,semicolon===''));break;case
Syntax.WithStatement:withIndent(function(){result=['with'+space+'(',generateExpression(stmt.object,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true}),')']}),result.push(maybeBlock(stmt.body,semicolon===''));break;default:throw new
Error(('Unknown statement type: '+stmt.type))}return extra.comment&&(result=addCommentsToStatement(stmt,result)),fragment=toSourceNode(result).toString(),stmt.type===Syntax.Program&&!safeConcatenation&&newline===''&&fragment.charAt(fragment.length-1)==='\n'&&(result=toSourceNode(result).replaceRight(/\s+$/,'')),toSourceNode(result,stmt)}function
generate(node,options){var defaultOptions=getDefaultOptions(),pair,result;options!=null?(typeof
options.indent==='string'&&(defaultOptions.format.indent.style=options.indent),typeof
options.base==='number'&&(defaultOptions.format.indent.base=options.base),options=updateDeeply(defaultOptions,options),indent=options.format.indent.style,typeof
options.base==='string'?(base=options.base):(base=stringRepeat(indent,options.format.indent.base))):(options=defaultOptions,indent=options.format.indent.style,base=stringRepeat(indent,options.format.indent.base)),json=options.format.json,renumber=options.format.renumber,hexadecimal=json?false:options.format.hexadecimal,quotes=json?'double':options.format.quotes,escapeless=options.format.escapeless,options.format.compact?(newline=space=indent=base=''):(newline='\n',space=' '),parentheses=options.format.parentheses,semicolons=options.format.semicolons,safeConcatenation=options.format.safeConcatenation,directive=options.directive,parse=json?null:options.parse,sourceMap=options.sourceMap,extra=options,sourceMap?exports.browser?(SourceNode=global.sourceMap.SourceNode):(SourceNode=require('source-map').SourceNode):(SourceNode=SourceNodeMock);switch(node.type){case
Syntax.BlockStatement:case Syntax.BreakStatement:case Syntax.CatchClause:case Syntax.ContinueStatement:case
Syntax.DirectiveStatement:case Syntax.DoWhileStatement:case Syntax.DebuggerStatement:case
Syntax.EmptyStatement:case Syntax.ExpressionStatement:case Syntax.ForStatement:case
Syntax.ForInStatement:case Syntax.FunctionDeclaration:case Syntax.IfStatement:case
Syntax.LabeledStatement:case Syntax.Program:case Syntax.ReturnStatement:case Syntax.SwitchStatement:case
Syntax.SwitchCase:case Syntax.ThrowStatement:case Syntax.TryStatement:case Syntax.VariableDeclaration:case
Syntax.VariableDeclarator:case Syntax.WhileStatement:case Syntax.WithStatement:result=generateStatement(node);break;case
Syntax.AssignmentExpression:case Syntax.ArrayExpression:case Syntax.ArrayPattern:case
Syntax.BinaryExpression:case Syntax.CallExpression:case Syntax.ConditionalExpression:case
Syntax.FunctionExpression:case Syntax.Identifier:case Syntax.Literal:case Syntax.LogicalExpression:case
Syntax.MemberExpression:case Syntax.NewExpression:case Syntax.ObjectExpression:case
Syntax.ObjectPattern:case Syntax.Property:case Syntax.SequenceExpression:case Syntax.ThisExpression:case
Syntax.UnaryExpression:case Syntax.UpdateExpression:case Syntax.YieldExpression:result=generateExpression(node,{'precedence':Precedence.Sequence,'allowIn':true,'allowCall':true});break;default:throw new
Error(('Unknown node type: '+node.type))}return sourceMap?(pair=result.toStringWithSourceMap({'file':options.file,'sourceRoot':options.sourceMapRoot}),options.sourceMapWithCode?pair:pair.map.toString()):result.toString()}FORMAT_MINIFY={'indent':{'style':'','base':0},'renumber':true,'hexadecimal':true,'quotes':'auto','escapeless':true,'compact':true,'parentheses':false,'semicolons':false},FORMAT_DEFAULTS=getDefaultOptions().format,exports.version=require('./package.json').version,exports.generate=generate,exports.attachComments=estraverse.attachComments,exports.browser=false,exports.FORMAT_MINIFY=FORMAT_MINIFY,exports.FORMAT_DEFAULTS=FORMAT_DEFAULTS})(),(function(root,factory){'use strict';typeof
define==='function'&&define.amd?define(['exports'],factory):typeof exports!=='undefined'?factory(exports):factory(root.estraverse={})})(this,function(exports){'use strict';var
BREAK,SKIP,Syntax,VisitorKeys,VisitorOption,isArray;Syntax={'AssignmentExpression':'AssignmentExpression','ArrayExpression':'ArrayExpression','ArrowFunctionExpression':'ArrowFunctionExpression','BlockStatement':'BlockStatement','BinaryExpression':'BinaryExpression','BreakStatement':'BreakStatement','CallExpression':'CallExpression','CatchClause':'CatchClause','ClassBody':'ClassBody','ClassDeclaration':'ClassDeclaration','ClassExpression':'ClassExpression','ConditionalExpression':'ConditionalExpression','ContinueStatement':'ContinueStatement','DebuggerStatement':'DebuggerStatement','DirectiveStatement':'DirectiveStatement','DoWhileStatement':'DoWhileStatement','EmptyStatement':'EmptyStatement','ExpressionStatement':'ExpressionStatement','ForStatement':'ForStatement','ForInStatement':'ForInStatement','FunctionDeclaration':'FunctionDeclaration','FunctionExpression':'FunctionExpression','Identifier':'Identifier','IfStatement':'IfStatement','Literal':'Literal','LabeledStatement':'LabeledStatement','LogicalExpression':'LogicalExpression','MemberExpression':'MemberExpression','MethodDefinition':'MethodDefinition','NewExpression':'NewExpression','ObjectExpression':'ObjectExpression','Program':'Program','Property':'Property','ReturnStatement':'ReturnStatement','SequenceExpression':'SequenceExpression','SwitchStatement':'SwitchStatement','SwitchCase':'SwitchCase','ThisExpression':'ThisExpression','ThrowStatement':'ThrowStatement','TryStatement':'TryStatement','UnaryExpression':'UnaryExpression','UpdateExpression':'UpdateExpression','VariableDeclaration':'VariableDeclaration','VariableDeclarator':'VariableDeclarator','WhileStatement':'WhileStatement','WithStatement':'WithStatement','YieldExpression':'YieldExpression'};function
ignoreJSHintError(){}isArray=Array.isArray,isArray||(isArray=function isArray(array){return Object.prototype.toString.call(array)==='[object Array]'});function
deepCopy(obj){var ret={},key,val;for(key in obj)obj.hasOwnProperty(key)&&(val=obj[key],typeof
val==='object'&&val!==null?(ret[key]=deepCopy(val)):(ret[key]=val));return ret}function
shallowCopy(obj){var ret={},key;for(key in obj)obj.hasOwnProperty(key)&&(ret[key]=obj[key]);return ret}ignoreJSHintError(shallowCopy);function
upperBound(array,func){var len=array.length,i=0,current,diff;while(len)diff=len>>>1,current=i+diff,func(array[current])?(len=diff):(i=current+1,len-=diff+1);return i}function
lowerBound(array,func){var len=array.length,i=0,current,diff;while(len)diff=len>>>1,current=i+diff,func(array[current])?(i=current+1,len-=diff+1):(len=diff);return i}ignoreJSHintError(lowerBound),VisitorKeys={'AssignmentExpression':['left','right'],'ArrayExpression':['elements'],'ArrowFunctionExpression':['params','body'],'BlockStatement':['body'],'BinaryExpression':['left','right'],'BreakStatement':['label'],'CallExpression':['callee','arguments'],'CatchClause':['param','body'],'ClassBody':['body'],'ClassDeclaration':['id','body','superClass'],'ClassExpression':['id','body','superClass'],'ConditionalExpression':['test','consequent','alternate'],'ContinueStatement':['label'],'DebuggerStatement':[],'DirectiveStatement':[],'DoWhileStatement':['body','test'],'EmptyStatement':[],'ExpressionStatement':['expression'],'ForStatement':['init','test','update','body'],'ForInStatement':['left','right','body'],'FunctionDeclaration':['id','params','body'],'FunctionExpression':['id','params','body'],'Identifier':[],'IfStatement':['test','consequent','alternate'],'Literal':[],'LabeledStatement':['label','body'],'LogicalExpression':['left','right'],'MemberExpression':['object','property'],'MethodDefinition':['key','value'],'NewExpression':['callee','arguments'],'ObjectExpression':['properties'],'Program':['body'],'Property':['key','value'],'ReturnStatement':['argument'],'SequenceExpression':['expressions'],'SwitchStatement':['discriminant','cases'],'SwitchCase':['test','consequent'],'ThisExpression':[],'ThrowStatement':['argument'],'TryStatement':['block','handlers','handler','guardedHandlers','finalizer'],'UnaryExpression':['argument'],'UpdateExpression':['argument'],'VariableDeclaration':['declarations'],'VariableDeclarator':['id','init'],'WhileStatement':['test','body'],'WithStatement':['object','body'],'YieldExpression':['argument']},BREAK={},SKIP={},VisitorOption={'Break':BREAK,'Skip':SKIP};function
Reference(parent,key){this.parent=parent,this.key=key}Reference.prototype.replace=function
replace(node){this.parent[this.key]=node};function Element(node,path,wrap,ref){this.node=node,this.path=path,this.wrap=wrap,this.ref=ref}function
Controller(){}Controller.prototype.path=function path(){var element,i,iz,j,jz,result;function
addToPath(result,path){if(isArray(path))for(j=0,jz=path.length;j<jz;++j)result.push(path[j]);else
result.push(path)}if(!this.__current.path)return null;result=[];for(i=2,iz=this.__leavelist.length;i<iz;++i)element=this.__leavelist[i],addToPath(result,element.path);return addToPath(result,this.__current.path),result},Controller.prototype.parents=function
parents(){var result=[],i,iz;for(i=1,iz=this.__leavelist.length;i<iz;++i)result.push(this.__leavelist[i].node);return result},Controller.prototype.current=function
current(){return this.__current.node},Controller.prototype.__execute=function __execute(callback,element){var
result=undefined,previous=this.__current;return this.__current=element,this.__state=null,callback&&(result=callback.call(this,element.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=previous,result},Controller.prototype.notify=function
notify(flag){this.__state=flag},Controller.prototype.skip=function(){this.notify(SKIP)},Controller.prototype['break']=function(){this.notify(BREAK)},Controller.prototype.__initialize=function(root,visitor){this.visitor=visitor,this.root=root,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null},Controller.prototype.traverse=function
traverse(root,visitor){var candidate,candidates,current,current2,element,key,leavelist,node,nodeType,ret,sentinel,worklist;this.__initialize(root,visitor),sentinel={},worklist=this.__worklist,leavelist=this.__leavelist,worklist.push(new
Element(root,null,null,null)),leavelist.push(new Element(null,null,null,null));while(worklist.length){element=worklist.pop();if(element===sentinel){element=leavelist.pop(),ret=this.__execute(visitor.leave,element);if(this.__state===BREAK||ret===BREAK)return;continue}if(element.node){ret=this.__execute(visitor.enter,element);if(this.__state===BREAK||ret===BREAK)return;worklist.push(sentinel),leavelist.push(element);if(this.__state===SKIP||ret===SKIP)continue;node=element.node,nodeType=element.wrap||node.type,candidates=VisitorKeys[nodeType],current=candidates.length;while((current-=1)>=0){key=candidates[current],candidate=node[key];if(!candidate)continue;if(!isArray(candidate)){worklist.push(new
Element(candidate,key,null,null));continue}current2=candidate.length;while((current2-=1)>=0){if(!candidate[current2])continue;nodeType===Syntax.ObjectExpression&&'properties'===candidates[current]?(element=new
Element(candidate[current2],[key,current2],'Property',null)):(element=new Element(candidate[current2],[key,current2],null,null)),worklist.push(element)}}}}},Controller.prototype.replace=function
replace(root,visitor){var candidate,candidates,current,current2,element,key,leavelist,node,nodeType,outer,sentinel,target,worklist;this.__initialize(root,visitor),sentinel={},worklist=this.__worklist,leavelist=this.__leavelist,outer={'root':root},element=new
Element(root,null,null,(new Reference(outer,'root'))),worklist.push(element),leavelist.push(element);while(worklist.length){element=worklist.pop();if(element===sentinel){element=leavelist.pop(),target=this.__execute(visitor.leave,element),target!==undefined&&target!==BREAK&&target!==SKIP&&element.ref.replace(target);if(this.__state===BREAK||target===BREAK)return outer.root;continue}target=this.__execute(visitor.enter,element),target!==undefined&&target!==BREAK&&target!==SKIP&&(element.ref.replace(target),element.node=target);if(this.__state===BREAK||target===BREAK)return outer.root;node=element.node;if(!node)continue;worklist.push(sentinel),leavelist.push(element);if(this.__state===SKIP||target===SKIP)continue;nodeType=element.wrap||node.type,candidates=VisitorKeys[nodeType],current=candidates.length;while((current-=1)>=0){key=candidates[current],candidate=node[key];if(!candidate)continue;if(!isArray(candidate)){worklist.push(new
Element(candidate,key,null,(new Reference(node,key))));continue}current2=candidate.length;while((current2-=1)>=0){if(!candidate[current2])continue;nodeType===Syntax.ObjectExpression&&'properties'===candidates[current]?(element=new
Element(candidate[current2],[key,current2],'Property',(new Reference(candidate,current2)))):(element=new
Element(candidate[current2],[key,current2],null,(new Reference(candidate,current2)))),worklist.push(element)}}}return outer.root};function
traverse(root,visitor){var controller=new Controller;return controller.traverse(root,visitor)}function
replace(root,visitor){var controller=new Controller;return controller.replace(root,visitor)}function
extendCommentRange(comment,tokens){var target=upperBound(tokens,function search(token){return token.range[0]
>comment.range[0]});return comment.extendedRange=[comment.range[0],comment.range[1]],target!==tokens.length&&(comment.extendedRange[1]=tokens[target].range[0]),target-=1,target>=0&&(comment.extendedRange[0]=tokens[target].range[1]),comment}function
attachComments(tree,providedComments,tokens){var comments=[],comment,cursor,i,len;if(!tree.range)throw new
Error('attachComments needs range information');if(!tokens.length){if(providedComments.length){for(i=0,len=providedComments.length;i<len;i+=1)comment=deepCopy(providedComments[i]),comment.extendedRange=[0,tree.range[0]],comments.push(comment);tree.leadingComments=comments}return tree}for(i=0,len=providedComments.length;i<len;i+=1)comments.push(extendCommentRange(deepCopy(providedComments[i]),tokens));return cursor=0,traverse(tree,{'enter':function(node){var
comment;while(cursor<comments.length){comment=comments[cursor];if(comment.extendedRange[1]
>node.range[0]){break}if(comment.extendedRange[1]===node.range[0]){if(!node.leadingComments){node.leadingComments=[]}node.leadingComments.push(comment);comments.splice(cursor,1)}else{cursor+=1}}if(cursor===comments.length){return VisitorOption.Break}if(comments[cursor].extendedRange[0]
>node.range[1]){return VisitorOption.Skip}}}),cursor=0,traverse(tree,{'leave':function(node){var
comment;while(cursor<comments.length){comment=comments[cursor];if(node.range[1]<comment.extendedRange[0]){break}if(node.range[1]===comment.extendedRange[0]){if(!node.trailingComments){node.trailingComments=[]}node.trailingComments.push(comment);comments.splice(cursor,1)}else{cursor+=1}}if(cursor===comments.length){return VisitorOption.Break}if(comments[cursor].extendedRange[0]
>node.range[1]){return VisitorOption.Skip}}}),tree}exports.version='1.3.2',exports.Syntax=Syntax,exports.traverse=traverse,exports.replace=replace,exports.attachComments=attachComments,exports.VisitorKeys=VisitorKeys,exports.VisitorOption=VisitorOption,exports.Controller=Controller}),(function(global){'use strict';global.ses=global.ses||{},ses.rewriter_={},ses.rewriter_.tokTypes=exports.tokTypes,ses.rewriter_.traverse=exports.traverse,ses.rewriter_.parse=exports.parse,ses.rewriter_.generate=exports.generate})(this),(function(){var
nameIsReservedWord;function introducesVarScope(node){return node.type==='FunctionExpression'||node.type==='FunctionDeclaration'}function
isTypeOf(node){return node.type==='UnaryExpression'&&node.operator==='typeof'&&!node.synthetic}function
isId(node){return node.type==='Identifier'}function isVariableDecl(node){return node.type==='VariableDeclaration'}function
isFunctionDecl(node){return node.type==='FunctionDeclaration'}function isStaticKeyPropertyAccess(node){return node.type==='MemberExpression'&&(node.computed?node.property.type==='Literal':true)}function
isStaticKeyPropertyUpdateExpr(node){return node.type==='UpdateExpression'&&isStaticKeyPropertyAccess(node.argument)}function
isStaticKeyPropertyCompoundAssignmentExpr(node){return node.type==='AssignmentExpression'&&node.operator.length>1&&node.operator[node.operator.length-1]==='='&&isStaticKeyPropertyAccess(node.left)}function
isFunctionCall(node){return node.type==='CallExpression'&&isId(node.callee)}nameIsReservedWord=(function(){var
tokTypes=ses.rewriter_.tokTypes,table=new Set,k;for(k in tokTypes)'keyword'in tokTypes[k]&&table.add(tokTypes[k].keyword,0);return table.has.bind(table)})();function
isIdentifierNameContext(node){var type=node.type;return type==='MemberExpression'||!!(node.kind&&node.key)}function
rewriteFuncDecl(scope,node,parentNode){var exprNode={'type':'ExpressionStatement','expression':{'type':'AssignmentExpression','operator':'=','left':globalVarAst(node.id),'right':node.id}},body=parentNode.body,currentIdx=body.indexOf(node),nextIdx=currentIdx+1;body.splice(nextIdx,0,exprNode)}function
rewriteVars(scope,node,parentNode){var assignments;if(parentNode.type==='ForInStatement')return;assignments=[],node.declarations.forEach(function(decl){assignments.push({'type':'AssignmentExpression','operator':'=','left':globalVarAst(decl.id),'right':globalVarAst(decl.id)}),decl.init&&assignments.push({'type':'AssignmentExpression','operator':'=','left':globalVarAst(decl.id),'right':decl.init})}),parentNode.type==='ForStatement'?(node.type='SequenceExpression',node.expressions=assignments):(node.type='ExpressionStatement',node.expression={'type':'SequenceExpression','expressions':assignments})}function
globalVarAst(varName){return{'type':'MemberExpression','object':{'type':'ThisExpression'},'property':varName}}function
rewriteTypeOf(scope,node){var arg=node.argument;node.type='CallExpression',node.arguments=[],node.callee={'type':'FunctionExpression','id':null,'params':[],'body':{'type':'BlockStatement','body':[{'type':'TryStatement','block':{'type':'BlockStatement','body':[{'type':'ReturnStatement','argument':{'synthetic':true,'type':'UnaryExpression','operator':'typeof','prefix':true,'argument':arg}}]},'handlers':[{'type':'CatchClause','param':{'type':'Identifier','name':'e'},'guard':null,'body':{'type':'BlockStatement','body':[{'type':'ReturnStatement','argument':{'type':'Literal','value':'undefined','raw':'\'undefined\''}}]}}],'finalizer':null}]}}}function
rewriteFunctionCall(scope,node){node.callee=makeTrivialSequenceExpression(node.callee)}function
makeTrivialSequenceExpression(rhs){return{'type':'SequenceExpression','expressions':[{'type':'Literal','value':1},rhs]}}function
rewrite(scope,node){return ses.rewriter_.traverse(node,{'enter':function enter(node,parentNode){if(isId(node)){if(nameIsReservedWord(node.name)&&!isIdentifierNameContext(parentNode)){throw new
SyntaxError(('Programs containing Unicode escapes in reserved words '+'will be misparsed on some platforms and are not currently '+'permitted by SES.'))}}if(scope.options.rewriteTopLevelFuncs&&isFunctionDecl(node)&&scope.scopeLevel===0){rewriteFuncDecl(scope,node,parentNode);scope.dirty=true}else
if(scope.options.rewriteTypeOf&&isTypeOf(node)&&isId(node.argument)){rewriteTypeOf(scope,node);scope.dirty=true}else
if(scope.options.rewriteTopLevelVars&&isVariableDecl(node)&&scope.scopeLevel===0){rewriteVars(scope,node,parentNode);scope.dirty=true}else
if(scope.options.rewriteFunctionCalls&&isFunctionCall(node)){rewriteFunctionCall(scope,node);scope.dirty=true}if(introducesVarScope(node)){scope.scopeLevel++}},'leave':function
leave(node){if(introducesVarScope(node)){scope.scopeLevel--}}}),node}function rewriteProgram(options,ast){var
scope={'options':options,'dirty':false,'scopeLevel':0};rewrite(scope,ast);if(scope.scopeLevel!==0)throw new
Error('Internal error traversing the AST');return scope.dirty}ses.mitigateSrcGotchas=function(asExpr,src,options,logger){var
ast,message;src=asExpr?'('+src+'\n);':'(function() { '+src+'\n});\n';try{ast=ses.rewriter_.parse(src,{'forbidReserved':false});if(ast.type!=='Program')throw new
SyntaxError(('Internal malformed parse: '+src));if(ast.body.length!==1)throw new
SyntaxError(('Expected an expression: '+src));if(ast.body[0].type!=='ExpressionStatement')throw new
SyntaxError(('Expected expression: '+src));ast=ast.body[0].expression;if(!asExpr){if(ast.type!=='FunctionExpression')throw new
SyntaxError(('Internal: expected function: '+src));ast=ast.body,ast.type==='BlockStatement'&&(ast.type='Program')}return rewriteProgram(options,ast),ses.rewriter_.generate(ast)}catch(e){throw message=''+e,logger.warn('Failed to parse program: '+message),e}}})(),cajaIframeDone___()}