@swf2es/runtime 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.third-party +422 -0
  3. package/README.md +29 -2
  4. package/dist/avm1/activation.d.ts +108 -0
  5. package/dist/avm1/activation.d.ts.map +1 -0
  6. package/dist/avm1/activation.js +90 -0
  7. package/dist/avm1/activation.js.map +1 -0
  8. package/dist/avm1/case.d.ts +3 -0
  9. package/dist/avm1/case.d.ts.map +1 -0
  10. package/dist/avm1/case.js +250 -0
  11. package/dist/avm1/case.js.map +1 -0
  12. package/dist/avm1/clips.d.ts +68 -0
  13. package/dist/avm1/clips.d.ts.map +1 -0
  14. package/dist/avm1/clips.js +335 -0
  15. package/dist/avm1/clips.js.map +1 -0
  16. package/dist/avm1/control.d.ts +54 -0
  17. package/dist/avm1/control.d.ts.map +1 -0
  18. package/dist/avm1/control.js +281 -0
  19. package/dist/avm1/control.js.map +1 -0
  20. package/dist/avm1/errors.d.ts +49 -0
  21. package/dist/avm1/errors.d.ts.map +1 -0
  22. package/dist/avm1/errors.js +51 -0
  23. package/dist/avm1/errors.js.map +1 -0
  24. package/dist/avm1/functions.d.ts +94 -0
  25. package/dist/avm1/functions.d.ts.map +1 -0
  26. package/dist/avm1/functions.js +250 -0
  27. package/dist/avm1/functions.js.map +1 -0
  28. package/dist/avm1/globals/array.d.ts +8 -0
  29. package/dist/avm1/globals/array.d.ts.map +1 -0
  30. package/dist/avm1/globals/array.js +550 -0
  31. package/dist/avm1/globals/array.js.map +1 -0
  32. package/dist/avm1/globals/broadcaster.d.ts +22 -0
  33. package/dist/avm1/globals/broadcaster.d.ts.map +1 -0
  34. package/dist/avm1/globals/broadcaster.js +132 -0
  35. package/dist/avm1/globals/broadcaster.js.map +1 -0
  36. package/dist/avm1/globals/date.d.ts +10 -0
  37. package/dist/avm1/globals/date.d.ts.map +1 -0
  38. package/dist/avm1/globals/date.js +437 -0
  39. package/dist/avm1/globals/date.js.map +1 -0
  40. package/dist/avm1/globals/global.d.ts +23 -0
  41. package/dist/avm1/globals/global.d.ts.map +1 -0
  42. package/dist/avm1/globals/global.js +345 -0
  43. package/dist/avm1/globals/global.js.map +1 -0
  44. package/dist/avm1/globals/math.d.ts +7 -0
  45. package/dist/avm1/globals/math.d.ts.map +1 -0
  46. package/dist/avm1/globals/math.js +140 -0
  47. package/dist/avm1/globals/math.js.map +1 -0
  48. package/dist/avm1/globals/number.d.ts +11 -0
  49. package/dist/avm1/globals/number.d.ts.map +1 -0
  50. package/dist/avm1/globals/number.js +94 -0
  51. package/dist/avm1/globals/number.js.map +1 -0
  52. package/dist/avm1/globals/string.d.ts +8 -0
  53. package/dist/avm1/globals/string.d.ts.map +1 -0
  54. package/dist/avm1/globals/string.js +202 -0
  55. package/dist/avm1/globals/string.js.map +1 -0
  56. package/dist/avm1/globals/timers.d.ts +49 -0
  57. package/dist/avm1/globals/timers.d.ts.map +1 -0
  58. package/dist/avm1/globals/timers.js +130 -0
  59. package/dist/avm1/globals/timers.js.map +1 -0
  60. package/dist/avm1/host.d.ts +146 -0
  61. package/dist/avm1/host.d.ts.map +1 -0
  62. package/dist/avm1/host.js +6 -0
  63. package/dist/avm1/host.js.map +1 -0
  64. package/dist/avm1/index.d.ts +15 -0
  65. package/dist/avm1/index.d.ts.map +1 -0
  66. package/dist/avm1/index.js +15 -0
  67. package/dist/avm1/index.js.map +1 -0
  68. package/dist/avm1/inheritance.d.ts +25 -0
  69. package/dist/avm1/inheritance.d.ts.map +1 -0
  70. package/dist/avm1/inheritance.js +133 -0
  71. package/dist/avm1/inheritance.js.map +1 -0
  72. package/dist/avm1/numbers.d.ts +21 -0
  73. package/dist/avm1/numbers.d.ts.map +1 -0
  74. package/dist/avm1/numbers.js +299 -0
  75. package/dist/avm1/numbers.js.map +1 -0
  76. package/dist/avm1/objects.d.ts +245 -0
  77. package/dist/avm1/objects.d.ts.map +1 -0
  78. package/dist/avm1/objects.js +897 -0
  79. package/dist/avm1/objects.js.map +1 -0
  80. package/dist/avm1/operators.d.ts +45 -0
  81. package/dist/avm1/operators.d.ts.map +1 -0
  82. package/dist/avm1/operators.js +171 -0
  83. package/dist/avm1/operators.js.map +1 -0
  84. package/dist/avm1/realm.d.ts +126 -0
  85. package/dist/avm1/realm.d.ts.map +1 -0
  86. package/dist/avm1/realm.js +530 -0
  87. package/dist/avm1/realm.js.map +1 -0
  88. package/dist/avm1/runtime.d.ts +294 -0
  89. package/dist/avm1/runtime.d.ts.map +1 -0
  90. package/dist/avm1/runtime.js +883 -0
  91. package/dist/avm1/runtime.js.map +1 -0
  92. package/dist/avm1/scope.d.ts +77 -0
  93. package/dist/avm1/scope.d.ts.map +1 -0
  94. package/dist/avm1/scope.js +386 -0
  95. package/dist/avm1/scope.js.map +1 -0
  96. package/dist/avm1/urls.d.ts +25 -0
  97. package/dist/avm1/urls.d.ts.map +1 -0
  98. package/dist/avm1/urls.js +181 -0
  99. package/dist/avm1/urls.js.map +1 -0
  100. package/dist/avm1/values.d.ts +52 -0
  101. package/dist/avm1/values.d.ts.map +1 -0
  102. package/dist/avm1/values.js +98 -0
  103. package/dist/avm1/values.js.map +1 -0
  104. package/dist/avm2/amf-classes.d.ts +28 -0
  105. package/dist/avm2/amf-classes.d.ts.map +1 -0
  106. package/dist/avm2/amf-classes.js +67 -0
  107. package/dist/avm2/amf-classes.js.map +1 -0
  108. package/dist/avm2/amf.d.ts +96 -0
  109. package/dist/avm2/amf.d.ts.map +1 -0
  110. package/dist/avm2/amf.js +802 -0
  111. package/dist/avm2/amf.js.map +1 -0
  112. package/dist/avm2/array-conversion.d.ts +31 -0
  113. package/dist/avm2/array-conversion.d.ts.map +1 -0
  114. package/dist/avm2/array-conversion.js +101 -0
  115. package/dist/avm2/array-conversion.js.map +1 -0
  116. package/dist/avm2/builtin-library.d.ts +2 -0
  117. package/dist/avm2/builtin-library.d.ts.map +1 -0
  118. package/dist/avm2/builtin-library.js +22 -0
  119. package/dist/avm2/builtin-library.js.map +1 -0
  120. package/dist/avm2/cache-fill.d.ts +14 -0
  121. package/dist/avm2/cache-fill.d.ts.map +1 -0
  122. package/dist/avm2/cache-fill.js +87 -0
  123. package/dist/avm2/cache-fill.js.map +1 -0
  124. package/dist/avm2/classes.d.ts +17 -0
  125. package/dist/avm2/classes.d.ts.map +1 -0
  126. package/dist/avm2/classes.js +212 -0
  127. package/dist/avm2/classes.js.map +1 -0
  128. package/dist/avm2/definitions.d.ts +28 -0
  129. package/dist/avm2/definitions.d.ts.map +1 -0
  130. package/dist/avm2/definitions.js +70 -0
  131. package/dist/avm2/definitions.js.map +1 -0
  132. package/dist/avm2/descriptors.d.ts +118 -0
  133. package/dist/avm2/descriptors.d.ts.map +1 -0
  134. package/dist/avm2/descriptors.js +6 -0
  135. package/dist/avm2/descriptors.js.map +1 -0
  136. package/dist/avm2/dictionary-keys.d.ts +73 -0
  137. package/dist/avm2/dictionary-keys.d.ts.map +1 -0
  138. package/dist/avm2/dictionary-keys.js +296 -0
  139. package/dist/avm2/dictionary-keys.js.map +1 -0
  140. package/dist/avm2/domain-memory.d.ts +23 -0
  141. package/dist/avm2/domain-memory.d.ts.map +1 -0
  142. package/dist/avm2/domain-memory.js +76 -0
  143. package/dist/avm2/domain-memory.js.map +1 -0
  144. package/dist/avm2/domain.d.ts +108 -0
  145. package/dist/avm2/domain.d.ts.map +1 -0
  146. package/dist/avm2/domain.js +281 -0
  147. package/dist/avm2/domain.js.map +1 -0
  148. package/dist/avm2/dynamic-properties.d.ts +62 -0
  149. package/dist/avm2/dynamic-properties.d.ts.map +1 -0
  150. package/dist/avm2/dynamic-properties.js +183 -0
  151. package/dist/avm2/dynamic-properties.js.map +1 -0
  152. package/dist/avm2/enumeration.d.ts +75 -0
  153. package/dist/avm2/enumeration.d.ts.map +1 -0
  154. package/dist/avm2/enumeration.js +394 -0
  155. package/dist/avm2/enumeration.js.map +1 -0
  156. package/dist/avm2/errors.d.ts +20 -0
  157. package/dist/avm2/errors.d.ts.map +1 -0
  158. package/dist/avm2/errors.js +46 -0
  159. package/dist/avm2/errors.js.map +1 -0
  160. package/dist/avm2/float-library.d.ts +2 -0
  161. package/dist/avm2/float-library.d.ts.map +1 -0
  162. package/dist/avm2/float-library.js +67 -0
  163. package/dist/avm2/float-library.js.map +1 -0
  164. package/dist/avm2/float.d.ts +9 -0
  165. package/dist/avm2/float.d.ts.map +1 -0
  166. package/dist/avm2/float.js +27 -0
  167. package/dist/avm2/float.js.map +1 -0
  168. package/dist/avm2/hooks.d.ts +77 -0
  169. package/dist/avm2/hooks.d.ts.map +1 -0
  170. package/dist/avm2/hooks.js +20 -0
  171. package/dist/avm2/hooks.js.map +1 -0
  172. package/dist/avm2/index.d.ts +32 -0
  173. package/dist/avm2/index.d.ts.map +1 -0
  174. package/dist/avm2/index.js +39 -0
  175. package/dist/avm2/index.js.map +1 -0
  176. package/dist/avm2/messages.d.ts +2 -0
  177. package/dist/avm2/messages.d.ts.map +1 -0
  178. package/dist/avm2/messages.js +178 -0
  179. package/dist/avm2/messages.js.map +1 -0
  180. package/dist/avm2/method-factories.d.ts +35 -0
  181. package/dist/avm2/method-factories.d.ts.map +1 -0
  182. package/dist/avm2/method-factories.js +96 -0
  183. package/dist/avm2/method-factories.js.map +1 -0
  184. package/dist/avm2/modules.d.ts +40 -0
  185. package/dist/avm2/modules.d.ts.map +1 -0
  186. package/dist/avm2/modules.js +106 -0
  187. package/dist/avm2/modules.js.map +1 -0
  188. package/dist/avm2/names.d.ts +143 -0
  189. package/dist/avm2/names.d.ts.map +1 -0
  190. package/dist/avm2/names.js +249 -0
  191. package/dist/avm2/names.js.map +1 -0
  192. package/dist/avm2/natives/aliases.d.ts +3 -0
  193. package/dist/avm2/natives/aliases.d.ts.map +1 -0
  194. package/dist/avm2/natives/aliases.js +48 -0
  195. package/dist/avm2/natives/aliases.js.map +1 -0
  196. package/dist/avm2/natives/array.d.ts +5 -0
  197. package/dist/avm2/natives/array.d.ts.map +1 -0
  198. package/dist/avm2/natives/array.js +391 -0
  199. package/dist/avm2/natives/array.js.map +1 -0
  200. package/dist/avm2/natives/bytearray.d.ts +180 -0
  201. package/dist/avm2/natives/bytearray.d.ts.map +1 -0
  202. package/dist/avm2/natives/bytearray.js +1228 -0
  203. package/dist/avm2/natives/bytearray.js.map +1 -0
  204. package/dist/avm2/natives/case.d.ts +5 -0
  205. package/dist/avm2/natives/case.d.ts.map +1 -0
  206. package/dist/avm2/natives/case.js +89 -0
  207. package/dist/avm2/natives/case.js.map +1 -0
  208. package/dist/avm2/natives/concurrent.d.ts +24 -0
  209. package/dist/avm2/natives/concurrent.d.ts.map +1 -0
  210. package/dist/avm2/natives/concurrent.js +200 -0
  211. package/dist/avm2/natives/concurrent.js.map +1 -0
  212. package/dist/avm2/natives/date.d.ts +5 -0
  213. package/dist/avm2/natives/date.d.ts.map +1 -0
  214. package/dist/avm2/natives/date.js +582 -0
  215. package/dist/avm2/natives/date.js.map +1 -0
  216. package/dist/avm2/natives/define.d.ts +58 -0
  217. package/dist/avm2/natives/define.d.ts.map +1 -0
  218. package/dist/avm2/natives/define.js +131 -0
  219. package/dist/avm2/natives/define.js.map +1 -0
  220. package/dist/avm2/natives/describe.d.ts +3 -0
  221. package/dist/avm2/natives/describe.d.ts.map +1 -0
  222. package/dist/avm2/natives/describe.js +352 -0
  223. package/dist/avm2/natives/describe.js.map +1 -0
  224. package/dist/avm2/natives/dictionary.d.ts +3 -0
  225. package/dist/avm2/natives/dictionary.d.ts.map +1 -0
  226. package/dist/avm2/natives/dictionary.js +13 -0
  227. package/dist/avm2/natives/dictionary.js.map +1 -0
  228. package/dist/avm2/natives/float-vector.d.ts +20 -0
  229. package/dist/avm2/natives/float-vector.d.ts.map +1 -0
  230. package/dist/avm2/natives/float-vector.js +82 -0
  231. package/dist/avm2/natives/float-vector.js.map +1 -0
  232. package/dist/avm2/natives/float.d.ts +5 -0
  233. package/dist/avm2/natives/float.d.ts.map +1 -0
  234. package/dist/avm2/natives/float.js +97 -0
  235. package/dist/avm2/natives/float.js.map +1 -0
  236. package/dist/avm2/natives/index.d.ts +7 -0
  237. package/dist/avm2/natives/index.d.ts.map +1 -0
  238. package/dist/avm2/natives/index.js +65 -0
  239. package/dist/avm2/natives/index.js.map +1 -0
  240. package/dist/avm2/natives/json.d.ts +3 -0
  241. package/dist/avm2/natives/json.d.ts.map +1 -0
  242. package/dist/avm2/natives/json.js +515 -0
  243. package/dist/avm2/natives/json.js.map +1 -0
  244. package/dist/avm2/natives/number.d.ts +15 -0
  245. package/dist/avm2/natives/number.d.ts.map +1 -0
  246. package/dist/avm2/natives/number.js +163 -0
  247. package/dist/avm2/natives/number.js.map +1 -0
  248. package/dist/avm2/natives/object.d.ts +8 -0
  249. package/dist/avm2/natives/object.d.ts.map +1 -0
  250. package/dist/avm2/natives/object.js +238 -0
  251. package/dist/avm2/natives/object.js.map +1 -0
  252. package/dist/avm2/natives/proxy.d.ts +5 -0
  253. package/dist/avm2/natives/proxy.d.ts.map +1 -0
  254. package/dist/avm2/natives/proxy.js +76 -0
  255. package/dist/avm2/natives/proxy.js.map +1 -0
  256. package/dist/avm2/natives/regexp.d.ts +21 -0
  257. package/dist/avm2/natives/regexp.d.ts.map +1 -0
  258. package/dist/avm2/natives/regexp.js +486 -0
  259. package/dist/avm2/natives/regexp.js.map +1 -0
  260. package/dist/avm2/natives/shell-workers.d.ts +140 -0
  261. package/dist/avm2/natives/shell-workers.d.ts.map +1 -0
  262. package/dist/avm2/natives/shell-workers.js +405 -0
  263. package/dist/avm2/natives/shell-workers.js.map +1 -0
  264. package/dist/avm2/natives/shell.d.ts +12 -0
  265. package/dist/avm2/natives/shell.d.ts.map +1 -0
  266. package/dist/avm2/natives/shell.js +558 -0
  267. package/dist/avm2/natives/shell.js.map +1 -0
  268. package/dist/avm2/natives/sort.d.ts +7 -0
  269. package/dist/avm2/natives/sort.d.ts.map +1 -0
  270. package/dist/avm2/natives/sort.js +378 -0
  271. package/dist/avm2/natives/sort.js.map +1 -0
  272. package/dist/avm2/natives/string.d.ts +5 -0
  273. package/dist/avm2/natives/string.d.ts.map +1 -0
  274. package/dist/avm2/natives/string.js +133 -0
  275. package/dist/avm2/natives/string.js.map +1 -0
  276. package/dist/avm2/natives/sync.d.ts +215 -0
  277. package/dist/avm2/natives/sync.d.ts.map +1 -0
  278. package/dist/avm2/natives/sync.js +822 -0
  279. package/dist/avm2/natives/sync.js.map +1 -0
  280. package/dist/avm2/natives/toplevel.d.ts +5 -0
  281. package/dist/avm2/natives/toplevel.d.ts.map +1 -0
  282. package/dist/avm2/natives/toplevel.js +140 -0
  283. package/dist/avm2/natives/toplevel.js.map +1 -0
  284. package/dist/avm2/natives/vector-elements.d.ts +10 -0
  285. package/dist/avm2/natives/vector-elements.d.ts.map +1 -0
  286. package/dist/avm2/natives/vector-elements.js +47 -0
  287. package/dist/avm2/natives/vector-elements.js.map +1 -0
  288. package/dist/avm2/natives/vector.d.ts +5 -0
  289. package/dist/avm2/natives/vector.d.ts.map +1 -0
  290. package/dist/avm2/natives/vector.js +407 -0
  291. package/dist/avm2/natives/vector.js.map +1 -0
  292. package/dist/avm2/natives/xml/access.d.ts +34 -0
  293. package/dist/avm2/natives/xml/access.d.ts.map +1 -0
  294. package/dist/avm2/natives/xml/access.js +634 -0
  295. package/dist/avm2/natives/xml/access.js.map +1 -0
  296. package/dist/avm2/natives/xml/build.d.ts +11 -0
  297. package/dist/avm2/natives/xml/build.d.ts.map +1 -0
  298. package/dist/avm2/natives/xml/build.js +292 -0
  299. package/dist/avm2/natives/xml/build.js.map +1 -0
  300. package/dist/avm2/natives/xml/chars.d.ts +9 -0
  301. package/dist/avm2/natives/xml/chars.d.ts.map +1 -0
  302. package/dist/avm2/natives/xml/chars.js +113 -0
  303. package/dist/avm2/natives/xml/chars.js.map +1 -0
  304. package/dist/avm2/natives/xml/escape.d.ts +5 -0
  305. package/dist/avm2/natives/xml/escape.d.ts.map +1 -0
  306. package/dist/avm2/natives/xml/escape.js +39 -0
  307. package/dist/avm2/natives/xml/escape.js.map +1 -0
  308. package/dist/avm2/natives/xml/names.d.ts +46 -0
  309. package/dist/avm2/natives/xml/names.d.ts.map +1 -0
  310. package/dist/avm2/natives/xml/names.js +205 -0
  311. package/dist/avm2/natives/xml/names.js.map +1 -0
  312. package/dist/avm2/natives/xml/node.d.ts +94 -0
  313. package/dist/avm2/natives/xml/node.d.ts.map +1 -0
  314. package/dist/avm2/natives/xml/node.js +273 -0
  315. package/dist/avm2/natives/xml/node.js.map +1 -0
  316. package/dist/avm2/natives/xml/operators.d.ts +7 -0
  317. package/dist/avm2/natives/xml/operators.d.ts.map +1 -0
  318. package/dist/avm2/natives/xml/operators.js +70 -0
  319. package/dist/avm2/natives/xml/operators.js.map +1 -0
  320. package/dist/avm2/natives/xml/parser.d.ts +51 -0
  321. package/dist/avm2/natives/xml/parser.d.ts.map +1 -0
  322. package/dist/avm2/natives/xml/parser.js +357 -0
  323. package/dist/avm2/natives/xml/parser.js.map +1 -0
  324. package/dist/avm2/natives/xml/strings.d.ts +10 -0
  325. package/dist/avm2/natives/xml/strings.d.ts.map +1 -0
  326. package/dist/avm2/natives/xml/strings.js +192 -0
  327. package/dist/avm2/natives/xml/strings.js.map +1 -0
  328. package/dist/avm2/natives/xml/values.d.ts +48 -0
  329. package/dist/avm2/natives/xml/values.d.ts.map +1 -0
  330. package/dist/avm2/natives/xml/values.js +123 -0
  331. package/dist/avm2/natives/xml/values.js.map +1 -0
  332. package/dist/avm2/natives/xml/xml.d.ts +5 -0
  333. package/dist/avm2/natives/xml/xml.d.ts.map +1 -0
  334. package/dist/avm2/natives/xml/xml.js +646 -0
  335. package/dist/avm2/natives/xml/xml.js.map +1 -0
  336. package/dist/avm2/number-strings.d.ts +28 -0
  337. package/dist/avm2/number-strings.d.ts.map +1 -0
  338. package/dist/avm2/number-strings.js +111 -0
  339. package/dist/avm2/number-strings.js.map +1 -0
  340. package/dist/avm2/numbers.d.ts +12 -0
  341. package/dist/avm2/numbers.d.ts.map +1 -0
  342. package/dist/avm2/numbers.js +559 -0
  343. package/dist/avm2/numbers.js.map +1 -0
  344. package/dist/avm2/options.d.ts +105 -0
  345. package/dist/avm2/options.d.ts.map +1 -0
  346. package/dist/avm2/options.js +17 -0
  347. package/dist/avm2/options.js.map +1 -0
  348. package/dist/avm2/player-messages.d.ts +3 -0
  349. package/dist/avm2/player-messages.d.ts.map +1 -0
  350. package/dist/avm2/player-messages.js +551 -0
  351. package/dist/avm2/player-messages.js.map +1 -0
  352. package/dist/avm2/property-cache.d.ts +61 -0
  353. package/dist/avm2/property-cache.d.ts.map +1 -0
  354. package/dist/avm2/property-cache.js +136 -0
  355. package/dist/avm2/property-cache.js.map +1 -0
  356. package/dist/avm2/runtime.d.ts +588 -0
  357. package/dist/avm2/runtime.d.ts.map +1 -0
  358. package/dist/avm2/runtime.js +2645 -0
  359. package/dist/avm2/runtime.js.map +1 -0
  360. package/dist/avm2/traits.d.ts +233 -0
  361. package/dist/avm2/traits.d.ts.map +1 -0
  362. package/dist/avm2/traits.js +510 -0
  363. package/dist/avm2/traits.js.map +1 -0
  364. package/dist/index.d.ts +8 -0
  365. package/dist/index.d.ts.map +1 -0
  366. package/dist/index.js +8 -0
  367. package/dist/index.js.map +1 -0
  368. package/package.json +43 -3
  369. package/src/avm1/activation.ts +114 -0
  370. package/src/avm1/case.ts +257 -0
  371. package/src/avm1/clips.ts +440 -0
  372. package/src/avm1/control.ts +339 -0
  373. package/src/avm1/errors.ts +60 -0
  374. package/src/avm1/functions.ts +271 -0
  375. package/src/avm1/globals/array.ts +676 -0
  376. package/src/avm1/globals/broadcaster.ts +185 -0
  377. package/src/avm1/globals/date.ts +548 -0
  378. package/src/avm1/globals/global.ts +420 -0
  379. package/src/avm1/globals/math.ts +152 -0
  380. package/src/avm1/globals/number.ts +122 -0
  381. package/src/avm1/globals/string.ts +254 -0
  382. package/src/avm1/globals/timers.ts +144 -0
  383. package/src/avm1/host.ts +155 -0
  384. package/src/avm1/index.ts +69 -0
  385. package/src/avm1/inheritance.ts +159 -0
  386. package/src/avm1/numbers.ts +348 -0
  387. package/src/avm1/objects.ts +1080 -0
  388. package/src/avm1/operators.ts +229 -0
  389. package/src/avm1/realm.ts +704 -0
  390. package/src/avm1/runtime.ts +1291 -0
  391. package/src/avm1/scope.ts +482 -0
  392. package/src/avm1/urls.ts +226 -0
  393. package/src/avm1/values.ts +145 -0
  394. package/src/avm2/amf-classes.ts +80 -0
  395. package/src/avm2/amf.ts +913 -0
  396. package/src/avm2/array-conversion.ts +117 -0
  397. package/src/avm2/builtin-library.ts +28 -0
  398. package/src/avm2/cache-fill.ts +124 -0
  399. package/src/avm2/classes.ts +235 -0
  400. package/src/avm2/definitions.ts +93 -0
  401. package/src/avm2/descriptors.ts +137 -0
  402. package/src/avm2/dictionary-keys.ts +345 -0
  403. package/src/avm2/domain-memory.ts +95 -0
  404. package/src/avm2/domain.ts +335 -0
  405. package/src/avm2/dynamic-properties.ts +209 -0
  406. package/src/avm2/enumeration.ts +506 -0
  407. package/src/avm2/errors.ts +54 -0
  408. package/src/avm2/float-library.ts +66 -0
  409. package/src/avm2/float.ts +31 -0
  410. package/src/avm2/hooks.ts +97 -0
  411. package/src/avm2/index.ts +84 -0
  412. package/src/avm2/messages.ts +178 -0
  413. package/src/avm2/method-factories.ts +130 -0
  414. package/src/avm2/modules.ts +120 -0
  415. package/src/avm2/names.ts +292 -0
  416. package/src/avm2/natives/aliases.ts +59 -0
  417. package/src/avm2/natives/array.ts +482 -0
  418. package/src/avm2/natives/bytearray.ts +1474 -0
  419. package/src/avm2/natives/case.ts +98 -0
  420. package/src/avm2/natives/concurrent.ts +268 -0
  421. package/src/avm2/natives/date.ts +678 -0
  422. package/src/avm2/natives/define.ts +176 -0
  423. package/src/avm2/natives/describe.ts +426 -0
  424. package/src/avm2/natives/dictionary.ts +18 -0
  425. package/src/avm2/natives/float-vector.ts +99 -0
  426. package/src/avm2/natives/float.ts +116 -0
  427. package/src/avm2/natives/index.ts +70 -0
  428. package/src/avm2/natives/json.ts +600 -0
  429. package/src/avm2/natives/number.ts +194 -0
  430. package/src/avm2/natives/object.ts +272 -0
  431. package/src/avm2/natives/proxy.ts +98 -0
  432. package/src/avm2/natives/regexp.ts +580 -0
  433. package/src/avm2/natives/shell-workers.ts +474 -0
  434. package/src/avm2/natives/shell.ts +707 -0
  435. package/src/avm2/natives/sort.ts +438 -0
  436. package/src/avm2/natives/string.ts +158 -0
  437. package/src/avm2/natives/sync.ts +964 -0
  438. package/src/avm2/natives/toplevel.ts +163 -0
  439. package/src/avm2/natives/vector-elements.ts +61 -0
  440. package/src/avm2/natives/vector.ts +511 -0
  441. package/src/avm2/natives/xml/access.ts +767 -0
  442. package/src/avm2/natives/xml/build.ts +381 -0
  443. package/src/avm2/natives/xml/chars.ts +127 -0
  444. package/src/avm2/natives/xml/escape.ts +46 -0
  445. package/src/avm2/natives/xml/names.ts +256 -0
  446. package/src/avm2/natives/xml/node.ts +339 -0
  447. package/src/avm2/natives/xml/operators.ts +90 -0
  448. package/src/avm2/natives/xml/parser.ts +414 -0
  449. package/src/avm2/natives/xml/strings.ts +241 -0
  450. package/src/avm2/natives/xml/values.ts +162 -0
  451. package/src/avm2/natives/xml/xml.ts +829 -0
  452. package/src/avm2/number-strings.ts +127 -0
  453. package/src/avm2/numbers.ts +605 -0
  454. package/src/avm2/options.ts +125 -0
  455. package/src/avm2/player-messages.ts +552 -0
  456. package/src/avm2/property-cache.ts +160 -0
  457. package/src/avm2/runtime.ts +3274 -0
  458. package/src/avm2/traits.ts +584 -0
  459. package/src/index.ts +8 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amf.js","sourceRoot":"","sources":["../../src/avm2/amf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type AsObject } from "./descriptors.js";
2
+ /**
3
+ * What Number(array) runs unless a script replaced it: Array's traits,
4
+ * Array.prototype, its toString and Object.prototype.valueOf, as the
5
+ * script defining Object leaves them, before any other script runs.
6
+ */
7
+ export declare class ArrayConversion {
8
+ private arrayClass;
9
+ private arrayTraits;
10
+ private arrayPrototype;
11
+ private arrayToString;
12
+ private objectValueOf;
13
+ noteArrayClass(cls: AsObject): void;
14
+ /**
15
+ * Notes Array's builtin conversion functions, once the script defining
16
+ * Object, and Array beside it, has set its prototypes' functions.
17
+ */
18
+ noteConversions(): void;
19
+ /**
20
+ * Number(a) for an Array whose conversion is still the builtins': its
21
+ * valueOf returns it, and its toString joins its elements with commas,
22
+ * which then read back as a number. Without formatting and parsing, for
23
+ * the Arrays whose result is plain: none or one primitive element, or
24
+ * only primitives, whose join holds a comma and so is NaN, unless a NUL
25
+ * ends the number before it. Undefined for any other, which takes the
26
+ * general path, as does one with a hole, whose element the prototypes
27
+ * give.
28
+ */
29
+ arrayToNumber(o: AsObject): number | undefined;
30
+ }
31
+ //# sourceMappingURL=array-conversion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-conversion.d.ts","sourceRoot":"","sources":["../../src/avm2/array-conversion.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAyB,MAAM,kBAAkB,CAAC;AAIxE;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,aAAa,CAAoB;IAEzC,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAElC;IAED;;;OAGG;IACH,eAAe,IAAI,IAAI,CAgBtB;IAED;;;;;;;;;OASG;IACH,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CA4D7C;CACF"}
@@ -0,0 +1,101 @@
1
+ // Number(array) without formatting and parsing, for the Arrays whose
2
+ // conversion is still the builtins'.
3
+ import { NOT_FOUND } from "./descriptors.js";
4
+ import { numberReadBack, stringToNumber } from "./number-strings.js";
5
+ /**
6
+ * What Number(array) runs unless a script replaced it: Array's traits,
7
+ * Array.prototype, its toString and Object.prototype.valueOf, as the
8
+ * script defining Object leaves them, before any other script runs.
9
+ */
10
+ export class ArrayConversion {
11
+ arrayClass = null;
12
+ arrayTraits = null;
13
+ arrayPrototype = null;
14
+ arrayToString = NOT_FOUND;
15
+ objectValueOf = NOT_FOUND;
16
+ noteArrayClass(cls) {
17
+ this.arrayClass = cls;
18
+ }
19
+ /**
20
+ * Notes Array's builtin conversion functions, once the script defining
21
+ * Object, and Array beside it, has set its prototypes' functions.
22
+ */
23
+ noteConversions() {
24
+ const cls = this.arrayClass;
25
+ if (cls === null) {
26
+ return;
27
+ }
28
+ const prototype = cls.$prototype;
29
+ const objectPrototype = prototype.$p;
30
+ const toStringFn = prototype.$d.get("toString");
31
+ const valueOfFn = objectPrototype?.$d.get("valueOf");
32
+ if (toStringFn?.$f && valueOfFn?.$f) {
33
+ this.arrayTraits = cls.$it;
34
+ this.arrayPrototype = prototype;
35
+ this.arrayToString = toStringFn;
36
+ this.objectValueOf = valueOfFn;
37
+ }
38
+ }
39
+ /**
40
+ * Number(a) for an Array whose conversion is still the builtins': its
41
+ * valueOf returns it, and its toString joins its elements with commas,
42
+ * which then read back as a number. Without formatting and parsing, for
43
+ * the Arrays whose result is plain: none or one primitive element, or
44
+ * only primitives, whose join holds a comma and so is NaN, unless a NUL
45
+ * ends the number before it. Undefined for any other, which takes the
46
+ * general path, as does one with a hole, whose element the prototypes
47
+ * give.
48
+ */
49
+ arrayToNumber(o) {
50
+ const traits = this.arrayTraits;
51
+ if (traits === null || o.$traits !== traits) {
52
+ return undefined;
53
+ }
54
+ const prototype = this.arrayPrototype;
55
+ const d = o.$d;
56
+ const pd = prototype.$d;
57
+ if ((d !== null && (d.has("valueOf") || d.has("toString"))) ||
58
+ pd.has("valueOf") ||
59
+ pd.get("toString") !== this.arrayToString ||
60
+ prototype.$p.$d.get("valueOf") !== this.objectValueOf) {
61
+ return undefined;
62
+ }
63
+ const a = o.$a;
64
+ const length = a.length;
65
+ if (length === 0) {
66
+ return 0;
67
+ }
68
+ if (length === 1) {
69
+ if (!(0 in a)) {
70
+ return undefined;
71
+ }
72
+ const v = a[0];
73
+ switch (typeof v) {
74
+ case "number":
75
+ return numberReadBack(v);
76
+ case "string":
77
+ return stringToNumber(v);
78
+ case "boolean":
79
+ return Number.NaN;
80
+ case "undefined":
81
+ return 0;
82
+ default:
83
+ return v === null ? 0 : undefined;
84
+ }
85
+ }
86
+ for (let i = 0; i < length; i++) {
87
+ if (!(i in a)) {
88
+ return undefined;
89
+ }
90
+ const v = a[i];
91
+ if (v !== null && typeof v === "object") {
92
+ return undefined;
93
+ }
94
+ if (typeof v === "string" && v.includes("\0")) {
95
+ return undefined;
96
+ }
97
+ }
98
+ return Number.NaN;
99
+ }
100
+ }
101
+ //# sourceMappingURL=array-conversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-conversion.js","sourceRoot":"","sources":["../../src/avm2/array-conversion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const builtinLibrary: Uint8Array;
2
+ //# sourceMappingURL=builtin-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-library.d.ts","sourceRoot":"","sources":["../../src/avm2/builtin-library.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,cAAc,EAAE,UAE5B,CAAC"}
@@ -0,0 +1,22 @@
1
+ // avmplus' builtin.abc: ActionScript 3's standard library, which every runtime loads first.
2
+ // Generated by tools/avmplus-libraries.ts --update; not to be edited.
3
+ //
4
+ // This Source Code Form is subject to the terms of the Mozilla Public
5
+ // License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ //
8
+ // Its source form is the ActionScript in core/
9
+ // of avmplus, https://github.com/swf2es/avmplus at commit
10
+ // 858d034a3bd3a54d9b70909386435cf4aec81d21,
11
+ // which core/builtin.py compiles into generated/builtin.abc.
12
+ /** Base64 to bytes with a plain loop: Uint8Array.from with a callback takes some 8 times as long. */
13
+ function decode(text) {
14
+ const raw = atob(text);
15
+ const bytes = new Uint8Array(raw.length);
16
+ for (let i = 0; i < raw.length; i++) {
17
+ bytes[i] = raw.charCodeAt(i);
18
+ }
19
+ return bytes;
20
+ }
21
+ export const builtinLibrary = decode("EAAuABgAAQIKA4CAgIAI/////wfSrigECBDN5R6IiSMgQIABgAKABIAIB4DAA//xA/////8PAA/////////vf2lXFIsKvwVAFlW1u7FrAkDvOfr+Qi7mPw7lJhV7y9s//oIrZUcV9z8YLURU+yEJQM07f2aeoOY/zTt/Zp6g9j8AAAAAAADw/wAAAAAAAPB/AAAAAAAA+H8AAOD////vQQAAAAAAAAAAxQUABlN0cmluZwNYTUwQZGVzY3JpYmVUeXBlSlNPTgxidWlsdGluLmFzJDAHYXZtcGx1cyFodHRwOi8vYWRvYmUuY29tL0FTMy8yMDA2L2J1aWx0aW4GT2JqZWN0B3R5cGVYbWwEY29weQRuYW1lBnRyYWl0cwViYXNlcwZsZW5ndGgEYmFzZQlpc0R5bmFtaWMHaXNGaW5hbAhpc1N0YXRpYw5kZXNjcmliZVRyYWl0cwtVU0VfSVRSQUlUUwpmYWN0b3J5WG1sBHR5cGULYXBwZW5kQ2hpbGQEdWludAdYTUxMaXN0CmV4dGVuZHNYbWwKaW50ZXJmYWNlcw1pbXBsZW1lbnRzWG1sC2NvbnN0cnVjdG9yDmNvbnN0cnVjdG9yWG1sDmRlc2NyaWJlUGFyYW1zCXZhcmlhYmxlcwZhY2Nlc3MIcmVhZG9ubHkLY29uc3RhbnRYbWwLdmFyaWFibGVYbWwGZmluaXNoCWFjY2Vzc29ycwthY2Nlc3NvclhtbApkZWNsYXJlZEJ5B21ldGhvZHMJbWV0aG9kWG1sCnJldHVyblR5cGUKcGFyYW1ldGVycxBkZXNjcmliZU1ldGFkYXRhCG1ldGFkYXRhBHZvaWQDdXJpC21ldGFkYXRhWG1sBXZhbHVlBmFyZ1htbANrZXkFQXJyYXkMcGFyYW1ldGVyWG1sBWluZGV4CG9wdGlvbmFsB0Jvb2xlYW4JdW5kZWZpbmVkBk51bWJlcgNOYU4DaW50GF9zZXRQcm9wZXJ0eUlzRW51bWVyYWJsZQ5oYXNPd25Qcm9wZXJ0eRRwcm9wZXJ0eUlzRW51bWVyYWJsZQ1pc1Byb3RvdHlwZU9mCV90b1N0cmluZwlwcm90b3R5cGUXc2V0UHJvcGVydHlJc0VudW1lcmFibGUOdG9Mb2NhbGVTdHJpbmcIdG9TdHJpbmcHdmFsdWVPZhJfZG9udEVudW1Qcm90b3R5cGUOX2lzUHJvdG90eXBlT2YPX2hhc093blByb3BlcnR5FV9wcm9wZXJ0eUlzRW51bWVyYWJsZQPuipQEaW5pdAPui4gFX2luaXQDQVBJAzcxMgVDbGFzcwhGdW5jdGlvbgRjYWxsBWFwcGx5FmZ1bmN0aW9uIEZ1bmN0aW9uKCkge30TY3JlYXRlRW1wdHlGdW5jdGlvbgdjcHBjYWxsCU5hbWVzcGFjZQZwcmVmaXgFZmFsc2UFRXJyb3IJVHlwZUVycm9yGkJvb2xlYW4ucHJvdG90eXBlLnRvU3RyaW5nCnRocm93RXJyb3IEdHJ1ZRlCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mEU5FR0FUSVZFX0lORklOSVRZEVBPU0lUSVZFX0lORklOSVRZCU1JTl9WQUxVRQlfbWluVmFsdWUJTUFYX1ZBTFVFAUUETE4xMANMTjIGTE9HMTBFBUxPRzJFAlBJB1NRUlQxXzIFU1FSVDIMRFRPU1RSX0ZJWEVEEERUT1NUUl9QUkVDSVNJT04SRFRPU1RSX0VYUE9ORU5USUFMDXRvRXhwb25lbnRpYWwLdG9QcmVjaXNpb24HdG9GaXhlZAEwGU51bWJlci5wcm90b3R5cGUudG9TdHJpbmcPX251bWJlclRvU3RyaW5nGE51bWJlci5wcm90b3R5cGUudmFsdWVPZghfY29udmVydAPuiqgDNjgwA2FicwRhY29zBGFzaW4EYXRhbgRjZWlsA2NvcwNleHAFZmxvb3IDbG9nBXJvdW5kA3NpbgRzcXJ0A3RhbgVhdGFuMgNwb3cDbWF4A21pbgZyYW5kb20WaW50LnByb3RvdHlwZS50b1N0cmluZxVpbnQucHJvdG90eXBlLnZhbHVlT2YXdWludC5wcm90b3R5cGUudG9TdHJpbmcWdWludC5wcm90b3R5cGUudmFsdWVPZgxmcm9tQ2hhckNvZGUHaW5kZXhPZgtsYXN0SW5kZXhPZgZjaGFyQXQKY2hhckNvZGVBdAZjb25jYXQNbG9jYWxlQ29tcGFyZQVtYXRjaAdyZXBsYWNlBnNlYXJjaAVzbGljZQVzcGxpdAlzdWJzdHJpbmcGc3Vic3RyEXRvTG9jYWxlTG93ZXJDYXNlC3RvTG93ZXJDYXNlEXRvTG9jYWxlVXBwZXJDYXNlC3RvVXBwZXJDYXNlBl9tYXRjaAhfcmVwbGFjZQdfc2VhcmNoBl9zcGxpdBlTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nGFN0cmluZy5wcm90b3R5cGUudmFsdWVPZghfaW5kZXhPZgxfbGFzdEluZGV4T2YGX3NsaWNlCl9zdWJzdHJpbmcHX3N1YnN0cg9DQVNFSU5TRU5TSVRJVkUKREVTQ0VORElORwpVTklRVUVTT1JUElJFVFVSTklOREVYRURBUlJBWQdOVU1FUklDBGpvaW4DcG9wBHB1c2gHcmV2ZXJzZQVzaGlmdAd1bnNoaWZ0BnNwbGljZQRzb3J0BnNvcnRPbgVldmVyeQZmaWx0ZXIHZm9yRWFjaANtYXAEc29tZQEsBV9qb2luBF9wb3AIX3JldmVyc2UHX2NvbmNhdAZfc2hpZnQIX3Vuc2hpZnQHX3NwbGljZQVfc29ydAdfc29ydE9uBl9ldmVyeQdfZmlsdGVyCF9mb3JFYWNoBF9tYXAFX3NvbWUIYnVnemlsbGEKUmFuZ2VFcnJvcghpbnNlcnRBdAM3MDgIcmVtb3ZlQXQKc2V0X2xlbmd0aBJfX0FTM19fLnZlYzpWZWN0b3ILX19BUzNfXy52ZWMGVmVjdG9yGV9fQVMzX18udmVjOlZlY3RvciRvYmplY3QNVmVjdG9yJG9iamVjdA5jYXN0VG9UaGlzVHlwZQVmaXhlZAhJbmZpbml0eQtuZXdUaGlzVHlwZQ1fc3BsaWNlSGVscGVyBWNsYW1wFl9fQVMzX18udmVjOlZlY3RvciRpbnQKVmVjdG9yJGludBdfX0FTM19fLnZlYzpWZWN0b3IkdWludAtWZWN0b3IkdWludBlfX0FTM19fLnZlYzpWZWN0b3IkZG91YmxlDVZlY3RvciRkb3VibGUaYnVpbHRpbi5hcyQwOk1ldGhvZENsb3N1cmUOUmVmZXJlbmNlRXJyb3INTWV0aG9kQ2xvc3VyZQ88ZXh0ZW5kc0NsYXNzLz4WPGltcGxlbWVudHNJbnRlcmZhY2UvPg48Y29uc3RydWN0b3IvPgs8Y29uc3RhbnQvPgs8dmFyaWFibGUvPgs8YWNjZXNzb3IvPgk8bWV0aG9kLz4MPHBhcmFtZXRlci8+CzxtZXRhZGF0YS8+BjxhcmcvPgc8dHlwZS8+CjxmYWN0b3J5Lz4SSElERV9OU1VSSV9NRVRIT0RTDUlOQ0xVREVfQkFTRVMSSU5DTFVERV9JTlRFUkZBQ0VTEUlOQ0xVREVfVkFSSUFCTEVTEUlOQ0xVREVfQUNDRVNTT1JTD0lOQ0xVREVfTUVUSE9EUxBJTkNMVURFX01FVEFEQVRBE0lOQ0xVREVfQ09OU1RSVUNUT1IOSU5DTFVERV9UUkFJVFMLSElERV9PQkpFQ1QNRkxBU0gxMF9GTEFHUwNBUzMGbmF0aXZlA2NscwtPYmplY3RDbGFzcwdjbGFzc2djBWV4YWN0BGF1dG8JY29uc3RydWN0CG92ZXJyaWRlCkNsYXNzQ2xhc3MCZ2MIaW5zdGFuY2UMQ2xhc3NDbG9zdXJlDUZ1bmN0aW9uQ2xhc3MORnVuY3Rpb25PYmplY3QSTWV0aG9kQ2xvc3VyZUNsYXNzDk5hbWVzcGFjZUNsYXNzDEJvb2xlYW5DbGFzcwRib29sC051bWJlckNsYXNzBmRvdWJsZQhJbnRDbGFzcwdpbnQzMl90CVVJbnRDbGFzcwh1aW50MzJfdAtTdHJpbmdDbGFzcwpBcnJheUNsYXNzC0FycmF5T2JqZWN0ElRvcGxldmVsOjpidWd6aWxsYQlkZWNvZGVVUkkTVG9wbGV2ZWw6OmRlY29kZVVSSRJkZWNvZGVVUklDb21wb25lbnQcVG9wbGV2ZWw6OmRlY29kZVVSSUNvbXBvbmVudAllbmNvZGVVUkkTVG9wbGV2ZWw6OmVuY29kZVVSSRJlbmNvZGVVUklDb21wb25lbnQcVG9wbGV2ZWw6OmVuY29kZVVSSUNvbXBvbmVudAVpc05hTg9Ub3BsZXZlbDo6aXNOYU4IaXNGaW5pdGUSVG9wbGV2ZWw6OmlzRmluaXRlCHBhcnNlSW50ElRvcGxldmVsOjpwYXJzZUludApwYXJzZUZsb2F0FFRvcGxldmVsOjpwYXJzZUZsb2F0BmVzY2FwZRBUb3BsZXZlbDo6ZXNjYXBlCHVuZXNjYXBlElRvcGxldmVsOjp1bmVzY2FwZQlpc1hNTE5hbWUTVG9wbGV2ZWw6OmlzWE1MTmFtZQ5fX0FTM19fLnZlY+6KlAtWZWN0b3JDbGFzcxJPYmplY3RWZWN0b3JPYmplY3QRT2JqZWN0VmVjdG9yQ2xhc3MOSW50VmVjdG9yQ2xhc3MPSW50VmVjdG9yT2JqZWN0D1VJbnRWZWN0b3JDbGFzcxBVSW50VmVjdG9yT2JqZWN0EURvdWJsZVZlY3RvckNsYXNzEkRvdWJsZVZlY3Rvck9iamVjdCNEZXNjcmliZVR5cGVDbGFzczo6ZGVzY3JpYmVUeXBlSlNPTgphdm1wbHVz7oqUDGRlc2NyaWJlVHlwZRVnZXRRdWFsaWZpZWRDbGFzc05hbWUoRGVzY3JpYmVUeXBlQ2xhc3M6OmdldFF1YWxpZmllZENsYXNzTmFtZRpnZXRRdWFsaWZpZWRTdXBlcmNsYXNzTmFtZS1EZXNjcmliZVR5cGVDbGFzczo6Z2V0UXVhbGlmaWVkU3VwZXJjbGFzc05hbWUMZmxhc2gubmV07oqUEnJlZ2lzdGVyQ2xhc3NBbGlhcxxUb3BsZXZlbDo6cmVnaXN0ZXJDbGFzc0FsaWFzD2dldENsYXNzQnlBbGlhcxlUb3BsZXZlbDo6Z2V0Q2xhc3NCeUFsaWFzBE1hdGgLTmVnSW5maW5pdHkEX21pbgRfbWF4CU1hdGguYXMkMQlNYXRoQ2xhc3MKRXJyb3IuYXMkMgdtZXNzYWdlATEBMgEzATQBNQE2BHJlc3QPZ2V0RXJyb3JNZXNzYWdlBlJlZ0V4cAYlWzAtOV0BZwFpAWYCOiAIX2Vycm9ySUQNZ2V0U3RhY2tUcmFjZQdlcnJvcklED0RlZmluaXRpb25FcnJvcglFdmFsRXJyb3INU2VjdXJpdHlFcnJvcgtTeW50YXhFcnJvcghVUklFcnJvcgtWZXJpZnlFcnJvchJVbmluaXRpYWxpemVkRXJyb3INQXJndW1lbnRFcnJvchRmbGFzaC5lcnJvcnM6SU9FcnJvcgxmbGFzaC5lcnJvcnMHSU9FcnJvchhmbGFzaC5lcnJvcnM6TWVtb3J5RXJyb3ILTWVtb3J5RXJyb3IiZmxhc2guZXJyb3JzOklsbGVnYWxPcGVyYXRpb25FcnJvchVJbGxlZ2FsT3BlcmF0aW9uRXJyb3IVZmxhc2guZXJyb3JzOkVPRkVycm9yCEVPRkVycm9yCkVycm9yQ2xhc3MLRXJyb3JPYmplY3QURGVmaW5pdGlvbkVycm9yQ2xhc3MVRGVmaW5pdGlvbkVycm9yT2JqZWN0DkV2YWxFcnJvckNsYXNzD0V2YWxFcnJvck9iamVjdA9SYW5nZUVycm9yQ2xhc3MQUmFuZ2VFcnJvck9iamVjdBNSZWZlcmVuY2VFcnJvckNsYXNzFFJlZmVyZW5jZUVycm9yT2JqZWN0ElNlY3VyaXR5RXJyb3JDbGFzcxNTZWN1cml0eUVycm9yT2JqZWN0EFN5bnRheEVycm9yQ2xhc3MRU3ludGF4RXJyb3JPYmplY3QOVHlwZUVycm9yQ2xhc3MPVHlwZUVycm9yT2JqZWN0DVVSSUVycm9yQ2xhc3MOVVJJRXJyb3JPYmplY3QQVmVyaWZ5RXJyb3JDbGFzcxFWZXJpZnlFcnJvck9iamVjdBdVbmluaXRpYWxpemVkRXJyb3JDbGFzcxhVbmluaXRpYWxpemVkRXJyb3JPYmplY3QSQXJndW1lbnRFcnJvckNsYXNzE0FyZ3VtZW50RXJyb3JPYmplY3QPZmxhc2guZXJyb3Jz7oqUBERhdGUJRGF0ZS5hcyQzB3NldFRpbWUMdG9EYXRlU3RyaW5nDHRvVGltZVN0cmluZxJ0b0xvY2FsZURhdGVTdHJpbmcSdG9Mb2NhbGVUaW1lU3RyaW5nC3RvVVRDU3RyaW5nBnRvSlNPTg5nZXRVVENGdWxsWWVhcgtnZXRVVENNb250aApnZXRVVENEYXRlCWdldFVUQ0RheQtnZXRVVENIb3Vycw1nZXRVVENNaW51dGVzDWdldFVUQ1NlY29uZHMSZ2V0VVRDTWlsbGlzZWNvbmRzC2dldEZ1bGxZZWFyCGdldE1vbnRoB2dldERhdGUGZ2V0RGF5CGdldEhvdXJzCmdldE1pbnV0ZXMKZ2V0U2Vjb25kcw9nZXRNaWxsaXNlY29uZHMRZ2V0VGltZXpvbmVPZmZzZXQHZ2V0VGltZQtzZXRGdWxsWWVhcghzZXRNb250aAdzZXREYXRlCHNldEhvdXJzCnNldE1pbnV0ZXMKc2V0U2Vjb25kcw9zZXRNaWxsaXNlY29uZHMOc2V0VVRDRnVsbFllYXILc2V0VVRDTW9udGgKc2V0VVRDRGF0ZQtzZXRVVENIb3Vycw1zZXRVVENNaW51dGVzDXNldFVUQ1NlY29uZHMSc2V0VVRDTWlsbGlzZWNvbmRzCF9zZXRUaW1lDF9zZXRGdWxsWWVhcglfc2V0TW9udGgIX3NldERhdGUJX3NldEhvdXJzC19zZXRNaW51dGVzC19zZXRTZWNvbmRzEF9zZXRNaWxsaXNlY29uZHMPX3NldFVUQ0Z1bGxZZWFyDF9zZXRVVENNb250aAtfc2V0VVRDRGF0ZQxfc2V0VVRDSG91cnMOX3NldFVUQ01pbnV0ZXMOX3NldFVUQ1NlY29uZHMTX3NldFVUQ01pbGxpc2Vjb25kcwVwYXJzZQNVVEMEX2dldAhmdWxsWWVhcgVtb250aARkYXRlBWhvdXJzB21pbnV0ZXMHc2Vjb25kcwxtaWxsaXNlY29uZHMLZnVsbFllYXJVVEMIbW9udGhVVEMHZGF0ZVVUQwhob3Vyc1VUQwptaW51dGVzVVRDCnNlY29uZHNVVEMPbWlsbGlzZWNvbmRzVVRDBHRpbWUOdGltZXpvbmVPZmZzZXQDZGF5BmRheVVUQwlEYXRlQ2xhc3MKRGF0ZU9iamVjdAtSZWdFeHAuYXMkNARleGVjBHRlc3QBLwZzb3VyY2UGZ2xvYmFsCmlnbm9yZUNhc2UJbXVsdGlsaW5lAW0GZG90YWxsAXMIZXh0ZW5kZWQBeAlsYXN0SW5kZXgLUmVnRXhwQ2xhc3MMUmVnRXhwT2JqZWN0BEpTT04FYXMzbnMJSlNPTi5hcyQ1CXBhcnNlQ29yZQZXYWxrZXIEd2FsawogICAgICAgICAgHHN0cmluZ2lmeVNwZWNpYWxpemVkVG9TdHJpbmcTY29tcHV0ZVByb3BlcnR5TGlzdAlzdHJpbmdpZnkHcmV2aXZlcgPuiqIJSlNPTkNsYXNzBG5vbmUDNjc0CHNldHRpbmdzCFhNTC5hcyQ2C3NldFNldHRpbmdzD2RlZmF1bHRTZXR0aW5ncwxhZGROYW1lc3BhY2UJYXR0cmlidXRlCmF0dHJpYnV0ZXMFY2hpbGQKY2hpbGRJbmRleAhjaGlsZHJlbghjb21tZW50cwhjb250YWlucwtkZXNjZW5kYW50cwhlbGVtZW50cxFoYXNDb21wbGV4Q29udGVudBBoYXNTaW1wbGVDb250ZW50EWluU2NvcGVOYW1lc3BhY2VzEGluc2VydENoaWxkQWZ0ZXIRaW5zZXJ0Q2hpbGRCZWZvcmUJbG9jYWxOYW1lCW5hbWVzcGFjZRVuYW1lc3BhY2VEZWNsYXJhdGlvbnMIbm9kZUtpbmQJbm9ybWFsaXplBnBhcmVudBZwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25zDHByZXBlbmRDaGlsZA9yZW1vdmVOYW1lc3BhY2ULc2V0Q2hpbGRyZW4Mc2V0TG9jYWxOYW1lB3NldE5hbWUMc2V0TmFtZXNwYWNlBHRleHQLdG9YTUxTdHJpbmcOaWdub3JlQ29tbWVudHMcaWdub3JlUHJvY2Vzc2luZ0luc3RydWN0aW9ucxBpZ25vcmVXaGl0ZXNwYWNlDnByZXR0eVByaW50aW5nDHByZXR0eUluZGVudAEqCl9uYW1lc3BhY2UMbm90aWZpY2F0aW9uD3NldE5vdGlmaWNhdGlvbgVRTmFtZRhRTmFtZS5wcm90b3R5cGUudG9TdHJpbmcDKjo6Ajo6CFhNTENsYXNzCVhNTE9iamVjdAxYTUxMaXN0Q2xhc3MNWE1MTGlzdE9iamVjdApRTmFtZUNsYXNzC1FOYW1lT2JqZWN0C2ZsYXNoLnV0aWxzCUJ5dGVBcnJheRZmbGFzaC51dGlsczpJRGF0YUlucHV0CXJlYWRCeXRlcwtyZWFkQm9vbGVhbghyZWFkQnl0ZRByZWFkVW5zaWduZWRCeXRlCXJlYWRTaG9ydBFyZWFkVW5zaWduZWRTaG9ydAdyZWFkSW50D3JlYWRVbnNpZ25lZEludAlyZWFkRmxvYXQKcmVhZERvdWJsZQ1yZWFkTXVsdGlCeXRlB3JlYWRVVEYMcmVhZFVURkJ5dGVzDmJ5dGVzQXZhaWxhYmxlCnJlYWRPYmplY3QOb2JqZWN0RW5jb2RpbmcGZW5kaWFuCklEYXRhSW5wdXQOZmxhc2gudXRpbHPuipQXZmxhc2gudXRpbHM6SURhdGFPdXRwdXQKd3JpdGVCeXRlcwx3cml0ZUJvb2xlYW4Jd3JpdGVCeXRlCndyaXRlU2hvcnQId3JpdGVJbnQQd3JpdGVVbnNpZ25lZEludAp3cml0ZUZsb2F0C3dyaXRlRG91YmxlDndyaXRlTXVsdGlCeXRlCHdyaXRlVVRGDXdyaXRlVVRGQnl0ZXMLd3JpdGVPYmplY3QLSURhdGFPdXRwdXQRZmxhc2gudXRpbHM6UHJveHkLUHJveHkuYXMkMTAyaHR0cDovL3d3dy5hZG9iZS5jb20vMjAwNi9hY3Rpb25zY3JpcHQvZmxhc2gvcHJveHkLZ2V0UHJvcGVydHkLc2V0UHJvcGVydHkMY2FsbFByb3BlcnR5C2hhc1Byb3BlcnR5DmRlbGV0ZVByb3BlcnR5DmdldERlc2NlbmRhbnRzDW5leHROYW1lSW5kZXgIbmV4dE5hbWUJbmV4dFZhbHVlC2lzQXR0cmlidXRlBVByb3h5C2ZsYXNoX3Byb3h5ClByb3h5Q2xhc3MLUHJveHlPYmplY3QWZmxhc2gudXRpbHM6RGljdGlvbmFyeRBEaWN0aW9uYXJ5LmFzJDEyCkRpY3Rpb25hcnkPRGljdGlvbmFyeUNsYXNzEERpY3Rpb25hcnlPYmplY3QgZmxhc2gubmV0OklEeW5hbWljUHJvcGVydHlPdXRwdXQUd3JpdGVEeW5hbWljUHJvcGVydHkJZmxhc2gubmV0FklEeW5hbWljUHJvcGVydHlPdXRwdXQgZmxhc2gubmV0OklEeW5hbWljUHJvcGVydHlXcml0ZXIWd3JpdGVEeW5hbWljUHJvcGVydGllcxZJRHluYW1pY1Byb3BlcnR5V3JpdGVyG2ZsYXNoLnV0aWxzOklFeHRlcm5hbGl6YWJsZQ13cml0ZUV4dGVybmFsDHJlYWRFeHRlcm5hbA9JRXh0ZXJuYWxpemFibGUYZmxhc2gubmV0Ok9iamVjdEVuY29kaW5nBEFNRjAEQU1GMwdERUZBVUxUFWR5bmFtaWNQcm9wZXJ0eVdyaXRlcg5PYmplY3RFbmNvZGluZxRPYmplY3RFbmNvZGluZy5hcyQxORNPYmplY3RFbmNvZGluZ0NsYXNzFmZsYXNoLmNvbmN1cnJlbnQ6TXV0ZXgEY3RvchBjb25jdXJyZW50LmFzJDIwEGZsYXNoLmNvbmN1cnJlbnQLaXNTdXBwb3J0ZWQEbG9jawd0cnlMb2NrBnVubG9jawVNdXRleBpmbGFzaC5jb25jdXJyZW50OkNvbmRpdGlvbgVtdXRleAR3YWl0Bm5vdGlmeQlub3RpZnlBbGwJQ29uZGl0aW9uE2ZsYXNoLmNvbmN1cnJlbnTuiqwKTXV0ZXhDbGFzcwtNdXRleE9iamVjdAM2ODQOQ29uZGl0aW9uQ2xhc3MPQ29uZGl0aW9uT2JqZWN0GWF2bTIuaW50cmluc2ljcy5tZW1vcnnuiqwGbWZlbmNlGENvbmN1cnJlbnRNZW1vcnk6Om1mZW5jZQZjYXNpMzIYQ29uY3VycmVudE1lbW9yeTo6Y2FzaTMyF2ZsYXNoLnV0aWxzOk9iamVjdElucHV0EU9iamVjdElucHV0LmFzJDE2C09iamVjdElucHV0EE9iamVjdElucHV0Q2xhc3MRT2JqZWN0SW5wdXRPYmplY3QgZmxhc2gudXRpbHM6Q29tcHJlc3Npb25BbGdvcml0aG0EWkxJQgR6bGliB0RFRkxBVEUHZGVmbGF0ZQRMWk1BBGx6bWEUQ29tcHJlc3Npb25BbGdvcml0aG0OQnl0ZUFycmF5LmFzJDkLSURhdGFJbnB1dDIMSURhdGFPdXRwdXQyFWZsYXNoLnV0aWxzOkJ5dGVBcnJheQlfY29tcHJlc3MLX3VuY29tcHJlc3MVZGVmYXVsdE9iamVjdEVuY29kaW5nFl9kZWZhdWx0T2JqZWN0RW5jb2RpbmcD7oqWAzY2Mghjb21wcmVzcwdpbmZsYXRlCnVuY29tcHJlc3MIcG9zaXRpb24FY2xlYXID7oqqGWF0b21pY0NvbXBhcmVBbmRTd2FwSW50QXQDNjgyGmF0b21pY0NvbXBhcmVBbmRTd2FwTGVuZ3RoCXNoYXJlYWJsZQ5CeXRlQXJyYXlDbGFzcw9CeXRlQXJyYXlPYmplY3QYZmxhc2gudXRpbHM6T2JqZWN0T3V0cHV0Ek9iamVjdE91dHB1dC5hcyQxNwxPYmplY3RPdXRwdXQRT2JqZWN0T3V0cHV0Q2xhc3MST2JqZWN0T3V0cHV0T2JqZWN0H2ZsYXNoLm5ldDpEeW5hbWljUHJvcGVydHlPdXRwdXQbRHluYW1pY1Byb3BlcnR5T3V0cHV0LmFzJDE1FUR5bmFtaWNQcm9wZXJ0eU91dHB1dBpEeW5hbWljUHJvcGVydHlPdXRwdXRDbGFzcxtEeW5hbWljUHJvcGVydHlPdXRwdXRPYmplY3S8ARYBBQUWBhcGCAcFCBcBGAgaCBZMFk4FUhhSBVMYUxpTBVkYWRpZBTkYORo5BTsYOxo7FnoFPRg9Gj0FGBgYGhgFAhgCGgIFNRg1GjUF1wEW2AEY1wEF2gEX2AEY2gEa2gEF4gEY4gEa4gEF5AEY5AEa5AEF5gEY5gEa5gEF6AEY6AEa6AEWtQIWwAIWxgIFywIYywIFzwIFXAXRAhhcGlwF5AIY5AIa5AIF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AAABAAEBAAEIAQEDAQEAAQgBAQMBAQABCAEBAwFDQwEgAUNDASABQ0MBIAFDQwEgAUNDASABQ0MBIAFDQwEgAUNDASABQ0MBIAFDQwEgAUNDASABQ0MBIAFDQwEgAkNDQwEgAkNDQwEgAkNDQwEsAgoGCgYCQ0NDASwCCwYLBgBDASACAUNEASADAUNERAEgAEMBIAEBAAEIAQQDAEMBAAEBAAEIAQEDAQEAAQgBAQMBAQABCAEBAwEAAAEIAQEDAAABAAEBAAEIAQQDAAABAAEBAAEIAQEDAQEAAQgBAQMBAQABCAEBAwEBAAEIAQQDAEQBAAEBAAEIAQEDAQEAAQgBAQMBAQABCAEBAwEAAAEIAQEDAAABAAEBAAEIAQQDAAABAAEBAAEIAQEDAQEAAQgBAQMBAQABCAEBAwEBAAEIAQQDABkBAAEBAAEIAQEDAQEAAQgBAQMBAQABCAEBAwEAAAEIAQEDAAABAAAAAQQCRAFDAQgCOgEBAwJEAUMBCAI6AQcDAQFDAQgBAQMBQ0MBCAEBAwABAQQBRAABCAEAAAE9AAEIAQAAAgEAAAEIAgAAAAABRAABCAEAAAIBQ0MBCAIBAwcDAj0AAAEIAgAADQYCAUNDAQgCAQMHAwIBQ0MBCAIBAwcDAAEBAAABAQAAAQEAAAABAAABASQCPQEAASADAQEAAAEgAkQBAAEgAz0BABkBIABEASACRAFEASgBAQMCRAFDASgCOgEBAwJEAUQBKAEHAwJEAUMBKAI6AQcDAQFDASgBAQMBQ0MBKAEBAwABAQQBRAABKAEAAAE9AAEIAQAAAgEAAAEIAgAAAAABRAABCAEAAAIBREQBKAIBAwcDAgFDQwEoAgEDBwMCPQAAAQgCAAANBgIBREQBKAIBAwcDAgFDQwEoAgEDBwMCAUREASgCAQMHAwIBQ0MBKAIBAwcDAAEBIAABAQAAAQEgAAEBAAABAQAAAQEAAQAAAQgBAQEAAAEAAQEAAQgBAAAAAAEAAAEBAAABAQAAGQEEAAABAAA9AQQAAAEAAj0AAAEIAgEDDQYAGQEEAAABBAAAAQQCAAAAAQwBAQMCRAAAAQgBAQMCRAAAAQgBBwMCQmsAAQgBDAwCPWsAAQgBDAwCNGsAAQgBDAwCPWsAAQgBDAwCQmsAAQgBDAwCAQAAAQABAAABIAEAAAEgAj0APQEgAQAAASADPQBDQwEgAhkAPQEgAj0APQEgAgAAPQEgAwAAAAABIANEAABEASADRAAARAEoAQEDA0IAawABIAM9AGsAASADNABrAAEgAz0AawABIANCAGsAASACNEQAASABAEQBIAAZASABABkBIAIAABkBAAAAAQQBAQABCAEAAAAAASAAGQEkAD0BAAA9AQQAAAEAAj0AAAEIAgEDDQYAGQEkAAABBAAAAQQCAAAAAQwBAQMCRAAAAQgBAQMCRAAAAQgBBwMCQmsAAQgBDAwCPWsAAQgBDAwCNGsAAQgBDAwCPWsAAQgBDAwCQmsAAQgBDAwAAAEAAAABAAAAAQAAAAEEAAABAAAAAQABAAABCAEAAAAAAQQCQgAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAAAAAEAAAABAAAAAQACAAAAAQgCAAAAAAJCAAABCAEAAAEAAAEAAgAAAAEEAAABBAGpAwABAANCAGsAASADNABrAAEgA0IAawABIAIAAD0BIAIAGUIBCAIBAwoKAKkDASAAGQEgAQAZASABAEIBIABCASAAAQEAAAEBAAEBAQEIAcIBAQEAPQEAAkJrBAEIAQwMAjRrBAEIAQwMAgBrBAEIAQwMABkBJAA0ASACQgAEAQgBDAwCAENDAQgCAQMHAwMAAAA9AQAFNBkZGQQZASAAGQEkAgBrAAEgAgBrAAEgAhlDGQEAAKkDAQQCqQNrBAEIAQwMAAABIACpAwEAAAABIAKpA0NDAQgCAQMHAwGpAwABAAKpA0NDAQQCNEQEASABBEQBIAJDBEMBCAEBAwJDBEMBCAEHAwAAAQAAAAEEAAABAAAAAQABAAABCAEAAAAAAQQCQgAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAAAAAEAAAABAAAAAQACAAAAAQgCAAAAAAJCAAABCAEAAAEAAAEAAgAAAAEEAAABBAHzAwABAANCAGsAASADNABrAAEgA0IAawABIAIAAD0BIAIAGUIBCAIBAwoKAPMDASAAGQEgAQAZASABAEIBIABCASAAAQEAAAEBAAEBAQEIAcIBAQEAPQEAAkJrBAEIAQwMAjRrBAEIAQwMAgBrBAEIAQwMABkBJAA0ASACQgAEAQgBDAwCAENDAQgCAQMHAwMAAAA9AQAFNBkZGQQZASAAGQEkAgBrAAEgAgBrAAEgAhlDGQEAAPMDAQQC8wNrBAEIAQwMAEQBIADzAwEAAEQBIALzA0NDAQgCAQMHAwHzAwABAALzA0NDAQQCNEREASABREQBIAJDREMBCAEBAwJDREMBCAEHAwAAAQAAAAEEAAABAAAAAQABAAABCAEAAAAAAQQCQgAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAAAAAEAAAABAAAAAQACAAAAAQgCAAAAAAJCAAABCAEAAAEAAAEAAgAAAAEEAAABBAG0BAABAANCAGsAASADNABrAAEgA0IAawABIAIAAD0BIAIAGUIBCAIBAwoKALQEASAAGQEgAQAZASABAEIBIABCASAAAQEAAAEBAAEBAQEIAcIBAQEAPQEAAkJrBAEIAQwMAjRrBAEIAQwMAgBrBAEIAQwMABkBJAA0ASACQgAEAQgBDAwCAENDAQgCAQMHAwMAAAA9AQAFNBkZGQQZASAAGQEkAgBrAAEgAgBrAAEgAhlDGQEAALQEAQQCtARrBAEIAQwMABkBIAC0BAEAABkBIAK0BENDAQgCAQMHAwG0BAABAAK0BENDAQQCNEQZASABGRkBIAJDGUMBCAEBAwJDGUMBCAEHAwAAAQAAAAEEAAABAAAAAQABAAABCAEAAAAAAQQCQgAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAACAAAAAQgBAAAAAAEAAAABAAAAAQACAAAAAQgCAAAAAAJCAAABCAEAAAEAAAEAAgAAAAEEAAABBAH1BAABAANCAGsAASADNABrAAEgA0IAawABIAIAAD0BIAIAGUIBCAIBAwoKAPUEASAAGQEgAQAZASABAEIBIABCASAAAQEAAAEBAAEBAQEIAcIBAQEAPQEAAkJrBAEIAQwMAjRrBAEIAQwMAgBrBAEIAQwMABkBJAA0ASACQgAEAQgBDAwCAENDAQgCAQMHAwMAAAA9AQAFNBkZGQQZASAAGQEkAgBrAAEgAgBrAAEgAhlDGQEAAPUEAQQC9QRrBAEIAQwMAEMBIAD1BAEAAEMBIAL1BENDAQgCAQMHAwH1BAABAAL1BENDAQQCNERDASABQ0QBIAJDQ0MBCAEBAwJDQ0MBCAEHAwAAAQAAAAEAAQAAAQAAAAEAAAABAAFkAQEgAjQBZAEgAAABAAAAAQAAAAEAAkNDQwEgAkNDQwEgAUNDASABQ0MBIAFDQwEgAUNDASABQ0MBIAFDQwEgAUNDASABQ0MBIAFDQwEgAUNDASABQ0MBIAFDQwEgAUNDASACQ0NDASACQ0NDASACQ0NDASwCCgYKBgJDQ0MBLAILBgsGAEMBIAAAAQAAAAEAAAABAAABAQABAUQBIAMAAAAAAQACAGQZAQYCAAAAAQgCAQEBAwABASAARAEAAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAAABCAIBAQEDAAABAAIAAUQBCAIBAQEDAAABAAIAAUQBCAIBAQEDAAABAAIAAUQBCAIBAQEDAAABAAIAAUQBCAIBAQEDAAABAAAAAQABQwABCAEAAAAAAQAAAQEAAAEBAAABAQAAAQEAAAEBAAABAQAAAQEAAQABAQAAQwEAAEMBAABDAQAAQwEAAEMBAABDAQAAQwEAAEMBAABDAQAAQwEAAEMBAABDAQAAQwEAAEMBAABDAQAAQwEAAEMBAABDAQADQwAAAAEJAwAAAAAAAAJDAAABCQIAAAAAAUMAAQkBAAAEQwAAAAABCQQAAAAAAAAAAANDAAAAAQkDAAAAAAAAAkMAAAEJAgAAAAABQwABCQEAAANDAAAAAQkDAAAAAAAAAkMAAAEJAgAAAAABQwABCQEAAARDAAAAAAEJBAAAAAAAAAAAA0MAAAABCQMAAAAAAAACQwAAAQkCAAAAAAFDAAEJAQAAAUMAASAHQwAAAAAAAAABLAUCAwEDAQMBAwEDAEMBIAEBRAEgAUNDASABQ0QBIAFDAAEIAQAAAAEBAAABAQAAAQEAAAEBAAABAQAAAQEAAAEBAABDASAAQwEgAEMBIABDASAAQwEgAEMBIABDASAAQwEgAEMBIABDASAAQwEgAEMBIABDASAAQwEgAEMBIABDASAAQwEgAEMBIABDASQAQwEkAEMBJABDASQAQwEkAEMBJABDASQAQwEkAEMBJABDASQAQwEkAEMBJABDASQAQwEkA0MAAAABCQMAAAAAAAACQwAAAQkCAAAAAAFDAAEJAQAABEMAAAAAAQkEAAAAAAAAAAADQwAAAAEJAwAAAAAAAAJDAAABCQIAAAAAAUMAAQkBAAADQwAAAAEJAwAAAAAAAAJDAAABCQIAAAAAAUMAAQkBAAAEQwAAAAABCQQAAAAAAAAAAANDAAAAAQkDAAAAAAAAAkMAAAEJAgAAAAABQwABCQEAAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQABAEMBAABDAQAAQwEAAEMBAAcAAAAAAAAAAAEIBwAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAQEAAQAAAQgBAQEBQgABCAEBAQABASAAQgEgAEIBIABCASAARAEgAQBEASAAQgEgAEIBIAEAAQEoAQEBAUIBAQgBAQECAAAAAQgCAAAAAAAAAQAAAAEAAQQBASAEAQQ9awEBIAIEAWsBCAEMDAMBBAAAAQgCDAwMDAE9PQEAAAABAAAAAQABAGsBAAIABAEBAAAAAQAAAAEAAAQBAAE0AAEIAQAAAAQBAAFCAAEIAQAAAUIAAQgBAAAAAQEAAQIAAQABAgABAAEbAAEAABsBAAEbAAEAAEQBAAAbAQAAGwEAAUIAAQAAAgEAARsAAQgBowQBARsAAQgBowQBAEIBAABCAQAAPQEAAgAAAAEAAgAAAAEAAEQBAAAEAQAABAEAAQAAAQkBDAwAPQEAAAEBAAACAQAAAAEAARsAAQgBowQBAQIAAQABAgABAAICAAABAAECAAEAATQAAQABNAABAAE0AAEAABsBAAABAQABAAEBAABCASABAEIBIABCASABAEIBIABCASABAEIBIABCASABAEIBIABEASABAEQBIAAEAQABNAQBCAEMDAAEAQAAAQEgAUIAASgBAAABQgABKAEAAAECAAEgAQIAASABGwABIAAbASABGwABIABEASAAGwEgABsBIAFCAAEgAAIBIAEbAAEoAaMEAQEbAAEoAaMEAQBCASAAQgEgAD0BIAIAAAABIAIAAAABIABEAQAABAEgAAQBIAIAAEQBIAEAAAEJAQwMAD0BIAABASAAAgEgAAABIAEbAAEoAaMEAQECAAEgAQIAASACAgAAASABAgABIAE0AAEgATQAASABNAABIAAbASAAAQEgAGsBIAEAawEgAQABAQABAAABCAEAAAACAQAAAAEAAUIAAQgBAAABQgABCAEAAAABAQABAgABAAECAAEAARsAAQAAGwEAARsAAQAARAEAABsBAAAbAQABQgABAAAbAQABGwABCAGjBAEBGwABCAGjBAEAQgEAAEIBAAA9AQACAAAAAQACAAAAAQAARAEAAAQBAAAEAQABAAABCQEMDAA9AQAAAQEAABsBAAAAAQABGwABCAGjBAEBAgABAAECAAEAAgIAAAEAAQIAAQABNAABAAE0AAEAATQAAQAAGwEAAAEBAAEAAQEAAAEBIAAbAQABQgABKAEAAAFCAAEoAQAAARsAASAAGwEgARsAASAAGwEgABsBIAFCAAEgABsBIAEbAAEoAaMEAQEbAAEoAaMEAQBCASAAQgEgAEQBIAAEASAAGwEgAAABIAEbAAEoAaMEAQAbASAAAQEgAQIAASABAgABIABEASAAPQEgAgAAAAEgAgAAAAEgAAEBIAIAAEQBIAEAAAEJAQwMAAQBIAA9ASABAgABIAECAAEgAgIAAAEgAQIAASABNAABIAE0AAEgATQAASABAAEBAAEAAAEIAQAAAAABAAABAQAAAQEgAAABIADnCgEAAAEBAAIAAAABCAIAAAAAAAABAAAAAQADNPUKGRkBCAIBAwEDAEIBAABEAQAAGQEAAEQBAAAZAQAARAEAABkBAABDAQAAQwEAAgEZAQEAAAEBAAEBGQEAABkBAAAAAQAAGQEAATQZAQAAAQEAATQBAQAAAAEAAAABAAAAAQADNPUKGRkBCAIBAwEDATRCAQABNEQBAAE0RAEAATREAQABNBkBAAE0QwEAATRDAQACNAEBAQABNAEBAAE0AQEAATQAAQAAGQEAATQZAQAAAQEAATQBAQAAAAEAAAABAAAAAQABAAABAAI0AAABAAEAAAEEAUIAAQABQgABAAEAAAEAAUREAQABAUQBAAEARAEAAUIAASAAAAEAAAABAAAAAQABAAEBAAE0QgEgAQBCAQgBCgoAAAEAAAABAAI0AQABAAAAAQAAAAEAAAABAAI0BLULAQAAAAEAAAABAAAAAQABNJgLAQABNIcLAQAAAAEAAAABAAAAAQAAuQsBIAE0uQsBIAAAAQAAAAEAA0REREQBIAA0ASAAAAEAAEIBIAAAAQAANAEgAEIBIAA0ASAANAEgAAABAABCASABANALAQAA0AsBIAFCQwEoARcDADQBIAA0ASABNNALASAAAAEAAAABAAM09QoZGQEoAgEDAQMAQgEgAEQBIAAZASAARAEgABkBIABEASAAGQEgAEMBIABDASACARkBASAAAQEgAQEZASAAGQEgAAABIAAZASABNBkBIAABASABNAEBIAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAEAAQEAABkBIAE0GQEgAAABAAM09QoZGQEoAgEDAQMDNPUKGRkBKAIBAwEDATRCASABNEQBIAE0RAEgATREASABNBkBIAE0QwEgATRDASACNAEBASABNAEBIAE0AQEgAEIBIABEASAAGQEgAEQBIAAZASAARAEgABkBIABDASAAQwEgAgEZAQEgAAEBIAEBGQEgABkBIAE0GQEgATQAASAAAAEgADQBAAE0AQEgATQBAQgBnwUBADQBAAE0AQEgATQBAQgBnwUBAAEBAAABASAAGQEgABkBIAE0GQEgABkBIAE0GQEgAAEBIAE0AQEgADQBIANEREREASACREREASAAQgEgATRCASAAAAEAAAABAAM09QoZGQEoAgEDAQMBNEIBIAE0RAEgATREASABNEQBIAE0GQEgATRDASABNEMBIAI0AQEBIAE0AQEgATQBASABNAABIAAZASABNBkBIAABASABNAEBIAAAAQAAAAEAAAABAAI0AQABIAAAAQAAAAEAR1ABAFFYAFABAHtQAQDUAYMCBIQChgIpiQKFAocCiAKKAoMCBYQCjAKNAimJAosChwKOAogCjQKDAgWEAowCjQIpiQKPAocCkAKIAo0CgwIFhAKMAo0CKYkCkQKHAuoBiAKNAoMCBYQChgKNAimJApIChwJZiAKKAoMCBYQChgKNAimJApMChwKUAogCigKDAgWEAoYCjQIpiQKVAocClgKIAooCgwIFhAKGAo0CKYkClwKHApgCiAKKAoMCBYQChgKNAimJApkChwKaAogCigKDAgWEAoYCjQIpiQKbAocCAogCigKDAgSEAowCjQIpnAKHAp0CiAKDAgEAngKDAgEAoAKDAgEAogKDAgEApAKDAgEApgKDAgEAqAKDAgEAqgKDAgEArAKDAgEArgKDAgEAsAKDAgEAsgKDAgEAtAKDAgWEAowCjQIpiQK2AocCtwKIAooCgwIFhAKMAo0CKYkCuAKHArcCiAKKAoMCBYQCjAKNAimJArkChwK6AogCigKDAgWEAowCjQIpiQK7AocCvAKIAooCgwIFhAKMAo0CKYkCvQKHAr4CiAKKAoMCAQC/AoMCAQDDAoMCAQDFAoMCAQDIAoMCAQDKAoMCBYQChgKNAimJAtAChwKWAogCigKDAgSEAowCjQIp9QKHAvYCiAKDAgSEAowCjQIp9wKHAvgCiAKDAgSEAowCjQIp+QKHAvoCiAKDAgSEAowCjQIp+wKHAvwCiAKDAgSEAowCjQIp/QKHAv4CiAKDAgSEAowCjQIp/wKHAoADiAKDAgSEAowCjQIpgQOHAoIDiAKDAgSEAowCjQIpgwOHAoQDiAKDAgSEAowCjQIphQOHAoYDiAKDAgSEAowCjQIphwOHAogDiAKDAgSEAowCjQIpiQOHAooDiAKDAgSEAowCjQIpiwOHAowDiAKDAgWEAowCjQIpiQLbA4cC3AOIAooCgwIFhAKMAo0CKYkC6wOHAuwDiAKKAoMCBIQChgIpiQL5A4cCiAL6A1ABAPsDgwIFhAKMAo0CKYkCqwSHAqwEiAKKAoMCBYQCjAKNAimJAq0EhwKuBIgCigKDAgWEAowCjQIpiQKvBIcCsASIAooCgwIEhAKMAo0CKeQEhwLlBIgCgwIEhAKMAo0CKekEhwLqBIgCgwIEhAKMAimJAv0EhwKIAvoDgwIDhAKNAowCjgWPBYcCUAEAkAWDAgOEAo0CjAKRBZIFhwKDAgEAlQWDAgEAlwWDAgWEAowCjQIpiQKbBYcCnAWIAoMCUAEArgVQAQC2BYMCBIQCjAKNAim5BYcCugWIAoMCBYQCjAKNAimJAr4FhwK/BYgCgwKDAgWEAowCjQIpiQLDBYcCxAWIAoMCOQQACAgAJgNgAQEjYQECJGIBAyVkBAgNACkBYxIFKGsECA8ANQVjAgUwYwMGMVcCBzJuAQgzbwEJNHQECxIAPQR3AgU5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");
22
+ //# sourceMappingURL=builtin-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-library.js","sourceRoot":"","sources":["../../src/avm2/builtin-library.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,2DAA2D;AAC3D,EAAE;AACF,+CAA+C;AAC/C,0DAA0D;AAC1D,4CAA4C;AAC5C,6DAA6D;AAI7D,qGAAqG;AACrG,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAe,MAAM,CAC9C,s4xEAAs4xE,CACv4xE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Value } from "./descriptors.js";
2
+ import { type Multiname } from "./names.js";
3
+ import { PropertyCache } from "./property-cache.js";
4
+ import { type Traits } from "./traits.js";
5
+ /**
6
+ * Keep what `mn` found on `traits`, `o`'s, in `head`, its cache: a
7
+ * binding, as getProperty, setProperty and callProperty use it, or a
8
+ * dynamic property's name. Not where the name resolves otherwise: through
9
+ * a property hook (a Proxy's, XML's), an index (a Vector's, an Array's
10
+ * element), or a Dictionary's key; nor on a primitive's dynamic property,
11
+ * which its prototypes have.
12
+ */
13
+ export declare function fillCache(head: PropertyCache, o: Value, traits: Traits, b: number, mn: Multiname): void;
14
+ //# sourceMappingURL=cache-fill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-fill.d.ts","sourceRoot":"","sources":["../../src/avm2/cache-fill.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAUL,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EASL,KAAK,MAAM,EAEZ,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,aAAa,EACnB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,SAAS,GACZ,IAAI,CA6EN"}
@@ -0,0 +1,87 @@
1
+ // What a full lookup leaves in its multiname's inline cache for the next
2
+ // get, set or call on an object with the same traits (property-cache.ts).
3
+ import { hookedBinding } from "./hooks.js";
4
+ import { arrayIndex } from "./names.js";
5
+ import { entryFor, IC_Call, IC_Const, IC_Dynamic, IC_Get, IC_GetSet, IC_Method, IC_Set, IC_Slot, PropertyCache, UNFILLED, } from "./property-cache.js";
6
+ import { BIND_Const, BIND_Get, BIND_GetSet, BIND_Method, BIND_Set, BIND_Var, methodKey, slotKey, untypedSetKey, } from "./traits.js";
7
+ /**
8
+ * Keep what `mn` found on `traits`, `o`'s, in `head`, its cache: a
9
+ * binding, as getProperty, setProperty and callProperty use it, or a
10
+ * dynamic property's name. Not where the name resolves otherwise: through
11
+ * a property hook (a Proxy's, XML's), an index (a Vector's, an Array's
12
+ * element), or a Dictionary's key; nor on a primitive's dynamic property,
13
+ * which its prototypes have.
14
+ */
15
+ export function fillCache(head, o, traits, b, mn) {
16
+ const hook = traits.properties;
17
+ const id = b >> 3;
18
+ let kind;
19
+ let key = "";
20
+ let get = null;
21
+ let set = null;
22
+ let type = null;
23
+ if (b === 0) {
24
+ const name = mn.dynamicName();
25
+ if (name === null ||
26
+ (typeof o !== "object" && typeof o !== "function") ||
27
+ hook !== null ||
28
+ !traits.dynamic ||
29
+ traits.refusesNames ||
30
+ traits.getIndex !== undefined ||
31
+ traits.index !== undefined ||
32
+ arrayIndex(name) >= 0) {
33
+ return;
34
+ }
35
+ kind = IC_Dynamic;
36
+ key = name;
37
+ }
38
+ else {
39
+ const hooked = hook !== null && hookedBinding(b, mn, hook);
40
+ switch (b & 7) {
41
+ case BIND_Method:
42
+ kind = hooked ? IC_Call : IC_Method;
43
+ get = traits.proto[methodKey(id)];
44
+ break;
45
+ case BIND_Var:
46
+ case BIND_Const:
47
+ kind = (b & 7) === BIND_Var ? IC_Slot : IC_Const;
48
+ key = slotKey(id);
49
+ type = traits.slotType(id);
50
+ break;
51
+ case BIND_Get:
52
+ kind = IC_Get;
53
+ get = traits.proto[methodKey(id)];
54
+ break;
55
+ case BIND_Set:
56
+ kind = IC_Set;
57
+ set = traits.proto[untypedSetKey(id + 1)] ?? traits.proto[methodKey(id + 1)];
58
+ break;
59
+ case BIND_GetSet:
60
+ kind = IC_GetSet;
61
+ get = traits.proto[methodKey(id)];
62
+ set = traits.proto[untypedSetKey(id + 1)] ?? traits.proto[methodKey(id + 1)];
63
+ break;
64
+ default:
65
+ return;
66
+ }
67
+ if (hooked && kind !== IC_Call) {
68
+ return;
69
+ }
70
+ }
71
+ if (head === UNFILLED) {
72
+ head = new PropertyCache();
73
+ mn.cache = head;
74
+ }
75
+ const e = entryFor(head, traits);
76
+ if (e === null) {
77
+ return;
78
+ }
79
+ e.traits = traits;
80
+ e.kind = kind;
81
+ e.key = key;
82
+ e.get = get;
83
+ e.set = set;
84
+ e.type = type;
85
+ e.id = id;
86
+ }
87
+ //# sourceMappingURL=cache-fill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-fill.js","sourceRoot":"","sources":["../../src/avm2/cache-fill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { AsObject, ClassDesc, Method, Scope } from "./descriptors.js";
2
+ import type { Runtime } from "./runtime.js";
3
+ /**
4
+ * As OP_newclass: a class from its module's descriptor, extending `base`,
5
+ * its methods bound to the scope chain here. Object, Class and Function
6
+ * use the traits the runtime made for them before they existed.
7
+ */
8
+ export declare function newClass(rt: Runtime, desc: ClassDesc, base: AsObject | null, scope: Scope): AsObject;
9
+ /**
10
+ * Vector.<T> for a T other than int, uint and Number: Vector$object's
11
+ * class, typed, whose name names T as avmplus does, a builtin Vector as
12
+ * Vector.<int>, and whose superclass is Vector.<*>, Vector$object.
13
+ */
14
+ export declare function specializeVector(rt: Runtime, base: AsObject, param: AsObject): AsObject;
15
+ /** `f`, a method, with its method id, which a closure of it keeps. */
16
+ export declare function withId(f: Method, id: number): Method;
17
+ //# sourceMappingURL=classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/avm2/classes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAO,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAS,MAAM,kBAAkB,CAAC;AAKvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,KAAK,EAAE,KAAK,GACX,QAAQ,CAwLV;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAcvF;AAED,sEAAsE;AACtE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGpD"}