@uptimizr/dashboard 0.4.5 → 0.4.7

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 (384) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +19 -5
  3. package/out/__next._full.txt +11 -11
  4. package/out/__next._tree.txt +2 -2
  5. package/out/_next/static/chunks/{3kalvwsf11-ss.js → 0-_j1khfoib6l.js} +119 -115
  6. package/out/_next/static/chunks/{0-tzsd_n-ywom.js → 005bbq_px7lke.js} +2 -2
  7. package/out/_next/static/chunks/00fbhtmui-yxg.js +1 -0
  8. package/out/_next/static/chunks/017pn-pen381_.js +1 -0
  9. package/out/_next/static/chunks/01vov6inx1zzt.js +1 -0
  10. package/out/_next/static/chunks/{3d76e_yd8l_0x.js → 02qk_wmkf9at-.js} +211 -211
  11. package/out/_next/static/chunks/03bd5plut08tg.js +1 -0
  12. package/out/_next/static/chunks/03dwfqmo73w_z.js +1 -0
  13. package/out/_next/static/chunks/03sn4419dam-h.js +5 -0
  14. package/out/_next/static/chunks/05ere0-228syf.js +1 -0
  15. package/out/_next/static/chunks/{2g_1ov-0j2kwd.js → 05h8u5lrypn5m.js} +1 -1
  16. package/out/_next/static/chunks/05s0t-besbvu1.css +3 -0
  17. package/out/_next/static/chunks/{3go-mst7n3udd.js → 05v-nubi896jg.js} +1 -1
  18. package/out/_next/static/chunks/05z79zh625ezu.js +1 -0
  19. package/out/_next/static/chunks/{1t2exh89lnazc.js → 060iult6f68_e.js} +504 -571
  20. package/out/_next/static/chunks/08lvtnv7b1cxp.js +1 -0
  21. package/out/_next/static/chunks/0_v2luu_qmeid.js +1 -0
  22. package/out/_next/static/chunks/0ai0zgbgjqb92.js +1 -0
  23. package/out/_next/static/chunks/0boov9mwycanf.js +1 -0
  24. package/out/_next/static/chunks/{0av6n_6q6kzo3.js → 0btmk0wmekl02.js} +2 -2
  25. package/out/_next/static/chunks/0d8x8m2x6ca_m.js +1 -0
  26. package/out/_next/static/chunks/0dmrdrwtd093b.js +1 -0
  27. package/out/_next/static/chunks/0e1jfrmioeuws.js +1 -0
  28. package/out/_next/static/chunks/0e7nlxmneb2j_.js +1 -0
  29. package/out/_next/static/chunks/0es97pusfxupl.js +1 -0
  30. package/out/_next/static/chunks/{05uqfgf-hh-p5.js → 0fd-0i1yt23kz.js} +1 -1
  31. package/out/_next/static/chunks/0fxdyvb1w23d1.js +1 -0
  32. package/out/_next/static/chunks/0fxhc24djjcgq.js +1 -0
  33. package/out/_next/static/chunks/0gf-ztg86zd80.js +1 -0
  34. package/out/_next/static/chunks/{380ivzcfb4o_3.js → 0grasqqf5dw7r.js} +2 -2
  35. package/out/_next/static/chunks/{0okbyggxe6mx5.js → 0hajwk2yd-rwr.js} +1 -1
  36. package/out/_next/static/chunks/0hk1wg7h4araz.js +1 -0
  37. package/out/_next/static/chunks/{1vmpltnr0cyos.js → 0j74ipw4fps-n.js} +1 -1
  38. package/out/_next/static/chunks/{03zip1uidm6x9.js → 0kj-vckdn7t5p.js} +1 -1
  39. package/out/_next/static/chunks/0lbs5xdyjuzuo.js +1 -0
  40. package/out/_next/static/chunks/0lep3_bqwfuin.js +1 -0
  41. package/out/_next/static/chunks/0mp0jh1gj7290.js +1 -0
  42. package/out/_next/static/chunks/0ngpoj2g5i4kz.js +1 -0
  43. package/out/_next/static/chunks/0nhljhguceh66.js +1 -0
  44. package/out/_next/static/chunks/0p6z73afb9dj2.js +1 -0
  45. package/out/_next/static/chunks/0p9zfmidzqkps.js +1 -0
  46. package/out/_next/static/chunks/0q75860p8u_ii.js +1 -0
  47. package/out/_next/static/chunks/{0-0hui1_v3h8b.js → 0rracz73p38mo.js} +26 -23
  48. package/out/_next/static/chunks/{3z4suna4kq4j5.js → 0sw-8gxbg4x0l.js} +568 -569
  49. package/out/_next/static/chunks/0sx-6rf3eteqn.js +1 -0
  50. package/out/_next/static/chunks/0thw099xk3_0p.js +3 -0
  51. package/out/_next/static/chunks/0u85f0dhb4i8e.js +1 -0
  52. package/out/_next/static/chunks/0uk7kigzm4vi2.js +31 -0
  53. package/out/_next/static/chunks/0ulufxnsrou61.js +1 -0
  54. package/out/_next/static/chunks/0xa9dyg6ezzyd.js +2 -0
  55. package/out/_next/static/chunks/0xvrfvur0p534.js +1 -0
  56. package/out/_next/static/chunks/{35aagg46wp139.js → 0ybs1u66q26su.js} +1 -1
  57. package/out/_next/static/chunks/0ydfhk-p6zvm0.js +1 -0
  58. package/out/_next/static/chunks/{29gv2swsp7tzu.js → 0z004fn14pbcu.js} +1 -1
  59. package/out/_next/static/chunks/{2z9mdtudj8crz.js → 0z9erbl3llr_b.js} +226 -224
  60. package/out/_next/static/chunks/0zcsxvcvog9ue.js +1 -0
  61. package/out/_next/static/chunks/0zqgq0lwtz9tn.js +1 -0
  62. package/out/_next/static/chunks/1-ogak5u00kwa.js +1 -0
  63. package/out/_next/static/chunks/{1ng-fqh2_n984.js → 10_5p5-xf2aoo.js} +1 -1
  64. package/out/_next/static/chunks/118qlrzdwpfmo.js +1 -0
  65. package/out/_next/static/chunks/11km5p4gd0ut4.js +1 -0
  66. package/out/_next/static/chunks/120rl4l29q9xs.js +1 -0
  67. package/out/_next/static/chunks/{1ho02fc091nj2.js → 129m5i93ltoym.js} +1 -1
  68. package/out/_next/static/chunks/12n73o884lyyl.js +1 -0
  69. package/out/_next/static/chunks/{3n-7bcmfbh299.js → 13zcn4lv0qj76.js} +11 -11
  70. package/out/_next/static/chunks/15jlgfcaeaki9.js +1 -0
  71. package/out/_next/static/chunks/{1ux1rpe-n1mai.js → 15o4_2t-l3rj5.js} +1 -1
  72. package/out/_next/static/chunks/{00o9hr_3hd0r8.js → 175st2ogkg_1o.js} +1 -1
  73. package/out/_next/static/chunks/19rsodtu91ja_.js +1 -0
  74. package/out/_next/static/chunks/1a2ouhup611bz.js +1 -0
  75. package/out/_next/static/chunks/{1solqr18og2ot.js → 1by60_b14x-3o.js} +1 -1
  76. package/out/_next/static/chunks/1cyq7i39885sl.js +1 -0
  77. package/out/_next/static/chunks/1d9it6yocgt54.js +1 -0
  78. package/out/_next/static/chunks/1dp1s1t-y7gal.js +1 -0
  79. package/out/_next/static/chunks/1dr7gh6xgypl8.js +1 -0
  80. package/out/_next/static/chunks/{32vaw89wdwv5_.js → 1dt30s_sp8415.js} +1 -1
  81. package/out/_next/static/chunks/{1t7nl8rx7mabd.js → 1e8_jl2cxd3rp.js} +576 -576
  82. package/out/_next/static/chunks/1f1rek_fxk3of.js +1 -0
  83. package/out/_next/static/chunks/1f2mna0k5efeq.js +1 -0
  84. package/out/_next/static/chunks/1gfz3sxwkkg3d.js +1 -0
  85. package/out/_next/static/chunks/1gr35qeguuws0.js +1 -0
  86. package/out/_next/static/chunks/{0g2wngc6oe7fd.js → 1gttu-n9am66k.js} +255 -253
  87. package/out/_next/static/chunks/1imi0xwi9hd99.js +1 -0
  88. package/out/_next/static/chunks/1ka5v5zu0cstt.js +1 -0
  89. package/out/_next/static/chunks/{17aahvhpls1l7.js → 1l_3oidssbhns.js} +298 -231
  90. package/out/_next/static/chunks/1m9zc5gm-327d.js +112 -0
  91. package/out/_next/static/chunks/1n9nhz-6azcp3.js +3 -0
  92. package/out/_next/static/chunks/1ncqwe81t_9_x.js +1 -0
  93. package/out/_next/static/chunks/1nix_lulkpklo.js +1 -0
  94. package/out/_next/static/chunks/{141tngxsk32hq.js → 1ntqovuz2c217.js} +1 -1
  95. package/out/_next/static/chunks/1pgs-98tfkq9_.js +1 -0
  96. package/out/_next/static/chunks/1q2z0aeopo8t8.js +1 -0
  97. package/out/_next/static/chunks/{2zpn7010iqgsy.js → 1q4lkgxfnqnew.js} +1 -1
  98. package/out/_next/static/chunks/{2khh_pmm224k5.js → 1qg1l7t00nyib.js} +97 -300
  99. package/out/_next/static/chunks/{1qxhgauuomthl.js → 1rcdimhu0qhlu.js} +407 -407
  100. package/out/_next/static/chunks/1rlfg62jxqj3z.js +1 -0
  101. package/out/_next/static/chunks/1ses023uud001.js +1 -0
  102. package/out/_next/static/chunks/1t5oynmttpfsw.js +1 -0
  103. package/out/_next/static/chunks/{25gf6xn9u1c57.js → 1t9i20i5-f8ze.js} +1 -1
  104. package/out/_next/static/chunks/{2h5nvlgky7fpa.js → 1tgj55b305g4h.js} +1 -1
  105. package/out/_next/static/chunks/{255knovck7pv2.js → 1u8snlm6a7uhi.js} +4 -4
  106. package/out/_next/static/chunks/{04_3ri5emyfcu.js → 1ug4k-1zhr63a.js} +1 -1
  107. package/out/_next/static/chunks/{3-_08i4_7yhno.js → 1uh9zgsy69g92.js} +1 -1
  108. package/out/_next/static/chunks/1vrpzlif-z_p0.js +1 -0
  109. package/out/_next/static/chunks/1vurgl6oz2qey.js +17 -0
  110. package/out/_next/static/chunks/1w-qc09n9ijtq.js +1 -0
  111. package/out/_next/static/chunks/1ycqxcht6x54p.js +1 -0
  112. package/out/_next/static/chunks/{2zyjw8g4tiu51.js → 1zj4307ugq0qz.js} +1 -1
  113. package/out/_next/static/chunks/{425epvuw3yy-n.js → 1zkd8v-qka--j.js} +169 -174
  114. package/out/_next/static/chunks/1zm52cjrfrq7c.js +1 -0
  115. package/out/_next/static/chunks/{267q_eg-c6f6m.js → 1zm6eo861i3c8.js} +1 -1
  116. package/out/_next/static/chunks/{1e_-_7biavwmb.js → 1zp9363yfhpom.js} +1 -1
  117. package/out/_next/static/chunks/1zt1xxovnjhkm.js +1 -0
  118. package/out/_next/static/chunks/2-3hk_db5fpok.js +1 -0
  119. package/out/_next/static/chunks/2-bv9a_0zgw1f.js +1 -0
  120. package/out/_next/static/chunks/209sxygecny37.js +1 -0
  121. package/out/_next/static/chunks/{1ccn725by19i1.js → 216uiih3_vdfd.js} +1 -1
  122. package/out/_next/static/chunks/21kfpd_bityxt.js +1 -0
  123. package/out/_next/static/chunks/22yqh0zlo_vwr.js +1 -0
  124. package/out/_next/static/chunks/24ecas0m9tao7.js +3 -0
  125. package/out/_next/static/chunks/24pq9210rng3f.js +1 -0
  126. package/out/_next/static/chunks/{0zf26k6juhlzo.js → 267prao6fyt22.js} +23 -20
  127. package/out/_next/static/chunks/26skkagvj1z96.js +1 -0
  128. package/out/_next/static/chunks/26y9sv8_-ykxf.js +1 -0
  129. package/out/_next/static/chunks/2701xfv_07wz_.js +1 -0
  130. package/out/_next/static/chunks/{1x99m91nt1m3b.js → 271333m8y3k0e.js} +1 -1
  131. package/out/_next/static/chunks/29rkmguzky-bp.js +1 -0
  132. package/out/_next/static/chunks/{077eo-0dhbxz-.js → 2a07so920b6aa.js} +1 -1
  133. package/out/_next/static/chunks/2a2oy8ryz2tsk.js +1 -0
  134. package/out/_next/static/chunks/2ao-3jzz7yw3p.js +532 -0
  135. package/out/_next/static/chunks/2apihn9ra2ufp.js +1 -0
  136. package/out/_next/static/chunks/2apnpj0-fs9ks.js +1 -0
  137. package/out/_next/static/chunks/2b481pitl4k85.js +1 -0
  138. package/out/_next/static/chunks/2bettxaqt3d2p.js +1 -0
  139. package/out/_next/static/chunks/{1fyh50hjt7hi_.js → 2c721vfva711t.js} +1 -1
  140. package/out/_next/static/chunks/{442e2l3jzxd-_.js → 2d2kl_m64j9cb.js} +1 -1
  141. package/out/_next/static/chunks/2droqjmvmgj13.js +1 -0
  142. package/out/_next/static/chunks/2dxbvwbbgpzoq.js +1 -0
  143. package/out/_next/static/chunks/2eqbsut829r5l.js +1 -0
  144. package/out/_next/static/chunks/2f3_mzxjh3gso.js +1 -0
  145. package/out/_next/static/chunks/2fsde0jwi5qtt.js +1 -0
  146. package/out/_next/static/chunks/2h249uvhh2sij.js +114 -0
  147. package/out/_next/static/chunks/{1gvdmbr65lpud.js → 2izok2otbk8-2.js} +505 -505
  148. package/out/_next/static/chunks/{0yvevihll7sz-.js → 2j120dkh7q3uf.js} +1 -1
  149. package/out/_next/static/chunks/2j2ynchpqh34-.js +1 -0
  150. package/out/_next/static/chunks/2kj6pzs_wap1v.js +1 -0
  151. package/out/_next/static/chunks/{2-p206i_ihx09.js → 2kok6zedeeltw.js} +1 -1
  152. package/out/_next/static/chunks/2lnj9jruy4nrv.js +1 -0
  153. package/out/_next/static/chunks/{41yy4p3-rtyz1.js → 2lsvk7xcfkarc.js} +1 -1
  154. package/out/_next/static/chunks/2n-pveub8b_5t.js +1 -0
  155. package/out/_next/static/chunks/{00xc-0pj7on2s.js → 2n3xu_wbvtj7h.js} +29 -29
  156. package/out/_next/static/chunks/{1oljzgz5jistn.js → 2of8q0kaeqpf0.js} +1 -1
  157. package/out/_next/static/chunks/2ofwtw6p08sfz.js +1 -0
  158. package/out/_next/static/chunks/2phl5ta4iim7l.js +12 -0
  159. package/out/_next/static/chunks/2q6l-xdqzgmpf.js +1 -0
  160. package/out/_next/static/chunks/2q8yg63br2jc9.js +1 -0
  161. package/out/_next/static/chunks/2r5qgieqldcd9.js +1 -0
  162. package/out/_next/static/chunks/2r7y401cvjc1s.js +1 -0
  163. package/out/_next/static/chunks/{22ja7c3gk0_ko.js → 2r96kyeehsji9.js} +1 -1
  164. package/out/_next/static/chunks/{3gyyjsot8mdav.js → 2rmc6ru7mc-kg.js} +1 -1
  165. package/out/_next/static/chunks/{1ephzzweysylq.js → 2s6kpclh6ie7o.js} +901 -973
  166. package/out/_next/static/chunks/{0vso09vdz38sr.js → 2sys9nj8lo3uk.js} +1 -1
  167. package/out/_next/static/chunks/{0w-hm7g7trtjg.js → 2tc3e-iqv71y_.js} +1 -1
  168. package/out/_next/static/chunks/2uo6vm7mfgrbf.js +1 -0
  169. package/out/_next/static/chunks/2urx6fow8c8c9.js +505 -0
  170. package/out/_next/static/chunks/2w2k1gveljyb7.js +1 -0
  171. package/out/_next/static/chunks/{22rl_arnzs-ve.js → 2w99knknr5i8c.js} +1 -1
  172. package/out/_next/static/chunks/2w_ptlw-ad8-9.js +4 -0
  173. package/out/_next/static/chunks/2ws1s9d52ayv8.js +1 -0
  174. package/out/_next/static/chunks/2x7enks3ydgai.js +1 -0
  175. package/out/_next/static/chunks/{2e46-2ubc90do.js → 2y8i7_nxm4r05.js} +5 -5
  176. package/out/_next/static/chunks/2ydub0t01728d.js +1 -0
  177. package/out/_next/static/chunks/{309f81l5ucsb_.js → 2z_iab7ozohhq.js} +60 -60
  178. package/out/_next/static/chunks/3-m_vzabs1uez.js +1 -0
  179. package/out/_next/static/chunks/{0t89-lfct-7m6.js → 302qk2fjdrthp.js} +5 -5
  180. package/out/_next/static/chunks/30bhz7czzs4mf.js +1 -0
  181. package/out/_next/static/chunks/{0tn-9w46cwydp.js → 30n4y_uu8chbh.js} +515 -514
  182. package/out/_next/static/chunks/{2-hdejef-mpka.js → 32_c4mbb6j1l6.js} +372 -169
  183. package/out/_next/static/chunks/33hp-khdfohdq.js +1 -0
  184. package/out/_next/static/chunks/{28ndw4nsw2t_4.js → 33i36o_l69sm5.js} +1 -1
  185. package/out/_next/static/chunks/3527r3jo5fj3i.js +1 -0
  186. package/out/_next/static/chunks/355dg8yaa94hr.js +1 -0
  187. package/out/_next/static/chunks/{11p92pnn5el0v.js → 35ntbr_c-yx44.js} +1 -1
  188. package/out/_next/static/chunks/{2rjfrjhp4kjev.js → 35sne1llxnc-m.js} +57 -57
  189. package/out/_next/static/chunks/36enkx1skkv2-.js +4 -0
  190. package/out/_next/static/chunks/{3-x7522okdy-7.js → 3772oce1n3t_g.js} +1 -1
  191. package/out/_next/static/chunks/{1rb8wewjbdisv.js → 37cnbm5ft1mqf.js} +1 -1
  192. package/out/_next/static/chunks/38xdo3cifphut.js +1 -0
  193. package/out/_next/static/chunks/{1tt1bbry-4f-6.js → 3_dgblylldcgb.js} +1 -1
  194. package/out/_next/static/chunks/3beawo-qwuk8k.js +1 -0
  195. package/out/_next/static/chunks/3cj_6sl9kr3e9.js +1 -0
  196. package/out/_next/static/chunks/3d-i_skta_wes.js +1 -0
  197. package/out/_next/static/chunks/3df_l2we755bb.js +1 -0
  198. package/out/_next/static/chunks/{43hwl25uke0l_.js → 3eve5y7fpzx2h.js} +1 -1
  199. package/out/_next/static/chunks/3ewgyb4y19w-3.js +1 -0
  200. package/out/_next/static/chunks/3f3789eh18_oy.js +1 -0
  201. package/out/_next/static/chunks/{1n_gxvu31aofy.js → 3f8qelpscqfym.js} +2 -2
  202. package/out/_next/static/chunks/3g3-e9m1en45q.js +1 -0
  203. package/out/_next/static/chunks/{0uxdbfa8gv6tk.js → 3h6akt2uu05ku.js} +29 -29
  204. package/out/_next/static/chunks/{3w4qettzp7khe.js → 3huu0tqmxwowu.js} +523 -522
  205. package/out/_next/static/chunks/3i239y-1hbkm-.js +1 -0
  206. package/out/_next/static/chunks/{1qsut_e3msg0l.js → 3ipx7xbxchsq9.js} +1 -1
  207. package/out/_next/static/chunks/{2ftp5xmq_w23j.js → 3j9xvdz55bi4p.js} +345 -345
  208. package/out/_next/static/chunks/3kp8qmhoi24oz.js +1 -0
  209. package/out/_next/static/chunks/3ksq69yq-40_r.js +1 -0
  210. package/out/_next/static/chunks/{2x83vs8ns4pww.js → 3njwfothmmg7u.js} +3 -3
  211. package/out/_next/static/chunks/{0bj_310rugcn1.js → 3oqxl46ukaojj.js} +11 -11
  212. package/out/_next/static/chunks/{1upkv4ltuh3s5.js → 3qn6r8-0u6dij.js} +352 -352
  213. package/out/_next/static/chunks/3qye1lytea2i8.js +1 -0
  214. package/out/_next/static/chunks/3rlp9yr75liz7.js +1 -0
  215. package/out/_next/static/chunks/{2i82rmjta9ijs.js → 3sa_hlx3konc7.js} +1 -1
  216. package/out/_next/static/chunks/3tyo643l62h3m.js +1 -0
  217. package/out/_next/static/chunks/3tz2tpqa9uvwm.js +1 -0
  218. package/out/_next/static/chunks/{2pbgsq7vvtk8_.js → 3utpc-fc6_y0f.js} +1 -1
  219. package/out/_next/static/chunks/3v-0c2aj6c0on.js +1 -0
  220. package/out/_next/static/chunks/3v6nxa28rxngq.js +1 -0
  221. package/out/_next/static/chunks/{1og49_atcksim.js → 3vbamaoiuk9yj.js} +1 -1
  222. package/out/_next/static/chunks/3vv99btjc-mky.js +1 -0
  223. package/out/_next/static/chunks/{1nqojcig-0m3c.js → 3w59kt5ztyvoq.js} +1 -1
  224. package/out/_next/static/chunks/3x02lxdo28u9i.js +1 -0
  225. package/out/_next/static/chunks/3xl-op0hwxytg.js +272 -0
  226. package/out/_next/static/chunks/3ydnxyc4rvad_.js +1 -0
  227. package/out/_next/static/chunks/3ylg4gfetwgxw.js +1 -0
  228. package/out/_next/static/chunks/{1-4v8oivkgnyl.js → 3zdtteq-r2fs5.js} +3 -3
  229. package/out/_next/static/chunks/3zkwt0gybqtgm.js +1 -0
  230. package/out/_next/static/chunks/{0wq_9f98weoe3.js → 3zs7l4362msjd.js} +1 -1
  231. package/out/_next/static/chunks/40etabvml_71y.js +1 -0
  232. package/out/_next/static/chunks/417jkzz0slv9m.js +1 -0
  233. package/out/_next/static/chunks/41b5gpyqbj58m.js +338 -0
  234. package/out/_next/static/chunks/41u2-5jayyajf.js +22 -0
  235. package/out/_next/static/chunks/42gcpy51w7lk1.js +1 -0
  236. package/out/_next/static/chunks/{1ph0tfo-4hl-f.js → 42ymanq326mo7.js} +1 -1
  237. package/out/_next/static/chunks/{3w_umk1xtj6to.js → 43fp64xnfy646.js} +1 -1
  238. package/out/_next/static/chunks/43v4y2gu5z9_h.js +1 -0
  239. package/out/_next/static/chunks/44cer242u-f8v.js +1 -0
  240. package/out/_next/static/chunks/{1ozi46t8jajqh.js → 44zi0gl0a6a8w.js} +1 -1
  241. package/out/_next/static/chunks/turbopack-0n2o5_bkskckx.js +1 -0
  242. package/out/_not-found/__next._full.txt +12 -12
  243. package/out/_not-found/__next._not-found.__PAGE__.txt +19 -2
  244. package/out/_not-found/__next._tree.txt +2 -2
  245. package/out/_not-found.html +1 -1
  246. package/out/_not-found.txt +12 -12
  247. package/out/index.html +1 -1
  248. package/out/index.txt +11 -11
  249. package/package.json +15 -15
  250. package/out/__next._head.txt +0 -6
  251. package/out/__next._index.txt +0 -5
  252. package/out/_next/static/chunks/00g5suuoa-_wn.js +0 -1
  253. package/out/_next/static/chunks/01fh3_bncbe5u.js +0 -1
  254. package/out/_next/static/chunks/01urdkl1j8o6l.js +0 -1
  255. package/out/_next/static/chunks/026vw95s88gsy.js +0 -1
  256. package/out/_next/static/chunks/02eui3ctddbd2.js +0 -1
  257. package/out/_next/static/chunks/04c4nksb5y9r-.js +0 -1
  258. package/out/_next/static/chunks/04g-l-_b4payc.js +0 -1
  259. package/out/_next/static/chunks/04j9pexbmysdy.js +0 -1
  260. package/out/_next/static/chunks/055baac5e-c2o.js +0 -1
  261. package/out/_next/static/chunks/05bdni_jrobq1.js +0 -1
  262. package/out/_next/static/chunks/05o0tb8l_htmw.js +0 -1
  263. package/out/_next/static/chunks/07z6p262h5hgl.js +0 -1
  264. package/out/_next/static/chunks/08m_4cihfmik8.js +0 -1
  265. package/out/_next/static/chunks/08obqw64faj8j.js +0 -1
  266. package/out/_next/static/chunks/099ilz3dmm1jw.js +0 -1
  267. package/out/_next/static/chunks/09ppu_k464q-n.js +0 -1
  268. package/out/_next/static/chunks/0bgcaf2x51kms.js +0 -1
  269. package/out/_next/static/chunks/0c5d3qn2mb3ew.js +0 -1
  270. package/out/_next/static/chunks/0dck67in84de0.js +0 -1
  271. package/out/_next/static/chunks/0dg4wxz-6u5lo.js +0 -1
  272. package/out/_next/static/chunks/0dva036n8ab62.js +0 -1
  273. package/out/_next/static/chunks/0erga_bzezbza.js +0 -1
  274. package/out/_next/static/chunks/0f0-i105odxqd.js +0 -1
  275. package/out/_next/static/chunks/0gyeqz9pagssf.js +0 -1
  276. package/out/_next/static/chunks/0i82k-t0fbn8f.js +0 -1
  277. package/out/_next/static/chunks/0kzw45f61wm3j.js +0 -1
  278. package/out/_next/static/chunks/0l8bfa2xewq69.js +0 -1
  279. package/out/_next/static/chunks/0n-zml1gn0o1u.js +0 -1
  280. package/out/_next/static/chunks/0n92hec_jb_-_.js +0 -1
  281. package/out/_next/static/chunks/0pv2wirx45e1m.js +0 -1
  282. package/out/_next/static/chunks/0qxd_8t3nca36.js +0 -1
  283. package/out/_next/static/chunks/0s1jghzw8jufz.js +0 -1
  284. package/out/_next/static/chunks/0s84ekz_f9ngx.js +0 -1
  285. package/out/_next/static/chunks/0ti58h622yo-_.js +0 -2
  286. package/out/_next/static/chunks/0u8yr4k1y6m2t.js +0 -1
  287. package/out/_next/static/chunks/0ubxyut5rr600.js +0 -1
  288. package/out/_next/static/chunks/0wbw9h7rsis2r.js +0 -1
  289. package/out/_next/static/chunks/0y4e49hpuucdi.js +0 -1
  290. package/out/_next/static/chunks/1-b44873bjsdw.js +0 -1
  291. package/out/_next/static/chunks/1-c3a1vnl8v1q.js +0 -1
  292. package/out/_next/static/chunks/1-xf86jgea22y.js +0 -1
  293. package/out/_next/static/chunks/10b0qqdnb_nox.js +0 -1
  294. package/out/_next/static/chunks/12kdmh0h_mboy.js +0 -1
  295. package/out/_next/static/chunks/14ijcpo72av4r.js +0 -1
  296. package/out/_next/static/chunks/16hdip1drt8o-.js +0 -1
  297. package/out/_next/static/chunks/18txc1wwwu9f9.js +0 -1
  298. package/out/_next/static/chunks/18wa83g0qfh-b.js +0 -1
  299. package/out/_next/static/chunks/19dp8nr4uygg2.js +0 -5
  300. package/out/_next/static/chunks/1_8acnu6_-qe-.js +0 -1
  301. package/out/_next/static/chunks/1__nujzr9e352.js +0 -3
  302. package/out/_next/static/chunks/1bmyq1b0by7ug.js +0 -1
  303. package/out/_next/static/chunks/1d1tpj9nm1nhf.js +0 -1
  304. package/out/_next/static/chunks/1dfwa563iciz3.js +0 -1
  305. package/out/_next/static/chunks/1di5enkavl9vx.js +0 -4
  306. package/out/_next/static/chunks/1fwsjnd1y-lx_.js +0 -1
  307. package/out/_next/static/chunks/1gaexq_suxai0.js +0 -1
  308. package/out/_next/static/chunks/1gnggc6370ji-.js +0 -1
  309. package/out/_next/static/chunks/1gtj_l5ame5mw.js +0 -1
  310. package/out/_next/static/chunks/1hsvckd0sgdgr.js +0 -1
  311. package/out/_next/static/chunks/1i4f3n_2_3ery.js +0 -1
  312. package/out/_next/static/chunks/1j7e3qpjuj89a.js +0 -1
  313. package/out/_next/static/chunks/1mrvp94tietcv.js +0 -1
  314. package/out/_next/static/chunks/1mvadj46owrck.js +0 -1
  315. package/out/_next/static/chunks/1nasz7q3tvb53.js +0 -1
  316. package/out/_next/static/chunks/1o3ggu95lfu6i.js +0 -1
  317. package/out/_next/static/chunks/1qjsgebn9m-0l.js +0 -1
  318. package/out/_next/static/chunks/1rr74xxjtckyv.js +0 -1
  319. package/out/_next/static/chunks/1uu55ejvi7q5u.js +0 -1
  320. package/out/_next/static/chunks/1xbzxfeq9789f.js +0 -1
  321. package/out/_next/static/chunks/1ybiu-rkt50_1.js +0 -1
  322. package/out/_next/static/chunks/20qelrstvz9_n.js +0 -1
  323. package/out/_next/static/chunks/21at65obnoo8z.js +0 -1
  324. package/out/_next/static/chunks/21ko5mxfderw0.js +0 -1
  325. package/out/_next/static/chunks/21muzwu43o8xg.js +0 -1
  326. package/out/_next/static/chunks/23d-hvrwpixpm.js +0 -1
  327. package/out/_next/static/chunks/2569rrrffvm2w.js +0 -31
  328. package/out/_next/static/chunks/29o74k0d6hkdf.js +0 -1
  329. package/out/_next/static/chunks/2bm95r0011asw.js +0 -1
  330. package/out/_next/static/chunks/2btabnibkm0db.js +0 -1
  331. package/out/_next/static/chunks/2c--awgkdcikq.js +0 -1
  332. package/out/_next/static/chunks/2c2dspoukng-5.js +0 -1
  333. package/out/_next/static/chunks/2ep7mjbaoeou0.js +0 -1
  334. package/out/_next/static/chunks/2ezgqm7atphi6.js +0 -1
  335. package/out/_next/static/chunks/2gfjzq_vjea4w.js +0 -1
  336. package/out/_next/static/chunks/2h5hase6ewoyc.js +0 -1
  337. package/out/_next/static/chunks/2hghi41nhdww2.css +0 -3
  338. package/out/_next/static/chunks/2ies66gmou203.js +0 -1
  339. package/out/_next/static/chunks/2jenu2eek9viz.js +0 -1
  340. package/out/_next/static/chunks/2luaj_cf5f19-.js +0 -1
  341. package/out/_next/static/chunks/2mgmvz66gh5ub.js +0 -1
  342. package/out/_next/static/chunks/2nwlqtv3vrzcv.js +0 -1
  343. package/out/_next/static/chunks/2o8k8x5zcepfy.js +0 -1
  344. package/out/_next/static/chunks/2pcdnd4nzcw4c.js +0 -1
  345. package/out/_next/static/chunks/2q0rz76kj6h5z.js +0 -1
  346. package/out/_next/static/chunks/2si5cg3hl5dtf.js +0 -4
  347. package/out/_next/static/chunks/2uhrhq35bki6u.js +0 -1
  348. package/out/_next/static/chunks/2wi7y3sfqyqdo.js +0 -3
  349. package/out/_next/static/chunks/2ymtumj-hfrjo.js +0 -1
  350. package/out/_next/static/chunks/2zdzgmacaoor9.js +0 -1
  351. package/out/_next/static/chunks/3-irhmtm1q5qw.js +0 -1
  352. package/out/_next/static/chunks/3-k74vn9exnb6.js +0 -1
  353. package/out/_next/static/chunks/31ei992g8gqz9.js +0 -1
  354. package/out/_next/static/chunks/34845aqksy1dl.js +0 -3
  355. package/out/_next/static/chunks/34y7nx6qmat06.js +0 -1
  356. package/out/_next/static/chunks/36rqw8h6ildpl.js +0 -1
  357. package/out/_next/static/chunks/3a_khw6q6pyh1.js +0 -1
  358. package/out/_next/static/chunks/3c_31f20z4jrl.js +0 -1
  359. package/out/_next/static/chunks/3ckp70rgr63u9.js +0 -1
  360. package/out/_next/static/chunks/3ed24zmt8qfys.js +0 -1
  361. package/out/_next/static/chunks/3ez20hi1mxw0w.js +0 -1
  362. package/out/_next/static/chunks/3fdx-rnos5ft-.js +0 -1
  363. package/out/_next/static/chunks/3fgfbxxb-j_bn.js +0 -4
  364. package/out/_next/static/chunks/3k-gz8qf-mj-p.js +0 -1
  365. package/out/_next/static/chunks/3lehc5pujwhsz.js +0 -1
  366. package/out/_next/static/chunks/3m0ytnc241yfz.js +0 -1
  367. package/out/_next/static/chunks/3mpe7c3iyxn5h.js +0 -1
  368. package/out/_next/static/chunks/3mvaub8qjdyuc.js +0 -1
  369. package/out/_next/static/chunks/3nw7u4bie0-g6.js +0 -1
  370. package/out/_next/static/chunks/3qatb38-tk_gd.js +0 -1
  371. package/out/_next/static/chunks/3tdcdi_utmoy_.js +0 -1
  372. package/out/_next/static/chunks/3tdzweqszru4y.js +0 -1
  373. package/out/_next/static/chunks/3tt_ir_va6262.js +0 -1
  374. package/out/_next/static/chunks/3y_51bmdnc0ey.js +0 -1
  375. package/out/_next/static/chunks/3yr66ufoli71t.js +0 -1
  376. package/out/_next/static/chunks/41qxc142snm22.js +0 -1
  377. package/out/_next/static/chunks/43qmngblcab8f.js +0 -1
  378. package/out/_next/static/chunks/turbopack-3r8yn0j92tqw_.js +0 -1
  379. package/out/_not-found/__next._head.txt +0 -6
  380. package/out/_not-found/__next._index.txt +0 -5
  381. package/out/_not-found/__next._not-found.txt +0 -5
  382. /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_buildManifest.js +0 -0
  383. /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_clientMiddlewareManifest.js +0 -0
  384. /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,80911,e=>{"use strict";let t,s;e.s([],9439);var n,i,o,a,r,l,h,u,c,d,_,p,m,f,g,y,b,T,A,x,w,v,M,C,F,E,R=e.i(90176),S=e.i(13856),O=e.i(56002),I=e.i(88577),N=e.i(26299),B=e.i(28326),k=e.i(80434),P=e.i(70855),L=e.i(17606),G=e.i(83597),D=e.i(95603),V=e.i(12328);class K{constructor(){this.rootNodes=[],this.cameras=[],this.lights=[],this.meshes=[],this.skeletons=[],this.particleSystems=[],this.animations=[],this.animationGroups=[],this.multiMaterials=[],this.materials=[],this.morphTargetManagers=[],this.geometries=[],this.transformNodes=[],this.actionManagers=[],this.textures=[],this._environmentTexture=null,this.postProcesses=[],this.sounds=null,this.effectLayers=[],this.layers=[],this.reflectionProbes=[],this.spriteManagers=[]}get environmentTexture(){return this._environmentTexture}set environmentTexture(e){this._environmentTexture=e}getNodes(){let e=[];for(let t of(e=(e=(e=(e=e.concat(this.meshes)).concat(this.lights)).concat(this.cameras)).concat(this.transformNodes),this.skeletons))e=e.concat(t.bones);return e}}class H extends K{}class U{constructor(){this.rootNodes=[],this.skeletons=[],this.animationGroups=[]}dispose(){let e=this.rootNodes;for(let t of e)t.dispose();e.length=0;let t=this.skeletons;for(let e of t)e.dispose();t.length=0;let s=this.animationGroups;for(let e of s)e.dispose();s.length=0}}class $ extends K{constructor(e){if(super(),this._wasAddedToScene=!1,!(e=e||P.EngineStore.LastCreatedScene))return;this.scene=e,this.proceduralTextures=[],e.onDisposeObservable.add(()=>{this._wasAddedToScene||this.dispose()}),this._onContextRestoredObserver=e.getEngine().onContextRestoredObservable.add(()=>{for(let e of this.geometries)e._rebuild();for(let e of this.meshes)e._rebuild();for(let e of this.particleSystems)e.rebuild();for(let e of this.textures)e._rebuild();for(let e of this.spriteManagers)e.rebuild()})}_topologicalSort(e){let t=new Map;for(let s of e)t.set(s.uniqueId,s);let s={dependsOn:new Map,dependedBy:new Map};for(let t of e){let e=t.uniqueId;s.dependsOn.set(e,new Set),s.dependedBy.set(e,new Set)}for(let n of e){let e=n.uniqueId,i=s.dependsOn.get(e);if(n instanceof L.InstancedMesh){let o=n.sourceMesh;t.has(o.uniqueId)&&(i.add(o.uniqueId),s.dependedBy.get(o.uniqueId).add(e))}let o=s.dependedBy.get(e);for(let i of n.getDescendants()){let n=i.uniqueId;t.has(n)&&(o.add(n),s.dependsOn.get(n).add(e))}}let n=[],i=[];for(let n of e){let e=n.uniqueId;0===s.dependsOn.get(e).size&&(i.push(n),t.delete(e))}for(;i.length>0;){let e=i.shift();for(let o of(n.push(e),Array.from(s.dependedBy.get(e.uniqueId).values()))){let n=s.dependsOn.get(o);n.delete(e.uniqueId),0===n.size&&t.get(o)&&(i.push(t.get(o)),t.delete(o))}}return t.size>0&&(k.Logger.Error("SceneSerializer._topologicalSort: There were unvisited nodes:"),t.forEach(e=>{k.Logger.Error(e.name)})),n}_addNodeAndDescendantsToList(e,t,s,n){if(!(!s||n&&!n(s)||t.has(s.uniqueId)))for(let i of(e.push(s),t.add(s.uniqueId),s.getDescendants(!0)))this._addNodeAndDescendantsToList(e,t,i,n)}_isNodeInContainer(e){return e instanceof B.AbstractMesh&&-1!==this.meshes.indexOf(e)||e instanceof N.TransformNode&&-1!==this.transformNodes.indexOf(e)||e instanceof G.Light&&-1!==this.lights.indexOf(e)||e instanceof D.Camera&&-1!==this.cameras.indexOf(e)}_isValidHierarchy(){for(let e of this.meshes)if(e.parent&&!this._isNodeInContainer(e.parent))return k.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(let e of this.transformNodes)if(e.parent&&!this._isNodeInContainer(e.parent))return k.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(let e of this.lights)if(e.parent&&!this._isNodeInContainer(e.parent))return k.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(let e of this.cameras)if(e.parent&&!this._isNodeInContainer(e.parent))return k.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;return!0}instantiateModelsToScene(e,t=!1,s){this._isValidHierarchy()||S.Tools.Warn("SceneSerializer.InstantiateModelsToScene: The Asset Container hierarchy is not valid.");let n={},i={},o=new U,a=[],r=[],l={doNotInstantiate:!0,...s},h=[],u=new Set;for(let e of this.transformNodes)null===e.parent&&this._addNodeAndDescendantsToList(h,u,e,l.predicate);for(let e of this.meshes)null===e.parent&&this._addNodeAndDescendantsToList(h,u,e,l.predicate);let c=this._topologicalSort(h),d=(s,a)=>{if(n[s.uniqueId]=a.uniqueId,i[a.uniqueId]=a,e&&(a.name=e(s.name)),a instanceof I.Mesh&&a.morphTargetManager){let e=s.morphTargetManager;a.morphTargetManager=e.clone();for(let t=0;t<e.numTargets;t++){let s=e.getTarget(t),o=a.morphTargetManager.getTarget(t);n[s.uniqueId]=o.uniqueId,i[o.uniqueId]=o}}if(s.parent){let e=i[n[s.parent.uniqueId]];e?a.parent=e:a.parent=s.parent}if(a.position&&s.position&&a.position.copyFrom(s.position),a.rotationQuaternion&&s.rotationQuaternion&&a.rotationQuaternion.copyFrom(s.rotationQuaternion),a.rotation&&s.rotation&&a.rotation.copyFrom(s.rotation),a.scaling&&s.scaling&&a.scaling.copyFrom(s.scaling),a.material&&a.material)if(t){let t=s.material;if(-1===r.indexOf(t)){let s=t.clone(e?e(t.name):"Clone of "+t.name);if(r.push(t),n[t.uniqueId]=s.uniqueId,i[s.uniqueId]=s,"MultiMaterial"===t.getClassName()){for(let o of t.subMaterials)o&&(s=o.clone(e?e(o.name):"Clone of "+o.name),r.push(o),n[o.uniqueId]=s.uniqueId,i[s.uniqueId]=s);t.subMaterials=t.subMaterials.map(e=>e&&i[n[e.uniqueId]])}}"InstancedMesh"!==a.getClassName()&&(a.material=i[n[t.uniqueId]])}else"MultiMaterial"===a.material.getClassName()?-1===this.scene.multiMaterials.indexOf(a.material)&&this.scene.addMultiMaterial(a.material):-1===this.scene.materials.indexOf(a.material)&&this.scene.addMaterial(a.material);null===a.parent&&o.rootNodes.push(a)};for(let e of c)if("InstancedMesh"===e.getClassName()){let t=e.sourceMesh,s=n[t.uniqueId],o=("number"==typeof s?i[s]:t).createInstance(e.name);d(e,o)}else{let t=!0;"TransformNode"===e.getClassName()||"Node"===e.getClassName()||e.skeleton||!e.getTotalVertices||0===e.getTotalVertices()?t=!1:l.doNotInstantiate&&(t="function"==typeof l.doNotInstantiate?!l.doNotInstantiate(e):!l.doNotInstantiate);let s=t?e.createInstance(`instance of ${e.name}`):e.clone(`Clone of ${e.name}`,null,!0);if(!s)throw Error(`Could not clone or instantiate node on Asset Container ${e.name}`);d(e,s)}for(let t of this.skeletons){if(l.predicate&&!l.predicate(t))continue;let s=t.clone(e?e(t.name):"Clone of "+t.name);for(let e of this.meshes)if(e.skeleton===t&&!e.isAnInstance){let t=i[n[e.uniqueId]];if(!t||t.isAnInstance||(t.skeleton=s,-1!==a.indexOf(s)))continue;for(let e of(a.push(s),s.bones))e._linkedTransformNode&&(e._linkedTransformNode=i[n[e._linkedTransformNode.uniqueId]])}o.skeletons.push(s)}for(let t of this.animationGroups){if(l.predicate&&!l.predicate(t))continue;let s=t.clone(e?e(t.name):"Clone of "+t.name,e=>i[n[e.uniqueId]]||e);o.animationGroups.push(s)}return o}addAllToScene(){if(!this._wasAddedToScene){for(let e of(this._isValidHierarchy()||S.Tools.Warn("SceneSerializer.addAllToScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!0,this.addToScene(null),this.environmentTexture&&(this.scene.environmentTexture=this.environmentTexture),this.scene._serializableComponents))e.addFromContainer(this);this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null}}addToScene(e=null){let t=[];for(let s of this.cameras)(!e||e(s))&&(this.scene.addCamera(s),t.push(s));for(let s of this.lights)(!e||e(s))&&(this.scene.addLight(s),t.push(s));for(let s of this.meshes)(!e||e(s))&&(this.scene.addMesh(s),t.push(s));for(let t of this.skeletons)(!e||e(t))&&this.scene.addSkeleton(t);for(let t of this.animations)(!e||e(t))&&this.scene.addAnimation(t);for(let t of this.animationGroups)(!e||e(t))&&this.scene.addAnimationGroup(t);for(let t of this.multiMaterials)(!e||e(t))&&this.scene.addMultiMaterial(t);for(let t of this.materials)(!e||e(t))&&this.scene.addMaterial(t);for(let t of this.morphTargetManagers)(!e||e(t))&&this.scene.addMorphTargetManager(t);for(let t of this.geometries)(!e||e(t))&&this.scene.addGeometry(t);for(let s of this.transformNodes)(!e||e(s))&&(this.scene.addTransformNode(s),t.push(s));for(let t of this.actionManagers)(!e||e(t))&&this.scene.addActionManager(t);for(let t of this.textures)(!e||e(t))&&this.scene.addTexture(t);for(let t of this.reflectionProbes)(!e||e(t))&&this.scene.addReflectionProbe(t);for(let t of this.spriteManagers)(!e||e(t))&&(this.scene.spriteManagers||(this.scene.spriteManagers=[]),this.scene.spriteManagers.push(t));if(t.length){let e=new Set(this.scene.meshes);for(let t of this.scene.lights)e.add(t);for(let t of this.scene.cameras)e.add(t);for(let t of this.scene.transformNodes)e.add(t);for(let t of this.skeletons)for(let s of t.bones)e.add(s);for(let s of t)s.parent&&!e.has(s.parent)&&(s.setParent?s.setParent(null):s.parent=null)}}removeAllFromScene(){for(let e of(this._isValidHierarchy()||S.Tools.Warn("SceneSerializer.removeAllFromScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!1,this.removeFromScene(null),this.environmentTexture===this.scene.environmentTexture&&(this.scene.environmentTexture=null),this.scene._serializableComponents))e.removeFromContainer(this)}removeFromScene(e=null){for(let t of this.cameras)(!e||e(t))&&this.scene.removeCamera(t);for(let t of this.lights)(!e||e(t))&&this.scene.removeLight(t);for(let t of this.meshes)(!e||e(t))&&this.scene.removeMesh(t,!0);for(let t of this.skeletons)(!e||e(t))&&this.scene.removeSkeleton(t);for(let t of this.animations)(!e||e(t))&&this.scene.removeAnimation(t);for(let t of this.animationGroups)(!e||e(t))&&this.scene.removeAnimationGroup(t);for(let t of this.multiMaterials)(!e||e(t))&&this.scene.removeMultiMaterial(t);for(let t of this.materials)(!e||e(t))&&this.scene.removeMaterial(t);for(let t of this.morphTargetManagers)(!e||e(t))&&this.scene.removeMorphTargetManager(t);for(let t of this.geometries)(!e||e(t))&&this.scene.removeGeometry(t);for(let t of this.transformNodes)(!e||e(t))&&this.scene.removeTransformNode(t);for(let t of this.actionManagers)(!e||e(t))&&this.scene.removeActionManager(t);for(let t of this.textures)(!e||e(t))&&this.scene.removeTexture(t);for(let t of this.reflectionProbes)(!e||e(t))&&this.scene.removeReflectionProbe(t);for(let t of this.spriteManagers)if((!e||e(t))&&this.scene.spriteManagers){let e=this.scene.spriteManagers.indexOf(t);-1!==e&&this.scene.spriteManagers.splice(e,1)}}dispose(){for(let e of this.cameras.slice(0))e.dispose();for(let e of(this.cameras.length=0,this.lights.slice(0)))e.dispose();for(let e of(this.lights.length=0,this.meshes.slice(0)))e.dispose();for(let e of(this.meshes.length=0,this.skeletons.slice(0)))e.dispose();for(let e of(this.skeletons.length=0,this.animationGroups.slice(0)))e.dispose();for(let e of(this.animationGroups.length=0,this.multiMaterials.slice(0)))e.dispose();for(let e of(this.multiMaterials.length=0,this.materials.slice(0)))e.dispose();for(let e of(this.materials.length=0,this.geometries.slice(0)))e.dispose();for(let e of(this.geometries.length=0,this.transformNodes.slice(0)))e.dispose();for(let e of(this.transformNodes.length=0,this.actionManagers.slice(0)))e.dispose();for(let e of(this.actionManagers.length=0,this.textures.slice(0)))e.dispose();for(let e of(this.textures.length=0,this.reflectionProbes.slice(0)))e.dispose();for(let e of(this.reflectionProbes.length=0,this.morphTargetManagers.slice(0)))e.dispose();for(let e of(this.morphTargetManagers.length=0,this.spriteManagers.slice(0)))e.dispose();for(let e of(this.spriteManagers.length=0,this.environmentTexture&&(this.environmentTexture.dispose(),this.environmentTexture=null),this.scene._serializableComponents))e.removeFromContainer(this,!0);this._onContextRestoredObserver&&(this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)}_moveAssets(e,t,s){if(e&&t)for(let n of e){let e=!0;if(s){for(let t of s)if(n===t){e=!1;break}}e&&(t.push(n),n._parentContainer=this)}}moveAllFromScene(e){for(let t in this._wasAddedToScene=!1,void 0===e&&(e=new H),this)Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=this[t]||("_environmentTexture"===t?null:[]),this._moveAssets(this.scene[t],this[t],e[t]));this.environmentTexture=this.scene.environmentTexture,this.removeAllFromScene()}createRootMesh(){let e=new I.Mesh("assetContainerRootMesh",this.scene);for(let t of this.meshes)t.parent||e.addChild(t);return this.meshes.unshift(e),e}mergeAnimationsTo(e=P.EngineStore.LastCreatedScene,t,s=null){if(!e)return k.Logger.Error("No scene available to merge animations to"),[];let n=s||(t=>{let s,n=t.animations.length?t.animations[0].targetProperty:"",i=t.name.split(".").join("").split("_primitive")[0];switch(n){case"position":case"rotationQuaternion":s=e.getTransformNodeByName(t.name)||e.getTransformNodeByName(i);break;case"influence":s=e.getMorphTargetByName(t.name)||e.getMorphTargetByName(i);break;default:s=e.getNodeByName(t.name)||e.getNodeByName(i)}return s});for(let e of this.getNodes()){let t=n(e);if(null!==t){for(let s of e.animations)for(let e of t.animations.filter(e=>e.targetProperty===s.targetProperty)){let s=t.animations.indexOf(e,0);s>-1&&t.animations.splice(s,1)}t.animations=t.animations.concat(e.animations)}}let i=[];for(let e of this.animationGroups.slice())for(let t of(i.push(e.clone(e.name,n)),e.animatables))t.stop();for(let s of t){let t=n(s.target);t&&(e.beginAnimation(t,s.fromFrame,s.toFrame,s.loopAnimation,s.speedRatio,s.onAnimationEnd?s.onAnimationEnd:void 0,void 0,!0,void 0,s.onAnimationLoop?s.onAnimationLoop:void 0),e.stopAnimation(s.target))}return i}populateRootNodes(){for(let e of(this.rootNodes.length=0,this.meshes))e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e);for(let e of this.transformNodes)e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e);for(let e of this.lights)e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e);for(let e of this.cameras)e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e)}addAllAssetsToContainer(e){if(!e)return;let t=[],s=new Set;for(t.push(e);t.length>0;){let e=t.pop();if(e instanceof I.Mesh?(e.geometry&&-1===this.geometries.indexOf(e.geometry)&&this.geometries.push(e.geometry),this.meshes.push(e)):e instanceof L.InstancedMesh?this.meshes.push(e):e instanceof N.TransformNode?this.transformNodes.push(e):e instanceof G.Light?this.lights.push(e):e instanceof D.Camera&&this.cameras.push(e),e instanceof B.AbstractMesh){if(e.material&&-1===this.materials.indexOf(e.material))for(let t of(this.materials.push(e.material),e.material.getActiveTextures()))-1===this.textures.indexOf(t)&&this.textures.push(t);e.skeleton&&-1===this.skeletons.indexOf(e.skeleton)&&this.skeletons.push(e.skeleton),e.morphTargetManager&&-1===this.morphTargetManagers.indexOf(e.morphTargetManager)&&this.morphTargetManagers.push(e.morphTargetManager)}for(let n of e.getChildren())s.has(n)||t.push(n);s.add(e)}this.populateRootNodes()}_getByTags(e,t,s){if(void 0===t)return e;let n=[];for(let i in e){let o=e[i];V.Tags&&V.Tags.MatchesQuery(o,t)&&(!s||s(o))&&n.push(o)}return n}getMeshesByTags(e,t){return this._getByTags(this.meshes,e,t)}getCamerasByTags(e,t){return this._getByTags(this.cameras,e,t)}getLightsByTags(e,t){return this._getByTags(this.lights,e,t)}getMaterialsByTags(e,t){return this._getByTags(this.materials,e,t).concat(this._getByTags(this.multiMaterials,e,t))}getTransformNodesByTags(e,t){return this._getByTags(this.transformNodes,e,t)}}var z=e.i(26225);class q{constructor(e){this.byteOffset=0,this.buffer=e}async loadAsync(e){let t=await this.buffer.readAsync(this.byteOffset,e);this._dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),this._dataByteOffset=0}readUint32(){let e=this._dataView.getUint32(this._dataByteOffset,!0);return this._dataByteOffset+=4,this.byteOffset+=4,e}readUint8Array(e){let t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._dataByteOffset,e);return this._dataByteOffset+=e,this.byteOffset+=e,t}readString(e){return(0,z.Decode)(this.readUint8Array(e))}skipBytes(e){this._dataByteOffset+=e,this.byteOffset+=e}}function W(e,t,s,n){let i={externalResourceFunction:n};return s&&(i.uri="file:"===t?s:t+s),ArrayBuffer.isView(e)?GLTFValidator.validateBytes(e,i):GLTFValidator.validateString(e,i)}function j(){let e=[];onmessage=t=>{let s=t.data;switch(s.id){case"init":importScripts(s.url);break;case"validate":W(s.data,s.rootUrl,s.fileName,t=>new Promise((s,n)=>{let i=e.length;e.push({resolve:s,reject:n}),postMessage({id:"getExternalResource",index:i,uri:t})})).then(e=>{postMessage({id:"validate.resolve",value:e})},e=>{postMessage({id:"validate.reject",reason:e})});break;case"getExternalResource.resolve":e[s.index].resolve(s.value);break;case"getExternalResource.reject":e[s.index].reject(s.reason)}}}class X{static ValidateAsync(e,t,s,n){return"function"==typeof Worker?new Promise((i,o)=>{let a=`${W}(${j})()`,r=new Worker(URL.createObjectURL(new Blob([a],{type:"application/javascript"}))),l=e=>{r.removeEventListener("error",l),r.removeEventListener("message",h),o(e)},h=e=>{let t=e.data;switch(t.id){case"getExternalResource":n(t.uri).then(e=>{r.postMessage({id:"getExternalResource.resolve",index:t.index,value:e},[e.buffer])},e=>{r.postMessage({id:"getExternalResource.reject",index:t.index,reason:e})});break;case"validate.resolve":r.removeEventListener("error",l),r.removeEventListener("message",h),X._LastResults=t.value,i(t.value),r.terminate();break;case"validate.reject":r.removeEventListener("error",l),r.removeEventListener("message",h),o(t.reason),r.terminate()}};if(r.addEventListener("error",l),r.addEventListener("message",h),r.postMessage({id:"init",url:S.Tools.GetBabylonScriptURL(this.Configuration.url)}),ArrayBuffer.isView(e)){let n=e.slice();r.postMessage({id:"validate",data:n,rootUrl:t,fileName:s},[n.buffer])}else r.postMessage({id:"validate",data:e,rootUrl:t,fileName:s})}):(this._LoadScriptPromise||(this._LoadScriptPromise=S.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then(()=>W(e,t,s,n)))}}X.Configuration={url:`${S.Tools._DefaultCdnUrl}/gltf_validator.js`},X._LastResults=null,e.s(["GLTFValidation",0,X],40765);let Y="Z2xURg",Q="gltf",Z={".gltf":{isBinary:!1,mimeType:"model/gltf+json"},".glb":{isBinary:!0,mimeType:"model/gltf-binary"}};var J=e.i(6774),ee=e.i(51618);function et(e,t,s){try{return Promise.resolve(new Uint8Array(e,t,s))}catch(e){return Promise.reject(e)}}(n=f||(f={}))[n.AUTO=0]="AUTO",n[n.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED",(i=g||(g={}))[i.NONE=0]="NONE",i[i.FIRST=1]="FIRST",i[i.ALL=2]="ALL",(o=y||(y={}))[o.LOADING=0]="LOADING",o[o.READY=1]="READY",o[o.COMPLETE=2]="COMPLETE";class es{constructor(){this.alwaysComputeBoundingBox=!1,this.alwaysComputeSkeletonRootNode=!1,this.animationStartMode=g.FIRST,this.compileMaterials=!1,this.compileShadowGenerators=!1,this.coordinateSystemMode=f.AUTO,this.createInstances=!0,this.loadAllMaterials=!1,this.loadMorphTargets=!0,this.useMaxMorphTargetInfluencers=!0,this.loadNodeAnimations=!0,this.loadOnlyMaterials=!1,this.loadSkins=!0,this.skipMaterials=!1,this.targetFps=60,this.transparencyAsCoverage=!1,this.useClipPlane=!1,this.useGltfTextureNames=!1,this.useRangeRequests=!1,this.useSRGBBuffers=!0,this.validate=!1,this.useOpenPBR=!1,this.dontUseTransmissionHelper=!1}}let en=new es;class ei extends es{constructor(){super(...arguments),this.extensionOptions={},this.preprocessUrlAsync=e=>Promise.resolve(e)}copyFrom(e){e&&(this.alwaysComputeBoundingBox=e.alwaysComputeBoundingBox??this.alwaysComputeBoundingBox,this.alwaysComputeSkeletonRootNode=e.alwaysComputeSkeletonRootNode??this.alwaysComputeSkeletonRootNode,this.animationStartMode=e.animationStartMode??this.animationStartMode,this.capturePerformanceCounters=e.capturePerformanceCounters??this.capturePerformanceCounters,this.compileMaterials=e.compileMaterials??this.compileMaterials,this.compileShadowGenerators=e.compileShadowGenerators??this.compileShadowGenerators,this.coordinateSystemMode=e.coordinateSystemMode??this.coordinateSystemMode,this.createInstances=e.createInstances??this.createInstances,this.customRootNode=e.customRootNode,this.extensionOptions=e.extensionOptions??this.extensionOptions,this.loadAllMaterials=e.loadAllMaterials??this.loadAllMaterials,this.loadMorphTargets=e.loadMorphTargets??this.loadMorphTargets,this.loadNodeAnimations=e.loadNodeAnimations??this.loadNodeAnimations,this.loadOnlyMaterials=e.loadOnlyMaterials??this.loadOnlyMaterials,this.loadSkins=e.loadSkins??this.loadSkins,this.loggingEnabled=e.loggingEnabled??this.loggingEnabled,this.onCameraLoaded=e.onCameraLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onMeshLoaded=e.onMeshLoaded,this.onParsed=e.onParsed,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onValidated=e.onValidated,this.preprocessUrlAsync=e.preprocessUrlAsync??this.preprocessUrlAsync,this.skipMaterials=e.skipMaterials??this.skipMaterials,this.targetFps=e.targetFps??this.targetFps,this.transparencyAsCoverage=e.transparencyAsCoverage??this.transparencyAsCoverage,this.useClipPlane=e.useClipPlane??this.useClipPlane,this.useGltfTextureNames=e.useGltfTextureNames??this.useGltfTextureNames,this.useMaxMorphTargetInfluencers=e.useMaxMorphTargetInfluencers??this.useMaxMorphTargetInfluencers,this.useOpenPBR=e.useOpenPBR??this.useOpenPBR,this.useRangeRequests=e.useRangeRequests??this.useRangeRequests,this.useSRGBBuffers=e.useSRGBBuffers??this.useSRGBBuffers,this.validate=e.validate??this.validate,this.dontUseTransmissionHelper=e.dontUseTransmissionHelper??this.dontUseTransmissionHelper)}}class eo extends ei{constructor(e){super(),this.onParsedObservable=new R.Observable,this.onMeshLoadedObservable=new R.Observable,this.onSkinLoadedObservable=new R.Observable,this.onTextureLoadedObservable=new R.Observable,this.onMaterialLoadedObservable=new R.Observable,this.onCameraLoadedObservable=new R.Observable,this.onCompleteObservable=new R.Observable,this.onErrorObservable=new R.Observable,this.onDisposeObservable=new R.Observable,this.onExtensionLoadedObservable=new R.Observable,this.onValidatedObservable=new R.Observable,this._loader=null,this._state=null,this._requests=[],this.name=Q,this.extensions=Z,this.onLoaderStateChangedObservable=new R.Observable,this._logIndentLevel=0,this._loggingEnabled=!1,this._log=this._logDisabled,this._capturePerformanceCounters=!1,this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled,this.copyFrom(Object.assign({...en},e))}set onParsed(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),e&&(this._onParsedObserver=this.onParsedObservable.add(e))}set onMeshLoaded(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),e&&(this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e))}set onSkinLoaded(e){this._onSkinLoadedObserver&&this.onSkinLoadedObservable.remove(this._onSkinLoadedObserver),e&&(this._onSkinLoadedObserver=this.onSkinLoadedObservable.add(t=>e(t.node,t.skinnedNode)))}set onTextureLoaded(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),e&&(this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e))}set onMaterialLoaded(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),e&&(this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e))}set onCameraLoaded(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),e&&(this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e))}set onComplete(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)}set onError(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}set onExtensionLoaded(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)}get loggingEnabled(){return this._loggingEnabled}set loggingEnabled(e){this._loggingEnabled!==e&&(this._loggingEnabled=e,this._loggingEnabled?this._log=this._logEnabled:this._log=this._logDisabled)}get capturePerformanceCounters(){return this._capturePerformanceCounters}set capturePerformanceCounters(e){this._capturePerformanceCounters!==e&&(this._capturePerformanceCounters=e,this._capturePerformanceCounters?(this._startPerformanceCounter=this._startPerformanceCounterEnabled,this._endPerformanceCounter=this._endPerformanceCounterEnabled):(this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled))}set onValidated(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)}dispose(){for(let e of(this._loader&&(this._loader.dispose(),this._loader=null),this._requests))e.abort();this._requests.length=0,delete this._progressCallback,this.preprocessUrlAsync=e=>Promise.resolve(e),this.onMeshLoadedObservable.clear(),this.onSkinLoadedObservable.clear(),this.onTextureLoadedObservable.clear(),this.onMaterialLoadedObservable.clear(),this.onCameraLoadedObservable.clear(),this.onCompleteObservable.clear(),this.onExtensionLoadedObservable.clear(),this.onDisposeObservable.notifyObservers(void 0),this.onDisposeObservable.clear()}loadFile(e,t,s,n,i,o,a,r){if(ArrayBuffer.isView(t))return this._loadBinary(e,t,s,n,a,r),null;this._progressCallback=i;let l=t.name||S.Tools.GetFilename(t);if(!o)return this._loadFile(e,t,t=>{try{this._validate(e,t,s,l),n({json:this._parseJson(t)})}catch{a&&a()}},!1,a);if(this.useRangeRequests){this.validate&&k.Logger.Warn("glTF validation is not supported when range requests are enabled");let s={abort:()=>{},onCompleteObservable:new R.Observable};return this._unpackBinaryAsync(new q({readAsync:(s,n)=>new Promise((i,o)=>{this._loadFile(e,t,e=>{i(new Uint8Array(e))},!0,e=>{o(e)},e=>{e.setRequestHeader("Range",`bytes=${s}-${s+n-1}`)})}),byteLength:0})).then(e=>{s.onCompleteObservable.notifyObservers(s),n(e)},a?e=>a(void 0,e):void 0),s}return this._loadFile(e,t,t=>{this._validate(e,new Uint8Array(t,0,t.byteLength),s,l),this._unpackBinaryAsync(new q({readAsync:(e,s)=>et(t,e,s),byteLength:t.byteLength})).then(e=>{n(e)},a?e=>a(void 0,e):void 0)},!0,a)}_loadBinary(e,t,s,n,i,o){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),s,o),this._unpackBinaryAsync(new q({readAsync:(e,s)=>(function(e,t,s){try{if(t<0||t>=e.byteLength)throw RangeError("Offset is out of range.");if(t+s>e.byteLength)throw RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(e.buffer,e.byteOffset+t,s))}catch(e){return Promise.reject(e)}})(t,e,s),byteLength:t.byteLength})).then(e=>{n(e)},i?e=>i(void 0,e):void 0)}importMeshAsync(e,t,s,n,i,o){return Promise.resolve().then(()=>(this.onParsedObservable.notifyObservers(s),this.onParsedObservable.clear(),this._log(`Loading ${o||""}`),this._loader=this._getLoader(s),this._loader.importMeshAsync(e,t,null,s,n,i,o)))}loadAsync(e,t,s,n,i){return Promise.resolve().then(()=>(this.onParsedObservable.notifyObservers(t),this.onParsedObservable.clear(),this._log(`Loading ${i||""}`),this._loader=this._getLoader(t),this._loader.loadAsync(e,t,s,n,i)))}loadAssetContainerAsync(e,t,s,n,i){return Promise.resolve().then(()=>{this.onParsedObservable.notifyObservers(t),this.onParsedObservable.clear(),this._log(`Loading ${i||""}`),this._loader=this._getLoader(t);let o=new $(e),a=[];this.onMaterialLoadedObservable.add(e=>{a.push(e)});let r=[];this.onTextureLoadedObservable.add(e=>{r.push(e)});let l=[];this.onCameraLoadedObservable.add(e=>{l.push(e)});let h=[];return this.onMeshLoadedObservable.add(e=>{e.morphTargetManager&&h.push(e.morphTargetManager)}),this._loader.importMeshAsync(null,e,o,t,s,n,i).then(e=>(Array.prototype.push.apply(o.geometries,e.geometries),Array.prototype.push.apply(o.meshes,e.meshes),Array.prototype.push.apply(o.particleSystems,e.particleSystems),Array.prototype.push.apply(o.skeletons,e.skeletons),Array.prototype.push.apply(o.animationGroups,e.animationGroups),Array.prototype.push.apply(o.materials,a),Array.prototype.push.apply(o.textures,r),Array.prototype.push.apply(o.lights,e.lights),Array.prototype.push.apply(o.transformNodes,e.transformNodes),Array.prototype.push.apply(o.cameras,l),Array.prototype.push.apply(o.morphTargetManagers,h),o))})}canDirectLoad(e){let t;return -1!==(t=e).indexOf("asset")&&-1!==t.indexOf("version")||t.startsWith("data:base64,"+Y)||t.startsWith("data:;base64,"+Y)||t.startsWith("data:application/octet-stream;base64,"+Y)||t.startsWith("data:model/gltf-binary;base64,"+Y)}directLoad(e,t){if(t.startsWith("base64,"+Y)||t.startsWith(";base64,"+Y)||t.startsWith("application/octet-stream;base64,"+Y)||t.startsWith("model/gltf-binary;base64,"+Y)){let s=(0,J.DecodeBase64UrlToBinary)(t);return this._validate(e,new Uint8Array(s,0,s.byteLength)),this._unpackBinaryAsync(new q({readAsync:(e,t)=>et(s,e,t),byteLength:s.byteLength}))}return this._validate(e,t),Promise.resolve({json:this._parseJson(t)})}createPlugin(e){return new eo(e[Q])}get loaderState(){return this._state}whenCompleteAsync(){return new Promise((e,t)=>{this.onCompleteObservable.addOnce(()=>{e()}),this.onErrorObservable.addOnce(e=>{t(e)})})}_setState(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(y[this._state]))}_loadFile(e,t,s,n,i,o){let a=e._loadFile(t,s,e=>{this._onProgress(e,a)},!0,n,i,o);return a.onCompleteObservable.add(()=>{a._lengthComputable=!0,a._total=a._loaded}),this._requests.push(a),a}_onProgress(e,t){if(!this._progressCallback)return;t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;let s=!0,n=0,i=0;for(let e of this._requests){if(void 0===e._lengthComputable||void 0===e._loaded||void 0===e._total)return;s=s&&e._lengthComputable,n+=e._loaded,i+=e._total}this._progressCallback({lengthComputable:s,loaded:n,total:s?i:0})}_validate(e,t,s="",n=""){this.validate&&(this._startPerformanceCounter("Validate JSON"),X.ValidateAsync(t,s,n,t=>this.preprocessUrlAsync(s+t).then(t=>e._loadFileAsync(t,void 0,!0,!0).then(e=>new Uint8Array(e,0,e.byteLength)))).then(e=>{this._endPerformanceCounter("Validate JSON"),this.onValidatedObservable.notifyObservers(e),this.onValidatedObservable.clear()},e=>{this._endPerformanceCounter("Validate JSON"),S.Tools.Warn(`Failed to validate: ${e.message}`),this.onValidatedObservable.clear()}))}_getLoader(e){let t=e.json.asset||{};this._log(`Asset version: ${t.version}`),t.minVersion&&this._log(`Asset minimum version: ${t.minVersion}`),t.generator&&this._log(`Asset generator: ${t.generator}`);let s=eo._parseVersion(t.version);if(!s)throw Error("Invalid version: "+t.version);if(void 0!==t.minVersion){let e=eo._parseVersion(t.minVersion);if(!e)throw Error("Invalid minimum version: "+t.minVersion);if(eo._compareVersion(e,{major:2,minor:0})>0)throw Error("Incompatible minimum version: "+t.minVersion)}let n={1:eo._CreateGLTF1Loader,2:eo._CreateGLTF2Loader}[s.major];if(!n)throw Error("Unsupported version: "+t.version);return n(this)}_parseJson(e){this._startPerformanceCounter("Parse JSON"),this._log(`JSON length: ${e.length}`);let t=JSON.parse(e);return this._endPerformanceCounter("Parse JSON"),t}_unpackBinaryAsync(e){return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then(()=>{let t,s=e.readUint32();if(0x46546c67!==s)throw new ee.RuntimeError("Unexpected magic: "+s,ee.ErrorCodes.GLTFLoaderUnexpectedMagicError);let n=e.readUint32();this.loggingEnabled&&this._log(`Binary version: ${n}`);let i=e.readUint32();switch(!this.useRangeRequests&&i!==e.buffer.byteLength&&k.Logger.Warn(`Length in header does not match actual data length: ${i} != ${e.buffer.byteLength}`),n){case 1:t=this._unpackBinaryV1Async(e,i);break;case 2:t=this._unpackBinaryV2Async(e,i);break;default:throw Error("Unsupported version: "+n)}return this._endPerformanceCounter("Unpack Binary"),t})}_unpackBinaryV1Async(e,t){let s=e.readUint32(),n=e.readUint32();if(0!==n)throw Error(`Unexpected content format: ${n}`);let i=t-e.byteOffset,o={json:this._parseJson(e.readString(s)),bin:null};if(0!==i){let t=e.byteOffset;o.bin={readAsync:(s,n)=>e.buffer.readAsync(t+s,n),byteLength:i}}return Promise.resolve(o)}_unpackBinaryV2Async(e,t){let s=e.readUint32();if(0x4e4f534a!==e.readUint32())throw Error("First chunk format is not JSON");return e.byteOffset+s===t?e.loadAsync(s).then(()=>({json:this._parseJson(e.readString(s)),bin:null})):e.loadAsync(s+8).then(()=>{let n={json:this._parseJson(e.readString(s)),bin:null},i=()=>{let s=e.readUint32();switch(e.readUint32()){case 0x4e4f534a:throw Error("Unexpected JSON chunk");case 5130562:{let t=e.byteOffset;n.bin={readAsync:(s,n)=>e.buffer.readAsync(t+s,n),byteLength:s},e.skipBytes(s);break}default:e.skipBytes(s)}return e.byteOffset!==t?e.loadAsync(8).then(i):Promise.resolve(n)};return i()})}static _parseVersion(e){if("1.0"===e||"1.0.1"===e)return{major:1,minor:0};let t=(e+"").match(/^(\d+)\.(\d+)/);return t?{major:parseInt(t[1]),minor:parseInt(t[2])}:null}static _compareVersion(e,t){return e.major>t.major?1:e.major<t.major?-1:e.minor>t.minor?1:e.minor<t.minor?-1:0}_logOpen(e){this._log(e),this._logIndentLevel++}_logClose(){--this._logIndentLevel}_logEnabled(e){let t=eo._logSpaces.substring(0,2*this._logIndentLevel);k.Logger.Log(`${t}${e}`)}_logDisabled(e){}_startPerformanceCounterEnabled(e){S.Tools.StartPerformanceCounter(e)}_startPerformanceCounterDisabled(e){}_endPerformanceCounterEnabled(e){S.Tools.EndPerformanceCounter(e)}_endPerformanceCounterDisabled(e){}}eo.IncrementalLoading=!0,eo.HomogeneousCoordinates=!1,eo._logSpaces=" ";let ea=!1;function er(){ea||(ea=!0,(0,O.RegisterSceneLoaderPlugin)(new eo))}e.s(["GLTFFileLoader",0,eo,"GLTFLoaderAnimationStartMode",0,g,"GLTFLoaderCoordinateSystemMode",0,f,"GLTFLoaderDefaultOptions",0,en,"GLTFLoaderState",0,y,"RegisterGLTFFileLoader",0,er],92438),er(),e.s([],81738),(a=b||(b={}))[a.BYTE=5120]="BYTE",a[a.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",a[a.SHORT=5122]="SHORT",a[a.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",a[a.FLOAT=5126]="FLOAT",(r=T||(T={}))[r.FRAGMENT=35632]="FRAGMENT",r[r.VERTEX=35633]="VERTEX",(l=A||(A={}))[l.BYTE=5120]="BYTE",l[l.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",l[l.SHORT=5122]="SHORT",l[l.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",l[l.INT=5124]="INT",l[l.UNSIGNED_INT=5125]="UNSIGNED_INT",l[l.FLOAT=5126]="FLOAT",l[l.FLOAT_VEC2=35664]="FLOAT_VEC2",l[l.FLOAT_VEC3=35665]="FLOAT_VEC3",l[l.FLOAT_VEC4=35666]="FLOAT_VEC4",l[l.INT_VEC2=35667]="INT_VEC2",l[l.INT_VEC3=35668]="INT_VEC3",l[l.INT_VEC4=35669]="INT_VEC4",l[l.BOOL=35670]="BOOL",l[l.BOOL_VEC2=35671]="BOOL_VEC2",l[l.BOOL_VEC3=35672]="BOOL_VEC3",l[l.BOOL_VEC4=35673]="BOOL_VEC4",l[l.FLOAT_MAT2=35674]="FLOAT_MAT2",l[l.FLOAT_MAT3=35675]="FLOAT_MAT3",l[l.FLOAT_MAT4=35676]="FLOAT_MAT4",l[l.SAMPLER_2D=35678]="SAMPLER_2D",(h=x||(x={}))[h.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",h[h.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",h[h.REPEAT=10497]="REPEAT",(u=w||(w={}))[u.NEAREST=9728]="NEAREST",u[u.LINEAR=9728]="LINEAR",u[u.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",u[u.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",u[u.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",u[u.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",(c=v||(v={}))[c.ALPHA=6406]="ALPHA",c[c.RGB=6407]="RGB",c[c.RGBA=6408]="RGBA",c[c.LUMINANCE=6409]="LUMINANCE",c[c.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",(d=M||(M={}))[d.FRONT=1028]="FRONT",d[d.BACK=1029]="BACK",d[d.FRONT_AND_BACK=1032]="FRONT_AND_BACK",(_=C||(C={}))[_.ZERO=0]="ZERO",_[_.ONE=1]="ONE",_[_.SRC_COLOR=768]="SRC_COLOR",_[_.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",_[_.DST_COLOR=774]="DST_COLOR",_[_.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",_[_.SRC_ALPHA=770]="SRC_ALPHA",_[_.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",_[_.DST_ALPHA=772]="DST_ALPHA",_[_.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",_[_.CONSTANT_COLOR=32769]="CONSTANT_COLOR",_[_.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",_[_.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",_[_.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",_[_.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e.s(["EBlendingFunction",0,C,"EComponentType",0,b,"ECullingType",0,M,"EParameterType",0,A,"EShaderType",0,T,"ETextureFilterType",0,w,"ETextureFormat",0,v,"ETextureWrapMode",0,x],9235),e.i(82866);var el=e.i(95410);e.i(45390);var eh=e.i(42580);(0,S.RegisterTools)(),(0,D.RegisterCamera)();var eu=e.i(27030);(0,eu.RegisterFreeCamera)();var ec=e.i(45984);(0,ec.RegisterAnimation)();var ed=e.i(91682),e_=e.i(71615);class ep extends e_.Texture{constructor(e,t,s,n,i,o=!0,a=!1,r=3,l=0,h,u,c,d){if(super(null,i,!o,a,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,h),this.format=n,!this._engine)return;this._engine._caps.textureFloatLinearFiltering||1!==l||(r=1),this._engine._caps.textureHalfFloatLinearFiltering||2!==l||(r=1),this._texture=this._engine.createRawTexture(e,t,s,n,o,a,r,null,l,h??0,u??!1,d),this.wrapU=e_.Texture.CLAMP_ADDRESSMODE,this.wrapV=e_.Texture.CLAMP_ADDRESSMODE,this._waitingForData=!!c&&!e}update(e){this.updateMipLevel(e,0)}updateMipLevel(e,t){this._getEngine().updateRawTexture(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type,this._texture._useSRGBBuffer,t),this._waitingForData=!1}clone(){if(!this._texture)return super.clone();let e=new ep(null,this.getSize().width,this.getSize().height,this.format,this.getScene(),this._texture.generateMipMaps,this._invertY,this.samplingMode,this._texture.type,this._texture._creationFlags,this._useSRGBBuffer);return e._texture=this._texture,this._texture.incrementReferences(),e}isReady(){return super.isReady()&&!this._waitingForData}static CreateLuminanceTexture(e,t,s,n,i=!0,o=!1,a=3){return new ep(e,t,s,1,n,i,o,a)}static CreateLuminanceAlphaTexture(e,t,s,n,i=!0,o=!1,a=3){return new ep(e,t,s,2,n,i,o,a)}static CreateAlphaTexture(e,t,s,n,i=!0,o=!1,a=3){return new ep(e,t,s,0,n,i,o,a)}static CreateRGBTexture(e,t,s,n,i=!0,o=!1,a=3,r=0,l=0,h=!1){return new ep(e,t,s,4,n,i,o,a,r,l,h)}static CreateRGBATexture(e,t,s,n,i=!0,o=!1,a=3,r=0,l=0,h=!1,u=!1){return new ep(e,t,s,5,n,i,o,a,r,l,h,u)}static CreateRGBAStorageTexture(e,t,s,n,i=!0,o=!1,a=3,r=0,l=!1){return new ep(e,t,s,5,n,i,o,a,r,1,l)}static CreateRTexture(e,t,s,n,i=!0,o=!1,a=e_.Texture.TRILINEAR_SAMPLINGMODE,r=1){return new ep(e,t,s,6,n,i,o,a,r)}static CreateRStorageTexture(e,t,s,n,i=!0,o=!1,a=e_.Texture.TRILINEAR_SAMPLINGMODE,r=1){return new ep(e,t,s,6,n,i,o,a,r,1)}}var em=e.i(28602),ef=e.i(67560);class eg{get useTextureToStoreBoneMatrices(){return this._useTextureToStoreBoneMatrices}set useTextureToStoreBoneMatrices(e){this._useTextureToStoreBoneMatrices=e,this._markAsDirty()}get animationPropertiesOverride(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}get isUsingTextureForMatrices(){return this.useTextureToStoreBoneMatrices&&this._canUseTextureForBones}get uniqueId(){return this._uniqueId}constructor(e,t,s){this.name=e,this.id=t,this.bones=[],this.needInitialSkinMatrix=!1,this._isDirty=!0,this._meshesWithPoseMatrix=[],this._identity=el.Matrix.Identity(),this._currentRenderId=-1,this._textureWidth=0,this._textureHeight=1,this._ranges={},this._absoluteTransformIsDirty=!0,this._canUseTextureForBones=!1,this._uniqueId=0,this._numBonesWithLinkedTransformNode=0,this._hasWaitingData=null,this._parentContainer=null,this.doNotSerialize=!1,this._useTextureToStoreBoneMatrices=!0,this._animationPropertiesOverride=null,this.onBeforeComputeObservable=new R.Observable,this.metadata=null,this.bones=[],this._scene=s||P.EngineStore.LastCreatedScene,this._uniqueId=this._scene.getUniqueId(),this._scene.addSkeleton(this),this._isDirty=!0;const n=this._scene.getEngine().getCaps();this._canUseTextureForBones=n.textureFloat&&n.maxVertexTextureImageUnits>0}getClassName(){return"Skeleton"}getChildren(){return this.bones.filter(e=>!e.getParent())}getTransformMatrices(e){if(this.needInitialSkinMatrix){if(!e)throw Error("getTransformMatrices: When using the needInitialSkinMatrix flag, a mesh must be provided");return e._bonesTransformMatrices||this.prepare(!0),e._bonesTransformMatrices}return(!this._transformMatrices||this._isDirty)&&this.prepare(!this._transformMatrices),this._transformMatrices}getTransformMatrixTexture(e){return this.needInitialSkinMatrix&&e._transformMatrixTexture?e._transformMatrixTexture:this._transformMatrixTexture}getScene(){return this._scene}toString(e){let t=`Name: ${this.name}, nBones: ${this.bones.length}`;if(t+=`, nAnimationRanges: ${this._ranges?Object.keys(this._ranges).length:"none"}`,e){t+=", Ranges: {";let e=!0;for(let s in this._ranges)e&&(t+=", ",e=!1),t+=s;t+="}"}return t}getBoneIndexByName(e){for(let t=0,s=this.bones.length;t<s;t++)if(this.bones[t].name===e)return t;return -1}findBoneFromLinkedTransformNode(e){for(let t of this.bones)if(t._linkedTransformNode===e)return t;return null}findBoneFromLinkedTransformNodeName(e){for(let t of this.bones)if(t._linkedTransformNode&&t._linkedTransformNode.name===e)return t;return null}createAnimationRange(e,t,s){if(!this._ranges[e]){this._ranges[e]=new em.AnimationRange(e,t,s);for(let n=0,i=this.bones.length;n<i;n++)this.bones[n].animations[0]&&this.bones[n].animations[0].createRange(e,t,s)}}deleteAnimationRange(e,t=!0){for(let s=0,n=this.bones.length;s<n;s++)this.bones[s].animations[0]&&this.bones[s].animations[0].deleteRange(e,t);this._ranges[e]=null}getAnimationRange(e){return this._ranges[e]||null}getAnimationRanges(){let e,t=[];for(e in this._ranges)t.push(this._ranges[e]);return t}copyAnimationRange(e,t,s=!1){let n,i;if(this._ranges[t]||!e.getAnimationRange(t))return!1;let o=!0,a=this._getHighestAnimationFrame()+1,r={},l=e.bones;for(i=0,n=l.length;i<n;i++)r[l[i].name]=l[i];this.bones.length!==l.length&&(k.Logger.Warn(`copyAnimationRange: this rig has ${this.bones.length} bones, while source as ${l.length}`),o=!1);let h=s&&this.dimensionsAtRest&&e.dimensionsAtRest?this.dimensionsAtRest.divide(e.dimensionsAtRest):null;for(i=0,n=this.bones.length;i<n;i++){let e=this.bones[i].name,n=r[e];n?o=o&&this.bones[i].copyAnimationRange(n,t,a,s,h):(k.Logger.Warn("copyAnimationRange: not same rig, missing source bone "+e),o=!1)}let u=e.getAnimationRange(t);return u&&(this._ranges[t]=new em.AnimationRange(t,u.from+a,u.to+a)),o}returnToRest(){for(let e of this.bones)-1!==e._index&&e.returnToRest()}_getHighestAnimationFrame(){let e=0;for(let t=0,s=this.bones.length;t<s;t++)if(this.bones[t].animations[0]){let s=this.bones[t].animations[0].getHighestFrame();e<s&&(e=s)}return e}beginAnimation(e,t,s,n){let i=this.getAnimationRange(e);return i?this._scene.beginAnimation(this,i.from,i.to,t,s,n):null}static MakeAnimationAdditive(e,t=0,s){let n=e.getAnimationRange(s);if(!n)return null;let i=e._scene.getAllAnimatablesByTarget(e),o=null;for(let e=0;e<i.length;e++){let t=i[e];if(t.fromFrame===n?.from&&t.toFrame===n?.to){o=t;break}}let a=e.getAnimatables();for(let e=0;e<a.length;e++){let n=a[e].animations;if(n)for(let e=0;e<n.length;e++)(0,ec.AnimationMakeAnimationAdditive)(n[e],t,s)}return o&&(o.isAdditive=!0),e}_markAsDirty(){this._isDirty=!0,this._absoluteTransformIsDirty=!0}_registerMeshWithPoseMatrix(e){this._meshesWithPoseMatrix.push(e)}_unregisterMeshWithPoseMatrix(e){let t=this._meshesWithPoseMatrix.indexOf(e);t>-1&&this._meshesWithPoseMatrix.splice(t,1)}_computeTransformMatrices(e,t){this.onBeforeComputeObservable.notifyObservers(this);for(let s=0;s<this.bones.length;s++){let n=this.bones[s];n._childUpdateId++;let i=n.getParent();if(i?n.getLocalMatrix().multiplyToRef(i.getFinalMatrix(),n.getFinalMatrix()):t?n.getLocalMatrix().multiplyToRef(t,n.getFinalMatrix()):n.getFinalMatrix().copyFrom(n.getLocalMatrix()),-1!==n._index){let t=null===n._index?s:n._index;n.getAbsoluteInverseBindMatrix().multiplyToArray(n.getFinalMatrix(),e,16*t)}}this._identity.copyToArray(e,16*this.bones.length)}_computeTextureSize(){let e=4*(this.bones.length+1),t=e,s=1;if(this.isUsingTextureForMatrices){let n=-4&this.getScene().getEngine().getCaps().maxTextureSize;n<t&&(t=n,s=Math.ceil(e/n))}return this._textureWidth=t,this._textureHeight=s,this._textureWidth*this._textureHeight*4}prepare(e=!1){if(!e){let e=this.getScene().getRenderId();if(this._currentRenderId===e)return;this._currentRenderId=e}if(this._numBonesWithLinkedTransformNode>0){for(let e of this.bones)if(e._linkedTransformNode){let t=e._linkedTransformNode;e.position=t.position,t.rotationQuaternion?e.rotationQuaternion=t.rotationQuaternion:e.rotation=t.rotation,e.scaling=t.scaling}}let t=null;if(this.needInitialSkinMatrix)for(let e of this._meshesWithPoseMatrix){let s=e.getPoseMatrix(),n=this._isDirty;if(null===t&&(t=this._computeTextureSize()),e._bonesTransformMatrices&&e._bonesTransformMatrices.length===t||(e._bonesTransformMatrices=new Float32Array(t),n=!0),n){if(this._synchronizedWithMesh!==e){for(let t of(this._synchronizedWithMesh=e,this.bones))t.getParent()||(t.getBindMatrix().multiplyToRef(s,el.TmpVectors.Matrix[1]),t._updateAbsoluteBindMatrices(el.TmpVectors.Matrix[1]));if(this.isUsingTextureForMatrices){let s=e._transformMatrixTexture?.getSize(),n=s?s.width*s.height*4:0;e._transformMatrixTexture&&n===t||(e._transformMatrixTexture&&e._transformMatrixTexture.dispose(),e._transformMatrixTexture=ep.CreateRGBATexture(e._bonesTransformMatrices,this._textureWidth,this._textureHeight,this._scene,!1,!1,1,1))}}this._computeTransformMatrices(e._bonesTransformMatrices,s),this.isUsingTextureForMatrices&&e._transformMatrixTexture&&e._transformMatrixTexture.update(e._bonesTransformMatrices)}}else{if(!this._isDirty)return;null===t&&(t=this._computeTextureSize()),(!this._transformMatrices||this._transformMatrices.length!==t)&&(this._transformMatrices=new Float32Array(t),this.isUsingTextureForMatrices&&(this._transformMatrixTexture&&this._transformMatrixTexture.dispose(),this._transformMatrixTexture=ep.CreateRGBATexture(this._transformMatrices,this._textureWidth,this._textureHeight,this._scene,!1,!1,1,1))),this._computeTransformMatrices(this._transformMatrices,null),this.isUsingTextureForMatrices&&this._transformMatrixTexture&&this._transformMatrixTexture.update(this._transformMatrices)}this._isDirty=!1}getAnimatables(){if(!this._animatables||this._animatables.length!==this.bones.length){this._animatables=[];for(let e=0;e<this.bones.length;e++)this._animatables.push(this.bones[e])}return this._animatables}clone(e,t){let s=new eg(e,t||e,this._scene);s.needInitialSkinMatrix=this.needInitialSkinMatrix,s.metadata=this.metadata;for(let e=0;e<this.bones.length;e++){let t=this.bones[e],n=null,i=t.getParent();if(i){let e=this.bones.indexOf(i);n=s.bones[e]}let o=new ed.Bone(t.name,s,n,t.getBindMatrix().clone(),t.getRestMatrix().clone());o._index=t._index,t._linkedTransformNode&&o.linkTransformNode(t._linkedTransformNode),ef.DeepCopier.DeepCopy(t.animations,o.animations)}if(this._ranges)for(let e in s._ranges={},this._ranges){let t=this._ranges[e];t&&(s._ranges[e]=t.clone())}return this._isDirty=!0,s.prepare(!0),s}enableBlending(e=.01){for(let t of this.bones)for(let s of t.animations)s.enableBlending=!0,s.blendingSpeed=e}dispose(){if(this._meshesWithPoseMatrix.length=0,this.metadata=null,this.getScene().stopAnimation(this),this.getScene().removeSkeleton(this),this._parentContainer){let e=this._parentContainer.skeletons.indexOf(this);e>-1&&this._parentContainer.skeletons.splice(e,1),this._parentContainer=null}this._transformMatrixTexture&&(this._transformMatrixTexture.dispose(),this._transformMatrixTexture=null)}serialize(){let e={};e.name=this.name,e.id=this.id,e.uniqueId=this.uniqueId,this.dimensionsAtRest&&(e.dimensionsAtRest=this.dimensionsAtRest.asArray()),e.bones=[],e.needInitialSkinMatrix=this.needInitialSkinMatrix,this.metadata&&(e.metadata=this.metadata);for(let t=0;t<this.bones.length;t++){let s=this.bones[t],n=s.getParent(),i={parentBoneIndex:n?this.bones.indexOf(n):-1,index:s.getIndex(),name:s.name,id:s.id,uniqueId:s.uniqueId,matrix:s.getBindMatrix().asArray(),rest:s.getRestMatrix().asArray(),linkedTransformNodeId:s.getTransformNode()?.id,linkedTransformNodeUniqueId:s.getTransformNode()?.uniqueId};for(let t in e.bones.push(i),s.length&&(i.length=s.length),s.metadata&&(i.metadata=s.metadata),s.animations&&s.animations.length>0&&(i.animation=s.animations[0].serialize()),e.ranges=[],this._ranges){let s=this._ranges[t];if(!s)continue;let n={};n.name=t,n.from=s.from,n.to=s.to,e.ranges.push(n)}}return e}static Parse(e,t){let s,n=new eg(e.name,e.id,t);for(e.dimensionsAtRest&&(n.dimensionsAtRest=el.Vector3.FromArray(e.dimensionsAtRest)),n.needInitialSkinMatrix=e.needInitialSkinMatrix,e.metadata&&(n.metadata=e.metadata),s=0;s<e.bones.length;s++){let t=e.bones[s],i=e.bones[s].index,o=null;t.parentBoneIndex>-1&&(o=n.bones[t.parentBoneIndex]);let a=t.rest?el.Matrix.FromArray(t.rest):null,r=new ed.Bone(t.name,n,o,el.Matrix.FromArray(t.matrix),a,null,i);void 0!==t.id&&null!==t.id&&(r.id=t.id),t.length&&(r.length=t.length),t.metadata&&(r.metadata=t.metadata),t.animation&&r.animations.push((0,ec.AnimationParse)(t.animation)),void 0!==t.linkedTransformNodeId&&null!==t.linkedTransformNodeId&&(n._hasWaitingData=!0,r._waitingTransformNodeId=t.linkedTransformNodeId),void 0!==t.linkedTransformNodeUniqueId&&null!==t.linkedTransformNodeUniqueId&&(n._hasWaitingData=!0,r._waitingTransformNodeUniqueId=t.linkedTransformNodeUniqueId)}if(e.ranges)for(s=0;s<e.ranges.length;s++){let t=e.ranges[s];n.createAnimationRange(t.name,t.from,t.to)}return n}computeAbsoluteMatrices(e=!1){(this._absoluteTransformIsDirty||e)&&(this.bones[0].computeAbsoluteMatrices(),this._absoluteTransformIsDirty=!1)}computeAbsoluteTransforms(e=!1){this.computeAbsoluteMatrices(e)}getPoseMatrix(){let e=null;return this._meshesWithPoseMatrix.length>0&&(e=this._meshesWithPoseMatrix[0].getPoseMatrix()),e}sortBones(){let e=[],t=Array(this.bones.length);for(let s=0;s<this.bones.length;s++)this._sortBones(s,e,t);this.bones=e}_sortBones(e,t,s){if(s[e])return;s[e]=!0;let n=this.bones[e];if(!n)return;void 0===n._index&&(n._index=e);let i=n.getParent();i&&this._sortBones(this.bones.indexOf(i),t,s),t.push(n)}setCurrentPoseAsRest(){for(let e of this.bones)e.setCurrentPoseAsRest()}}var ey=e.i(7540),eb=e.i(57135),eT=e.i(93460);(0,eT.RegisterMultiMaterial)(),e.i(16594);var eA=e.i(76883),ex=e.i(60712);(0,ex.RegisterShaderMaterial)(),(0,e_.RegisterTexture)();var ew=e.i(66628),ev=e.i(45707);(0,ev.RegisterVertexBuffer)();var eM=e.i(31979),eC=e.i(55808);(0,B.RegisterAbstractMesh)(),e.i(74692),e.i(51715);var eF=e.i(84932),eE=e.i(85595),eR=e.i(53773),eS=e.i(53909),eO=e.i(18418),eI=e.i(38116);class eN extends eS.ShadowLight{get shadowFrustumSize(){return this._shadowFrustumSize}set shadowFrustumSize(e){this._shadowFrustumSize=e,this.forceProjectionMatrixCompute()}get shadowOrthoScale(){return this._shadowOrthoScale}set shadowOrthoScale(e){this._shadowOrthoScale=e,this.forceProjectionMatrixCompute()}get orthoLeft(){return this._orthoLeft}set orthoLeft(e){this._orthoLeft=e}get orthoRight(){return this._orthoRight}set orthoRight(e){this._orthoRight=e}get orthoTop(){return this._orthoTop}set orthoTop(e){this._orthoTop=e}get orthoBottom(){return this._orthoBottom}set orthoBottom(e){this._orthoBottom=e}constructor(e,t,s,n){super(e,s,n),this._shadowFrustumSize=0,this._shadowOrthoScale=.1,this.autoUpdateExtends=!0,this.autoCalcShadowZBounds=!1,this._orthoLeft=Number.MAX_VALUE,this._orthoRight=5e-324,this._orthoTop=5e-324,this._orthoBottom=Number.MAX_VALUE,this.position=t.scale(-1),this.direction=t}getClassName(){return"DirectionalLight"}getTypeID(){return G.Light.LIGHTTYPEID_DIRECTIONALLIGHT}_setDefaultShadowProjectionMatrix(e,t,s){this.shadowFrustumSize>0?this._setDefaultFixedFrustumShadowProjectionMatrix(e):this._setDefaultAutoExtendShadowProjectionMatrix(e,t,s)}_setDefaultFixedFrustumShadowProjectionMatrix(e){let t=this.getScene().activeCamera;el.Matrix.OrthoLHToRef(this.shadowFrustumSize,this.shadowFrustumSize,void 0!==this.shadowMinZ?this.shadowMinZ:t?t.minZ:0,void 0!==this.shadowMaxZ?this.shadowMaxZ:t?t.maxZ:1e4,e,this.getScene().getEngine().isNDCHalfZRange)}_setDefaultAutoExtendShadowProjectionMatrix(e,t,s){let n=this.getScene().activeCamera;if(this.autoUpdateExtends||this._orthoLeft===Number.MAX_VALUE){let e=el.Vector3.Zero();this._orthoLeft=Number.MAX_VALUE,this._orthoRight=-Number.MAX_VALUE,this._orthoTop=-Number.MAX_VALUE,this._orthoBottom=Number.MAX_VALUE;let n=Number.MAX_VALUE,i=-Number.MAX_VALUE;for(let o=0;o<s.length;o++){let a=s[o];if(!a)continue;let r=a.getBoundingInfo().boundingBox;for(let s=0;s<r.vectorsWorld.length;s++)el.Vector3.TransformCoordinatesToRef(r.vectorsWorld[s],t,e),e.x<this._orthoLeft&&(this._orthoLeft=e.x),e.y<this._orthoBottom&&(this._orthoBottom=e.y),e.x>this._orthoRight&&(this._orthoRight=e.x),e.y>this._orthoTop&&(this._orthoTop=e.y),this.autoCalcShadowZBounds&&(e.z<n&&(n=e.z),e.z>i&&(i=e.z))}this.autoCalcShadowZBounds&&(this._shadowMinZ=n,this._shadowMaxZ=i)}let i=this._orthoRight-this._orthoLeft,o=this._orthoTop-this._orthoBottom,a=void 0!==this.shadowMinZ?this.shadowMinZ:n?.minZ||0,r=void 0!==this.shadowMaxZ?this.shadowMaxZ:n?.maxZ||1e4,l=this.getScene().getEngine().useReverseDepthBuffer;el.Matrix.OrthoOffCenterLHToRef(this._orthoLeft-i*this.shadowOrthoScale,this._orthoRight+i*this.shadowOrthoScale,this._orthoBottom-o*this.shadowOrthoScale,this._orthoTop+o*this.shadowOrthoScale,l?r:a,l?a:r,e,this.getScene().getEngine().isNDCHalfZRange)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}transferToEffect(e,t){return this.computeTransformedInformation()?this._uniformBuffer.updateFloat4("vLightData",this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z,1,t):this._uniformBuffer.updateFloat4("vLightData",this.direction.x,this.direction.y,this.direction.z,1,t),this}transferToNodeMaterialEffect(e,t){return this.computeTransformedInformation()?e.setFloat3(t,this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z):e.setFloat3(t,this.direction.x,this.direction.y,this.direction.z),this}getDepthMinZ(e){let t=this._scene.getEngine();return!t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:1}getDepthMaxZ(e){let t=this._scene.getEngine();return t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:1}prepareLightSpecificDefines(e,t){e["DIRLIGHT"+t]=!0}}(0,eE.__decorate)([(0,eR.serialize)()],eN.prototype,"shadowFrustumSize",null),(0,eE.__decorate)([(0,eR.serialize)()],eN.prototype,"shadowOrthoScale",null),(0,eE.__decorate)([(0,eR.serialize)()],eN.prototype,"autoUpdateExtends",void 0),(0,eE.__decorate)([(0,eR.serialize)()],eN.prototype,"autoCalcShadowZBounds",void 0),(0,eE.__decorate)([(0,eR.serialize)("orthoLeft")],eN.prototype,"_orthoLeft",void 0),(0,eE.__decorate)([(0,eR.serialize)("orthoRight")],eN.prototype,"_orthoRight",void 0),(0,eE.__decorate)([(0,eR.serialize)("orthoTop")],eN.prototype,"_orthoTop",void 0),(0,eE.__decorate)([(0,eR.serialize)("orthoBottom")],eN.prototype,"_orthoBottom",void 0);let eB=!1;eB=!0,eO.Node.AddNodeConstructor("Light_Type_1",(e,t)=>()=>new eN(e,el.Vector3.Zero(),t)),(0,eI.RegisterClass)("BABYLON.DirectionalLight",eN);var ek=eS;class eP extends ek.ShadowLight{get shadowAngle(){return this._shadowAngle}set shadowAngle(e){this._shadowAngle=e,this.forceProjectionMatrixCompute()}get direction(){return this._direction}set direction(e){let t=this.needCube();if(this._direction=e,this.needCube()!==t&&this._shadowGenerators){let e=this._shadowGenerators.values();for(let t=e.next();!0!==t.done;t=e.next())t.value.recreateShadowMap()}}constructor(e,t,s,n){super(e,s,n),this._shadowAngle=Math.PI/2,this.position=t}getClassName(){return"PointLight"}getTypeID(){return G.Light.LIGHTTYPEID_POINTLIGHT}needCube(){return!this.direction}getShadowDirection(e){if(this.direction)return super.getShadowDirection(e);switch(e){case 0:return new el.Vector3(1,0,0);case 1:return new el.Vector3(-1,0,0);case 2:return new el.Vector3(0,-1,0);case 3:return new el.Vector3(0,1,0);case 4:return new el.Vector3(0,0,1);case 5:return new el.Vector3(0,0,-1)}return el.Vector3.Zero()}_setDefaultShadowProjectionMatrix(e,t,s){let n=this.getScene().activeCamera,i=this.getDepthMinZ(n),o=this.getDepthMaxZ(n),a=this.getScene().getEngine().useReverseDepthBuffer;el.Matrix.PerspectiveFovLHToRef(this.shadowAngle,1,a?o:i,a?i:o,e,!0,this._scene.getEngine().isNDCHalfZRange,void 0,a)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightFalloff",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}transferToEffect(e,t){let s=this._scene.floatingOriginOffset;return this.computeTransformedInformation()?this._uniformBuffer.updateFloat4("vLightData",this.transformedPosition.x-s.x,this.transformedPosition.y-s.y,this.transformedPosition.z-s.z,0,t):this._uniformBuffer.updateFloat4("vLightData",this.position.x-s.x,this.position.y-s.y,this.position.z-s.z,0,t),this._uniformBuffer.updateFloat4("vLightFalloff",this.range,this._inverseSquaredRange,0,0,t),this}transferToNodeMaterialEffect(e,t){let s=this._scene.floatingOriginOffset;return this.computeTransformedInformation()?e.setFloat3(t,this.transformedPosition.x-s.x,this.transformedPosition.y-s.y,this.transformedPosition.z-s.z):e.setFloat3(t,this.position.x-s.x,this.position.y-s.y,this.position.z-s.z),this}prepareLightSpecificDefines(e,t){e["POINTLIGHT"+t]=!0}}(0,eE.__decorate)([(0,eR.serialize)()],eP.prototype,"shadowAngle",null);let eL=!1;eL=!0,eO.Node.AddNodeConstructor("Light_Type_0",(e,t)=>()=>new eP(e,el.Vector3.Zero(),t)),(0,eI.RegisterClass)("BABYLON.PointLight",eP);var eG=e.i(63972);(0,eG.RegisterSpotLight)();class eD{static SetMatrix(e,t,s,n,i){let o=null;if("MODEL"===s.semantic?o=t.getWorldMatrix():"PROJECTION"===s.semantic?o=e.getProjectionMatrix():"VIEW"===s.semantic?o=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===s.semantic?o=el.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===s.semantic?o=t.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===s.semantic?o=t.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===s.semantic?o=t.getWorldMatrix().invert():"VIEWINVERSE"===s.semantic?o=e.getViewMatrix().invert():"PROJECTIONINVERSE"===s.semantic?o=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===s.semantic?o=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===s.semantic?o=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===s.semantic&&(o=el.Matrix.Transpose(t.getWorldMatrix().invert())),o)switch(s.type){case A.FLOAT_MAT2:i.setMatrix2x2(n,el.Matrix.GetAsMatrix2x2(o));break;case A.FLOAT_MAT3:i.setMatrix3x3(n,el.Matrix.GetAsMatrix3x3(o));break;case A.FLOAT_MAT4:i.setMatrix(n,o)}}static SetUniform(e,t,s,n){switch(n){case A.FLOAT:return e.setFloat(t,s),!0;case A.FLOAT_VEC2:return e.setVector2(t,el.Vector2.FromArray(s)),!0;case A.FLOAT_VEC3:return e.setVector3(t,el.Vector3.FromArray(s)),!0;case A.FLOAT_VEC4:return e.setVector4(t,el.Vector4.FromArray(s)),!0;default:return!1}}static GetWrapMode(e){switch(e){case x.CLAMP_TO_EDGE:return e_.Texture.CLAMP_ADDRESSMODE;case x.MIRRORED_REPEAT:return e_.Texture.MIRROR_ADDRESSMODE;case x.REPEAT:default:return e_.Texture.WRAP_ADDRESSMODE}}static GetByteStrideFromType(e){switch(e.type){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;default:return 1}}static GetTextureFilterMode(e){switch(e){case w.LINEAR:case w.LINEAR_MIPMAP_NEAREST:case w.LINEAR_MIPMAP_LINEAR:return e_.Texture.TRILINEAR_SAMPLINGMODE;case w.NEAREST:case w.NEAREST_MIPMAP_NEAREST:return e_.Texture.NEAREST_SAMPLINGMODE;default:return e_.Texture.BILINEAR_SAMPLINGMODE}}static GetBufferFromBufferView(e,t,s,n,i){s=t.byteOffset+s;let o=e.loadedBufferViews[t.buffer];if(s+n>o.byteLength)throw Error("Buffer access is out of range");let a=o.buffer;switch(s+=o.byteOffset,i){case b.BYTE:return new Int8Array(a,s,n);case b.UNSIGNED_BYTE:return new Uint8Array(a,s,n);case b.SHORT:return new Int16Array(a,s,n);case b.UNSIGNED_SHORT:return new Uint16Array(a,s,n);default:return new Float32Array(a,s,n)}}static GetBufferFromAccessor(e,t){let s=e.bufferViews[t.bufferView],n=t.count*eD.GetByteStrideFromType(t);return eD.GetBufferFromBufferView(e,s,t.byteOffset,n,t.componentType)}static DecodeBufferToText(e){let t="",s=e.byteLength;for(let n=0;n<s;++n)t+=String.fromCharCode(e[n]);return t}static GetDefaultMaterial(e){return eD._DefaultMaterial||(ey.Effect.ShadersStore.GLTFDefaultMaterialVertexShader="precision highp float;\n\nuniform mat4 worldView;\nuniform mat4 projection;\n\nattribute vec3 position;\n\nvoid main(void)\n{\n gl_Position = projection * worldView * vec4(position, 1.0);\n}",ey.Effect.ShadersStore.GLTFDefaultMaterialPixelShader="precision highp float;\n\nuniform vec4 u_emission;\n\nvoid main(void)\n{\n gl_FragColor = u_emission;\n}",eD._DefaultMaterial=new ex.ShaderMaterial("GLTFDefaultMaterial",e,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},{attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:[],needAlphaBlending:!1}),eD._DefaultMaterial.setColor4("u_emission",new eh.Color4(.5,.5,.5,1))),eD._DefaultMaterial}}eD._DefaultMaterial=null,e.s(["GLTFUtils",0,eD],86408);var eV=e.i(40984),eK=e.i(28978);(p=F||(F={}))[p.IDENTIFIER=1]="IDENTIFIER",p[p.UNKNOWN=2]="UNKNOWN",p[p.END_OF_INPUT=3]="END_OF_INPUT";class eH{constructor(e){this._pos=0,this.currentToken=F.UNKNOWN,this.currentIdentifier="",this.currentString="",this.isLetterOrDigitPattern=/^[a-zA-Z0-9]+$/,this._toParse=e,this._maxPos=e.length}getNextToken(){if(this.isEnd())return F.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=F.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=F.IDENTIFIER,this.currentIdentifier=this.currentString;!this.isEnd()&&(this.isLetterOrDigitPattern.test(this.currentString=this.peek())||"_"===this.currentString);)this.currentIdentifier+=this.currentString,this.forward();return this.currentToken}peek(){return this._toParse[this._pos]}read(){return this._toParse[this._pos++]}forward(){this._pos++}isEnd(){return this._pos>=this._maxPos}}let eU=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],e$=["world","view","projection","worldView","worldViewProjection","mBones"],ez=["translation","rotation","scale"],eq=["position","rotationQuaternion","scaling"],eW=(e,t,s)=>{for(let n in e){let i=e[n];s[t][n]=i}},ej=e=>{if(e)for(let t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},eX=e=>{if("NORMAL"===e.semantic)return"normal";if("POSITION"===e.semantic)return"position";if("JOINT"===e.semantic)return"matricesIndices";if("WEIGHT"===e.semantic)return"matricesWeights";if("COLOR"===e.semantic)return"color";else if(e.semantic&&-1!==e.semantic.indexOf("TEXCOORD_")){let t=Number(e.semantic.split("_")[1]);return"uv"+(0===t?"":t+1)}return null},eY=e=>{let t;if(e.translation||e.rotation||e.scale){let s=el.Vector3.FromArray(e.scale||[1,1,1]),n=el.Quaternion.FromArray(e.rotation||[0,0,0,1]),i=el.Vector3.FromArray(e.translation||[0,0,0]);t=el.Matrix.Compose(s,n,i)}else t=el.Matrix.FromArray(e.matrix);return t},eQ=(e,t,s,n)=>{for(let e=0;e<n.bones.length;e++)if(n.bones[e].name===s)return n.bones[e];let i=e.nodes;for(let o in i){let a=i[o];if(!a.jointName)continue;let r=a.children;for(let i=0;i<r.length;i++){let l=e.nodes[r[i]];if(l.jointName&&l.jointName===s){let s=eY(a),i=new ed.Bone(a.name||"",n,eQ(e,t,a.jointName,n),s);return i.id=o,i}}}return null},eZ=(e,t)=>{for(let s=0;s<e.length;s++){let n=e[s];for(let e=0;e<n.node.children.length;e++)if(n.node.children[e]===t)return n.bone}return null},eJ=(e,t)=>{let s=e.nodes,n=s[t];if(n)return{node:n,id:t};for(let e in s)if((n=s[e]).jointName===t)return{node:n,id:e};return null},e0=(e,t)=>{for(let s=0;s<e.jointNames.length;s++)if(e.jointNames[s]===t)return!0;return!1},e1=(e,t,s,n,i)=>{let o;if(i||(e.scene._blockEntityCollection=!!e.assetContainer,(i=new I.Mesh(t.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,i.id=n),!t.babylonNode)return i;let a=[],r=null,l=[],h=[],u=[],c=[];for(let t=0;t<s.length;t++){let n=s[t],i=e.meshes[n];if(i)for(let t=0;t<i.primitives.length;t++){let s,n,o=new ew.VertexData,d=i.primitives[t];d.mode;let _=d.attributes;for(let t in _)if(s=e.accessors[_[t]],n=eD.GetBufferFromAccessor(e,s),"NORMAL"===t)o.normals=new Float32Array(n.length),o.normals.set(n);else if("POSITION"===t){if(eo.HomogeneousCoordinates){o.positions=new Float32Array(n.length-n.length/4);for(let e=0;e<n.length;e+=4)o.positions[e]=n[e],o.positions[e+1]=n[e+1],o.positions[e+2]=n[e+2]}else o.positions=new Float32Array(n.length),o.positions.set(n);h.push(o.positions.length)}else if(-1!==t.indexOf("TEXCOORD_")){let e=Number(t.split("_")[1]),s=ev.VertexBuffer.UVKind+(0===e?"":e+1),i=new Float32Array(n.length);i.set(n),ej(i),o.set(i,s)}else"JOINT"===t?(o.matricesIndices=new Float32Array(n.length),o.matricesIndices.set(n)):"WEIGHT"===t?(o.matricesWeights=new Float32Array(n.length),o.matricesWeights.set(n)):"COLOR"===t&&(o.colors=new Float32Array(n.length),o.colors.set(n));if(s=e.accessors[d.indices])o.indices=new Int32Array((n=eD.GetBufferFromAccessor(e,s)).length),o.indices.set(n),c.push(o.indices.length);else{let e=[];for(let t=0;t<o.positions.length/3;t++)e.push(t);o.indices=new Int32Array(e),c.push(o.indices.length)}r?r.merge(o):r=o;let p=e.scene.getMaterialById(d.material);a.push(null===p?eD.GetDefaultMaterial(e.scene):p),l.push(0===l.length?0:l[l.length-1]+h[h.length-2]),u.push(0===u.length?0:u[u.length-1]+c[c.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,a.length>1?(o=new eT.MultiMaterial("multimat"+n,e.scene)).subMaterials=a:o=new eA.StandardMaterial("multimat"+n,e.scene),1===a.length&&(o=a[0]),o._parentContainer=e.assetContainer,i.material||(i.material=o),new eM.Geometry(n,e.scene,r,!1,i),i.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,i.subMeshes=[];let d=0;for(let t=0;t<s.length;t++){let n=s[t],o=e.meshes[n];if(o)for(let e=0;e<o.primitives.length;e++)o.primitives[e].mode,eC.SubMesh.AddToMesh(d,l[d],h[d],u[d],c[d],i,i,!0),d++}return i},e2=(e,t,s,n)=>{e.position&&(e.position=t),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=s),e.scaling&&(e.scaling=n)},e3=(e,t,s,n=!1)=>{let i=e.nodes[t],o=null;if(n=!e.importOnlyMeshes||!!n||!e.importMeshesNames||-1!==e.importMeshesNames.indexOf(i.name||"")||0===e.importMeshesNames.length,!i.jointName&&n&&null!==(o=((e,t,s)=>{let n=null;if(e.importOnlyMeshes&&(t.skin||t.meshes)&&e.importMeshesNames&&e.importMeshesNames.length>0&&-1===e.importMeshesNames.indexOf(t.name||""))return null;if(t.skin){if(t.meshes){let i=e.skins[t.skin],o=e1(e,t,t.meshes,s,t.babylonNode);o.skeleton=e.scene.getLastSkeletonById(t.skin),null===o.skeleton&&(o.skeleton=((e,t,s,n)=>{if(n||(n=new eg(t.name||"","",e.scene)),!t.babylonSkeleton)return n;let i=[],o=[];((e,t,s,n)=>{for(let i in e.nodes){let o=e.nodes[i];if(!o.jointName||e0(s,o.jointName))continue;let a=eY(o),r=new ed.Bone(o.name||"",t,null,a);r.id=i,n.push({bone:r,node:o,id:i})}for(let e=0;e<n.length;e++){let t=n[e],s=t.node.children;for(let e=0;e<s.length;e++){let i=null;for(let t=0;t<n.length;t++)if(n[t].id===s[e]){i=n[t];break}i&&(i.bone._parent=t.bone,t.bone.children.push(i.bone))}}})(e,n,t,i),n.bones=[];for(let s=0;s<t.jointNames.length;s++){let a,r=eJ(e,t.jointNames[s]);if(!r)continue;let l=r.node;if(!l){S.Tools.Warn("Joint named "+t.jointNames[s]+" does not exist");continue}let h=r.id,u=e.scene.getBoneById(h);if(u){n.bones.push(u);continue}let c=null;for(let i=0;i<s;i++){let s=eJ(e,t.jointNames[i]);if(!s)continue;let o=s.node;if(!o){S.Tools.Warn("Joint named "+t.jointNames[i]+" does not exist when looking for parent");continue}let r=o.children;if(r){a=!1;for(let s=0;s<r.length;s++)if(r[s]===h){c=eQ(e,t,t.jointNames[i],n),a=!0;break}if(a)break}}let d=eY(l);!c&&i.length>0&&(c=eZ(i,h))&&-1===o.indexOf(c)&&o.push(c),new ed.Bone(l.jointName||"",n,c,d).id=h}let a=n.bones;n.bones=[];for(let s=0;s<t.jointNames.length;s++){let i=eJ(e,t.jointNames[s]);if(i){for(let e=0;e<a.length;e++)if(a[e].id===i.id){n.bones.push(a[e]);break}}}n.prepare();for(let e=0;e<o.length;e++)n.bones.push(o[e]);return n})(e,i,0,i.babylonSkeleton),i.babylonSkeleton||(i.babylonSkeleton=o.skeleton)),n=o}}else if(t.meshes)n=e1(e,t,t.mesh?[t.mesh]:t.meshes,s,t.babylonNode);else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){let s=e.cameras[t.camera];if(s){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===s.type){let s=new eu.FreeCamera(t.camera,el.Vector3.Zero(),e.scene,!1);s.name=t.name||"",s.mode=D.Camera.ORTHOGRAPHIC_CAMERA,s.attachControl(),n=s,s._parentContainer=e.assetContainer}else if("perspective"===s.type){let i=s[s.type],o=new eu.FreeCamera(t.camera,el.Vector3.Zero(),e.scene,!1);o.name=t.name||"",o.attachControl(),i.aspectRatio||(i.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),i.znear&&i.zfar&&(o.maxZ=i.zfar,o.minZ=i.znear),n=o,o._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{let s=e.lights[t.light];if(s){if("ambient"===s.type){let i=s[s.type],o=new eF.HemisphericLight(t.light,el.Vector3.Zero(),e.scene);o.name=t.name||"",i.color&&(o.diffuse=eh.Color3.FromArray(i.color)),n=o}else if("directional"===s.type){let i=s[s.type],o=new eN(t.light,el.Vector3.Zero(),e.scene);o.name=t.name||"",i.color&&(o.diffuse=eh.Color3.FromArray(i.color)),n=o}else if("point"===s.type){let i=s[s.type],o=new eP(t.light,el.Vector3.Zero(),e.scene);o.name=t.name||"",i.color&&(o.diffuse=eh.Color3.FromArray(i.color)),n=o}else if("spot"===s.type){let i=s[s.type],o=new eG.SpotLight(t.light,el.Vector3.Zero(),el.Vector3.Zero(),0,0,e.scene);o.name=t.name||"",i.color&&(o.diffuse=eh.Color3.FromArray(i.color)),i.fallOfAngle&&(o.angle=i.fallOfAngle),i.fallOffExponent&&(o.exponent=i.fallOffExponent),n=o}}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;else if(null===n){e.scene._blockEntityCollection=!!e.assetContainer;let s=new I.Mesh(t.name||"",e.scene);s._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,t.babylonNode=s,n=s}}if(null!==n){if(t.matrix&&n instanceof I.Mesh){var i=n;if(t.matrix){let e=new el.Vector3(0,0,0),s=new el.Quaternion,n=new el.Vector3(0,0,0);el.Matrix.FromArray(t.matrix).decompose(n,s,e),e2(i,e,s,n)}else t.translation&&t.rotation&&t.scale&&e2(i,el.Vector3.FromArray(t.translation),el.Quaternion.FromArray(t.rotation),el.Vector3.FromArray(t.scale));i.computeWorldMatrix(!0)}else{let e=t.translation||[0,0,0],s=t.rotation||[0,0,0,1],i=t.scale||[1,1,1];e2(n,el.Vector3.FromArray(e),el.Quaternion.FromArray(s),el.Vector3.FromArray(i))}n.updateCache(!0),t.babylonNode=n}return n})(e,i,t))&&(o.id=t,o.parent=s),i.children)for(let t=0;t<i.children.length;t++)e3(e,i.children[t],o,n)},e7=e=>{let t=e.currentScene;if(t)for(let s=0;s<t.nodes.length;s++)e3(e,t.nodes[s],null);else for(let s in e.scenes){t=e.scenes[s];for(let s=0;s<t.nodes.length;s++)e3(e,t.nodes[s],null)}(e=>{for(let t in e.animations){let s=e.animations[t];if(!s.channels||!s.samplers)continue;let n=null;for(let i=0;i<s.channels.length;i++){let o,a,r=s.channels[i],l=s.samplers[r.sampler];if(!l)continue;s.parameters?(o=s.parameters[l.input],a=s.parameters[l.output]):(o=l.input,a=l.output);let h=eD.GetBufferFromAccessor(e,e.accessors[o]),u=eD.GetBufferFromAccessor(e,e.accessors[a]),c=r.target.id,d=e.scene.getNodeById(c);if(null===d&&(d=e.scene.getNodeByName(c)),null===d){S.Tools.Warn("Creating animation named "+t+". But cannot find node named "+c+" to attach to");continue}let _=d instanceof ed.Bone,p=r.target.path,m=ez.indexOf(p);-1!==m&&(p=eq[m]);let f=ec.Animation.ANIMATIONTYPE_MATRIX;_||("rotationQuaternion"===p?(f=ec.Animation.ANIMATIONTYPE_QUATERNION,d.rotationQuaternion=new el.Quaternion):f=ec.Animation.ANIMATIONTYPE_VECTOR3);let g=null,y=[],b=0,T=!1;_&&n&&n.getKeys().length===h.length&&(g=n,T=!0),T||(e.scene._blockEntityCollection=!!e.assetContainer,g=new ec.Animation(t,_?"_matrix":p,1,f,ec.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(let e=0;e<h.length;e++){let t;if("rotationQuaternion"===p?(t=el.Quaternion.FromArray([u[b],u[b+1],u[b+2],u[b+3]]),b+=4):(t=el.Vector3.FromArray([u[b],u[b+1],u[b+2]]),b+=3),_){let s=d,i=el.Vector3.Zero(),o=new el.Quaternion,a=el.Vector3.Zero(),r=s.getBaseMatrix();T&&n&&(r=n.getKeys()[e].value),r.decompose(a,o,i),"position"===p?i=t:"rotationQuaternion"===p?o=t:a=t,t=el.Matrix.Compose(a,o,i)}T?n&&(n.getKeys()[e].value=t):y.push({frame:h[e],value:t})}!T&&g&&(g.setKeys(y),d.animations.push(g)),n=g,e.scene.stopAnimation(d),e.scene.beginAnimation(d,0,h[h.length-1],!0,1)}}})(e);for(let t=0;t<e.scene.skeletons.length;t++){let s=e.scene.skeletons[t];e.scene.beginAnimation(s,0,Number.MAX_VALUE,!0,1)}},e4=(e,t,s)=>{for(let n in t.uniforms){let i=t.uniforms[n],o=t.parameters[i];if(e.currentIdentifier===n&&o.semantic&&!o.source&&!o.node){let e=eU.indexOf(o.semantic);if(-1!==e)return delete s[n],e$[e]}}return e.currentIdentifier},e9=e=>{for(let t in e.materials)e8.LoadMaterialAsync(e,t,()=>{},()=>{})};class e6{static CreateRuntime(e,t,s){let n={extensions:{},accessors:{},buffers:{},bufferViews:{},meshes:{},lights:{},cameras:{},nodes:{},images:{},textures:{},shaders:{},programs:{},samplers:{},techniques:{},materials:{},animations:{},skins:{},extensionsUsed:[],scenes:{},buffersCount:0,shaderscount:0,scene:t,rootUrl:s,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&eW(e.extensions,"extensions",n),e.extensionsUsed&&eW(e.extensionsUsed,"extensionsUsed",n),e.buffers&&((e,t)=>{for(let s in e){let n=e[s];t.buffers[s]=n,t.buffersCount++}})(e.buffers,n),e.bufferViews&&eW(e.bufferViews,"bufferViews",n),e.accessors&&eW(e.accessors,"accessors",n),e.meshes&&eW(e.meshes,"meshes",n),e.lights&&eW(e.lights,"lights",n),e.cameras&&eW(e.cameras,"cameras",n),e.nodes&&eW(e.nodes,"nodes",n),e.images&&eW(e.images,"images",n),e.textures&&eW(e.textures,"textures",n),e.shaders&&((e,t)=>{for(let s in e){let n=e[s];t.shaders[s]=n,t.shaderscount++}})(e.shaders,n),e.programs&&eW(e.programs,"programs",n),e.samplers&&eW(e.samplers,"samplers",n),e.techniques&&eW(e.techniques,"techniques",n),e.materials&&eW(e.materials,"materials",n),e.animations&&eW(e.animations,"animations",n),e.skins&&eW(e.skins,"skins",n),e.scenes&&(n.scenes=e.scenes),e.scene&&e.scenes&&(n.currentScene=e.scenes[e.scene]),n}static LoadBufferAsync(e,t,s,n,i){let o=e.buffers[t];S.Tools.IsBase64(o.uri)?setTimeout(()=>s(new Uint8Array(S.Tools.DecodeBase64(o.uri)))):S.Tools.LoadFile(e.rootUrl+o.uri,e=>s(new Uint8Array(e)),i,void 0,!0,e=>{e&&n(e.status+" "+e.statusText)})}static LoadTextureBufferAsync(e,t,s,n){let i=e.textures[t];if(!i||!i.source)return void n("");if(i.babylonTexture)return void s(null);let o=e.images[i.source];S.Tools.IsBase64(o.uri)?setTimeout(()=>s(new Uint8Array(S.Tools.DecodeBase64(o.uri)))):S.Tools.LoadFile(e.rootUrl+o.uri,e=>s(new Uint8Array(e)),void 0,void 0,!0,e=>{e&&n(e.status+" "+e.statusText)})}static CreateTextureAsync(e,t,s,n){let i=e.textures[t];if(i.babylonTexture)return void n(i.babylonTexture);let o=e.samplers[i.sampler],a=o.minFilter===w.NEAREST_MIPMAP_NEAREST||o.minFilter===w.NEAREST_MIPMAP_LINEAR||o.minFilter===w.LINEAR_MIPMAP_NEAREST||o.minFilter===w.LINEAR_MIPMAP_LINEAR,r=e_.Texture.BILINEAR_SAMPLINGMODE,l=null==s?new Blob:new Blob([(0,eK.GetBlobBufferSource)(s)]),h=URL.createObjectURL(l),u=()=>URL.revokeObjectURL(h),c=new e_.Texture(h,e.scene,!a,!0,r,u,u);void 0!==o.wrapS&&(c.wrapU=eD.GetWrapMode(o.wrapS)),void 0!==o.wrapT&&(c.wrapV=eD.GetWrapMode(o.wrapT)),c.name=t,i.babylonTexture=c,n(c)}static LoadShaderStringAsync(e,t,s,n){let i=e.shaders[t];if(S.Tools.IsBase64(i.uri)){let e=atob(i.uri.split(",")[1]);s&&s(e)}else S.Tools.LoadFile(e.rootUrl+i.uri,s,void 0,void 0,!1,e=>{e&&n&&n(e.status+" "+e.statusText)})}static LoadMaterialAsync(e,t,s,n){let i=e.materials[t];if(!i.technique){n&&n("No technique found.");return}let o=e.techniques[i.technique];if(!o){e.scene._blockEntityCollection=!!e.assetContainer;let n=new eA.StandardMaterial(t,e.scene);n._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,n.diffuseColor=new eh.Color3(.5,.5,.5),n.sideOrientation=eb.Material.CounterClockWiseSideOrientation,s(n);return}let a=e.programs[o.program],r=o.states,l=ey.Effect.ShadersStore[a.vertexShader+"VertexShader"],h=ey.Effect.ShadersStore[a.fragmentShader+"PixelShader"],u="",c="",d=new eH(l),_=new eH(h),p={},m=[],f=[],g=[];for(let e in o.uniforms){let t=o.uniforms[e],s=o.parameters[t];if(p[e]=s,!s.semantic||s.node||s.source)s.type===A.SAMPLER_2D?g.push(e):m.push(e);else{let t=eU.indexOf(s.semantic);-1!==t?(m.push(e$[t]),delete p[e]):m.push(e)}}for(let e in o.attributes){let t=o.attributes[e],s=o.parameters[t];if(s.semantic){let e=eX(s);e&&f.push(e)}}for(;!d.isEnd()&&d.getNextToken();){if(d.currentToken!==F.IDENTIFIER){u+=d.currentString;continue}let e=!1;for(let t in o.attributes){let s=o.attributes[t],n=o.parameters[s];if(d.currentIdentifier===t&&n.semantic){u+=eX(n),e=!0;break}}e||(u+=e4(d,o,p))}for(;!_.isEnd()&&_.getNextToken();){if(_.currentToken!==F.IDENTIFIER){c+=_.currentString;continue}c+=e4(_,o,p)}let y={vertex:a.vertexShader+t,fragment:a.fragmentShader+t},b={attributes:f,uniforms:m,samplers:g,needAlphaBlending:r&&r.enable&&-1!==r.enable.indexOf(3042)};ey.Effect.ShadersStore[a.vertexShader+t+"VertexShader"]=u,ey.Effect.ShadersStore[a.fragmentShader+t+"PixelShader"]=c;let T=new ex.ShaderMaterial(t,e.scene,y,b);if(T.onError=(e,t)=>{T.dispose(!0),n("Cannot compile program named "+a.name+". Error: "+t+". Default material will be applied")},T.onCompiled=t=>{((e,t,s,n,i)=>{let o=n.values||s.parameters,a=s.uniforms;for(let s in i){let r=i[s],l=r.type,h=o[a[s]];if(void 0===h&&(h=r.value),!h)continue;let u=e=>s=>{r.value&&e&&(t.setTexture(e,s),delete i[e])};l===A.SAMPLER_2D?e8.LoadTextureAsync(e,n.values?h:r.value,u(s),()=>u(null)):r.value&&eD.SetUniform(t,s,n.values?h:r.value,l)&&delete i[s]}})(e,T,o,i,p),T.onBind=t=>{((e,t,s,n,i,o,a)=>{let r=o.values||i.parameters;for(let a in s){let l=s[a],h=l.type;if(h===A.FLOAT_MAT2||h===A.FLOAT_MAT3||h===A.FLOAT_MAT4)if(!l.semantic||l.source||l.node){if(l.semantic&&(l.source||l.node)){let e=t.scene.getNodeByName(l.source||l.node||"");if(null===e&&(e=t.scene.getNodeById(l.source||l.node||"")),null===e)continue;eD.SetMatrix(t.scene,e,l,a,n.getEffect())}}else eD.SetMatrix(t.scene,e,l,a,n.getEffect());else{let e=r[i.uniforms[a]];if(!e)continue;if(h===A.SAMPLER_2D){let s=t.textures[o.values?e:l.value].babylonTexture;if(null==s)continue;n.getEffect().setTexture(a,s)}else eD.SetUniform(n.getEffect(),a,e,h)}}a(n)})(t,e,p,T,o,i,s)}},T.sideOrientation=eb.Material.CounterClockWiseSideOrientation,r&&r.functions){let e=r.functions;e.cullFace&&e.cullFace[0]!==M.BACK&&(T.backFaceCulling=!1);let t=e.blendFuncSeparate;t&&(t[0]===C.SRC_ALPHA&&t[1]===C.ONE_MINUS_SRC_ALPHA&&t[2]===C.ONE&&t[3]===C.ONE?T.alphaMode=eV.Constants.ALPHA_COMBINE:t[0]===C.ONE&&t[1]===C.ONE&&t[2]===C.ZERO&&t[3]===C.ONE?T.alphaMode=eV.Constants.ALPHA_ONEONE:t[0]===C.SRC_ALPHA&&t[1]===C.ONE&&t[2]===C.ZERO&&t[3]===C.ONE?T.alphaMode=eV.Constants.ALPHA_ADD:t[0]===C.ZERO&&t[1]===C.ONE_MINUS_SRC_COLOR&&t[2]===C.ONE&&t[3]===C.ONE?T.alphaMode=eV.Constants.ALPHA_SUBTRACT:t[0]===C.DST_COLOR&&t[1]===C.ZERO&&t[2]===C.ONE&&t[3]===C.ONE?T.alphaMode=eV.Constants.ALPHA_MULTIPLY:t[0]===C.SRC_ALPHA&&t[1]===C.ONE_MINUS_SRC_COLOR&&t[2]===C.ONE&&t[3]===C.ONE&&(T.alphaMode=eV.Constants.ALPHA_MAXIMIZED))}}}class e5{static RegisterExtension(e){e5.Extensions[e.name]?S.Tools.Error('Tool with the same name "'+e.name+'" already exists'):e5.Extensions[e.name]=e}dispose(){}_importMeshAsync(e,t,s,n,i,o,a,r){return t.useRightHandedSystem=!0,e8.LoadRuntimeAsync(t,s,n,t=>{t.assetContainer=i,t.importOnlyMeshes=!0,""===e?t.importMeshesNames=[]:"string"==typeof e?t.importMeshesNames=[e]:!e||e instanceof Array?(t.importMeshesNames=[],S.Tools.Warn("Argument meshesNames must be of type string or string[]")):t.importMeshesNames=[e],this._createNodes(t);let s=[],n=[];for(let e in t.nodes){let n=t.nodes[e];n.babylonNode instanceof B.AbstractMesh&&s.push(n.babylonNode)}for(let e in t.skins){let s=t.skins[e];s.babylonSkeleton instanceof eg&&n.push(s.babylonSkeleton)}this._loadBuffersAsync(t,()=>{this._loadShadersAsync(t,()=>{e9(t),e7(t),!eo.IncrementalLoading&&o&&o(s,n)})}),eo.IncrementalLoading&&o&&o(s,n)},r),!0}importMeshAsync(e,t,s,n,i,o){return new Promise((a,r)=>{this._importMeshAsync(e,t,n,i,s,(e,t)=>{a({meshes:e,particleSystems:[],skeletons:t,animationGroups:[],lights:[],transformNodes:[],geometries:[],spriteManagers:[]})},o,e=>{r(Error(e))})})}_loadAsync(e,t,s,n,i,o){e.useRightHandedSystem=!0,e8.LoadRuntimeAsync(e,t,s,e=>{e8.LoadRuntimeExtensionsAsync(e,()=>{this._createNodes(e),this._loadBuffersAsync(e,()=>{this._loadShadersAsync(e,()=>{e9(e),e7(e),eo.IncrementalLoading||n()})}),eo.IncrementalLoading&&n()},o)},o)}async loadAsync(e,t,s,n){return await new Promise((i,o)=>{this._loadAsync(e,t,s,()=>{i()},n,e=>{o(Error(e))})})}_loadShadersAsync(e,t){let s=!1,n=(s,n)=>{e8.LoadShaderStringAsync(e,s,i=>{i instanceof ArrayBuffer||(e.loadedShaderCount++,i&&(ey.Effect.ShadersStore[s+(n.type===T.VERTEX?"VertexShader":"PixelShader")]=i),e.loadedShaderCount===e.shaderscount&&t())},()=>{S.Tools.Error("Error when loading shader program named "+s+" located at "+n.uri)})};for(let t in e.shaders){s=!0;let i=e.shaders[t];i?n.bind(this,t,i)():S.Tools.Error("No shader named: "+t)}s||t()}_loadBuffersAsync(e,t){let s=!1,n=(s,n)=>{e8.LoadBufferAsync(e,s,i=>{e.loadedBufferCount++,i&&(i.byteLength!=e.buffers[s].byteLength&&S.Tools.Error("Buffer named "+s+" is length "+i.byteLength+". Expected: "+n.byteLength),e.loadedBufferViews[s]=i),e.loadedBufferCount===e.buffersCount&&t()},()=>{S.Tools.Error("Error when loading buffer named "+s+" located at "+n.uri)})};for(let t in e.buffers){s=!0;let i=e.buffers[t];i?n.bind(this,t,i)():S.Tools.Error("No buffer named: "+t)}s||t()}_createNodes(e){let t=e.currentScene;if(t)for(let s=0;s<t.nodes.length;s++)e3(e,t.nodes[s],null);else for(let s in e.scenes){t=e.scenes[s];for(let s=0;s<t.nodes.length;s++)e3(e,t.nodes[s],null)}}}e5.Extensions={};class e8{constructor(e){this._name=e}get name(){return this._name}loadRuntimeAsync(e,t,s,n,i){return!1}loadRuntimeExtensionsAsync(e,t,s){return!1}loadBufferAsync(e,t,s,n,i){return!1}loadTextureBufferAsync(e,t,s,n){return!1}createTextureAsync(e,t,s,n,i){return!1}loadShaderStringAsync(e,t,s,n){return!1}loadMaterialAsync(e,t,s,n){return!1}static LoadRuntimeAsync(e,t,s,n,i){e8._ApplyExtensions(o=>o.loadRuntimeAsync(e,t,s,n,i),()=>{setTimeout(()=>{n&&n(e6.CreateRuntime(t.json,e,s))})})}static LoadRuntimeExtensionsAsync(e,t,s){e8._ApplyExtensions(n=>n.loadRuntimeExtensionsAsync(e,t,s),()=>{setTimeout(()=>{t()})})}static LoadBufferAsync(e,t,s,n,i){e8._ApplyExtensions(o=>o.loadBufferAsync(e,t,s,n,i),()=>{e6.LoadBufferAsync(e,t,s,n,i)})}static LoadTextureAsync(e,t,s,n){e8._LoadTextureBufferAsync(e,t,i=>{i&&e8._CreateTextureAsync(e,t,i,s,n)},n)}static LoadShaderStringAsync(e,t,s,n){e8._ApplyExtensions(i=>i.loadShaderStringAsync(e,t,s,n),()=>{e6.LoadShaderStringAsync(e,t,s,n)})}static LoadMaterialAsync(e,t,s,n){e8._ApplyExtensions(i=>i.loadMaterialAsync(e,t,s,n),()=>{e6.LoadMaterialAsync(e,t,s,n)})}static _LoadTextureBufferAsync(e,t,s,n){e8._ApplyExtensions(i=>i.loadTextureBufferAsync(e,t,s,n),()=>{e6.LoadTextureBufferAsync(e,t,s,n)})}static _CreateTextureAsync(e,t,s,n,i){e8._ApplyExtensions(o=>o.createTextureAsync(e,t,s,n,i),()=>{e6.CreateTextureAsync(e,t,s,n)})}static _ApplyExtensions(e,t){for(let t in e5.Extensions)if(e(e5.Extensions[t]))return;t()}}eo._CreateGLTF1Loader=()=>new e5,e.s(["GLTFLoader",0,e5,"GLTFLoaderBase",0,e6,"GLTFLoaderExtension",0,e8],97810);class te extends e8{constructor(){super("KHR_binary_glTF")}loadRuntimeAsync(e,t,s,n){let i=t.json.extensionsUsed;return!!i&&-1!==i.indexOf(this.name)&&!!t.bin&&(this._bin=t.bin,n(e6.CreateRuntime(t.json,e,s)),!0)}loadBufferAsync(e,t,s,n){return -1!==e.extensionsUsed.indexOf(this.name)&&"binary_glTF"===t&&(this._bin.readAsync(0,this._bin.byteLength).then(s,e=>n(e.message)),!0)}loadTextureBufferAsync(e,t,s){let n=e.textures[t],i=e.images[n.source];if(!i.extensions||!(this.name in i.extensions))return!1;let o=i.extensions[this.name],a=e.bufferViews[o.bufferView];return s(eD.GetBufferFromBufferView(e,a,0,a.byteLength,b.UNSIGNED_BYTE)),!0}loadShaderStringAsync(e,t,s){let n=e.shaders[t];if(!n.extensions||!(this.name in n.extensions))return!1;let i=n.extensions[this.name],o=e.bufferViews[i.bufferView],a=eD.GetBufferFromBufferView(e,o,0,o.byteLength,b.UNSIGNED_BYTE);return setTimeout(()=>{s(eD.DecodeBufferToText(a))}),!0}}e5.RegisterExtension(new te),e.s(["GLTFBinaryExtension",0,te],90620);class tt extends e8{constructor(){super("KHR_materials_common")}loadRuntimeExtensionsAsync(e){if(!e.extensions)return!1;let t=e.extensions[this.name];if(!t)return!1;let s=t.lights;if(s)for(let t in s){let n=s[t];switch(n.type){case"ambient":{let t=new eF.HemisphericLight(n.name,new el.Vector3(0,1,0),e.scene),s=n.ambient;s&&(t.diffuse=eh.Color3.FromArray(s.color||[1,1,1]));break}case"point":{let t=new eP(n.name,new el.Vector3(10,10,10),e.scene),s=n.point;s&&(t.diffuse=eh.Color3.FromArray(s.color||[1,1,1]));break}case"directional":{let t=new eN(n.name,new el.Vector3(0,-1,0),e.scene),s=n.directional;s&&(t.diffuse=eh.Color3.FromArray(s.color||[1,1,1]));break}case"spot":{let t=n.spot;t&&(new eG.SpotLight(n.name,new el.Vector3(0,10,0),new el.Vector3(0,-1,0),t.fallOffAngle||Math.PI,t.fallOffExponent||0,e.scene).diffuse=eh.Color3.FromArray(t.color||[1,1,1]));break}default:S.Tools.Warn('GLTF Material Common extension: light type "'+n.type+"” not supported")}}return!1}loadMaterialAsync(e,t,s,n){let i=e.materials[t];if(!i||!i.extensions)return!1;let o=i.extensions[this.name];if(!o)return!1;let a=new eA.StandardMaterial(t,e.scene);return a.sideOrientation=eb.Material.CounterClockWiseSideOrientation,"CONSTANT"===o.technique&&(a.disableLighting=!0),a.backFaceCulling=void 0!==o.doubleSided&&!o.doubleSided,a.alpha=void 0===o.values.transparency?1:o.values.transparency,a.specularPower=void 0===o.values.shininess?0:o.values.shininess,"string"==typeof o.values.ambient?this._loadTexture(e,o.values.ambient,a,"ambientTexture",n):a.ambientColor=eh.Color3.FromArray(o.values.ambient||[0,0,0]),"string"==typeof o.values.diffuse?this._loadTexture(e,o.values.diffuse,a,"diffuseTexture",n):a.diffuseColor=eh.Color3.FromArray(o.values.diffuse||[0,0,0]),"string"==typeof o.values.emission?this._loadTexture(e,o.values.emission,a,"emissiveTexture",n):a.emissiveColor=eh.Color3.FromArray(o.values.emission||[0,0,0]),"string"==typeof o.values.specular?this._loadTexture(e,o.values.specular,a,"specularTexture",n):a.specularColor=eh.Color3.FromArray(o.values.specular||[0,0,0]),!0}_loadTexture(e,t,s,n,i){e6.LoadTextureBufferAsync(e,t,i=>{e6.CreateTextureAsync(e,t,i,e=>s[n]=e)},i)}}e5.RegisterExtension(new tt),e.s(["GLTFMaterialsCommonExtension",0,tt],32222),e.s([],34218),e.i(34218),e.i(90620),e.i(97810),e.i(9235),e.i(86408),e.i(32222),e.s(["EBlendingFunction",0,C,"EComponentType",0,b,"ECullingType",0,M,"EParameterType",0,A,"EShaderType",0,T,"ETextureFilterType",0,w,"ETextureFormat",0,v,"ETextureWrapMode",0,x,"GLTFBinaryExtension",0,te,"GLTFLoader",0,e5,"GLTFLoaderBase",0,e6,"GLTFLoaderExtension",0,e8,"GLTFMaterialsCommonExtension",0,tt,"GLTFUtils",0,eD],13011);var ts=e.i(13011);class tn{get resolve(){return this._resolve}get reject(){return this._reject}constructor(){this.promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}}var ti=e.i(68401);class to{get influence(){return this._influence}set influence(e){if(this._influence===e)return;let t=this._influence;this._influence=e,this.onInfluenceChanged.hasObservers()&&this.onInfluenceChanged.notifyObservers(0===t||0===e)}get animationPropertiesOverride(){return!this._animationPropertiesOverride&&this._scene?this._scene.animationPropertiesOverride:this._animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}constructor(e,t=0,s=null,n=null){this.name=e,this.animations=[],this._positions=null,this._normals=null,this._tangents=null,this._uvs=null,this._uv2s=null,this._colors=null,this._uniqueId=0,this.onInfluenceChanged=new R.Observable,this._onDataLayoutChanged=new R.Observable,this.morphTargetManager=null,this._animationPropertiesOverride=null,this.id=e,this.morphTargetManager=n,this._scene=s||P.EngineStore.LastCreatedScene,this.influence=t,this._scene&&(this._uniqueId=this._scene.getUniqueId())}get uniqueId(){return this._uniqueId}get hasPositions(){return!!this._positions}get hasNormals(){return!!this._normals}get hasTangents(){return!!this._tangents}get hasUVs(){return!!this._uvs}get hasUV2s(){return!!this._uv2s}get hasColors(){return!!this._colors}get vertexCount(){return this._positions?this._positions.length/3:this._normals?this._normals.length/3:this._tangents?this._tangents.length/3:this._uvs?this._uvs.length/2:this._uv2s?this._uv2s.length/2:this._colors?this._colors.length/4:0}setPositions(e){let t=this.hasPositions;this._positions=e,t!==this.hasPositions&&this._onDataLayoutChanged.notifyObservers(void 0)}getPositions(){return this._positions}setNormals(e){let t=this.hasNormals;this._normals=e,t!==this.hasNormals&&this._onDataLayoutChanged.notifyObservers(void 0)}getNormals(){return this._normals}setTangents(e){let t=this.hasTangents;this._tangents=e,t!==this.hasTangents&&this._onDataLayoutChanged.notifyObservers(void 0)}getTangents(){return this._tangents}setUVs(e){let t=this.hasUVs;this._uvs=e,t!==this.hasUVs&&this._onDataLayoutChanged.notifyObservers(void 0)}getUVs(){return this._uvs}setUV2s(e){let t=this.hasUV2s;this._uv2s=e,t!==this.hasUV2s&&this._onDataLayoutChanged.notifyObservers(void 0)}getUV2s(){return this._uv2s}setColors(e){let t=this.hasColors;this._colors=e,t!==this.hasColors&&this._onDataLayoutChanged.notifyObservers(void 0)}getColors(){return this._colors}clone(){let e=ti.SerializationHelper.Clone(()=>new to(this.name,this.influence,this._scene,this.morphTargetManager),this);return e._positions=this._positions,e._normals=this._normals,e._tangents=this._tangents,e._uvs=this._uvs,e._uv2s=this._uv2s,e._colors=this._colors,e}serialize(){let e={};return e.name=this.name,e.influence=this.influence,null!=this.id&&(e.id=this.id),e.uniqueId=this.uniqueId,e.positions=Array.prototype.slice.call(this.getPositions()),this.hasNormals&&(e.normals=Array.prototype.slice.call(this.getNormals())),this.hasTangents&&(e.tangents=Array.prototype.slice.call(this.getTangents())),this.hasUVs&&(e.uvs=Array.prototype.slice.call(this.getUVs())),this.hasUV2s&&(e.uv2s=Array.prototype.slice.call(this.getUV2s())),this.hasColors&&(e.colors=Array.prototype.slice.call(this.getColors())),ti.SerializationHelper.AppendSerializedAnimations(this,e),e}getClassName(){return"MorphTarget"}static Parse(e,t,s=null){let n=new to(e.name,e.influence,t,s);if(n.setPositions(e.positions),null!=e.id&&(n.id=e.id),e.normals&&n.setNormals(e.normals),e.tangents&&n.setTangents(e.tangents),e.uvs&&n.setUVs(e.uvs),e.uv2s&&n.setUV2s(e.uv2s),e.colors&&n.setColors(e.colors),e.animations){for(let t=0;t<e.animations.length;t++){let s=e.animations[t],i=(0,eI.GetClass)("BABYLON.Animation");i&&n.animations.push(i.Parse(s))}e.autoAnimate&&t&&t.beginAnimation(n,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1)}return n}static FromMesh(e,t,s){t||(t=e.name);let n=new to(t,s,e.getScene(),e.morphTargetManager);return n.setPositions(e.getVerticesData(ev.VertexBuffer.PositionKind)),e.isVerticesDataPresent(ev.VertexBuffer.NormalKind)&&n.setNormals(e.getVerticesData(ev.VertexBuffer.NormalKind)),e.isVerticesDataPresent(ev.VertexBuffer.TangentKind)&&n.setTangents(e.getVerticesData(ev.VertexBuffer.TangentKind)),e.isVerticesDataPresent(ev.VertexBuffer.UVKind)&&n.setUVs(e.getVerticesData(ev.VertexBuffer.UVKind)),e.isVerticesDataPresent(ev.VertexBuffer.UV2Kind)&&n.setUV2s(e.getVerticesData(ev.VertexBuffer.UV2Kind)),e.isVerticesDataPresent(ev.VertexBuffer.ColorKind)&&n.setColors(e.getVerticesData(ev.VertexBuffer.ColorKind)),n}}(0,eE.__decorate)([(0,eR.serialize)()],to.prototype,"id",void 0),(0,eE.__decorate)([(0,eR.serialize)()],to.prototype,"morphTargetManager",void 0);var ta=e.i(70432),tr=e_;class tl extends tr.Texture{get depth(){return this._depth}constructor(e,t,s,n,i,o,a=!0,r=!1,l=tr.Texture.TRILINEAR_SAMPLINGMODE,h=0,u,c){super(null,o,!a,r),this.format=i,this._texture=o.getEngine().createRawTexture2DArray(e,t,s,n,i,a,r,l,null,h,u??0,c),this._depth=n,this.is2DArray=!0}update(e){this.updateMipLevel(e,0)}updateMipLevel(e,t){this._texture&&this._getEngine().updateRawTexture2DArray(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type,t)}static CreateRGBATexture(e,t,s,n,i,o=!0,a=!1,r=3,l=0){return new tl(e,t,s,n,5,i,o,a,r,l)}}class th{set areUpdatesFrozen(e){e?this._blockCounter++:(this._blockCounter--,this._blockCounter<=0&&(this._blockCounter=0,this._syncActiveTargets(this._forceUpdateWhenUnfrozen),this._forceUpdateWhenUnfrozen=!1))}get areUpdatesFrozen(){return this._blockCounter>0}constructor(e=null,t){if(this.meshName=t,this._targets=[],this._targetInfluenceChangedObservers=[],this._targetDataLayoutChangedObservers=[],this._activeTargets=new ta.SmartArray(16),this._supportsPositions=!1,this._supportsNormals=!1,this._supportsTangents=!1,this._supportsUVs=!1,this._supportsUV2s=!1,this._supportsColors=!1,this._vertexCount=0,this._uniqueId=0,this._tempInfluences=[],this._canUseTextureForTargets=!1,this._blockCounter=0,this._mustSynchronize=!0,this._forceUpdateWhenUnfrozen=!1,this._textureVertexStride=0,this._textureWidth=0,this._textureHeight=1,this._parentContainer=null,this.optimizeInfluencers=!0,this.enablePositionMorphing=!0,this.enableNormalMorphing=!0,this.enableTangentMorphing=!0,this.enableUVMorphing=!0,this.enableUV2Morphing=!0,this.enableColorMorphing=!0,this._numMaxInfluencers=0,this._useTextureToStoreTargets=!0,this.metadata=null,this._influencesAreDirty=!1,this._needUpdateInfluences=!1,e||(e=P.EngineStore.LastCreatedScene),this._scene=e,this._scene){this._scene.addMorphTargetManager(this),this._uniqueId=this._scene.getUniqueId();const e=this._scene.getEngine().getCaps();this._canUseTextureForTargets=e.canUseGLVertexID&&e.textureFloat&&e.maxVertexTextureImageUnits>0&&e.texture2DArrayMaxLayerCount>1}}get numMaxInfluencers(){return th.ConstantTargetCountForTextureMode>0&&this.isUsingTextureForTargets?th.ConstantTargetCountForTextureMode:this._numMaxInfluencers}set numMaxInfluencers(e){this._numMaxInfluencers!==e&&(this._numMaxInfluencers=e,this._mustSynchronize=!0,this._syncActiveTargets())}get uniqueId(){return this._uniqueId}get vertexCount(){return this._vertexCount}get supportsPositions(){return this._supportsPositions&&this.enablePositionMorphing}get supportsNormals(){return this._supportsNormals&&this.enableNormalMorphing}get supportsTangents(){return this._supportsTangents&&this.enableTangentMorphing}get supportsUVs(){return this._supportsUVs&&this.enableUVMorphing}get supportsUV2s(){return this._supportsUV2s&&this.enableUV2Morphing}get supportsColors(){return this._supportsColors&&this.enableColorMorphing}get hasPositions(){return this._supportsPositions}get hasNormals(){return this._supportsNormals}get hasTangents(){return this._supportsTangents}get hasUVs(){return this._supportsUVs}get hasUV2s(){return this._supportsUV2s}get hasColors(){return this._supportsColors}get numTargets(){return this._targets.length}get numInfluencers(){return this._influencesAreDirty&&this._syncActiveTargets(),this._activeTargets.length}get influences(){return this._influencesAreDirty&&this._syncActiveTargets(),this._influences}get useTextureToStoreTargets(){return this._useTextureToStoreTargets}set useTextureToStoreTargets(e){this._useTextureToStoreTargets!==e&&(this._useTextureToStoreTargets=e,this._mustSynchronize=!0,this._syncActiveTargets())}get isUsingTextureForTargets(){return th.EnableTextureStorage&&this.useTextureToStoreTargets&&this._canUseTextureForTargets&&!this._scene?.getEngine().getCaps().disableMorphTargetTexture}getActiveTarget(e){return this._influencesAreDirty&&this._syncActiveTargets(),this._activeTargets.data[e]}getTarget(e){return this._targets[e]}getTargetByName(e){for(let t of this._targets)if(t.name===e)return t;return null}addTarget(e){this._targets.push(e),this._targetInfluenceChangedObservers.push(e.onInfluenceChanged.add(e=>{this.areUpdatesFrozen&&e&&(this._forceUpdateWhenUnfrozen=!0),this._influencesAreDirty=!0,this._needUpdateInfluences=this._needUpdateInfluences||e})),this._targetDataLayoutChangedObservers.push(e._onDataLayoutChanged.add(()=>{this._mustSynchronize=!0,this._syncActiveTargets()})),this._mustSynchronize=!0,this._syncActiveTargets()}removeTarget(e){let t=this._targets.indexOf(e);t>=0&&(this._targets.splice(t,1),e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t,1)[0]),e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t,1)[0]),this._mustSynchronize=!0,this._syncActiveTargets()),this._scene&&this._scene.stopAnimation(e)}_bind(e){this._influencesAreDirty&&this._syncActiveTargets(),e.setFloat3("morphTargetTextureInfo",this._textureVertexStride,this._textureWidth,this._textureHeight),e.setFloatArray("morphTargetTextureIndices",this._morphTargetTextureIndices),e.setTexture("morphTargets",this._targetStoreTexture),e.setFloat("morphTargetCount",this.numInfluencers)}clone(){let e=new th(this._scene);for(let t of(e.areUpdatesFrozen=!0,this._targets))e.addTarget(t.clone());return e.areUpdatesFrozen=!1,e.enablePositionMorphing=this.enablePositionMorphing,e.enableNormalMorphing=this.enableNormalMorphing,e.enableTangentMorphing=this.enableTangentMorphing,e.enableUVMorphing=this.enableUVMorphing,e.enableUV2Morphing=this.enableUV2Morphing,e.enableColorMorphing=this.enableColorMorphing,e.metadata=this.metadata,e}serialize(){let e={};for(let t of(e.id=this.uniqueId,e.meshName=this.meshName,e.targets=[],this._targets))e.targets.push(t.serialize());return this.metadata&&(e.metadata=this.metadata),e}_syncActiveTargets(e=!1){if(this.areUpdatesFrozen)return;e=e||this._needUpdateInfluences,this._needUpdateInfluences=!1,this._influencesAreDirty=!1;let t=!!this._targetStoreTexture,s=this.isUsingTextureForTargets;(this._mustSynchronize||t!==s)&&(this._mustSynchronize=!1,this.synchronize());let n=0;this._activeTargets.reset(),this._morphTargetTextureIndices&&this._morphTargetTextureIndices.length===this._targets.length||(this._morphTargetTextureIndices=new Float32Array(this._targets.length));let i=-1;for(let e of this._targets)if(i++,0!==e.influence||!this.optimizeInfluencers){if(this._activeTargets.length>=th.MaxActiveMorphTargetsInVertexAttributeMode&&!this.isUsingTextureForTargets)break;this._activeTargets.push(e),this._morphTargetTextureIndices[n]=i,this._tempInfluences[n++]=e.influence}this._morphTargetTextureIndices.length!==n&&(this._morphTargetTextureIndices=this._morphTargetTextureIndices.slice(0,n)),this._influences&&this._influences.length===n||(this._influences=new Float32Array(n));for(let e=0;e<n;e++)this._influences[e]=this._tempInfluences[e];if(e&&this._scene)for(let e of this._scene.meshes)e.morphTargetManager===this&&(s?e._markSubMeshesAsAttributesDirty():e._syncGeometryWithMorphTargetManager())}synchronize(){if(!this._scene||this.areUpdatesFrozen)return;let e=this._scene.getEngine();for(let t of(this._supportsPositions=!0,this._supportsNormals=!0,this._supportsTangents=!0,this._supportsUVs=!0,this._supportsUV2s=!0,this._supportsColors=!0,this._vertexCount=0,this._targetStoreTexture?.dispose(),this._targetStoreTexture=null,this.isUsingTextureForTargets&&this._targets.length>e.getCaps().texture2DArrayMaxLayerCount&&(this.useTextureToStoreTargets=!1),this._targets)){this._supportsPositions=this._supportsPositions&&t.hasPositions,this._supportsNormals=this._supportsNormals&&t.hasNormals,this._supportsTangents=this._supportsTangents&&t.hasTangents,this._supportsUVs=this._supportsUVs&&t.hasUVs,this._supportsUV2s=this._supportsUV2s&&t.hasUV2s,this._supportsColors=this._supportsColors&&t.hasColors;let e=t.vertexCount;if(0===this._vertexCount)this._vertexCount=e;else if(this._vertexCount!==e)return void k.Logger.Error(`Incompatible target. Targets must all have the same vertices count. Current vertex count: ${this._vertexCount}, vertex count for target "${t.name}": ${e}`)}if(this.isUsingTextureForTargets){let t;this._textureVertexStride=0,this._supportsPositions&&this._textureVertexStride++,this._supportsNormals&&this._textureVertexStride++,this._supportsTangents&&this._textureVertexStride++,this._supportsUVs&&this._textureVertexStride++,this._supportsUV2s&&this._textureVertexStride++,this._supportsColors&&this._textureVertexStride++,this._textureWidth=this._vertexCount*this._textureVertexStride||1,this._textureHeight=1;let s=e.getCaps().maxTextureSize;this._textureWidth>s&&(this._textureHeight=Math.ceil(this._textureWidth/s),this._textureWidth=s);let n=this._targets.length,i=new Float32Array(n*this._textureWidth*this._textureHeight*4);for(let e=0;e<n;e++){let s=this._targets[e],n=s.getPositions(),o=s.getNormals(),a=s.getUVs(),r=s.getTangents(),l=s.getUV2s(),h=s.getColors();t=e*this._textureWidth*this._textureHeight*4;for(let e=0;e<this._vertexCount;e++)this._supportsPositions&&n&&(i[t]=n[3*e],i[t+1]=n[3*e+1],i[t+2]=n[3*e+2],t+=4),this._supportsNormals&&o&&(i[t]=o[3*e],i[t+1]=o[3*e+1],i[t+2]=o[3*e+2],t+=4),this._supportsUVs&&a&&(i[t]=a[2*e],i[t+1]=a[2*e+1],t+=4),this._supportsTangents&&r&&(i[t]=r[3*e],i[t+1]=r[3*e+1],i[t+2]=r[3*e+2],t+=4),this._supportsUV2s&&l&&(i[t]=l[2*e],i[t+1]=l[2*e+1],t+=4),this._supportsColors&&h&&(i[t]=h[4*e],i[t+1]=h[4*e+1],i[t+2]=h[4*e+2],i[t+3]=h[4*e+3],t+=4)}this._targetStoreTexture=tl.CreateRGBATexture(i,this._textureWidth,this._textureHeight,n,this._scene,!1,!1,1,1),this._targetStoreTexture.name=`Morph texture_${this.uniqueId}`}for(let e of this._scene.meshes)e.morphTargetManager===this&&e._syncGeometryWithMorphTargetManager()}dispose(){if(this._targetStoreTexture&&this._targetStoreTexture.dispose(),this._targetStoreTexture=null,this.metadata=null,this._scene){if(this._scene.removeMorphTargetManager(this),this._parentContainer){let e=this._parentContainer.morphTargetManagers.indexOf(this);e>-1&&this._parentContainer.morphTargetManagers.splice(e,1),this._parentContainer=null}for(let e of this._targets)this._scene.stopAnimation(e)}}static Parse(e,t){let s=new th(t);for(let n of e.targets)s.addTarget(to.Parse(n,t,s));return e.metadata&&(s.metadata=e.metadata),s}}th.EnableTextureStorage=!0,th.MaxActiveMorphTargetsInVertexAttributeMode=8,th.ConstantTargetCountForTextureMode=0;var tu=e.i(76527);let tc=new Map;function td(e,t,s){t_(e)&&k.Logger.Warn(`Extension with the name '${e}' already exists`),tc.set(e,{isGLTFExtension:t,factory:s})}function t_(e){return tc.delete(e)}e.s(["registerGLTFExtension",0,td,"registeredGLTFExtensions",0,tc,"unregisterGLTFExtension",0,t_],91023);var tp=e.i(76856);class tm{constructor(e){this._factory=e}get value(){return this._factory&&(this._value=this._factory(),this._factory=void 0),this._value}}let tf=new tm(()=>e.A(9790)),tg=new tm(()=>e.A(18576));class ty{static Get(e,t,s){if(!t||void 0==s||!t[s])throw Error(`${e}: Failed to find index (${s})`);return t[s]}static TryGet(e,t){return e&&void 0!=t&&e[t]?e[t]:null}static Assign(e){if(e)for(let t=0;t<e.length;t++)e[t].index=t}}function tb(e){if(e.min&&e.max){let t=e.min,s=e.max,n=el.TmpVectors.Vector3[0].copyFromFloats(t[0],t[1],t[2]),i=el.TmpVectors.Vector3[1].copyFromFloats(s[0],s[1],s[2]);if(e.normalized&&5126!==e.componentType){let t=1;switch(e.componentType){case 5120:t=127;break;case 5121:t=255;break;case 5122:t=32767;break;case 5123:t=65535}let s=1/t;n.scaleInPlace(s),i.scaleInPlace(s)}return new tu.BoundingInfo(n,i)}return null}class tT{isMatchingMaterialType(e){if(!e)return!1;for(let t of Array.from(this._pbrMaterialImpls.values()))if(e instanceof t.materialClass)return!0;return!1}static RegisterExtension(e,t){td(e,!1,t)}static UnregisterExtension(e){return t_(e)}get gltf(){if(!this._gltf)throw Error("glTF JSON is not available");return this._gltf}get bin(){return this._bin}get parent(){return this._parent}get babylonScene(){if(!this._babylonScene)throw Error("Scene is not available");return this._babylonScene}get rootBabylonMesh(){return this._rootBabylonMesh}get rootUrl(){return this._rootUrl}constructor(e){this._completePromises=[],this._assetContainer=null,this._babylonLights=[],this._disableInstancedMesh=0,this._allMaterialsDirtyRequired=!1,this._skipStartAnimationStep=!1,this._extensions=[],this._disposed=!1,this._rootUrl=null,this._fileName=null,this._uniqueRootUrl=null,this._bin=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions=[],this._materialAdapterCache=new WeakMap,this._materialAdapters=new Set,this._pbrMaterialImpls=new Map,this._parent=e}_getOrCreateMaterialAdapter(e){let t=this._materialAdapterCache.get(e);if(!t){for(let s of Array.from(this._pbrMaterialImpls.values()))if(e instanceof s.materialClass){t=new s.adapterClass(e);break}if(!t)throw Error("Appropriate material adapter class not found");let s=t;this._materialAdapterCache.set(e,s),this._materialAdapters.add(s)}return t}dispose(){this._disposed||(this._disposed=!0,this._completePromises.length=0,this._extensions.forEach(e=>e.dispose&&e.dispose()),this._extensions.length=0,this._materialAdapters.clear(),this._gltf=null,this._bin=null,this._babylonScene=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions.length=0,this._parent.dispose())}async importMeshAsync(e,t,s,n,i,o,a=""){return await Promise.resolve().then(async()=>{this._babylonScene=t,this._assetContainer=s,this._loadData(n);let o=null;if(e){let t={};if(this._gltf.nodes)for(let e of this._gltf.nodes)e.name&&(t[e.name]=e.index);o=(e instanceof Array?e:[e]).map(e=>{let s=t[e];if(void 0===s)throw Error(`Failed to find node '${e}'`);return s})}return await this._loadAsync(i,a,o,()=>({meshes:this._getMeshes(),particleSystems:[],skeletons:this._getSkeletons(),animationGroups:this._getAnimationGroups(),lights:this._babylonLights,transformNodes:this._getTransformNodes(),geometries:this._getGeometries(),spriteManagers:[]}))})}async loadAsync(e,t,s,n,i=""){return this._babylonScene=e,this._loadData(t),await this._loadAsync(s,i,null,()=>void 0)}async _loadAsync(t,s,n,i){return await Promise.resolve().then(async()=>{if(this._rootUrl=t,this._uniqueRootUrl=!t.startsWith("file:")&&s?t:`${t}${Date.now()}/`,this._fileName=s,this._allMaterialsDirtyRequired=!1,await this._loadExtensionsAsync(),!this.parent.skipMaterials){let t=this.parent.useOpenPBR||this.isExtensionUsed("KHR_materials_openpbr"),s=!1;this.parent.useOpenPBR?this._gltf.materials?.length&&this._gltf.materials.some(e=>!e.extensions?.KHR_materials_openpbr)&&(s=!0):s=!0;let n=[];t&&!this._pbrMaterialImpls.has("openpbr")&&n.push(Promise.all([e.A(31237),e.A(23730)]).then(([{OpenPBRMaterial:e,RegisterOpenpbrMaterial:t},{OpenPBRMaterialLoadingAdapter:s}])=>{t(),this._pbrMaterialImpls.set("openpbr",{materialClass:e,adapterClass:s})})),s&&!this._pbrMaterialImpls.has("pbr")&&n.push(Promise.all([e.A(53185),e.A(64689)]).then(([{PBRMaterial:e,RegisterPbrMaterial:t},{PBRMaterialLoadingAdapter:s}])=>{t(),this._pbrMaterialImpls.set("pbr",{materialClass:e,adapterClass:s})})),await Promise.all(n)}let o=`${y[y.LOADING]} => ${y[y.READY]}`,a=`${y[y.LOADING]} => ${y[y.COMPLETE]}`;this._parent._startPerformanceCounter(o),this._parent._startPerformanceCounter(a),this._parent._setState(y.LOADING),this._extensionsOnLoading();let r=[],l=this._babylonScene.blockMaterialDirtyMechanism;if(this._babylonScene.blockMaterialDirtyMechanism=!0,!this.parent.loadOnlyMaterials){if(n)r.push(this.loadSceneAsync("/nodes",{nodes:n,index:-1}));else if(void 0!=this._gltf.scene||this._gltf.scenes&&this._gltf.scenes[0]){let e=ty.Get("/scene",this._gltf.scenes,this._gltf.scene||0);r.push(this.loadSceneAsync(`/scenes/${e.index}`,e))}}if(!this.parent.skipMaterials&&this.parent.loadAllMaterials&&this._gltf.materials)for(let e=0;e<this._gltf.materials.length;++e){let t=this._gltf.materials[e],s="/materials/"+e,n=eb.Material.TriangleFillMode;r.push(this._loadMaterialAsync(s,t,null,n,()=>{}))}this._allMaterialsDirtyRequired?this._babylonScene.blockMaterialDirtyMechanism=l:this._babylonScene._forceBlockMaterialDirtyMechanism(l),this._parent.compileMaterials&&r.push(this._compileMaterialsAsync()),this._parent.compileShadowGenerators&&r.push(this._compileShadowGeneratorsAsync());let h=Promise.all(r).then(()=>{for(let e of(this._rootBabylonMesh&&this._rootBabylonMesh!==this._parent.customRootNode&&this._rootBabylonMesh.setEnabled(!0),this._babylonScene.materials))void 0!==e.maxSimultaneousLights&&(e.maxSimultaneousLights=Math.max(e.maxSimultaneousLights,this._babylonScene.lights.length));for(let e of Array.from(this._materialAdapters))this._completePromises.push(e.finalizeAsync(this));return this._extensionsOnReady(),this._parent._setState(y.READY),this._skipStartAnimationStep||this._startAnimations(),i()});return await h.then(e=>(this._parent._endPerformanceCounter(o),S.Tools.SetImmediate(()=>{this._disposed||Promise.all(this._completePromises).then(()=>{this._parent._endPerformanceCounter(a),this._parent._setState(y.COMPLETE),this._parent.onCompleteObservable.notifyObservers(void 0),this._parent.onCompleteObservable.clear(),this.dispose()},e=>{this._parent.onErrorObservable.notifyObservers(e),this._parent.onErrorObservable.clear(),this.dispose()})}),e))}).catch(e=>{throw this._disposed||(this._parent.onErrorObservable.notifyObservers(e),this._parent.onErrorObservable.clear(),this.dispose()),e})}_loadData(e){if(this._gltf=e.json,this._setupData(),e.bin){let t=this._gltf.buffers;if(t&&t[0]&&!t[0].uri){let s=t[0];(s.byteLength<e.bin.byteLength-3||s.byteLength>e.bin.byteLength)&&k.Logger.Warn(`Binary buffer length (${s.byteLength}) from JSON does not match chunk length (${e.bin.byteLength})`),this._bin=e.bin}else k.Logger.Warn("Unexpected BIN chunk")}}_setupData(){if(ty.Assign(this._gltf.accessors),ty.Assign(this._gltf.animations),ty.Assign(this._gltf.buffers),ty.Assign(this._gltf.bufferViews),ty.Assign(this._gltf.cameras),ty.Assign(this._gltf.images),ty.Assign(this._gltf.materials),ty.Assign(this._gltf.meshes),ty.Assign(this._gltf.nodes),ty.Assign(this._gltf.samplers),ty.Assign(this._gltf.scenes),ty.Assign(this._gltf.skins),ty.Assign(this._gltf.textures),this._gltf.nodes){let e={};for(let t of this._gltf.nodes)if(t.children)for(let s of t.children)e[s]=t.index;let t=this._createRootNode();for(let s of this._gltf.nodes){let n=e[s.index];s.parent=void 0===n?t:this._gltf.nodes[n]}}}async _loadExtensionsAsync(){let e=[];if(tc.forEach((t,s)=>{this.parent.extensionOptions[s]?.enabled===!1?t.isGLTFExtension&&this.isExtensionUsed(s)&&k.Logger.Warn(`Extension ${s} is used but has been explicitly disabled.`):(!t.isGLTFExtension||this.isExtensionUsed(s))&&e.push((async()=>{let e=await t.factory(this);return e.name!==s&&k.Logger.Warn(`The name of the glTF loader extension instance does not match the registered name: ${e.name} !== ${s}`),this._parent.onExtensionLoadedObservable.notifyObservers(e),e})())}),this._extensions.push(...await Promise.all(e)),this._extensions.sort((e,t)=>(e.order||Number.MAX_VALUE)-(t.order||Number.MAX_VALUE)),this._parent.onExtensionLoadedObservable.clear(),this._gltf.extensionsRequired){for(let e of this._gltf.extensionsRequired)if(!this._extensions.some(t=>t.name===e&&t.enabled)){if(this.parent.extensionOptions[e]?.enabled===!1)throw Error(`Required extension ${e} is disabled`);throw Error(`Required extension ${e} is not available`)}}}_createRootNode(){if(void 0!==this._parent.customRootNode)return this._rootBabylonMesh=this._parent.customRootNode,{_babylonTransformNode:null===this._rootBabylonMesh?void 0:this._rootBabylonMesh,index:-1};this._babylonScene._blockEntityCollection=!!this._assetContainer;let e=new I.Mesh("__root__",this._babylonScene);this._rootBabylonMesh=e,this._rootBabylonMesh._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._rootBabylonMesh.setEnabled(!1);let t={_babylonTransformNode:this._rootBabylonMesh,index:-1};switch(this._parent.coordinateSystemMode){case f.AUTO:this._babylonScene.useRightHandedSystem||(t.rotation=[0,1,0,0],t.scale=[1,1,-1],tT._LoadTransform(t,this._rootBabylonMesh));break;case f.FORCE_RIGHT_HANDED:this._babylonScene.useRightHandedSystem=!0;break;default:throw Error(`Invalid coordinate system mode (${this._parent.coordinateSystemMode})`)}return this._parent.onMeshLoadedObservable.notifyObservers(e),t}loadSceneAsync(e,t){let s=this._extensionsLoadSceneAsync(e,t);if(s)return s;let n=[];if(this.logOpen(`${e} ${t.name||""}`),t.nodes)for(let s of t.nodes){let t=ty.Get(`${e}/nodes/${s}`,this._gltf.nodes,s);n.push(this.loadNodeAsync(`/nodes/${t.index}`,t,e=>{e.parent=this._rootBabylonMesh}))}for(let e of this._postSceneLoadActions)e();return n.push(this._loadAnimationsAsync()),this.logClose(),Promise.all(n).then(()=>{})}_forEachPrimitive(e,t){if(e._primitiveBabylonMeshes)for(let s of e._primitiveBabylonMeshes)t(s)}_getGeometries(){let e=[],t=this._gltf.nodes;if(t)for(let s of t)this._forEachPrimitive(s,t=>{let s=t.geometry;s&&-1===e.indexOf(s)&&e.push(s)});return e}_getMeshes(){let e=[];this._rootBabylonMesh instanceof B.AbstractMesh&&e.push(this._rootBabylonMesh);let t=this._gltf.nodes;if(t)for(let s of t)this._forEachPrimitive(s,t=>{e.push(t)});return e}_getTransformNodes(){let e=[],t=this._gltf.nodes;if(t)for(let s of t)s._babylonTransformNode&&"TransformNode"===s._babylonTransformNode.getClassName()&&e.push(s._babylonTransformNode),s._babylonTransformNodeForSkin&&e.push(s._babylonTransformNodeForSkin);return e}_getSkeletons(){let e=[],t=this._gltf.skins;if(t)for(let s of t)s._data&&e.push(s._data.babylonSkeleton);return e}_getAnimationGroups(){let e=[],t=this._gltf.animations;if(t)for(let s of t)s._babylonAnimationGroup&&e.push(s._babylonAnimationGroup);return e}_startAnimations(){switch(this._parent.animationStartMode){case g.NONE:break;case g.FIRST:{let e=this._getAnimationGroups();0!==e.length&&e[0].start(!0);break}case g.ALL:for(let e of this._getAnimationGroups())e.start(!0);break;default:return void k.Logger.Error(`Invalid animation start mode (${this._parent.animationStartMode})`)}}loadNodeAsync(e,t,s=()=>{}){let n=this._extensionsLoadNodeAsync(e,t,s);if(n)return n;if(t._babylonTransformNode)throw Error(`${e}: Invalid recursive node hierarchy`);let i=[];this.logOpen(`${e} ${t.name||""}`);let o=n=>{if(tT.AddPointerMetadata(n,e),tT._LoadTransform(t,n),void 0!=t.camera){let s=ty.Get(`${e}/camera`,this._gltf.cameras,t.camera);i.push(this.loadCameraAsync(`/cameras/${s.index}`,s,e=>{e.parent=n,this._babylonScene.useRightHandedSystem||(n.scaling.x=-1)}))}if(t.children)for(let s of t.children){let t=ty.Get(`${e}/children/${s}`,this._gltf.nodes,s);i.push(this.loadNodeAsync(`/nodes/${t.index}`,t,e=>{e.parent=n}))}s(n)},a=void 0!=t.mesh,r=this._parent.loadSkins&&void 0!=t.skin;if(!a||r){let e=t.name||`node${t.index}`;this._babylonScene._blockEntityCollection=!!this._assetContainer;let s=new N.TransformNode(e,this._babylonScene);s._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,void 0==t.mesh?t._babylonTransformNode=s:t._babylonTransformNodeForSkin=s,o(s)}if(a)if(r){let s=ty.Get(`${e}/mesh`,this._gltf.meshes,t.mesh);i.push(this._loadMeshAsync(`/meshes/${s.index}`,t,s,s=>{let n=t._babylonTransformNodeForSkin;s.metadata=function e(...t){let s=e=>!!e&&"object"==typeof e;return t.reduce((t,n)=>{for(let i of Object.keys(n)){let o=t[i],a=n[i];Array.isArray(o)&&Array.isArray(a)?t[i]=o.concat(...a):s(o)&&s(a)?t[i]=e(o,a):t[i]=a}return t},{})}(n.metadata,s.metadata||{});let o=ty.Get(`${e}/skin`,this._gltf.skins,t.skin);i.push(this._loadSkinAsync(`/skins/${o.index}`,t,o,e=>{this._forEachPrimitive(t,t=>{t.skeleton=e}),this._postSceneLoadActions.push(()=>{if(void 0!=o.skeleton){let e=ty.Get(`/skins/${o.index}/skeleton`,this._gltf.nodes,o.skeleton).parent;t.index===e.index?s.parent=n.parent:s.parent=e._babylonTransformNode}else s.parent=this._rootBabylonMesh;this._parent.onSkinLoadedObservable.notifyObservers({node:n,skinnedNode:s})})}))}))}else{let s=ty.Get(`${e}/mesh`,this._gltf.meshes,t.mesh);i.push(this._loadMeshAsync(`/meshes/${s.index}`,t,s,o))}return this.logClose(),Promise.all(i).then(()=>(this._forEachPrimitive(t,e=>{!e.isAnInstance&&e.geometry&&e.geometry.useBoundingInfoFromGeometry?e._updateBoundingInfo():e.refreshBoundingInfo(!0,!0)}),t._babylonTransformNode))}_loadMeshAsync(e,t,s,n){let i=s.primitives;if(!i||!i.length)throw Error(`${e}: Primitives are missing`);void 0==i[0].index&&ty.Assign(i);let o=[];this.logOpen(`${e} ${s.name||""}`);let a=t.name||`node${t.index}`;if(1===i.length){let n=s.primitives[0];o.push(this._loadMeshPrimitiveAsync(`${e}/primitives/${n.index}`,a,t,s,n,e=>{t._babylonTransformNode=e,t._primitiveBabylonMeshes=[e]}))}else for(let n of(this._babylonScene._blockEntityCollection=!!this._assetContainer,t._babylonTransformNode=new N.TransformNode(a,this._babylonScene),t._babylonTransformNode._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._primitiveBabylonMeshes=[],i))o.push(this._loadMeshPrimitiveAsync(`${e}/primitives/${n.index}`,`${a}_primitive${n.index}`,t,s,n,e=>{e.parent=t._babylonTransformNode,t._primitiveBabylonMeshes.push(e)}));return n(t._babylonTransformNode),this.logClose(),Promise.all(o).then(()=>t._babylonTransformNode)}_loadMeshPrimitiveAsync(e,t,s,n,i,o){let a,r,l=this._extensionsLoadMeshPrimitiveAsync(e,t,s,n,i,o);if(l)return l;this.logOpen(`${e}`);let h=0===this._disableInstancedMesh&&this._parent.createInstances&&void 0==s.skin&&!n.primitives[0].targets;if(h&&i._instanceData)this._babylonScene._blockEntityCollection=!!this._assetContainer,(a=i._instanceData.babylonSourceMesh.createInstance(t))._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,r=i._instanceData.promise;else{let o=[];this._babylonScene._blockEntityCollection=!!this._assetContainer;let l=new I.Mesh(t,this._babylonScene);if(l._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,l.sideOrientation=this._babylonScene.useRightHandedSystem?eb.Material.CounterClockWiseSideOrientation:eb.Material.ClockWiseSideOrientation,this._createMorphTargets(e,s,n,i,l),o.push(this._loadVertexDataAsync(e,i,l).then(async t=>await this._loadMorphTargetsAsync(e,i,l,t).then(()=>{this._disposed||(this._babylonScene._blockEntityCollection=!!this._assetContainer,t.applyToMesh(l),t._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1)}))),!this.parent.skipMaterials){let t=tT._GetDrawMode(e,i.mode);if(void 0==i.material){let e=this._defaultBabylonMaterialData[t];e||(e=this._createDefaultMaterial("__GLTFLoader._default",t,this._getDefaultImpl()),this._parent.onMaterialLoadedObservable.notifyObservers(e),this._defaultBabylonMaterialData[t]=e),l.material=e}else{let s=ty.Get(`${e}/material`,this._gltf.materials,i.material);o.push(this._loadMaterialAsync(`/materials/${s.index}`,s,l,t,e=>{l.material=e}))}}r=Promise.all(o),h&&(i._instanceData={babylonSourceMesh:l,promise:r}),a=l}return tT.AddPointerMetadata(a,e),this._parent.onMeshLoadedObservable.notifyObservers(a),o(a),this.logClose(),r.then(()=>a)}_loadVertexDataAsync(e,t,s){let n=this._extensionsLoadVertexDataAsync(e,t,s);if(n)return n;let i=t.attributes;if(!i)throw Error(`${e}: Attributes are missing`);let o=[],a=new eM.Geometry(s.name,this._babylonScene);if(void 0==t.indices)s.isUnIndexed=!0;else{let s=ty.Get(`${e}/indices`,this._gltf.accessors,t.indices);o.push(this._loadIndicesAccessorAsync(`/accessors/${s.index}`,s).then(e=>{a.setIndices(e)}))}let r=(t,n,r)=>{if(void 0==i[t])return;s._delayInfo=s._delayInfo||[],-1===s._delayInfo.indexOf(n)&&s._delayInfo.push(n);let l=ty.Get(`${e}/attributes/${t}`,this._gltf.accessors,i[t]);o.push(this._loadVertexAccessorAsync(`/accessors/${l.index}`,l,n).then(e=>{if(e.getKind()===ev.VertexBuffer.PositionKind&&!this.parent.alwaysComputeBoundingBox&&!s.skeleton){let e=tb(l);e&&(a._boundingInfo=e,a.useBoundingInfoFromGeometry=!0)}a.setVerticesBuffer(e,l.count)})),n==ev.VertexBuffer.MatricesIndicesExtraKind&&(s.numBoneInfluencers=8),r&&r(l)};return r("POSITION",ev.VertexBuffer.PositionKind),r("NORMAL",ev.VertexBuffer.NormalKind),r("TANGENT",ev.VertexBuffer.TangentKind),r("TEXCOORD_0",ev.VertexBuffer.UVKind),r("TEXCOORD_1",ev.VertexBuffer.UV2Kind),r("TEXCOORD_2",ev.VertexBuffer.UV3Kind),r("TEXCOORD_3",ev.VertexBuffer.UV4Kind),r("TEXCOORD_4",ev.VertexBuffer.UV5Kind),r("TEXCOORD_5",ev.VertexBuffer.UV6Kind),r("JOINTS_0",ev.VertexBuffer.MatricesIndicesKind),r("WEIGHTS_0",ev.VertexBuffer.MatricesWeightsKind),r("JOINTS_1",ev.VertexBuffer.MatricesIndicesExtraKind),r("WEIGHTS_1",ev.VertexBuffer.MatricesWeightsExtraKind),r("COLOR_0",ev.VertexBuffer.ColorKind,e=>{"VEC4"===e.type&&(s.hasVertexAlpha=!0)}),Promise.all(o).then(()=>a)}_createMorphTargets(e,t,s,n,i){if(!n.targets||!this._parent.loadMorphTargets)return;if(void 0==t._numMorphTargets)t._numMorphTargets=n.targets.length;else if(n.targets.length!==t._numMorphTargets)throw Error(`${e}: Primitives do not have the same number of targets`);let o=s.extras?s.extras.targetNames:null;this._babylonScene._blockEntityCollection=!!this._assetContainer,i.morphTargetManager=new th(this._babylonScene),i.morphTargetManager._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,i.morphTargetManager.areUpdatesFrozen=!0;for(let e=0;e<n.targets.length;e++){let n=t.weights?t.weights[e]:s.weights?s.weights[e]:0,a=o?o[e]:`morphTarget${e}`;i.morphTargetManager.addTarget(new to(a,n,i.getScene()))}}_loadMorphTargetsAsync(e,t,s,n){if(!t.targets||!this._parent.loadMorphTargets)return Promise.resolve();let i=[],o=s.morphTargetManager;for(let s=0;s<o.numTargets;s++){let a=o.getTarget(s);i.push(this._loadMorphTargetVertexDataAsync(`${e}/targets/${s}`,n,t.targets[s],a))}return Promise.all(i).then(()=>{o.areUpdatesFrozen=!1,this._parent.useMaxMorphTargetInfluencers&&(o.isUsingTextureForTargets||o.numTargets<=th.MaxActiveMorphTargetsInVertexAttributeMode)&&(o.optimizeInfluencers=!1,o.numMaxInfluencers=o.numTargets)})}async _loadMorphTargetVertexDataAsync(e,t,s,n){let i=[],o=(n,o,a)=>{if(void 0==s[n])return;let r=t.getVertexBuffer(o);if(!r)return;let l=ty.Get(`${e}/${n}`,this._gltf.accessors,s[n]);i.push(this._loadFloatAccessorAsync(`/accessors/${l.index}`,l).then(e=>{a(r,e)}))};return o("POSITION",ev.VertexBuffer.PositionKind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(t.length,(e,n)=>{s[n]=t[n]+e}),n.setPositions(s)}),o("NORMAL",ev.VertexBuffer.NormalKind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(s.length,(e,n)=>{s[n]=t[n]+e}),n.setNormals(s)}),o("TANGENT",ev.VertexBuffer.TangentKind,(e,t)=>{let s=new Float32Array(t.length/3*4),i=0;e.forEach(t.length/3*4,(e,n)=>{(n+1)%4!=0&&(s[i]=t[i]+e,i++)}),n.setTangents(s)}),o("TEXCOORD_0",ev.VertexBuffer.UVKind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(t.length,(e,n)=>{s[n]=t[n]+e}),n.setUVs(s)}),o("TEXCOORD_1",ev.VertexBuffer.UV2Kind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(t.length,(e,n)=>{s[n]=t[n]+e}),n.setUV2s(s)}),o("COLOR_0",ev.VertexBuffer.ColorKind,(t,s)=>{let i=null,o=t.getSize();if(3===o){i=new Float32Array(s.length/3*4),t.forEach(s.length,(e,t)=>{let n=Math.floor(t/3),o=t%3;i[4*n+o]=s[3*n+o]+e});for(let e=0;e<s.length/3;++e)i[4*e+3]=1}else if(4===o)i=new Float32Array(s.length),t.forEach(s.length,(e,t)=>{i[t]=s[t]+e});else throw Error(`${e}: Invalid number of components (${o}) for COLOR_0 attribute`);n.setColors(i)}),await Promise.all(i).then(()=>{})}static _LoadTransform(e,t){if(void 0!=e.skin)return;let s=el.Vector3.Zero(),n=el.Quaternion.Identity(),i=el.Vector3.One();e.matrix?el.Matrix.FromArray(e.matrix).decompose(i,n,s):(e.translation&&(s=el.Vector3.FromArray(e.translation)),e.rotation&&(n=el.Quaternion.FromArray(e.rotation)),e.scale&&(i=el.Vector3.FromArray(e.scale))),t.position=s,t.rotationQuaternion=n,t.scaling=i}_loadSkinAsync(e,t,s,n){if(!this._parent.loadSkins)return Promise.resolve();let i=this._extensionsLoadSkinAsync(e,t,s);if(i)return i;if(s._data)return n(s._data.babylonSkeleton),s._data.promise;let o=`skeleton${s.index}`;this._babylonScene._blockEntityCollection=!!this._assetContainer;let a=new eg(s.name||o,o,this._babylonScene);a._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._loadBones(e,s,a);let r=this._loadSkinInverseBindMatricesDataAsync(e,s).then(e=>{this._updateBoneMatrices(a,e)});return s._data={babylonSkeleton:a,promise:r},n(a),r}_loadBones(e,t,s){if(void 0==t.skeleton||this._parent.alwaysComputeSkeletonRootNode){let s=this._findSkeletonRootNode(`${e}/joints`,t.joints);if(s)if(void 0===t.skeleton)t.skeleton=s.index;else{let n=ty.Get(`${e}/skeleton`,this._gltf.nodes,t.skeleton);n===s||((e,t)=>{for(;t.parent;t=t.parent)if(t.parent===e)return!0;return!1})(n,s)||(k.Logger.Warn(`${e}/skeleton: Overriding with nearest common ancestor as skeleton node is not a common root`),t.skeleton=s.index)}else k.Logger.Warn(`${e}: Failed to find common root`)}let n={};for(let i of t.joints){let o=ty.Get(`${e}/joints/${i}`,this._gltf.nodes,i);this._loadBone(o,t,s,n)}}_findSkeletonRootNode(e,t){if(0===t.length)return null;let s={};for(let n of t){let t=[],i=ty.Get(`${e}/${n}`,this._gltf.nodes,n);for(;-1!==i.index;)t.unshift(i),i=i.parent;s[n]=t}let n=null;for(let e=0;;++e){let i=s[t[0]];if(e>=i.length)return n;let o=i[e];for(let a=1;a<t.length;++a)if(e>=(i=s[t[a]]).length||o!==i[e])return n;n=o}}_loadBone(e,t,s,n){e._isJoint=!0;let i=n[e.index];if(i)return i;let o=null;e.index!==t.skeleton&&(e.parent&&-1!==e.parent.index?o=this._loadBone(e.parent,t,s,n):void 0!==t.skeleton&&k.Logger.Warn(`/skins/${t.index}/skeleton: Skeleton node is not a common root`));let a=t.joints.indexOf(e.index);return i=new ed.Bone(e.name||`joint${e.index}`,s,o,this._getNodeMatrix(e),null,null,a),n[e.index]=i,this._postSceneLoadActions.push(()=>{i.linkTransformNode(e._babylonTransformNode)}),i}_loadSkinInverseBindMatricesDataAsync(e,t){if(void 0==t.inverseBindMatrices)return Promise.resolve(null);let s=ty.Get(`${e}/inverseBindMatrices`,this._gltf.accessors,t.inverseBindMatrices);return this._loadFloatAccessorAsync(`/accessors/${s.index}`,s)}_updateBoneMatrices(e,t){for(let s of e.bones){let e=el.Matrix.Identity(),n=s._index;t&&-1!==n&&(el.Matrix.FromArrayToRef(t,16*n,e),e.invertToRef(e));let i=s.getParent();i&&e.multiplyToRef(i.getAbsoluteInverseBindMatrix(),e),s.updateMatrix(e,!1,!1),s._updateAbsoluteBindMatrices(void 0,!1)}}_getNodeMatrix(e){return e.matrix?el.Matrix.FromArray(e.matrix):el.Matrix.Compose(e.scale?el.Vector3.FromArray(e.scale):el.Vector3.One(),e.rotation?el.Quaternion.FromArray(e.rotation):el.Quaternion.Identity(),e.translation?el.Vector3.FromArray(e.translation):el.Vector3.Zero())}loadCameraAsync(e,t,s=()=>{}){let n=this._extensionsLoadCameraAsync(e,t,s);if(n)return n;this.logOpen(`${e} ${t.name||""}`),this._babylonScene._blockEntityCollection=!!this._assetContainer;let i=new eu.FreeCamera(t.name||`camera${t.index}`,el.Vector3.Zero(),this._babylonScene,!1);switch(i._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonCamera=i,i.setTarget(new el.Vector3(0,0,-1)),t.type){case"perspective":{let s=t.perspective;if(!s)throw Error(`${e}: Camera perspective properties are missing`);i.fov=s.yfov,i.minZ=s.znear,i.maxZ=s.zfar||0;break}case"orthographic":if(!t.orthographic)throw Error(`${e}: Camera orthographic properties are missing`);i.mode=D.Camera.ORTHOGRAPHIC_CAMERA,i.orthoLeft=-t.orthographic.xmag,i.orthoRight=t.orthographic.xmag,i.orthoBottom=-t.orthographic.ymag,i.orthoTop=t.orthographic.ymag,i.minZ=t.orthographic.znear,i.maxZ=t.orthographic.zfar;break;default:throw Error(`${e}: Invalid camera type (${t.type})`)}return tT.AddPointerMetadata(i,e),this._parent.onCameraLoadedObservable.notifyObservers(i),s(i),this.logClose(),Promise.all([]).then(()=>i)}_loadAnimationsAsync(){this._parent._startPerformanceCounter("Load animations");let e=this._gltf.animations;if(!e)return Promise.resolve();let t=[];for(let s=0;s<e.length;s++){let n=e[s];t.push(this.loadAnimationAsync(`/animations/${n.index}`,n).then(e=>{0===e.targetedAnimations.length&&e.dispose()}))}return Promise.all(t).then(()=>{this._parent._endPerformanceCounter("Load animations")})}loadAnimationAsync(e,t){this._parent._startPerformanceCounter("Load animation");let s=this._extensionsLoadAnimationAsync(e,t);return s||tf.value.then(({AnimationGroup:s})=>{this._babylonScene._blockEntityCollection=!!this._assetContainer;let n=new s(t.name||`animation${t.index}`,this._babylonScene);n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonAnimationGroup=n;let i=[];for(let s of(ty.Assign(t.channels),ty.Assign(t.samplers),t.channels))i.push(this._loadAnimationChannelAsync(`${e}/channels/${s.index}`,e,t,s,(e,t)=>{e.animations=e.animations||[],e.animations.push(t),n.addTargetedAnimation(t,e)}));return this._parent._endPerformanceCounter("Load animation"),Promise.all(i).then(()=>(n.normalize(0),n))})}_loadAnimationChannelAsync(e,t,s,n,i){let o=this._extensionsLoadAnimationChannelAsync(e,t,s,n,i);if(o)return o;if(void 0==n.target.node)return Promise.resolve();let a=ty.Get(`${e}/target/node`,this._gltf.nodes,n.target.node),r=n.target.path,l="weights"===r;return(!l||a._numMorphTargets)&&(l||a._babylonTransformNode)&&(this._parent.loadNodeAnimations||l||a._isJoint)?tg.value.then(()=>{let o;switch(r){case"translation":o=(0,tp.GetMappingForKey)("/nodes/{}/translation")?.interpolation;break;case"rotation":o=(0,tp.GetMappingForKey)("/nodes/{}/rotation")?.interpolation;break;case"scale":o=(0,tp.GetMappingForKey)("/nodes/{}/scale")?.interpolation;break;case"weights":o=(0,tp.GetMappingForKey)("/nodes/{}/weights")?.interpolation;break;default:throw Error(`${e}/target/path: Invalid value (${n.target.path})`)}if(!o)throw Error(`${e}/target/path: Could not find interpolation properties for target path (${n.target.path})`);let l={object:a,info:o};return this._loadAnimationChannelFromTargetInfoAsync(e,t,s,n,l,i)}):Promise.resolve()}_loadAnimationChannelFromTargetInfoAsync(e,t,s,n,i,o){let a=this.parent.targetFps,r=1/a,l=ty.Get(`${e}/sampler`,s.samplers,n.sampler);return this._loadAnimationSamplerAsync(`${t}/samplers/${n.sampler}`,l).then(e=>{let t=0,l=i.object;for(let h of i.info){let i=h.getStride(l),u=e.input,c=e.output,d=Array(u.length),_=0;switch(e.interpolation){case"STEP":for(let e=0;e<u.length;e++){let t=h.getValue(l,c,_,1);_+=i,d[e]={frame:u[e]*a,value:t,interpolation:1}}break;case"CUBICSPLINE":for(let e=0;e<u.length;e++){let t=h.getValue(l,c,_,r);_+=i;let s=h.getValue(l,c,_,1);_+=i;let n=h.getValue(l,c,_,r);_+=i,d[e]={frame:u[e]*a,inTangent:t,value:s,outTangent:n}}break;case"LINEAR":for(let e=0;e<u.length;e++){let t=h.getValue(l,c,_,1);_+=i,d[e]={frame:u[e]*a,value:t}}}if(_>0){let e=`${s.name||`animation${s.index}`}_channel${n.index}_${t}`;for(let s of h.buildAnimations(l,e,a,d))t++,o(s.babylonAnimatable,s.babylonAnimation)}}})}_loadAnimationSamplerAsync(e,t){if(t._data)return t._data;let s=t.interpolation||"LINEAR";switch(s){case"STEP":case"LINEAR":case"CUBICSPLINE":break;default:throw Error(`${e}/interpolation: Invalid value (${t.interpolation})`)}let n=ty.Get(`${e}/input`,this._gltf.accessors,t.input),i=ty.Get(`${e}/output`,this._gltf.accessors,t.output);return t._data=Promise.all([this._loadFloatAccessorAsync(`/accessors/${n.index}`,n),this._loadFloatAccessorAsync(`/accessors/${i.index}`,i)]).then(([e,t])=>({input:e,interpolation:s,output:t})),t._data}loadBufferAsync(e,t,s,n){let i=this._extensionsLoadBufferAsync(e,t,s,n);if(i)return i;if(!t._data)if(t.uri)t._data=this.loadUriAsync(`${e}/uri`,t,t.uri);else{if(!this._bin)throw Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);t._data=this._bin.readAsync(0,t.byteLength)}return t._data.then(t=>{try{return new Uint8Array(t.buffer,t.byteOffset+s,n)}catch(t){throw Error(`${e}: ${t.message}`,{cause:t})}})}loadBufferViewAsync(e,t){let s=this._extensionsLoadBufferViewAsync(e,t);if(s)return s;if(t._data)return t._data;let n=ty.Get(`${e}/buffer`,this._gltf.buffers,t.buffer);return t._data=this.loadBufferAsync(`/buffers/${n.index}`,n,t.byteOffset||0,t.byteLength),t._data}_loadAccessorAsync(e,t,s){if(t._data)return t._data;let n=tT._GetNumComponents(e,t.type),i=n*(0,ev.VertexBufferGetTypeByteLength)(t.componentType),o=n*t.count;if(void 0==t.bufferView)t._data=Promise.resolve(new s(o));else{let a=ty.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${a.index}`,a).then(r=>{if(5126===t.componentType&&!t.normalized&&(!a.byteStride||a.byteStride===i))return tT._GetTypedArray(e,t.componentType,r,t.byteOffset,o);{let e=new s(o);return(0,ev.VertexBufferForEach)(r,t.byteOffset||0,a.byteStride||i,n,t.componentType,e.length,t.normalized||!1,(t,s)=>{e[s]=t}),e}})}if(t.sparse){let o=t.sparse;t._data=t._data.then(a=>{let r=ty.Get(`${e}/sparse/indices/bufferView`,this._gltf.bufferViews,o.indices.bufferView),l=ty.Get(`${e}/sparse/values/bufferView`,this._gltf.bufferViews,o.values.bufferView);return Promise.all([this.loadBufferViewAsync(`/bufferViews/${r.index}`,r),this.loadBufferViewAsync(`/bufferViews/${l.index}`,l)]).then(([r,l])=>{let h,u=tT._GetTypedArray(`${e}/sparse/indices`,o.indices.componentType,r,o.indices.byteOffset,o.count),c=n*o.count;if(5126!==t.componentType||t.normalized){let a=tT._GetTypedArray(`${e}/sparse/values`,t.componentType,l,o.values.byteOffset,c);h=new s(c),(0,ev.VertexBufferForEach)(a,0,i,n,t.componentType,h.length,t.normalized||!1,(e,t)=>{h[t]=e})}else h=tT._GetTypedArray(`${e}/sparse/values`,t.componentType,l,o.values.byteOffset,c);let d=0;for(let e=0;e<u.length;e++){let t=u[e]*n;for(let e=0;e<n;e++)a[t++]=h[d++]}return a})})}return t._data}_loadFloatAccessorAsync(e,t){return this._loadAccessorAsync(e,t,Float32Array)}_loadIndicesAccessorAsync(e,t){if("SCALAR"!==t.type)throw Error(`${e}/type: Invalid value ${t.type}`);if(5121!==t.componentType&&5123!==t.componentType&&5125!==t.componentType)throw Error(`${e}/componentType: Invalid value ${t.componentType}`);if(t._data)return t._data;if(t.sparse){let s=tT._GetTypedArrayConstructor(`${e}/componentType`,t.componentType);t._data=this._loadAccessorAsync(e,t,s)}else{let s=ty.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${s.index}`,s).then(s=>tT._GetTypedArray(e,t.componentType,s,t.byteOffset,t.count))}return t._data}_loadVertexBufferViewAsync(e){if(e._babylonBuffer)return e._babylonBuffer;let t=this._babylonScene.getEngine();return e._babylonBuffer=this.loadBufferViewAsync(`/bufferViews/${e.index}`,e).then(e=>new ev.Buffer(t,e,!1)),e._babylonBuffer}_loadVertexAccessorAsync(e,t,s){if(t._babylonVertexBuffer?.[s])return t._babylonVertexBuffer[s];t._babylonVertexBuffer||(t._babylonVertexBuffer={});let n=this._babylonScene.getEngine();if(t.sparse||void 0==t.bufferView)t._babylonVertexBuffer[s]=this._loadFloatAccessorAsync(e,t).then(e=>new ev.VertexBuffer(n,e,s,!1));else{let i=ty.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._babylonVertexBuffer[s]=this._loadVertexBufferViewAsync(i).then(o=>{let a=tT._GetNumComponents(e,t.type);return new ev.VertexBuffer(n,o,s,!1,void 0,i.byteStride,void 0,t.byteOffset,a,t.componentType,t.normalized,!0,void 0,!0)})}return t._babylonVertexBuffer[s]}_loadMaterialMetallicRoughnessPropertiesAsync(e,t,s){let n=[],i=this._getOrCreateMaterialAdapter(s);return t&&(t.baseColorFactor?(i.baseColor=eh.Color3.FromArray(t.baseColorFactor),i.geometryOpacity=t.baseColorFactor[3]):i.baseColor=eh.Color3.White(),i.baseMetalness=void 0==t.metallicFactor?1:t.metallicFactor,i.specularRoughness=void 0==t.roughnessFactor?1:t.roughnessFactor,t.baseColorTexture&&n.push(this.loadTextureInfoAsync(`${e}/baseColorTexture`,t.baseColorTexture,e=>{e.name=`${s.name} (Base Color)`,i.baseColorTexture=e})),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture.nonColorData=!0,n.push(this.loadTextureInfoAsync(`${e}/metallicRoughnessTexture`,t.metallicRoughnessTexture,e=>{e.name=`${s.name} (Metallic Roughness)`,i.baseMetalnessTexture=e,i.specularRoughnessTexture=e})),i.useRoughnessFromMetallicTextureGreen=!0,i.useMetallicFromMetallicTextureBlue=!0)),Promise.all(n).then(()=>{})}_loadMaterialAsync(e,t,s,n,i=()=>{}){let o=this._extensionsLoadMaterialAsync(e,t,s,n,i);if(o)return o;t._data=t._data||{};let a=t._data[n];if(!a){this.logOpen(`${e} ${t.name||""}`);let s=this.createMaterial(e,t,n);a={babylonMaterial:s,babylonMeshes:[],promise:this.loadMaterialPropertiesAsync(e,t,s)},t._data[n]=a,tT.AddPointerMetadata(s,e),this._parent.onMaterialLoadedObservable.notifyObservers(s),this.logClose()}return s&&(a.babylonMeshes.push(s),s.onDisposeObservable.addOnce(()=>{let e=a.babylonMeshes.indexOf(s);-1!==e&&a.babylonMeshes.splice(e,1)})),i(a.babylonMaterial),a.promise.then(()=>a.babylonMaterial)}_selectImplForGltfMaterial(e){if(this.parent.useOpenPBR||e.extensions?.KHR_materials_openpbr){let e=this._pbrMaterialImpls.get("openpbr");if(e)return e}let t=this._pbrMaterialImpls.get("pbr");if(t)return t;throw Error("No PBR material implementation loaded")}_getDefaultImpl(){if(this.parent.useOpenPBR){let e=this._pbrMaterialImpls.get("openpbr");if(e)return e}let e=this._pbrMaterialImpls.get("pbr")??this._pbrMaterialImpls.values().next().value;if(e)return e;throw Error("No PBR material implementation loaded")}_createDefaultMaterial(e,t,s){this._babylonScene._blockEntityCollection=!!this._assetContainer;let n=new s.materialClass(e,this._babylonScene);n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,n.fillMode=t,n.transparencyMode=s.materialClass.MATERIAL_OPAQUE;let i=this._getOrCreateMaterialAdapter(n);return i.transparencyAsAlphaCoverage=this._parent.transparencyAsCoverage,i.baseMetalness=1,i.specularRoughness=1,n}createMaterial(e,t,s){let n=this._extensionsCreateMaterial(e,t,s);if(n)return n;let i=t.name||`material${t.index}`;return this._createDefaultMaterial(i,s,this._selectImplForGltfMaterial(t))}loadMaterialPropertiesAsync(e,t,s){let n=this._extensionsLoadMaterialPropertiesAsync(e,t,s);if(n)return n;let i=[];return i.push(this.loadMaterialBasePropertiesAsync(e,t,s)),t.pbrMetallicRoughness&&i.push(this._loadMaterialMetallicRoughnessPropertiesAsync(`${e}/pbrMetallicRoughness`,t.pbrMetallicRoughness,s)),this.loadMaterialAlphaProperties(e,t,s),Promise.all(i).then(()=>{})}loadMaterialBasePropertiesAsync(e,t,s){let n,i,o=[],a=this._getOrCreateMaterialAdapter(s);a.emissionColor=t.emissiveFactor?eh.Color3.FromArray(t.emissiveFactor):new eh.Color3(0,0,0),t.doubleSided&&(a.backFaceCulling=!1,a.twoSidedLighting=!0),t.normalTexture&&(t.normalTexture.nonColorData=!0,o.push(this.loadTextureInfoAsync(`${e}/normalTexture`,t.normalTexture,e=>{e.name=`${s.name} (Normal)`,a.geometryNormalTexture=e,t.normalTexture?.scale!=void 0&&(e.level=t.normalTexture.scale)})),a.setNormalMapInversions(!this._babylonScene.useRightHandedSystem,this._babylonScene.useRightHandedSystem));let r=1;return t.occlusionTexture&&(t.occlusionTexture.nonColorData=!0,o.push(this.loadTextureInfoAsync(`${e}/occlusionTexture`,t.occlusionTexture,e=>{e.name=`${s.name} (Occlusion)`,n=e})),void 0!=t.occlusionTexture.strength&&(r=t.occlusionTexture.strength)),t.emissiveTexture&&o.push(this.loadTextureInfoAsync(`${e}/emissiveTexture`,t.emissiveTexture,e=>{e.name=`${s.name} (Emissive)`,i=e})),Promise.all(o).then(()=>{n&&(a.ambientOcclusionTexture=n,a.ambientOcclusionTextureStrength=r),i&&(a.emissionColorTexture=i)})}loadMaterialAlphaProperties(e,t,s){if(0===this._pbrMaterialImpls.size)throw Error(`${e}: Material type not supported`);let n=this._getOrCreateMaterialAdapter(s),i=n.baseColorTexture;switch(t.alphaMode||"OPAQUE"){case"OPAQUE":s.transparencyMode=eb.Material.MATERIAL_OPAQUE,s.alpha=1;break;case"MASK":s.transparencyMode=eb.Material.MATERIAL_ALPHATEST,n.alphaCutOff=void 0==t.alphaCutoff?.5:t.alphaCutoff,i&&(i.hasAlpha=!0,n.useAlphaFromBaseColorTexture=!0);break;case"BLEND":s.transparencyMode=eb.Material.MATERIAL_ALPHABLEND,i&&(i.hasAlpha=!0,n.useAlphaFromBaseColorTexture=!0);break;default:throw Error(`${e}/alphaMode: Invalid value (${t.alphaMode})`)}}loadTextureInfoAsync(e,t,s=()=>{}){let n=this._extensionsLoadTextureInfoAsync(e,t,s);if(n)return n;if(this.logOpen(`${e}`),t.texCoord>=6)throw Error(`${e}/texCoord: Invalid value (${t.texCoord})`);let i=ty.Get(`${e}/index`,this._gltf.textures,t.index);i._textureInfo=t;let o=this._loadTextureAsync(`/textures/${t.index}`,i,n=>{n.coordinatesIndex=t.texCoord||0,tT.AddPointerMetadata(n,e),this._parent.onTextureLoadedObservable.notifyObservers(n),s(n)});return this.logClose(),o}_loadTextureAsync(e,t,s=()=>{}){let n=this._extensionsLoadTextureAsync(e,t,s);if(n)return n;this.logOpen(`${e} ${t.name||""}`);let i=void 0==t.sampler?tT.DefaultSampler:ty.Get(`${e}/sampler`,this._gltf.samplers,t.sampler),o=ty.Get(`${e}/source`,this._gltf.images,t.source),a=this._createTextureAsync(e,i,o,s,void 0,!t._textureInfo.nonColorData);return this.logClose(),a}_createTextureAsync(e,t,s,n=()=>{},i,o){let a=this._loadSampler(`/samplers/${t.index}`,t),r=[],l=new tn;this._babylonScene._blockEntityCollection=!!this._assetContainer;let h={noMipmap:a.noMipMaps,invertY:!1,samplingMode:a.samplingMode,onLoad:()=>{this._disposed||l.resolve()},onError:(t,s)=>{this._disposed||l.reject(Error(`${e}: ${s&&s.message?s.message:t||"Failed to load texture"}`))},mimeType:s.mimeType??(0,J.GetMimeType)(s.uri??""),loaderOptions:i,useSRGBBuffer:!!o&&this._parent.useSRGBBuffers},u=new e_.Texture(null,this._babylonScene,h);u._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,r.push(l.promise);let c=s.uri&&!(0,J.IsBase64DataUrl)(s.uri)?s.uri:void 0,d=c??`${this._fileName}#image${s.index}`;return r.push(this.loadImageAsync(`/images/${s.index}`,s).then(e=>{let t=`data:${this._uniqueRootUrl}${d}`;u.updateURL(t,e);let n=u.getInternalTexture();n&&(n.label=s.name)})),u.wrapU=a.wrapU,u.wrapV=a.wrapV,n(u),this._parent.useGltfTextureNames&&(u.name=s.name||c||`image${s.index}`),Promise.all(r).then(()=>u)}_loadSampler(e,t){return t._data||(t._data={noMipMaps:9728===t.minFilter||9729===t.minFilter,samplingMode:tT._GetTextureSamplingMode(e,t),wrapU:tT._GetTextureWrapMode(`${e}/wrapS`,t.wrapS),wrapV:tT._GetTextureWrapMode(`${e}/wrapT`,t.wrapT)}),t._data}loadImageAsync(e,t){if(!t._data){if(this.logOpen(`${e} ${t.name||""}`),t.uri)t._data=this.loadUriAsync(`${e}/uri`,t,t.uri);else{let s=ty.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${s.index}`,s)}this.logClose()}return t._data}loadUriAsync(e,t,s){let n=this._extensionsLoadUriAsync(e,t,s);if(n)return n;if(!tT._ValidateUri(s))throw Error(`${e}: '${s}' is invalid`);if((0,J.IsBase64DataUrl)(s)){let t=new Uint8Array((0,J.DecodeBase64UrlToBinary)(s));return this.log(`${e}: Decoded ${s.substring(0,64)}... (${t.length} bytes)`),Promise.resolve(t)}return this.log(`${e}: Loading ${s}`),this._parent.preprocessUrlAsync(this._rootUrl+s).then(t=>new Promise((n,i)=>{this._parent._loadFile(this._babylonScene,t,t=>{this._disposed||(this.log(`${e}: Loaded ${s} (${t.byteLength} bytes)`),n(new Uint8Array(t)))},!0,t=>{i(new J.LoadFileError(`${e}: Failed to load '${s}'${t?": "+t.status+" "+t.statusText:""}`,t))})}))}static AddPointerMetadata(e,t){e.metadata=e.metadata||{};let s=e._internalMetadata=e._internalMetadata||{},n=s.gltf=s.gltf||{};(n.pointers=n.pointers||[]).push(t)}static _GetTextureWrapMode(e,t){switch(t=void 0==t?10497:t){case 33071:return e_.Texture.CLAMP_ADDRESSMODE;case 33648:return e_.Texture.MIRROR_ADDRESSMODE;case 10497:return e_.Texture.WRAP_ADDRESSMODE;default:return k.Logger.Warn(`${e}: Invalid value (${t})`),e_.Texture.WRAP_ADDRESSMODE}}static _GetTextureSamplingMode(e,t){let s=void 0==t.magFilter?9729:t.magFilter,n=void 0==t.minFilter?9987:t.minFilter;if(9729===s)switch(n){case 9728:return e_.Texture.LINEAR_NEAREST;case 9729:return e_.Texture.LINEAR_LINEAR;case 9984:return e_.Texture.LINEAR_NEAREST_MIPNEAREST;case 9985:return e_.Texture.LINEAR_LINEAR_MIPNEAREST;case 9986:return e_.Texture.LINEAR_NEAREST_MIPLINEAR;case 9987:return e_.Texture.LINEAR_LINEAR_MIPLINEAR;default:return k.Logger.Warn(`${e}/minFilter: Invalid value (${n})`),e_.Texture.LINEAR_LINEAR_MIPLINEAR}switch(9728!==s&&k.Logger.Warn(`${e}/magFilter: Invalid value (${s})`),n){case 9728:return e_.Texture.NEAREST_NEAREST;case 9729:return e_.Texture.NEAREST_LINEAR;case 9984:return e_.Texture.NEAREST_NEAREST_MIPNEAREST;case 9985:return e_.Texture.NEAREST_LINEAR_MIPNEAREST;case 9986:return e_.Texture.NEAREST_NEAREST_MIPLINEAR;case 9987:return e_.Texture.NEAREST_LINEAR_MIPLINEAR;default:return k.Logger.Warn(`${e}/minFilter: Invalid value (${n})`),e_.Texture.NEAREST_NEAREST_MIPNEAREST}}static _GetTypedArrayConstructor(e,t){try{return(0,eK.GetTypedArrayConstructor)(t)}catch(t){throw Error(`${e}: ${t.message}`,{cause:t})}}static _GetTypedArray(e,t,s,n,i){let o=s.buffer;n=s.byteOffset+(n||0);let a=tT._GetTypedArrayConstructor(`${e}/componentType`,t),r=(0,ev.VertexBufferGetTypeByteLength)(t);return n%r!=0?(k.Logger.Warn(`${e}: Copying buffer as byte offset (${n}) is not a multiple of component type byte length (${r})`),new a(o.slice(n,n+i*r),0)):new a(o,n,i)}static _GetNumComponents(e,t){switch(t){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}throw Error(`${e}: Invalid type (${t})`)}static _ValidateUri(e){return S.Tools.IsBase64(e)||-1===e.indexOf("..")}static _GetDrawMode(e,t){switch(void 0==t&&(t=4),t){case 0:return eb.Material.PointListDrawMode;case 1:return eb.Material.LineListDrawMode;case 2:return eb.Material.LineLoopDrawMode;case 3:return eb.Material.LineStripDrawMode;case 4:return eb.Material.TriangleFillMode;case 5:return eb.Material.TriangleStripDrawMode;case 6:return eb.Material.TriangleFanDrawMode}throw Error(`${e}: Invalid mesh primitive mode (${t})`)}_compileMaterialsAsync(){this._parent._startPerformanceCounter("Compile materials");let e=[];if(this._gltf.materials){for(let t of this._gltf.materials)if(t._data)for(let s in t._data){let n=t._data[s];for(let t of n.babylonMeshes){t.computeWorldMatrix(!0);let s=n.babylonMaterial;e.push(s.forceCompilationAsync(t)),e.push(s.forceCompilationAsync(t,{useInstances:!0})),this._parent.useClipPlane&&(e.push(s.forceCompilationAsync(t,{clipPlane:!0})),e.push(s.forceCompilationAsync(t,{clipPlane:!0,useInstances:!0})))}}}return Promise.all(e).then(()=>{this._parent._endPerformanceCounter("Compile materials")})}_compileShadowGeneratorsAsync(){this._parent._startPerformanceCounter("Compile shadow generators");let e=[];for(let t of this._babylonScene.lights){let s=t.getShadowGenerator();s&&e.push(s.forceCompilationAsync())}return Promise.all(e).then(()=>{this._parent._endPerformanceCounter("Compile shadow generators")})}_forEachExtensions(e){for(let t of this._extensions)t.enabled&&e(t)}_applyExtensions(e,t,s){for(let n of this._extensions)if(n.enabled){let i=`${n.name}.${t}`;e._activeLoaderExtensionFunctions=e._activeLoaderExtensionFunctions||{};let o=e._activeLoaderExtensionFunctions;if(!o[i]){o[i]=!0;try{let e=s(n);if(e)return e}finally{delete o[i]}}}return null}_extensionsOnLoading(){this._forEachExtensions(e=>e.onLoading&&e.onLoading())}_extensionsOnReady(){this._forEachExtensions(e=>e.onReady&&e.onReady())}_extensionsLoadSceneAsync(e,t){return this._applyExtensions(t,"loadScene",s=>s.loadSceneAsync&&s.loadSceneAsync(e,t))}_extensionsLoadNodeAsync(e,t,s){return this._applyExtensions(t,"loadNode",n=>n.loadNodeAsync&&n.loadNodeAsync(e,t,s))}_extensionsLoadCameraAsync(e,t,s){return this._applyExtensions(t,"loadCamera",n=>n.loadCameraAsync&&n.loadCameraAsync(e,t,s))}_extensionsLoadVertexDataAsync(e,t,s){return this._applyExtensions(t,"loadVertexData",n=>n._loadVertexDataAsync&&n._loadVertexDataAsync(e,t,s))}_extensionsLoadMeshPrimitiveAsync(e,t,s,n,i,o){return this._applyExtensions(i,"loadMeshPrimitive",a=>a._loadMeshPrimitiveAsync&&a._loadMeshPrimitiveAsync(e,t,s,n,i,o))}_extensionsLoadMaterialAsync(e,t,s,n,i){return this._applyExtensions(t,"loadMaterial",o=>o._loadMaterialAsync&&o._loadMaterialAsync(e,t,s,n,i))}_extensionsCreateMaterial(e,t,s){return this._applyExtensions(t,"createMaterial",n=>n.createMaterial&&n.createMaterial(e,t,s))}_extensionsLoadMaterialPropertiesAsync(e,t,s){return this._applyExtensions(t,"loadMaterialProperties",n=>n.loadMaterialPropertiesAsync&&n.loadMaterialPropertiesAsync(e,t,s))}_extensionsLoadTextureInfoAsync(e,t,s){return this._applyExtensions(t,"loadTextureInfo",n=>n.loadTextureInfoAsync&&n.loadTextureInfoAsync(e,t,s))}_extensionsLoadTextureAsync(e,t,s){return this._applyExtensions(t,"loadTexture",n=>n._loadTextureAsync&&n._loadTextureAsync(e,t,s))}_extensionsLoadAnimationAsync(e,t){return this._applyExtensions(t,"loadAnimation",s=>s.loadAnimationAsync&&s.loadAnimationAsync(e,t))}_extensionsLoadAnimationChannelAsync(e,t,s,n,i){return this._applyExtensions(s,"loadAnimationChannel",o=>o._loadAnimationChannelAsync&&o._loadAnimationChannelAsync(e,t,s,n,i))}_extensionsLoadSkinAsync(e,t,s){return this._applyExtensions(s,"loadSkin",n=>n._loadSkinAsync&&n._loadSkinAsync(e,t,s))}_extensionsLoadUriAsync(e,t,s){return this._applyExtensions(t,"loadUri",n=>n._loadUriAsync&&n._loadUriAsync(e,t,s))}_extensionsLoadBufferViewAsync(e,t){return this._applyExtensions(t,"loadBufferView",s=>s.loadBufferViewAsync&&s.loadBufferViewAsync(e,t))}_extensionsLoadBufferAsync(e,t,s,n){return this._applyExtensions(t,"loadBuffer",i=>i.loadBufferAsync&&i.loadBufferAsync(e,t,s,n))}static LoadExtensionAsync(e,t,s,n){if(!t.extensions)return null;let i=t.extensions[s];return i?n(`${e}/extensions/${s}`,i):null}static LoadExtraAsync(e,t,s,n){if(!t.extras)return null;let i=t.extras[s];return i?n(`${e}/extras/${s}`,i):null}isExtensionUsed(e){return!!this._gltf.extensionsUsed&&-1!==this._gltf.extensionsUsed.indexOf(e)}logOpen(e){this._parent._logOpen(e)}logClose(){this._parent._logClose()}log(e){this._parent._log(e)}startPerformanceCounter(e){this._parent._startPerformanceCounter(e)}endPerformanceCounter(e){this._parent._endPerformanceCounter(e)}}tT.DefaultSampler={index:-1};let tA=!1;function tx(){tA||(tA=!0,eo._CreateGLTF2Loader=e=>new tT(e))}e.s(["ArrayItem",0,ty,"GLTFLoader",0,tT,"LoadBoundingInfoFromPositionAccessor",0,tb,"RegisterGLTF2Loader",0,tx],62991),tx(),e.s([],97709);var tw=e.i(34613);e.s([],84523);var tv=e.i(89991),tM=e.i(44147),tC=e.i(49097),tF=e.i(88048),tE=e.i(4522);class tR extends tF.BaseTexture{set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;let t=this.getScene();t&&t.markAllMaterialsAsDirty(1)}get boundingBoxSize(){return this._boundingBoxSize}set rotationY(e){this._rotationY=e,this.setReflectionTextureMatrix(el.Matrix.RotationY(this._rotationY))}get rotationY(){return this._rotationY}get noMipmap(){return this._noMipmap}get forcedExtension(){return this._forcedExtension}constructor(e,t,s=null,n=!1,i=null,o=null,a=null,r=5,l=!1,h=null,u=!1,c=.8,d=0,_,p){let m;super(t),this.onLoadObservable=new R.Observable,this.boundingBoxPosition=el.Vector3.Zero(),this._rotationY=0,this._files=null,this._forcedExtension=null,this._extensions=null,this._textureMatrixRefraction=new el.Matrix,this._buffer=null,(0,tE.RegisterAbstractEngineCubeTexture)(),this.name=e,this.url=e,this._noMipmap=n,this.hasAlpha=!1,this.isCube=!0,this._textureMatrix=el.Matrix.Identity(),this.coordinatesMode=e_.Texture.CUBIC_MODE;let f=null;if(null===s||Array.isArray(s)?(this._noMipmap=n,this._format=r,this._createPolynomials=u,m=s,this._loaderOptions=_,this._useSRGBBuffer=p,this._lodScale=c,this._lodOffset=d):(m=s.extensions??null,this._noMipmap=s.noMipmap??!1,i=s.files??null,f=s.buffer??null,this._format=s.format??5,l=s.prefiltered??!1,h=s.forcedExtension??null,this._createPolynomials=s.createPolynomials??!1,this._lodScale=s.lodScale??.8,this._lodOffset=s.lodOffset??0,this._loaderOptions=s.loaderOptions,this._useSRGBBuffer=s.useSRGBBuffer,this._sphericalPolynomialTargetSize=s.sphericalPolynomialTargetSize??0,o=s.onLoad??null,a=s.onError??null),!e&&!i)return;this.updateURL(e,h,o,l,a,m,this.getScene()?.useDelayedTextureLoading,i,f)}getClassName(){return"CubeTexture"}updateURL(e,t=null,s=null,n=!1,i=null,o=null,a=!1,r=null,l=null){(!this.name||this.name.startsWith("data:"))&&(this.name=e),this.url=e,t&&(this._forcedExtension=t);let h=e.lastIndexOf("."),u=t||(h>-1?e.substring(h).toLowerCase():""),c=0===u.indexOf(".dds"),d=0===u.indexOf(".env"),_=0===u.indexOf(".basis");if(d?(this.gammaSpace=!1,this._prefiltered=!1,this.anisotropicFilteringLevel=1):(this._prefiltered=n,n&&(this.gammaSpace=!1,this.anisotropicFilteringLevel=1)),r)this._files=r;else if(_||d||c||o||(o=["_px.jpg","_py.jpg","_pz.jpg","_nx.jpg","_ny.jpg","_nz.jpg"]),this._files=this._files||[],this._files.length=0,o){for(let t=0;t<o.length;t++)this._files.push(e+o[t]);this._extensions=o}this._buffer=l,a?(this.delayLoadState=4,this._delayedOnLoad=s,this._delayedOnError=i):this._loadTexture(s,i)}delayLoad(e){4===this.delayLoadState&&(e&&(this._forcedExtension=e),this.delayLoadState=1,this._loadTexture(this._delayedOnLoad,this._delayedOnError))}getReflectionTextureMatrix(){return this._textureMatrix}setReflectionTextureMatrix(e){if(e.updateFlag===this._textureMatrix.updateFlag||(e.isIdentity()!==this._textureMatrix.isIdentity()&&this.getScene()?.markAllMaterialsAsDirty(1,e=>-1!==e.getActiveTextures().indexOf(this)),this._textureMatrix=e,!this.getScene()?.useRightHandedSystem))return;let t=el.TmpVectors.Vector3[0],s=el.TmpVectors.Quaternion[0],n=el.TmpVectors.Vector3[1];this._textureMatrix.decompose(t,s,n),s.z*=-1,s.w*=-1,el.Matrix.ComposeToRef(t,s,n,this._textureMatrixRefraction)}getRefractionTextureMatrix(){return this.getScene()?.useRightHandedSystem?this._textureMatrixRefraction:this._textureMatrix}_loadTexture(e=null,t=null){let s=this.getScene(),n=this._texture;this._texture=this._getFromCache(this.url,this._noMipmap,void 0,void 0,this._useSRGBBuffer,this.isCube);let i=()=>{this.onLoadObservable.notifyObservers(this),n&&(n.dispose(),this.getScene()?.markAllMaterialsAsDirty(1)),e&&e()},o=(e,s)=>{this._loadingError=!0,this._errorObject={message:e,exception:s},t&&t(e,s),e_.Texture.OnTextureLoadErrorObservable.notifyObservers(this)};this._texture?this._texture.isReady?tC.TimingTools.SetImmediate(()=>i()):this._texture.onLoadedObservable.add(()=>i()):(this._prefiltered?this._texture=this._getEngine().createPrefilteredCubeTexture(this.url,s,this._lodScale,this._lodOffset,e,o,this._format,this._forcedExtension,this._createPolynomials):this._texture=this._getEngine().createCubeTexture(this.url,s,this._files,this._noMipmap,e,o,this._format,this._forcedExtension,!1,this._lodScale,this._lodOffset,null,this._loaderOptions,!!this._useSRGBBuffer,this._buffer),this._texture?.onLoadedObservable.add(()=>this.onLoadObservable.notifyObservers(this)))}clone(){let e=0,t=this.irradianceTexture,s=ti.SerializationHelper.Clone(()=>{let t=new tR(this.url,this.getScene()||this._getEngine(),this._extensions,this._noMipmap,this._files);return e=t.uniqueId,t},this);return s.uniqueId=e,t&&!this.irradianceTexture&&(this.irradianceTexture=t),s}}(0,eE.__decorate)([(0,eR.serialize)()],tR.prototype,"url",void 0),(0,eE.__decorate)([(0,eR.serializeAsVector3)()],tR.prototype,"boundingBoxPosition",void 0),(0,eE.__decorate)([(0,eR.serializeAsVector3)()],tR.prototype,"boundingBoxSize",null),(0,eE.__decorate)([(0,eR.serialize)("rotationY")],tR.prototype,"rotationY",null),(0,eE.__decorate)([(0,eR.serialize)("files")],tR.prototype,"_files",void 0),(0,eE.__decorate)([(0,eR.serialize)("forcedExtension")],tR.prototype,"_forcedExtension",void 0),(0,eE.__decorate)([(0,eR.serialize)("extensions")],tR.prototype,"_extensions",void 0),(0,eE.__decorate)([(0,eR.serializeAsMatrix)("textureMatrix")],tR.prototype,"_textureMatrix",void 0),(0,eE.__decorate)([(0,eR.serializeAsMatrix)("textureMatrixRefraction")],tR.prototype,"_textureMatrixRefraction",void 0);class tS extends tR{constructor(e,t,s,n=5,i=0,o=!1,a=!1,r=3,l=null){super("",e),this._texture=e.getEngine().createRawCubeTexture(t,s,n,i,o,a,r,l)}update(e,t,s,n,i=null){this._texture.getEngine().updateRawCubeTexture(this._texture,e,t,s,n,i)}updateRGBDAsync(e,t=null,s=.8,n=0){return(0,tM._UpdateRGBDAsync)(this._texture,e,t,s,n).then(()=>{})}clone(){return ti.SerializationHelper.Clone(()=>{let e=this.getScene(),t=this._texture,s=new tS(e,t._bufferViewArray,t.width,t.format,t.type,t.generateMipMaps,t.invertY,t.samplingMode,t._compression);return 13===t.source&&s.updateRGBDAsync(t._bufferViewArrayArray,t._sphericalPolynomial,t._lodGenerationScale,t._lodGenerationOffset),s},this)}}let tO="EXT_lights_image_based";class tI{constructor(e){this.name=tO,this._loader=e,this.enabled=this._loader.isExtensionUsed(tO)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights}}loadSceneAsync(e,t){return tT.LoadExtensionAsync(e,t,this.name,async(s,n)=>{this._loader._allMaterialsDirtyRequired=!0;let i=[];i.push(this._loader.loadSceneAsync(e,t)),this._loader.logOpen(`${s}`);let o=ty.Get(`${s}/light`,this._lights,n.light);return i.push(this._loadLightAsync(`/extensions/${this.name}/lights/${n.light}`,o).then(e=>{this._loader.babylonScene.environmentTexture=e})),this._loader.logClose(),await Promise.all(i).then(()=>{})})}_loadLightAsync(e,t){if(!t._loaded){let s=[];this._loader.logOpen(`${e}`);let n=Array(t.specularImages.length);for(let i=0;i<t.specularImages.length;i++){let o=t.specularImages[i];n[i]=Array(o.length);for(let t=0;t<o.length;t++){let a=`${e}/specularImages/${i}/${t}`;this._loader.logOpen(`${a}`);let r=o[t],l=ty.Get(a,this._loader.gltf.images,r);s.push(this._loader.loadImageAsync(`/images/${r}`,l).then(e=>{n[i][t]=e})),this._loader.logClose()}}this._loader.logClose(),t._loaded=Promise.all(s).then(async()=>{let s=new tS(this._loader.babylonScene,null,t.specularImageSize);if(s.name=t.name||"environment",t._babylonTexture=s,void 0!=t.intensity&&(s.level=t.intensity),t.rotation){let e=el.Quaternion.FromArray(t.rotation);this._loader.babylonScene.useRightHandedSystem||(e=el.Quaternion.Inverse(e)),el.Matrix.FromQuaternionToRef(e,s.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw Error(`${e}: Irradiance coefficients are missing`);let i=tv.SphericalHarmonics.FromArray(t.irradianceCoefficients);i.scaleInPlace(t.intensity),i.convertIrradianceToLambertianRadiance();let o=tv.SphericalPolynomial.FromHarmonics(i),a=(n.length-1)/Math.log2(t.specularImageSize);return await s.updateRGBDAsync(n,o,a)})}return t._loaded.then(()=>t._babylonTexture)}}let tN=!1;function tB(){tN||(tN=!0,t_(tO),td(tO,!0,e=>new tI(e)))}e.s(["EXT_lights_image_based",0,tI,"RegisterEXT_lights_image_based",0,tB],28514),tB(),e.s([],87018),e.s([],32391),e.i(6801);let tk="EXT_mesh_gpu_instancing";class tP{constructor(e){this.name=tk,this._loader=e,this.enabled=this._loader.isExtensionUsed(tk)}dispose(){this._loader=null}loadNodeAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(e,n)=>{this._loader._disableInstancedMesh++;let i=this._loader.loadNodeAsync(`/nodes/${t.index}`,t,s);if(this._loader._disableInstancedMesh--,!t._primitiveBabylonMeshes)return await i;let o=[],a=0,r=t=>{if(void 0==n.attributes[t])return void o.push(Promise.resolve(null));let s=ty.Get(`${e}/attributes/${t}`,this._loader.gltf.accessors,n.attributes[t]);if(o.push(this._loader._loadFloatAccessorAsync(`/accessors/${s.bufferView}`,s)),0===a)a=s.count;else if(a!==s.count)throw Error(`${e}/attributes: Instance buffer accessors do not have the same count.`)};return r("TRANSLATION"),r("ROTATION"),r("SCALE"),r("_COLOR_0"),await i.then(async e=>{let[s,n,i,r]=await Promise.all(o),l=new Float32Array(16*a);el.TmpVectors.Vector3[0].copyFromFloats(0,0,0),el.TmpVectors.Quaternion[0].copyFromFloats(0,0,0,1),el.TmpVectors.Vector3[1].copyFromFloats(1,1,1);for(let e=0;e<a;++e)s&&el.Vector3.FromArrayToRef(s,3*e,el.TmpVectors.Vector3[0]),n&&el.Quaternion.FromArrayToRef(n,4*e,el.TmpVectors.Quaternion[0]),i&&el.Vector3.FromArrayToRef(i,3*e,el.TmpVectors.Vector3[1]),el.Matrix.ComposeToRef(el.TmpVectors.Vector3[1],el.TmpVectors.Quaternion[0],el.TmpVectors.Vector3[0],el.TmpVectors.Matrix[0]),el.TmpVectors.Matrix[0].copyToArray(l,16*e);for(let e of t._primitiveBabylonMeshes)e.thinInstanceSetBuffer("matrix",l,16,!0),r&&(r.length===3*a?e.thinInstanceSetBuffer("color",r,3,!0):r.length===4*a?e.thinInstanceSetBuffer("color",r,4,!0):k.Logger.Warn("Unexpected size of _COLOR_0 attribute for mesh "+e.name));return e})})}}let tL=!1;function tG(){tL||(tL=!0,t_(tk),td(tk,!0,e=>new tP(e)))}e.s(["EXT_mesh_gpu_instancing",0,tP,"RegisterEXT_mesh_gpu_instancing",0,tG],5335),tG(),e.s([],61568),e.s([],96902);let tD=0,tV=null;class tK{static get Default(){return tK._Default||(tK._Default=new tK),tK._Default}constructor(){const e=tK.Configuration.decoder;this._decoderModulePromise=S.Tools.LoadBabylonScriptAsync(e.url).then(()=>MeshoptDecoder.ready)}dispose(){delete this._decoderModulePromise}async decodeGltfBufferAsync(e,t,s,n,i){await this._decoderModulePromise,0===tD&&(MeshoptDecoder.useWorkers(1),tD=1);let o=await MeshoptDecoder.decodeGltfBufferAsync(t,s,e,n,i);return null!==tV&&clearTimeout(tV),tV=setTimeout(()=>{MeshoptDecoder.useWorkers(0),tD=0,tV=null},1e3),o}}tK.Configuration={decoder:{url:`${S.Tools._DefaultCdnUrl}/meshopt_decoder.js`}},tK._Default=null;let tH="EXT_meshopt_compression";class tU{constructor(e){this.name=tH,this.enabled=e.isExtensionUsed(tH),this._loader=e}dispose(){this._loader=null}loadBufferViewAsync(e,t){return tT.LoadExtensionAsync(e,t,this.name,async(s,n)=>{if(t._meshOptData)return await t._meshOptData;let i=ty.Get(`${e}/buffer`,this._loader.gltf.buffers,n.buffer);return t._meshOptData=this._loader.loadBufferAsync(`/buffers/${i.index}`,i,n.byteOffset||0,n.byteLength).then(async e=>await tK.Default.decodeGltfBufferAsync(e,n.count,n.byteStride,n.mode,n.filter)),await t._meshOptData})}}let t$=!1;function tz(){t$||(t$=!0,t_(tH),td(tH,!0,e=>new tU(e)))}e.s(["EXT_meshopt_compression",0,tU,"RegisterEXT_meshopt_compression",0,tz],36553),tz(),e.s([],13272),e.s([],56758);let tq="EXT_texture_webp";class tW{constructor(e){this.name=tq,this._loader=e,this.enabled=e.isExtensionUsed(tq)}dispose(){this._loader=null}_loadTextureAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=void 0==t.sampler?tT.DefaultSampler:ty.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),a=ty.Get(`${n}/source`,this._loader.gltf.images,i.source);return await this._loader._createTextureAsync(e,o,a,e=>{s(e)},void 0,!t._textureInfo.nonColorData)})}}let tj=!1;function tX(){tj||(tj=!0,t_(tq),td(tq,!0,e=>new tW(e)))}e.s(["EXT_texture_webp",0,tW,"RegisterEXT_texture_webp",0,tX],76614),tX(),e.s([],43372),e.s([],82989);let tY="EXT_texture_avif";class tQ{constructor(e){this.name=tY,this._loader=e,this.enabled=e.isExtensionUsed(tY)}dispose(){this._loader=null}_loadTextureAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=void 0==t.sampler?tT.DefaultSampler:ty.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),a=ty.Get(`${n}/source`,this._loader.gltf.images,i.source);return await this._loader._createTextureAsync(e,o,a,e=>{s(e)},void 0,!t._textureInfo.nonColorData)})}}let tZ=!1;function tJ(){tZ||(tZ=!0,t_(tY),td(tY,!0,e=>new tQ(e)))}e.s(["EXT_texture_avif",0,tQ,"RegisterEXT_texture_avif",0,tJ],37140),tJ(),e.s([],18107),e.s([],90500);let t0="EXT_lights_ies";class t1{constructor(e){this.name=t0,this._loader=e,this.enabled=this._loader.isExtensionUsed(t0)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights,ty.Assign(this._lights)}}loadNodeAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o,a,r;this._loader._allMaterialsDirtyRequired=!0;let l=await this._loader.loadNodeAsync(e,t,e=>{let t=(a=ty.Get(n,this._lights,i.light)).name||e.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,(o=new eG.SpotLight(t,el.Vector3.Zero(),el.Vector3.Backward(),0,1,this._loader.babylonScene)).angle=Math.PI/2,o.innerAngle=0,o._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,a._babylonLight=o,o.falloffType=G.Light.FALLOFF_GLTF,o.diffuse=i.color?eh.Color3.FromArray(i.color):eh.Color3.White(),o.intensity=i.multiplier||1,o.range=Number.MAX_VALUE,o.parent=e,this._loader._babylonLights.push(o),tT.AddPointerMetadata(o,n),s(e)});if(a.uri)r=await this._loader.loadUriAsync(e,a,a.uri);else{let t=ty.Get(`${e}/bufferView`,this._loader.gltf.bufferViews,a.bufferView);r=await this._loader.loadBufferViewAsync(`/bufferViews/${t.index}`,t)}return o.iesProfileTexture=new e_.Texture(name+"_iesProfile",this._loader.babylonScene,!0,!1,void 0,null,null,r,!0,void 0,void 0,void 0,void 0,".ies"),l})}}let t2=!1;function t3(){t2||(t2=!0,t_(t0),td(t0,!0,e=>new t1(e)))}e.s(["EXT_lights_ies",0,t1,"RegisterEXT_lights_ies",0,t3],55416),t3(),e.s([],92020),e.s([],47096);var t7=e.i(40553);function t4(e,t,s,n,i){let o=null,a=null,r=null;try{let l;o=new e.Decoder,(a=new e.DecoderBuffer).Init(t,t.byteLength);let h=o.GetEncodedGeometryType(a);switch(h){case e.TRIANGULAR_MESH:{let t=new e.Mesh;if(!(l=o.DecodeBufferToMesh(a,t)).ok()||0===t.ptr)throw Error(l.error_msg());let s=t.num_faces(),i=3*s,h=4*i,u=e._malloc(h);try{o.GetTrianglesUInt32Array(t,h,u);let s=new Uint32Array(i);s.set(new Uint32Array(e.HEAPF32.buffer,u,i)),n(s)}finally{e._free(u)}r=t;break}case e.POINT_CLOUD:{let t=new e.PointCloud;if(!(l=o.DecodeBufferToPointCloud(a,t)).ok()||!t.ptr)throw Error(l.error_msg());r=t;break}default:throw Error(`Draco: Cannot decode invalid geometry type ${h}`)}let u=r.num_points(),c=(t,s,n,o)=>{let a=o.data_type(),r=o.num_components(),l=o.normalized(),h=o.byte_stride(),c=o.byte_offset(),d={[e.DT_FLOAT32]:{typedArrayConstructor:Float32Array,heap:e.HEAPF32},[e.DT_INT8]:{typedArrayConstructor:Int8Array,heap:e.HEAP8},[e.DT_INT16]:{typedArrayConstructor:Int16Array,heap:e.HEAP16},[e.DT_INT32]:{typedArrayConstructor:Int32Array,heap:e.HEAP32},[e.DT_UINT8]:{typedArrayConstructor:Uint8Array,heap:e.HEAPU8},[e.DT_UINT16]:{typedArrayConstructor:Uint16Array,heap:e.HEAPU16},[e.DT_UINT32]:{typedArrayConstructor:Uint32Array,heap:e.HEAPU32}}[a];if(!d)throw Error(`Draco: Cannot decode invalid data type ${a}`);let _=u*r,p=_*d.typedArrayConstructor.BYTES_PER_ELEMENT,m=e._malloc(p);try{t.GetAttributeDataArrayForAllPoints(s,o,a,p,m);let e=new d.typedArrayConstructor(d.heap.buffer,m,_);i(n,e.slice(),r,c,h,l)}finally{e._free(m)}};if(s)for(let e in s){let t=s[e],n=o.GetAttributeByUniqueId(r,t);c(o,r,e,n)}else{let t={position:e.POSITION,normal:e.NORMAL,color:e.COLOR,uv:e.TEX_COORD};for(let e in t){let s=o.GetAttributeId(r,t[e]);if(-1!==s){let t=o.GetAttribute(r,s);c(o,r,e,t)}}}return u}finally{r&&e.destroy(r),a&&e.destroy(a),o&&e.destroy(o)}}function t9(){let e;onmessage=t=>{let s=t.data;switch(s.id){case"init":s.url&&importScripts(s.url),e=DracoDecoderModule(s.wasmBinary?{wasmBinary:s.wasmBinary}:{}),postMessage({id:"initDone"});break;case"decodeMesh":if(!e)throw Error("Draco: Decoder module is not available");e.then(e=>{let t=t4(e,s.dataView,s.attributes,e=>{postMessage({id:"indices",data:e},[e.buffer])},(e,t,s,n,i,o)=>{postMessage({id:"attribute",kind:e,data:t,size:s,byteOffset:n,byteStride:i,normalized:o},[t.buffer])});postMessage({id:"decodeMeshDone",totalVertices:t})})}}}async function t6(e,t,s){return await new Promise((n,i)=>{let o=t=>{e.removeEventListener("error",o),e.removeEventListener("message",a),i(t)},a=t=>{"initDone"===t.data.id&&(e.removeEventListener("error",o),e.removeEventListener("message",a),n(e))};if(e.addEventListener("error",o),e.addEventListener("message",a),t){let n=t.slice(0);e.postMessage({id:"init",url:s,wasmBinary:n},[n])}else e.postMessage({id:"init",url:s})})}class t5{constructor(e){if(e.workerPool){this._workerPoolPromise=Promise.resolve(e.workerPool);return}const t=e.wasmBinary,s=e.numWorkers??("object"==typeof navigator&&navigator.hardwareConcurrency?Math.min(Math.floor(.5*navigator.hardwareConcurrency),4):1),n=s&&"function"==typeof Worker&&"function"==typeof URL,i=n||!e.jsModule,o=e.wasmUrl&&e.wasmBinaryUrl&&"object"==typeof WebAssembly?{url:i?S.Tools.GetBabylonScriptURL(e.wasmUrl,!0):"",wasmBinaryPromise:t?Promise.resolve(t):S.Tools.LoadFileAsync(S.Tools.GetBabylonScriptURL(e.wasmBinaryUrl,!0))}:{url:i?S.Tools.GetBabylonScriptURL(e.fallbackUrl):"",wasmBinaryPromise:Promise.resolve(void 0)};n?this._workerPoolPromise=o.wasmBinaryPromise.then(e=>{let t=this._getWorkerContent(),n=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));return new t7.AutoReleaseWorkerPool(s,()=>t6(new Worker(n),e,o.url))}):this._modulePromise=o.wasmBinaryPromise.then(async t=>{if(!this._isModuleAvailable()&&!e.jsModule){if(!o.url)throw Error("Draco codec module is not available");await S.Tools.LoadBabylonScriptAsync(o.url)}return await this._createModuleAsync(t,e.jsModule)})}async whenReadyAsync(){this._workerPoolPromise?await this._workerPoolPromise:this._modulePromise&&await this._modulePromise}dispose(){this._workerPoolPromise&&this._workerPoolPromise.then(e=>{e.dispose()}),delete this._workerPoolPromise,delete this._modulePromise}}class t8 extends t5{static get DefaultAvailable(){var e;return!!((e=t8.DefaultConfiguration).wasmUrl&&(e.wasmBinary||e.wasmBinaryUrl)&&"object"==typeof WebAssembly||e.fallbackUrl)}static get Default(){return t8._Default??(t8._Default=new t8),t8._Default}static ResetDefault(e){t8._Default&&(e||t8._Default.dispose(),t8._Default=null)}_isModuleAvailable(){return"u">typeof DracoDecoderModule}async _createModuleAsync(e,t){return{module:await (t||DracoDecoderModule)({wasmBinary:e})}}_getWorkerContent(){return`${t4}(${t9})()`}constructor(e=t8.DefaultConfiguration){super(e)}decodeMeshToMeshDataAsync(e,t,s){let n=e instanceof ArrayBuffer?new Int8Array(e):new Int8Array(e.buffer,e.byteOffset,e.byteLength);if(this._workerPoolPromise)return this._workerPoolPromise.then(async e=>await new Promise((i,o)=>{e.push((e,a)=>{let r=null,l=[],h=t=>{e.removeEventListener("error",h),e.removeEventListener("message",u),o(t),a()},u=t=>{let n=t.data;switch(n.id){case"indices":r=n.data;break;case"attribute":var o,c;l.push({kind:n.kind,data:n.data,size:n.size,byteOffset:n.byteOffset,byteStride:n.byteStride,normalized:(o=n.kind,c=n.normalized,s&&void 0!==s[o]?(c!==s[o]&&k.Logger.Warn(`Normalized flag from Draco data (${c}) does not match normalized flag from glTF accessor (${s[o]}). Using flag from glTF accessor.`),s[o]):c)});break;case"decodeMeshDone":e.removeEventListener("error",h),e.removeEventListener("message",u),i({indices:r,attributes:l,totalVertices:n.totalVertices}),a()}};e.addEventListener("error",h),e.addEventListener("message",u);let c=n.slice();e.postMessage({id:"decodeMesh",dataView:c,attributes:t},[c.buffer])})}));if(this._modulePromise)return this._modulePromise.then(e=>{let s=null,i=[],o=t4(e.module,n,t,e=>{s=e},(e,t,s,n,o,a)=>{i.push({kind:e,data:t,size:s,byteOffset:n,byteStride:o,normalized:a})});return{indices:s,attributes:i,totalVertices:o}});throw Error("Draco: Decoder module is not available")}async decodeMeshToGeometryAsync(e,t,s,n){let i=await this.decodeMeshToMeshDataAsync(s,n),o=new eM.Geometry(e,t);for(let e of(i.indices&&o.setIndices(i.indices),i.attributes))o.setVerticesBuffer(new ev.VertexBuffer(t.getEngine(),e.data,e.kind,!1,void 0,e.byteStride,void 0,e.byteOffset,e.size,void 0,e.normalized,!0),i.totalVertices);return o}async _decodeMeshToGeometryForGltfAsync(e,t,s,n,i,o){let a=await this.decodeMeshToMeshDataAsync(s,n,i),r=new eM.Geometry(e,t);for(let e of(o&&(r._boundingInfo=o,r.useBoundingInfoFromGeometry=!0),a.indices&&r.setIndices(a.indices),a.attributes))r.setVerticesBuffer(new ev.VertexBuffer(t.getEngine(),e.data,e.kind,!1,void 0,e.byteStride,void 0,e.byteOffset,e.size,void 0,e.normalized,!0),a.totalVertices);return r}}t8.DefaultConfiguration={wasmUrl:`${S.Tools._DefaultCdnUrl}/draco_wasm_wrapper_gltf.js`,wasmBinaryUrl:`${S.Tools._DefaultCdnUrl}/draco_decoder_gltf.wasm`,fallbackUrl:`${S.Tools._DefaultCdnUrl}/draco_decoder_gltf.js`},t8._Default=null;let se="KHR_draco_mesh_compression";class st{constructor(e){this.name=se,this.useNormalizedFlagFromAccessor=!0,this._loader=e,this.enabled=t8.DefaultAvailable&&this._loader.isExtensionUsed(se)}dispose(){delete this.dracoDecoder,this._loader=null}_loadVertexDataAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{if(void 0!=t.mode&&4!==t.mode&&5!==t.mode)throw Error(`${e}: Unsupported mode ${t.mode}`);let o={},a={},r=(e,n)=>{let r=i.attributes[e];if(void 0!=r&&(s._delayInfo=s._delayInfo||[],-1===s._delayInfo.indexOf(n)&&s._delayInfo.push(n),o[n]=r,this.useNormalizedFlagFromAccessor)){let s=ty.TryGet(this._loader.gltf.accessors,t.attributes[e]);s&&(a[n]=s.normalized||!1)}};r("POSITION",ev.VertexBuffer.PositionKind),r("NORMAL",ev.VertexBuffer.NormalKind),r("TANGENT",ev.VertexBuffer.TangentKind),r("TEXCOORD_0",ev.VertexBuffer.UVKind),r("TEXCOORD_1",ev.VertexBuffer.UV2Kind),r("TEXCOORD_2",ev.VertexBuffer.UV3Kind),r("TEXCOORD_3",ev.VertexBuffer.UV4Kind),r("TEXCOORD_4",ev.VertexBuffer.UV5Kind),r("TEXCOORD_5",ev.VertexBuffer.UV6Kind),r("JOINTS_0",ev.VertexBuffer.MatricesIndicesKind),r("WEIGHTS_0",ev.VertexBuffer.MatricesWeightsKind),r("COLOR_0",ev.VertexBuffer.ColorKind);let l=ty.Get(n,this._loader.gltf.bufferViews,i.bufferView);return l._dracoBabylonGeometry||(l._dracoBabylonGeometry=this._loader.loadBufferViewAsync(`/bufferViews/${l.index}`,l).then(async n=>{let i=this.dracoDecoder||t8.Default,r=ty.TryGet(this._loader.gltf.accessors,t.attributes.POSITION),l=this._loader.parent.alwaysComputeBoundingBox||s.skeleton||!r?null:tb(r);return await i._decodeMeshToGeometryForGltfAsync(s.name,this._loader.babylonScene,n,o,a,l).catch(t=>{throw Error(`${e}: ${t.message}`)})})),await l._dracoBabylonGeometry})}}let ss=!1;function sn(){ss||(ss=!0,t_(se),td(se,!0,e=>new st(e)))}e.s(["KHR_draco_mesh_compression",0,st,"RegisterKHR_draco_mesh_compression",0,sn],87483),sn(),e.s([],34639),e.s([],42700);let si="KHR_lights_punctual";class so{constructor(e){this.name=si,this._loader=e,this.enabled=this._loader.isExtensionUsed(si)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights,ty.Assign(this._lights)}}loadNodeAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>(this._loader._allMaterialsDirtyRequired=!0,await this._loader.loadNodeAsync(e,t,e=>{let t,o=ty.Get(n,this._lights,i.light),a=o.name||e.name;switch(this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,o.type){case"directional":{let e=new eN(a,el.Vector3.Backward(),this._loader.babylonScene);e.position.setAll(0),t=e;break}case"point":t=new eP(a,el.Vector3.Zero(),this._loader.babylonScene);break;case"spot":{let e=new eG.SpotLight(a,el.Vector3.Zero(),el.Vector3.Backward(),0,1,this._loader.babylonScene);e.angle=2*(o.spot&&o.spot.outerConeAngle||Math.PI/4),e.innerAngle=2*(o.spot&&o.spot.innerConeAngle||0),t=e;break}default:throw this._loader.babylonScene._blockEntityCollection=!1,Error(`${n}: Invalid light type (${o.type})`)}t._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,o._babylonLight=t,t.falloffType=G.Light.FALLOFF_GLTF,t.diffuse=o.color?eh.Color3.FromArray(o.color):eh.Color3.White(),t.intensity=void 0==o.intensity?1:o.intensity,t.range=void 0==o.range?Number.MAX_VALUE:o.range,t.parent=e,this._loader._babylonLights.push(t),tT.AddPointerMetadata(t,n),s(e)})))}}let sa=!1;function sr(){sa||(sa=!0,t_(si),td(si,!0,e=>new so(e)))}e.s(["KHR_lights",0,so,"RegisterKHR_lights",0,sr],29466),sr(),e.s([],28929),e.s([],69721);var sl=G;async function sh(){let e=new Uint16Array(16384),t=new Uint16Array(16384),s=new Uint16Array(await S.Tools.LoadFileAsync(S.Tools.GetAssetUrl("https://assets.babylonjs.com/core/areaLights/areaLightsLTC.bin"))),n=s.length/8;for(let i=0;i<n;i++)e[4*i]=s[8*i],e[4*i+1]=s[8*i+1],e[4*i+2]=s[8*i+2],e[4*i+3]=s[8*i+3],t[4*i]=s[8*i+4],t[4*i+1]=s[8*i+5],t[4*i+2]=s[8*i+6],t[4*i+3]=s[8*i+7];return[e,t]}class su extends sl.Light{constructor(e,t,s,n){super(e,s,n),this.position=t,this._scene._ltcTextures||function(e){let t=e.useDelayedTextureLoading;e.useDelayedTextureLoading=!1;let s=e._blockEntityCollection;e._blockEntityCollection=!1,e._ltcTextures={LTC1:ep.CreateRGBATexture(null,64,64,e.getEngine(),!1,!1,2,2,0,!1,!0),LTC2:ep.CreateRGBATexture(null,64,64,e.getEngine(),!1,!1,2,2,0,!1,!0)},e._blockEntityCollection=s,e._ltcTextures.LTC1.wrapU=e_.Texture.CLAMP_ADDRESSMODE,e._ltcTextures.LTC1.wrapV=e_.Texture.CLAMP_ADDRESSMODE,e._ltcTextures.LTC2.wrapU=e_.Texture.CLAMP_ADDRESSMODE,e._ltcTextures.LTC2.wrapV=e_.Texture.CLAMP_ADDRESSMODE,e.useDelayedTextureLoading=t,sh().then(t=>{e._ltcTextures&&((e._ltcTextures?.LTC1).update(t[0]),(e._ltcTextures?.LTC2).update(t[1]),e.onDisposeObservable.addOnce(()=>{e._ltcTextures?.LTC1.dispose(),e._ltcTextures?.LTC2.dispose()}))}).catch(e=>{k.Logger.Error(`Area Light fail to get LTC textures data. Error: ${e}`)})}(this._scene)}transferTexturesToEffect(e,t){return this._scene._ltcTextures&&(e.setTexture("areaLightsLTC1Sampler",this._scene._ltcTextures.LTC1),e.setTexture("areaLightsLTC2Sampler",this._scene._ltcTextures.LTC2)),this}prepareLightSpecificDefines(e,t){e["AREALIGHT"+t]=!0,e.AREALIGHTUSED=!0}_isReady(){return!!this._scene._ltcTextures&&this._scene._ltcTextures.LTC1.isReady()&&this._scene._ltcTextures.LTC2.isReady()}}(0,eE.__decorate)([(0,eR.serializeAsVector3)()],su.prototype,"position",void 0);var sc=e.i(74308);class sd extends su{get emissionTexture(){return this._emissionTextureTexture}set emissionTexture(e){this._emissionTextureTexture!==e&&(this._emissionTextureTexture=e,this._emissionTextureTexture&&(this._emissionTextureTexture.wrapU=0,this._emissionTextureTexture.wrapV=0),this._emissionTextureTexture&&sd._IsTexture(this._emissionTextureTexture)&&this._emissionTextureTexture.onLoadObservable.addOnce(()=>{this._markMeshesAsLightDirty()}))}get width(){return this._width.x}set width(e){this._width.x=e}get height(){return this._height.y}set height(e){this._height.y=e}constructor(e,t,s,n,i,o){super(e,t,i,o),this._emissionTextureTexture=null,this._width=new el.Vector3(s,0,0),this._height=new el.Vector3(0,n,0),this._pointTransformedPosition=el.Vector3.Zero(),this._pointTransformedWidth=el.Vector3.Zero(),this._pointTransformedHeight=el.Vector3.Zero()}getClassName(){return"RectAreaLight"}getTypeID(){return G.Light.LIGHTTYPEID_RECT_AREALIGHT}serialize(){let e=super.serialize();if(this._emissionTextureTexture){let t=this._serializeEmissionTexture(this._emissionTextureTexture);t&&(e.emissionTexture=t)}return e}_serializeEmissionTexture(e){let t=e.serialize();if(t)return t;let s=e.getInternalTexture();if(!s)return null;let n=s.invertY,i=e.hasAlpha;return this._scene.getEngine()._features.supportSyncTextureRead?sd._BuildEmbeddedEmissionTexture((0,sc.GenerateBase64StringFromTexture)(e),n,i):sd._BuildEmbeddedEmissionTextureAsync((0,sc.GenerateBase64StringFromTextureAsync)(e),n,i)}static async _BuildEmbeddedEmissionTextureAsync(e,t,s){return sd._BuildEmbeddedEmissionTexture(await e,t,s)}static _BuildEmbeddedEmissionTexture(e,t,s){return e?{name:"areaLightEmissionTexture",base64String:e,invertY:t,hasAlpha:s}:null}_onParsed(e,t,s=""){super._onParsed(e,t,s),e.emissionTexture&&(this.emissionTexture=e_.Texture.Parse(e.emissionTexture,t,s))}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightWidth",4),this._uniformBuffer.addUniform("vLightHeight",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}_computeTransformedInformation(){return!!this.parent&&!!this.parent.getWorldMatrix&&(el.Vector3.TransformCoordinatesToRef(this.position,this.parent.getWorldMatrix(),this._pointTransformedPosition),el.Vector3.TransformNormalToRef(this._width,this.parent.getWorldMatrix(),this._pointTransformedWidth),el.Vector3.TransformNormalToRef(this._height,this.parent.getWorldMatrix(),this._pointTransformedHeight),!0)}static _IsTexture(e){return void 0!==e.onLoadObservable}transferToEffect(e,t){let s=this._scene.floatingOriginOffset;return this._computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this._pointTransformedPosition.x-s.x,this._pointTransformedPosition.y-s.y,this._pointTransformedPosition.z-s.z,0,t),this._uniformBuffer.updateFloat4("vLightWidth",this._pointTransformedWidth.x/2,this._pointTransformedWidth.y/2,this._pointTransformedWidth.z/2,0,t),this._uniformBuffer.updateFloat4("vLightHeight",this._pointTransformedHeight.x/2,this._pointTransformedHeight.y/2,this._pointTransformedHeight.z/2,0,t)):(this._uniformBuffer.updateFloat4("vLightData",this.position.x-s.x,this.position.y-s.y,this.position.z-s.z,0,t),this._uniformBuffer.updateFloat4("vLightWidth",this._width.x/2,this._width.y/2,this._width.z/2,0,t),this._uniformBuffer.updateFloat4("vLightHeight",this._height.x/2,this._height.y/2,this._height.z/2,0,t)),this}transferTexturesToEffect(e,t){return super.transferTexturesToEffect(e,t),this._emissionTextureTexture&&this._emissionTextureTexture.isReady()&&e.setTexture("rectAreaLightEmissionTexture"+t,this._emissionTextureTexture),this}transferToNodeMaterialEffect(e,t){let s=this._scene.floatingOriginOffset;return this._computeTransformedInformation()?e.setFloat3(t,this._pointTransformedPosition.x-s.x,this._pointTransformedPosition.y-s.y,this._pointTransformedPosition.z-s.z):e.setFloat3(t,this.position.x-s.x,this.position.y-s.y,this.position.z-s.z),this}prepareLightSpecificDefines(e,t){super.prepareLightSpecificDefines(e,t),e["RECTAREALIGHTEMISSIONTEXTURE"+t]=!!(this._emissionTextureTexture&&this._emissionTextureTexture.isReady())}}(0,eE.__decorate)([(0,eR.serialize)()],sd.prototype,"width",null),(0,eE.__decorate)([(0,eR.serialize)()],sd.prototype,"height",null);let s_="EXT_lights_area";class sp{constructor(e){this.name=s_,this._loader=e,this.enabled=this._loader.isExtensionUsed(s_)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights,ty.Assign(this._lights)}}loadNodeAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>(this._loader._allMaterialsDirtyRequired=!0,await this._loader.loadNodeAsync(e,t,e=>{let t,o=ty.Get(n,this._lights,i.light),a=o.name||e.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer;let r=void 0!==o.size?o.size:1;switch(o.type){case"rect":{let e=o.rect?.aspect!==void 0?o.rect.aspect*r:r;t=new sd(a,el.Vector3.Zero(),e,r,this._loader.babylonScene);break}case"disk":{let e=Math.sqrt(r*r*.25*Math.PI);t=new sd(a,el.Vector3.Zero(),e,e,this._loader.babylonScene);break}default:throw this._loader.babylonScene._blockEntityCollection=!1,Error(`${n}: Invalid area light type (${o.type})`)}t._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,o._babylonLight=t,t.falloffType=G.Light.FALLOFF_GLTF,t.diffuse=o.color?eh.Color3.FromArray(o.color):eh.Color3.White(),t.intensity=void 0==o.intensity?1:o.intensity;let l=new N.TransformNode(`${a}_orientation`,this._loader.babylonScene);l.rotationQuaternion=el.Quaternion.RotationAxis(el.Vector3.Up(),Math.PI),l.parent=e,t.parent=l,this._loader._babylonLights.push(t),tT.AddPointerMetadata(t,n),s(e)})))}}let sm=!1;function sf(){sm||(sm=!0,t_(s_),td(s_,!0,e=>new sp(e)))}e.s(["EXT_lights_area",0,sp,"RegisterEXT_lights_area",0,sf],88216),sf(),e.s([],1397),e.s([],12368);let sg="KHR_materials_pbrSpecularGlossiness";class sy{constructor(e){this.name=sg,this.order=200,this._loader=e,this.enabled=this._loader.isExtensionUsed(sg)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialBasePropertiesAsync(e,t,s)),o.push(this._loadSpecularGlossinessPropertiesAsync(n,i,s)),this._loader.loadMaterialAlphaProperties(e,t,s),await Promise.all(o).then(()=>{})})}_loadSpecularGlossinessPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.configureSpecularGlossiness(),t.diffuseFactor?(n.baseColor=eh.Color3.FromArray(t.diffuseFactor),s.alpha=t.diffuseFactor[3]):n.baseColor=eh.Color3.White(),n.specularColor=t.specularFactor?eh.Color3.FromArray(t.specularFactor):eh.Color3.White(),n.glossiness=void 0==t.glossinessFactor?1:t.glossinessFactor,t.diffuseTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTexture`,t.diffuseTexture,e=>{e.name=`${s.name} (Diffuse)`,n.baseColorTexture=e})),t.specularGlossinessTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/specularGlossinessTexture`,t.specularGlossinessTexture,e=>{e.name=`${s.name} (Specular Glossiness)`,n.specularColorTexture=e})),Promise.all(i).then(()=>{})}}let sb=!1;function sT(){sb||(sb=!0,t_(sg),td(sg,!0,e=>new sy(e)))}e.s(["KHR_materials_pbrSpecularGlossiness",0,sy,"RegisterKHR_materials_pbrSpecularGlossiness",0,sT],30204),sT(),e.s([],21416),e.s([],67571);let sA="KHR_materials_unlit";class sx{constructor(e){this.name=sA,this.order=210,this._loader=e,this.enabled=this._loader.isExtensionUsed(sA)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async()=>await this._loadUnlitPropertiesAsync(e,t,s))}_loadUnlitPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[],o=t.pbrMetallicRoughness;return o&&(o.baseColorFactor&&(n.baseColor=eh.Color3.FromArray(o.baseColorFactor),n.geometryOpacity=o.baseColorFactor[3]),o.baseColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/baseColorTexture`,o.baseColorTexture,e=>{e.name=`${s.name} (Base Color)`,n.baseColorTexture=e}))),n.isUnlit=!0,t.doubleSided&&(n.backFaceCulling=!1,n.twoSidedLighting=!0),this._loader.loadMaterialAlphaProperties(e,t,s),Promise.all(i).then(()=>{})}}let sw=!1;function sv(){sw||(sw=!0,t_(sA),td(sA,!0,e=>new sx(e)))}e.s(["KHR_materials_unlit",0,sx,"RegisterKHR_materials_unlit",0,sv],92130),sv(),e.s([],79573),e.s([],58658);let sM="KHR_materials_clearcoat";class sC{constructor(e){this.name=sM,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(sM)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadClearCoatPropertiesAsync(n,i,s)),await Promise.all(o)})}_loadClearCoatPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.configureCoat(),n.coatWeight=void 0!==t.clearcoatFactor?t.clearcoatFactor:0,n.coatRoughness=void 0!==t.clearcoatRoughnessFactor?t.clearcoatRoughnessFactor:0,t.clearcoatTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatTexture`,t.clearcoatTexture,e=>{e.name=`${s.name} (ClearCoat)`,n.coatWeightTexture=e})),t.clearcoatRoughnessTexture&&(t.clearcoatRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatRoughnessTexture`,t.clearcoatRoughnessTexture,e=>{e.name=`${s.name} (ClearCoat Roughness)`,n.coatRoughnessTexture=e}))),t.clearcoatNormalTexture&&(t.clearcoatNormalTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatNormalTexture`,t.clearcoatNormalTexture,e=>{e.name=`${s.name} (ClearCoat Normal)`,n.geometryCoatNormalTexture=e,t.clearcoatNormalTexture?.scale!=void 0&&(n.geometryCoatNormalTextureScale=t.clearcoatNormalTexture.scale)})),n.setNormalMapInversions(!s.getScene().useRightHandedSystem,s.getScene().useRightHandedSystem)),Promise.all(i).then(()=>{})}}let sF=!1;function sE(){sF||(sF=!0,t_(sM),td(sM,!0,e=>new sC(e)))}e.s(["KHR_materials_clearcoat",0,sC,"RegisterKHR_materials_clearcoat",0,sE],37133),sE(),e.s([],30851),e.s([],87339);let sR="KHR_materials_coat";class sS{constructor(e){this.name=sR,this.order=191,this.useOpenPBR=!1,this._loader=e,this.enabled=this._loader.isExtensionUsed(sR)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),t.extensions&&t.extensions.KHR_materials_openpbr&&(this.useOpenPBR=!0),o.push(this._loadCoatPropertiesAsync(n,i,s)),await Promise.all(o)})}_loadCoatPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];n.configureCoat(),n.coatWeight=void 0!==t.coatFactor?t.coatFactor:0,n.coatRoughness=void 0!==t.coatRoughnessFactor?t.coatRoughnessFactor:0,t.coatTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/coatTexture`,t.coatTexture,e=>{e.name=`${s.name} (Coat)`,n.coatWeightTexture=e})),t.coatRoughnessTexture&&(t.coatRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/coatRoughnessTexture`,t.coatRoughnessTexture,e=>{e.name=`${s.name} (Coat Roughness)`,n.coatRoughnessTexture=e}))),t.coatNormalTexture&&(t.coatNormalTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/coatNormalTexture`,t.coatNormalTexture,e=>{e.name=`${s.name} (Coat Normal)`,n.geometryCoatNormalTexture=e,t.coatNormalTexture?.scale!=void 0&&(n.geometryCoatNormalTextureScale=t.coatNormalTexture.scale)})),n.setNormalMapInversions(!s.getScene().useRightHandedSystem,s.getScene().useRightHandedSystem)),n.coatDarkening=void 0!==t.coatDarkeningFactor?t.coatDarkeningFactor:1,n.coatIor=void 0!==t.coatIor?t.coatIor:1.5;let o=eh.Color3.White();void 0!==t.coatColorFactor&&o.fromArray(t.coatColorFactor),n.coatColor=o,t.coatColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/coatColorTexture`,t.coatColorTexture,e=>{e.name=`${s.name} (Coat Color)`,n.coatColorTexture=e}));let a=t.coatAnisotropyStrength??0,r=t.coatAnisotropyRotation??0;return n.coatRoughnessAnisotropy=a,n.geometryCoatTangentAngle=r,this.useOpenPBR||n.configureGltfStyleAnisotropy(!0),t.coatAnisotropyTexture&&(t.coatAnisotropyTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/coatAnisotropyTexture`,t.coatAnisotropyTexture,e=>{e.name=`${s.name} (Coat Anisotropy)`,n.geometryCoatTangentTexture=e}))),Promise.all(i).then(()=>{})}}let sO=!1;function sI(){sO||(sO=!0,t_(sR),td(sR,!0,e=>new sS(e)))}e.s(["KHR_materials_coat",0,sS,"RegisterKHR_materials_coat",0,sI],3568),sI(),e.s([],74533),e.s([],83991);let sN="KHR_materials_iridescence";class sB{constructor(e){this.name=sN,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(sN)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadIridescencePropertiesAsync(n,i,s)),await Promise.all(o).then(()=>{})})}_loadIridescencePropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.thinFilmWeight=t.iridescenceFactor??0,n.thinFilmIor=t.iridescenceIor??t.iridescenceIOR??1.3,n.thinFilmThicknessMinimum=t.iridescenceThicknessMinimum??100,n.thinFilmThicknessMaximum=t.iridescenceThicknessMaximum??400,t.iridescenceTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/iridescenceTexture`,t.iridescenceTexture,e=>{e.name=`${s.name} (Iridescence)`,n.thinFilmWeightTexture=e})),t.iridescenceThicknessTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/iridescenceThicknessTexture`,t.iridescenceThicknessTexture,e=>{e.name=`${s.name} (Iridescence Thickness)`,n.thinFilmThicknessTexture=e})),Promise.all(i).then(()=>{})}}let sk=!1;function sP(){sk||(sk=!0,t_(sN),td(sN,!0,e=>new sB(e)))}e.s(["KHR_materials_iridescence",0,sB,"RegisterKHR_materials_iridescence",0,sP],29408),sP(),e.s([],13612),e.s([],39754);let sL="KHR_materials_anisotropy";class sG{constructor(e){this.name=sL,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(sL)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadAnisotropyPropertiesAsync(n,i,s)),await Promise.all(o)})}async _loadAnisotropyPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[],o=t.anisotropyStrength??0,a=t.anisotropyRotation??0;n.specularRoughnessAnisotropy=o,n.geometryTangentAngle=a;let r=t.extensions??{};r.EXT_materials_anisotropy_openpbr&&r.EXT_materials_anisotropy_openpbr.openPbrAnisotropyEnabled||n.configureGltfStyleAnisotropy(!0),t.anisotropyTexture&&(t.anisotropyTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/anisotropyTexture`,t.anisotropyTexture,e=>{e.name=`${s.name} (Anisotropy Intensity)`,n.geometryTangentTexture=e}))),await Promise.all(i)}}let sD=!1;function sV(){sD||(sD=!0,t_(sL),td(sL,!0,e=>new sG(e)))}e.s(["KHR_materials_anisotropy",0,sG,"RegisterKHR_materials_anisotropy",0,sV],8717),sV(),e.s([],92174),e.s([],80695);let sK="KHR_materials_emissive_strength";class sH{constructor(e){this.name=sK,this.order=170,this._loader=e,this.enabled=this._loader.isExtensionUsed(sK)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>(await this._loader.loadMaterialPropertiesAsync(e,t,s),this._loadEmissiveProperties(n,i,s),await Promise.resolve()))}_loadEmissiveProperties(e,t,s){void 0!==t.emissiveStrength&&(this._loader._getOrCreateMaterialAdapter(s).emissionLuminance=t.emissiveStrength)}}let sU=!1;function s$(){sU||(sU=!0,t_(sK),td(sK,!0,e=>new sH(e)))}e.s(["KHR_materials_emissive_strength",0,sH,"RegisterKHR_materials_emissive_strength",0,s$],79917),s$(),e.s([],25239),e.s([],80340);let sz="KHR_materials_sheen";class sq{constructor(e){this.name=sz,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(sz)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadSheenPropertiesAsync(n,i,s)),await Promise.all(o).then(()=>{})})}_loadSheenPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];n.configureFuzz();let o=void 0!==t.sheenColorFactor?eh.Color3.FromArray(t.sheenColorFactor):eh.Color3.Black(),a=void 0!==t.sheenRoughnessFactor?t.sheenRoughnessFactor:0;return n.fuzzWeight=1,n.fuzzColor=o,n.fuzzRoughness=a,t.sheenColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/sheenColorTexture`,t.sheenColorTexture,e=>{e.name=`${s.name} (Sheen Color)`,n.fuzzColorTexture=e})),t.sheenRoughnessTexture&&(t.sheenRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/sheenRoughnessTexture`,t.sheenRoughnessTexture,e=>{e.name=`${s.name} (Sheen Roughness)`,n.fuzzRoughnessTexture=e}))),Promise.all(i).then(()=>{})}}let sW=!1;function sj(){sW||(sW=!0,t_(sz),td(sz,!0,e=>new sq(e)))}e.s(["KHR_materials_sheen",0,sq,"RegisterKHR_materials_sheen",0,sj],87793),sj(),e.s([],92075),e.s([],89295);let sX="KHR_materials_fuzz";class sY{constructor(e){this.name=sX,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(sX)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadFuzzPropertiesAsync(n,i,s)),await Promise.all(o).then(()=>{})})}_loadFuzzPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.configureFuzz(),n.fuzzWeight=void 0!==t.fuzzFactor?t.fuzzFactor:0,n.fuzzColor=void 0!==t.fuzzColorFactor?eh.Color3.FromArray(t.fuzzColorFactor):eh.Color3.White(),n.fuzzRoughness=void 0!==t.fuzzRoughnessFactor?t.fuzzRoughnessFactor:.5,t.fuzzTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/fuzzTexture`,t.fuzzTexture,e=>{e.name=`${s.name} (Fuzz)`,n.fuzzWeightTexture=e})),t.fuzzColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/fuzzColorTexture`,t.fuzzColorTexture,e=>{e.name=`${s.name} (Fuzz Color)`,n.fuzzColorTexture=e})),t.fuzzRoughnessTexture&&(t.fuzzRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/fuzzRoughnessTexture`,t.fuzzRoughnessTexture,e=>{e.name=`${s.name} (Fuzz Roughness)`,n.fuzzRoughnessTexture=e}))),Promise.all(i).then(()=>{})}}let sQ=!1;function sZ(){sQ||(sQ=!0,t_(sX),td(sX,!0,e=>new sY(e)))}e.s(["KHR_materials_fuzz",0,sY,"RegisterKHR_materials_fuzz",0,sZ],54818),sZ(),e.s([],45667),e.s([],56698);let sJ="KHR_materials_specular";class s0{constructor(e){this.name=sJ,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(sJ)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadSpecularPropertiesAsync(n,i,s));let a=this._loader._getOrCreateMaterialAdapter(s);return i.extensions&&i.extensions.EXT_materials_specular_edge_color&&i.extensions.EXT_materials_specular_edge_color.specularEdgeColorEnabled&&a.enableSpecularEdgeColor(!0),await Promise.all(o).then(()=>{})})}_loadSpecularPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.specularWeight=t.specularFactor??1,n.specularColor=void 0!==t.specularColorFactor?eh.Color3.FromArray(t.specularColorFactor):new eh.Color3(1,1,1),t.specularTexture&&(t.specularTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/specularTexture`,t.specularTexture,e=>{e.name=`${s.name} (Specular)`,n.specularWeightTexture=e}))),t.specularColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/specularColorTexture`,t.specularColorTexture,e=>{e.name=`${s.name} (Specular Color)`,n.specularColorTexture=e})),Promise.all(i).then(()=>{})}}let s1=!1;function s2(){s1||(s1=!0,t_(sJ),td(sJ,!0,e=>new s0(e)))}e.s(["KHR_materials_specular",0,s0,"RegisterKHR_materials_specular",0,s2],66366),s2(),e.s([],87770),e.s([],1633);let s3="KHR_materials_ior";class s7{constructor(e){this.name=s3,this.order=180,this._loader=e,this.enabled=this._loader.isExtensionUsed(s3)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadIorPropertiesAsync(n,i,s)),await Promise.all(o).then(()=>{})})}_loadIorPropertiesAsync(e,t,s){return this._loader._getOrCreateMaterialAdapter(s).specularIor=void 0!==t.ior?t.ior:s7._DEFAULT_IOR,Promise.resolve()}}s7._DEFAULT_IOR=1.5;let s4=!1;function s9(){s4||(s4=!0,t_(s3),td(s3,!0,e=>new s7(e)))}e.s(["KHR_materials_ior",0,s7,"RegisterKHR_materials_ior",0,s9],63571),s9(),e.s([],2602),e.s([],75058);let s6="KHR_materials_variants";class s5{constructor(e){this.name=s6,this._loader=e,this.enabled=this._loader.isExtensionUsed(s6)&&!this._loader.parent.skipMaterials}dispose(){this._loader=null}static GetAvailableVariants(e){let t=this._GetExtensionMetadata(e);return t?Object.keys(t.variants):[]}getAvailableVariants(e){return s5.GetAvailableVariants(e)}static SelectVariant(e,t){let s=this._GetExtensionMetadata(e);if(!s)throw Error(`Cannot select variant on a glTF mesh that does not have the ${s6} extension`);let n=e=>{let t=s.variants[e];if(t)for(let e of t)e.mesh.material=e.material};if(t instanceof Array)for(let e of t)n(e);else n(t);s.lastSelected=t}selectVariant(e,t){s5.SelectVariant(e,t)}static Reset(e){let t=this._GetExtensionMetadata(e);if(!t)throw Error(`Cannot reset on a glTF mesh that does not have the ${s6} extension`);for(let e of t.original)e.mesh.material=e.material;t.lastSelected=null}reset(e){s5.Reset(e)}static GetLastSelectedVariant(e){let t=this._GetExtensionMetadata(e);if(!t)throw Error(`Cannot get the last selected variant on a glTF mesh that does not have the ${s6} extension`);return t.lastSelected}getLastSelectedVariant(e){return s5.GetLastSelectedVariant(e)}static _GetExtensionMetadata(e){return e?._internalMetadata?.gltf?.[s6]||null}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._variants=t.variants}}onReady(){let e=this._loader.rootBabylonMesh;if(e){let t=this._loader.parent.extensionOptions[s6];t?.defaultVariant&&s5.SelectVariant(e,t.defaultVariant),t?.onLoaded?.({get variants(){return s5.GetAvailableVariants(e)},get selectedVariant(){let t=s5.GetLastSelectedVariant(e);if(!t)return s5.GetAvailableVariants(e)[0];if(Array.isArray(t))return t[0];return t},set selectedVariant(variantName){s5.SelectVariant(e,variantName)}})}}_loadMeshPrimitiveAsync(e,t,s,n,i,o){return tT.LoadExtensionAsync(e,i,this.name,async(a,r)=>{let l=[];return l.push(this._loader._loadMeshPrimitiveAsync(e,t,s,n,i,t=>{if(o(t),t instanceof I.Mesh){let s=tT._GetDrawMode(e,i.mode),n=this._loader.rootBabylonMesh,o=n?n._internalMetadata=n._internalMetadata||{}:{},h=o.gltf=o.gltf||{},u=h[s6]=h[s6]||{lastSelected:null,original:[],variants:{}};u.original.push({mesh:t,material:t.material});for(let e=0;e<r.mappings.length;++e){let i=r.mappings[e],o=ty.Get(`${a}/mappings/${e}/material`,this._loader.gltf.materials,i.material);l.push(this._loader._loadMaterialAsync(`#/materials/${i.material}`,o,t,s,e=>{for(let s=0;s<i.variants.length;++s){let o=i.variants[s],a=ty.Get(`/extensions/${s6}/variants/${o}`,this._variants,o);u.variants[a.name]=u.variants[a.name]||[],u.variants[a.name].push({mesh:t,material:e}),t.onClonedObservable.add(e=>{let s,i=e;do{if(!(i=i.parent))return;s=s5._GetExtensionMetadata(i)}while(null===s)if(n&&s===s5._GetExtensionMetadata(n)){for(let e in i._internalMetadata={},n._internalMetadata)i._internalMetadata[e]=n._internalMetadata[e];for(let e in i._internalMetadata.gltf=[],n._internalMetadata.gltf)i._internalMetadata.gltf[e]=n._internalMetadata.gltf[e];for(let e of(i._internalMetadata.gltf[s6]={lastSelected:null,original:[],variants:{}},s.original))i._internalMetadata.gltf[s6].original.push({mesh:e.mesh,material:e.material});for(let e in s.variants)if(Object.prototype.hasOwnProperty.call(s.variants,e))for(let t of(i._internalMetadata.gltf[s6].variants[e]=[],s.variants[e]))i._internalMetadata.gltf[s6].variants[e].push({mesh:t.mesh,material:t.material});s=i._internalMetadata.gltf[s6]}for(let n of s.original)n.mesh===t&&(n.mesh=e);for(let n of s.variants[a.name])n.mesh===t&&(n.mesh=e)})}}))}}})),await Promise.all(l).then(([e])=>e)})}}let s8=!1;function ne(){s8||(s8=!0,t_(s6),td(s6,!0,e=>new s5(e)))}e.s(["KHR_materials_variants",0,s5,"RegisterKHR_materials_variants",0,ne],79047),ne(),e.s([],58147),e.s([],27980);var nt=e.i(7989);(0,nt.RegisterRenderTargetTexture)();class ns{static _GetDefaultOptions(){return{renderSize:1024,samples:4,lodGenerationScale:1,lodGenerationOffset:-4,renderTargetTextureType:eV.Constants.TEXTURETYPE_HALF_FLOAT,generateMipmaps:!0}}constructor(e,t){this._opaqueRenderTarget=null,this._opaqueMeshesCache=[],this._transparentMeshesCache=[],this._materialObservers={},this._newMeshObserver=null,this._removedMeshObserver=null,this._disposed=!1,this._materialImpls=[],this._adapterCache=new WeakMap,this._translucentMaterialIndices=new Map,this._opaqueOnlySubMeshes=new Map,this._savedSubMeshes=new Map,this._options={...ns._GetDefaultOptions(),...e},this._scene=t,this._scene._transmissionHelper=this,this.onErrorObservable=new R.Observable,this._scene.onDisposeObservable.addOnce(()=>{this.dispose()}),this._parseScene(),this._setupRenderTargets()}addMaterialImpl(e){this._materialImpls.some(t=>t.materialClass===e.materialClass)||this._materialImpls.push(e)}updateOptions(e){if(!Object.keys(e).filter(t=>this._options[t]!==e[t]).length)return;let t={...this._options,...e},s=this._options;this._options=t,t.renderSize===s.renderSize&&t.renderTargetTextureType===s.renderTargetTextureType&&t.generateMipmaps===s.generateMipmaps&&this._opaqueRenderTarget?(this._opaqueRenderTarget.samples=t.samples,this._opaqueRenderTarget.lodGenerationScale=t.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=t.lodGenerationOffset):this._setupRenderTargets()}getOpaqueTarget(){return this._opaqueRenderTarget}_getOrCreateAdapter(e){let t=this._adapterCache.get(e);if(!t){for(let s of this._materialImpls)if(e instanceof s.materialClass){t=new s.adapterClass(e),this._adapterCache.set(e,t);break}}return t}_classifyMeshMaterials(e){let t=e.material;if(!t)return"opaque";if(!(t instanceof eT.MultiMaterial)){let e=this._getOrCreateAdapter(t);return e&&e.isTranslucent()?(e.refractionBackgroundTexture=this._opaqueRenderTarget,"transparent"):"opaque"}let s=!1,n=!1,i=new Set;for(let e=0;e<t.subMaterials.length;e++){let o=t.subMaterials[e];if(!o){n=!0;continue}let a=this._getOrCreateAdapter(o);a&&a.isTranslucent()?(a.refractionBackgroundTexture=this._opaqueRenderTarget,s=!0,i.add(e)):n=!0}return s&&n?(this._translucentMaterialIndices.set(e,i),this._rebuildOpaqueOnlySubMeshes(e,i),"mixed"):(this._translucentMaterialIndices.delete(e),this._opaqueOnlySubMeshes.delete(e),s?"transparent":"opaque")}_rebuildOpaqueOnlySubMeshes(e,t){e.subMeshes&&this._opaqueOnlySubMeshes.set(e,e.subMeshes.filter(e=>!t.has(e.materialIndex)))}_addMesh(e){this._materialObservers[e.uniqueId]=e.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this)),S.Tools.SetImmediate(()=>{!this._disposed&&e.material&&("transparent"===this._classifyMeshMaterials(e)?-1===this._transparentMeshesCache.indexOf(e)&&this._transparentMeshesCache.push(e):-1===this._opaqueMeshesCache.indexOf(e)&&this._opaqueMeshesCache.push(e))})}_removeMesh(e){e.onMaterialChangedObservable.remove(this._materialObservers[e.uniqueId]),delete this._materialObservers[e.uniqueId];let t=this._transparentMeshesCache.indexOf(e);-1!==t&&this._transparentMeshesCache.splice(t,1),-1!==(t=this._opaqueMeshesCache.indexOf(e))&&this._opaqueMeshesCache.splice(t,1),this._translucentMaterialIndices.delete(e),this._opaqueOnlySubMeshes.delete(e)}_parseScene(){this._scene.meshes.forEach(this._addMesh.bind(this)),this._newMeshObserver=this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this)),this._removedMeshObserver=this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this))}_onMeshMaterialChanged(e){let t=this._transparentMeshesCache.indexOf(e),s=this._opaqueMeshesCache.indexOf(e);"transparent"===this._classifyMeshMaterials(e)?-1!==s?(this._opaqueMeshesCache.splice(s,1),this._transparentMeshesCache.push(e)):-1===t&&this._transparentMeshesCache.push(e):-1!==t?(this._transparentMeshesCache.splice(t,1),this._opaqueMeshesCache.push(e)):-1===s&&this._opaqueMeshesCache.push(e)}_isRenderTargetValid(){return this._opaqueRenderTarget?.getInternalTexture()!==null}_setupRenderTargets(){let e;for(let t of(this._opaqueRenderTarget&&this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=new nt.RenderTargetTexture("opaqueSceneTexture",this._options.renderSize,this._scene,this._options.generateMipmaps,void 0,this._options.renderTargetTextureType),this._opaqueRenderTarget.ignoreCameraViewport=!0,this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.clearColor=this._options.clearColor?.clone()??this._scene.clearColor.clone(),this._opaqueRenderTarget.clearColor.a=0,this._opaqueRenderTarget.gammaSpace=!1,this._opaqueRenderTarget.lodGenerationScale=this._options.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=this._options.lodGenerationOffset,this._opaqueRenderTarget.samples=this._options.samples,this._opaqueRenderTarget.renderSprites=!0,this._opaqueRenderTarget.renderParticles=!0,this._opaqueRenderTarget.disableImageProcessing=!0,this._opaqueRenderTarget.onBeforeBindObservable.add(t=>{e=this._scene.environmentIntensity,this._scene.environmentIntensity=1,this._options.clearColor?t.clearColor.copyFrom(this._options.clearColor):this._scene.clearColor.toLinearSpaceToRef(t.clearColor,this._scene.getEngine().useExactSrgbConversions),t.clearColor.a=0;let s=this._opaqueOnlySubMeshes.entries();for(let e=s.next();!e.done;e=s.next()){let t=e.value[0],s=e.value[1];t.subMeshes&&(this._savedSubMeshes.set(t,t.subMeshes),t.subMeshes=s)}}),this._opaqueRenderTarget.onAfterUnbindObservable.add(()=>{this._scene.environmentIntensity=e;let t=this._savedSubMeshes.entries();for(let e=t.next();!e.done;e=t.next())e.value[0].subMeshes=e.value[1];this._savedSubMeshes.clear()}),this._transparentMeshesCache))t.material&&this._classifyMeshMaterials(t);let t=this._translucentMaterialIndices.entries();for(let e=t.next();!e.done;e=t.next()){let t=e.value[0];t.material&&this._classifyMeshMaterials(t)}}dispose(){for(let e of(this._disposed=!0,this._newMeshObserver?.remove(),this._removedMeshObserver?.remove(),this._newMeshObserver=null,this._removedMeshObserver=null,[...this._transparentMeshesCache,...this._opaqueMeshesCache])){let t=this._materialObservers[e.uniqueId];t&&(t.remove(),delete this._materialObservers[e.uniqueId])}for(let e of this._scene.meshes){let t=this._materialObservers[e.uniqueId];t&&(t.remove(),delete this._materialObservers[e.uniqueId])}this._materialObservers={},this._scene._transmissionHelper=void 0,this._opaqueRenderTarget&&(this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=null),this._transparentMeshesCache=[],this._opaqueMeshesCache=[],this._translucentMaterialIndices.clear(),this._opaqueOnlySubMeshes.clear(),this._savedSubMeshes.clear()}}function nn(e,t){if(e.parent.dontUseTransmissionHelper)return;let s=t.getScene()._transmissionHelper,n=s??new ns({},t.getScene());for(let t of Array.from(e._pbrMaterialImpls.values()))n.addMaterialImpl(t);s&&!s._isRenderTargetValid()&&s._setupRenderTargets()}e.s(["TransmissionHelper",0,ns,"ensureTransmissionHelper",0,nn],65061);let ni="KHR_materials_transmission";class no{constructor(e){this.name=ni,this.order=175,this._loader=e,this.enabled=this._loader.isExtensionUsed(ni),this.enabled&&(e.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadTransparentPropertiesAsync(n,t,s,i)),await Promise.all(o).then(()=>{})})}_loadTransparentPropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s),o=void 0!==n.transmissionFactor?n.transmissionFactor:0;if(0===o||!i)return Promise.resolve();i.configureTransmission(),i.transmissionWeight=o,o>0&&nn(this._loader,s);let a=Promise.resolve(null);return n.transmissionTexture&&(n.transmissionTexture.nonColorData=!0,a=this._loader.loadTextureInfoAsync(`${e}/transmissionTexture`,n.transmissionTexture,e=>{e.name=`${s.name} (Transmission)`,i.transmissionWeightTexture=e})),a.then(()=>{})}}let na=!1;function nr(){na||(na=!0,t_(ni),td(ni,!0,e=>new no(e)))}e.s(["KHR_materials_transmission",0,no,"RegisterKHR_materials_transmission",0,nr],41982),nr(),e.s([],40961),e.s([],78684);let nl="KHR_materials_diffuse_transmission";class nh{constructor(e){this.name=nl,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(nl),this.enabled&&(e.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadTranslucentPropertiesAsync(n,t,s,i)),await Promise.all(o).then(()=>{})})}_loadTranslucentPropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);i.configureSubsurface(),i.subsurfaceWeight=n.diffuseTransmissionFactor??0,i.subsurfaceWeight>0&&nn(this._loader,s),i.diffuseTransmissionTint=void 0!==n.diffuseTransmissionColorFactor?eh.Color3.FromArray(n.diffuseTransmissionColorFactor):eh.Color3.White();let o=[];return n.diffuseTransmissionTexture&&(n.diffuseTransmissionTexture.nonColorData=!0,o.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTransmissionTexture`,n.diffuseTransmissionTexture).then(e=>{e.name=`${s.name} (Diffuse Transmission)`,i.subsurfaceWeightTexture=e}))),n.diffuseTransmissionColorTexture&&o.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTransmissionColorTexture`,n.diffuseTransmissionColorTexture).then(e=>{e.name=`${s.name} (Diffuse Transmission Color)`,i.diffuseTransmissionTintTexture=e})),Promise.all(o).then(()=>{})}}let nu=!1;function nc(){nu||(nu=!0,t_(nl),td(nl,!0,e=>new nh(e)))}e.s(["KHR_materials_diffuse_transmission",0,nh,"RegisterKHR_materials_diffuse_transmission",0,nc],70257),nc(),e.s([],52493),e.s([],43822);let nd="KHR_materials_volume";class n_{constructor(e){this.name=nd,this.order=173,this._loader=e,this.enabled=this._loader.isExtensionUsed(nd),this.enabled&&this._loader._disableInstancedMesh++}dispose(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadVolumePropertiesAsync(n,t,s,i)),await Promise.all(o).then(()=>{})})}_loadVolumePropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);if(0===i.transmissionWeight&&0===i.subsurfaceWeight||!n.thicknessFactor)return Promise.resolve();i.geometryThinWalled=!1;let o=void 0!==n.attenuationDistance?n.attenuationDistance:Number.MAX_VALUE,a=void 0!==n.attenuationColor&&3==n.attenuationColor.length?eh.Color3.FromArray(n.attenuationColor):eh.Color3.White();i.configureVolume(),i.transmissionColor=a,i.transmissionDepth=o,i.volumeThickness=n.thicknessFactor??0;let r=[];return n.thicknessTexture&&(n.thicknessTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync(`${e}/thicknessTexture`,n.thicknessTexture,e=>{e.name=`${s.name} (Thickness)`,i.volumeThicknessTexture=e}))),Promise.all(r).then(()=>{})}}let np=!1;function nm(){np||(np=!0,t_(nd),td(nd,!0,e=>new n_(e)))}e.s(["KHR_materials_volume",0,n_,"RegisterKHR_materials_volume",0,nm],79890),nm(),e.s([],13364),e.s([],70228);let nf="KHR_materials_volume_scatter";class ng{constructor(e){this.name=nf,this.order=172,this._loader=e,this.enabled=this._loader.isExtensionUsed(nf),this.enabled&&this._loader._disableInstancedMesh++}dispose(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadVolumePropertiesAsync(n,t,s,i)),await Promise.all(o).then(()=>{})})}_loadVolumePropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);if(0===i.transmissionWeight&&0===i.subsurfaceWeight||i.geometryThinWalled)return Promise.resolve();let o=void 0!==n.multiscatterColorFactor&&3==n.multiscatterColorFactor.length?eh.Color3.FromArray(n.multiscatterColorFactor):eh.Color3.Black(),a=void 0!==n.scatterAnisotropy?n.scatterAnisotropy:0,r=Promise.resolve(null);n.multiscatterColorTexture&&(n.multiscatterColorTexture.nonColorData=!0,r=this._loader.loadTextureInfoAsync(`${e}/multiscatterColorTexture`,n.multiscatterColorTexture,e=>{e.name=`${s.name} (Scatter Color)`,i.transmissionWeight>0&&(i.transmissionScatterTexture=e),i.subsurfaceWeight>0&&(i.subsurfaceColorTexture=e)}));let l=new el.Vector3(-Math.log(i.transmissionColor.r),-Math.log(i.transmissionColor.g),-Math.log(i.transmissionColor.b));if(l.scaleInPlace(1/Math.max(i.transmissionDepth,1e-6)),i.transmissionWeight>0){let e,t,s,n=(e=new el.Vector3(o.r,o.g,o.b),(t=new el.Vector3(4.09712,4.09712,4.09712)).addInPlace(new el.Vector3(4.20863,4.20863,4.20863).multiplyInPlace(e)),(s=new el.Vector3(9.59217,9.59217,9.59217)).addInPlace(new el.Vector3(41.6808,41.6808,41.6808).multiplyInPlace(e)),s.addInPlace(new el.Vector3(17.7126,17.7126,17.7126).multiplyInPlace(e.multiply(e))),t.subtractInPlace(new el.Vector3(Math.sqrt(s.x),Math.sqrt(s.y),Math.sqrt(s.z))),new el.Vector3(1,1,1).subtract(t.multiply(t))),r=l.multiply(n);r.scaleInPlace(i.transmissionDepth),i.transmissionScatter.set(r.x,r.y,r.z),i.transmissionScatterAnisotropy=a}if(i.subsurfaceWeight>0){i.subsurfaceScatterAnisotropy=a,i.subsurfaceColor=o;let e=new el.Vector3(0!==l.x?1/l.x:1,0!==l.y?1/l.y:1,0!==l.z?1/l.z:1);i.subsurfaceRadius=Math.max(e.x,e.y,e.z),i.subsurfaceRadiusScale=new eh.Color3(e.x/i.subsurfaceRadius,e.y/i.subsurfaceRadius,e.z/i.subsurfaceRadius)}return r.then(()=>{})}}let ny=!1;function nb(){ny||(ny=!0,t_(nf),td(nf,!0,e=>new ng(e)))}e.s(["KHR_materials_volume_scatter",0,ng,"RegisterKHR_materials_volume_scatter",0,nb],61664),nb(),e.s([],13731),e.s([],29533);let nT="KHR_materials_dispersion";class nA{constructor(e){this.name=nT,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(nT)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadDispersionPropertiesAsync(n,t,s,i)),await Promise.all(o).then(()=>{})})}_loadDispersionPropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);return 0!=i.transmissionWeight&&n.dispersion&&(i.transmissionDispersionAbbeNumber=20,i.transmissionDispersionScale=n.dispersion),Promise.resolve()}}let nx=!1;function nw(){nx||(nx=!0,t_(nT),td(nT,!0,e=>new nA(e)))}e.s(["KHR_materials_dispersion",0,nA,"RegisterKHR_materials_dispersion",0,nw],76098),nw(),e.s([],38446),e.s([],57936);let nv="KHR_materials_diffuse_roughness";class nM{constructor(e){this.name=nv,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(nv)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=[];return o.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),o.push(this._loadDiffuseRoughnessPropertiesAsync(n,i,s)),await Promise.all(o).then(()=>{})})}_loadDiffuseRoughnessPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.baseDiffuseRoughness=t.diffuseRoughnessFactor??0,t.diffuseRoughnessTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/diffuseRoughnessTexture`,t.diffuseRoughnessTexture,e=>{e.name=`${s.name} (Diffuse Roughness)`,n.baseDiffuseRoughnessTexture=e})),Promise.all(i).then(()=>{})}}let nC=!1;function nF(){nC||(nC=!0,t_(nv),td(nv,!0,e=>new nM(e)))}e.s(["KHR_materials_diffuse_roughness",0,nM,"RegisterKHR_materials_diffuse_roughness",0,nF],21506),nF(),e.s([],38173),e.s([],66308);let nE="KHR_mesh_quantization";class nR{constructor(e){this.name=nE,this.enabled=e.isExtensionUsed(nE)}dispose(){}}let nS=!1;function nO(){nS||(nS=!0,t_(nE),td(nE,!0,e=>new nR(e)))}e.s(["KHR_mesh_quantization",0,nR,"RegisterKHR_mesh_quantization",0,nO],87615),nO(),e.s([],40614),e.s([],74054);let nI="KHR_texture_basisu";class nN{constructor(e){this.name=nI,this._loader=e,this.enabled=e.isExtensionUsed(nI)}dispose(){this._loader=null}_loadTextureAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let o=void 0==t.sampler?tT.DefaultSampler:ty.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),a=ty.Get(`${n}/source`,this._loader.gltf.images,i.source);return await this._loader._createTextureAsync(e,o,a,e=>{s(e)},t._textureInfo.nonColorData?{useRGBAIfASTCBC7NotAvailableWhenUASTC:!0}:void 0,!t._textureInfo.nonColorData)})}}let nB=!1;function nk(){nB||(nB=!0,t_(nI),td(nI,!0,e=>new nN(e)))}e.s(["KHR_texture_basisu",0,nN,"RegisterKHR_texture_basisu",0,nk],62148),nk(),e.s([],63702),e.s([],83915);let nP="KHR_texture_transform";class nL{constructor(e){this.name=nP,this._loader=e,this.enabled=this._loader.isExtensionUsed(nP)}dispose(){this._loader=null}loadTextureInfoAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(n,i)=>await this._loader.loadTextureInfoAsync(e,t,e=>{if(!(e instanceof e_.Texture))throw Error(`${n}: Texture type not supported`);i.offset&&(e.uOffset=i.offset[0],e.vOffset=i.offset[1]),e.uRotationCenter=0,e.vRotationCenter=0,i.rotation&&(e.wAng=-i.rotation),i.scale&&(e.uScale=i.scale[0],e.vScale=i.scale[1]),void 0!=i.texCoord&&(e.coordinatesIndex=i.texCoord),s(e)}))}}let nG=!1;function nD(){nG||(nG=!0,t_(nP),td(nP,!0,e=>new nL(e)))}e.s(["KHR_texture_transform",0,nL,"RegisterKHR_texture_transform",0,nD],52670),nD(),e.s([],63839),e.s([],63632);let nV="KHR_xmp_json_ld";class nK{constructor(e){this.name=nV,this.order=100,this._loader=e,this.enabled=this._loader.isExtensionUsed(nV)}dispose(){this._loader=null}onLoading(){if(null===this._loader.rootBabylonMesh)return;let e=this._loader.gltf.extensions?.KHR_xmp_json_ld,t=this._loader.gltf.asset?.extensions?.KHR_xmp_json_ld;if(e&&t){let s=+t.packet;e.packets&&s<e.packets.length&&(this._loader.rootBabylonMesh.metadata=this._loader.rootBabylonMesh.metadata||{},this._loader.rootBabylonMesh.metadata.xmp=e.packets[s])}}}let nH=!1;function nU(){nH||(nH=!0,t_(nV),td(nV,!0,e=>new nK(e)))}e.s(["KHR_xmp_json_ld",0,nK,"RegisterKHR_xmp_json_ld",0,nU],18075),nU(),e.s([],25924),e.s([],42062);var n$=tw;function nz(e,t,s,n){return eh.Color3.FromArray(t,s).scale(n)}function nq(e,t,s,n){return t[s]*n}function nW(e,t,s,n){return-t[s]*n}function nj(e,t,s,n){return t[s+1]*n}function nX(e,t,s,n){return t[s]*n*2}function nY(e){return{scale:[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,`${e}.uScale`,nq,()=>2),new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,`${e}.vScale`,nj,()=>2)],offset:[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,`${e}.uOffset`,nq,()=>2),new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,`${e}.vOffset`,nj,()=>2)],rotation:[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,`${e}.wAng`,nW,()=>1)]}}class nQ extends n$.AnimationPropertyInfo{buildAnimations(e,t,s,n){return[{babylonAnimatable:e._babylonCamera,babylonAnimation:this._buildAnimation(t,s,n)}]}}class nZ extends n$.AnimationPropertyInfo{buildAnimations(e,t,s,n){let i=[];for(let o in e._data)i.push({babylonAnimatable:e._data[o].babylonMaterial,babylonAnimation:this._buildAnimation(t,s,n)});return i}}class nJ extends n$.AnimationPropertyInfo{buildAnimations(e,t,s,n){return[{babylonAnimatable:e._babylonLight,babylonAnimation:this._buildAnimation(t,s,n)}]}}class n0 extends n$.AnimationPropertyInfo{buildAnimations(e,t,s,n){return e._primitiveBabylonMeshes?e._primitiveBabylonMeshes.map(e=>({babylonAnimatable:e,babylonAnimation:this._buildAnimation(t,s,n)})):[]}}(0,tp.SetInterpolationForKey)("/cameras/{}/orthographic/xmag",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"orthoLeft",nW,()=>1),new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"orthoRight",nj,()=>1)]),(0,tp.SetInterpolationForKey)("/cameras/{}/orthographic/ymag",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"orthoBottom",nW,()=>1),new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"orthoTop",nj,()=>1)]),(0,tp.SetInterpolationForKey)("/cameras/{}/orthographic/zfar",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"maxZ",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/cameras/{}/orthographic/znear",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"minZ",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/cameras/{}/perspective/yfov",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"fov",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/cameras/{}/perspective/zfar",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"maxZ",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/cameras/{}/perspective/znear",[new nQ(ec.Animation.ANIMATIONTYPE_FLOAT,"minZ",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorFactor",[new nZ(ec.Animation.ANIMATIONTYPE_COLOR3,"albedoColor",nz,()=>4),new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"alpha",function(e,t,s,n){return t[s+3]*n},()=>4)]),(0,tp.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/metallicFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"metallic",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/metallicFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"roughness",nq,()=>1)]);let n1=nY("albedoTexture");(0,tp.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/scale",n1.scale),(0,tp.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/offset",n1.offset),(0,tp.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/rotation",n1.rotation);let n2=nY("metallicTexture");(0,tp.SetInterpolationForKey)("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/scale",n2.scale),(0,tp.SetInterpolationForKey)("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/offset",n2.offset),(0,tp.SetInterpolationForKey)("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/rotation",n2.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/emissiveFactor",[new nZ(ec.Animation.ANIMATIONTYPE_COLOR3,"emissiveColor",nz,()=>3)]);let n3=nY("bumpTexture");(0,tp.SetInterpolationForKey)("/materials/{}/normalTexture/scale",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"bumpTexture.level",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/normalTexture/extensions/KHR_texture_transform/scale",n3.scale),(0,tp.SetInterpolationForKey)("/materials/{}/normalTexture/extensions/KHR_texture_transform/offset",n3.offset),(0,tp.SetInterpolationForKey)("/materials/{}/normalTexture/extensions/KHR_texture_transform/rotation",n3.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/occlusionTexture/strength",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"ambientTextureStrength",nq,()=>1)]);let n7=nY("ambientTexture");(0,tp.SetInterpolationForKey)("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/scale",n7.scale),(0,tp.SetInterpolationForKey)("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/offset",n7.offset),(0,tp.SetInterpolationForKey)("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/rotation",n7.rotation);let n4=nY("emissiveTexture");(0,tp.SetInterpolationForKey)("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/scale",n4.scale),(0,tp.SetInterpolationForKey)("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/offset",n4.offset),(0,tp.SetInterpolationForKey)("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/rotation",n4.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyStrength",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.intensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyRotation",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.angle",nq,()=>1)]);let n9=nY("anisotropy.texture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/scale",n9.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/offset",n9.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/rotation",n9.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.intensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.roughness",nq,()=>1)]);let n6=nY("clearCoat.texture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/scale",n6.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/offset",n6.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/rotation",n6.rotation);let n5=nY("clearCoat.bumpTexture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/scale",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.bumpTexture.level",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/scale",n5.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/offset",n5.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/rotation",n5.rotation);let n8=nY("clearCoat.textureRoughness");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/scale",n8.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/offset",n8.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/rotation",n8.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_dispersion/dispersionFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"subSurface.dispersion",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_emissive_strength/emissiveStrength",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"emissiveIntensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_ior/ior",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"indexOfRefraction",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"iridescence.intensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceIor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"iridescence.indexOfRefraction",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessMinimum",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"iridescence.minimumThickness",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessMaximum",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"iridescence.maximumThickness",nq,()=>1)]);let ie=nY("iridescence.texture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/scale",ie.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/offset",ie.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/rotation",ie.rotation);let it=nY("iridescence.thicknessTexture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/scale",it.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/offset",it.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/rotation",it.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorFactor",[new nZ(ec.Animation.ANIMATIONTYPE_COLOR3,"sheen.color",nz,()=>3)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"sheen.roughness",nq,()=>1)]);let is=nY("sheen.texture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/scale",is.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/offset",is.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/rotation",is.rotation);let ii=nY("sheen.textureRoughness");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/scale",ii.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/offset",ii.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/rotation",ii.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"metallicF0Factor",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorFactor",[new nZ(ec.Animation.ANIMATIONTYPE_COLOR3,"metallicReflectanceColor",nz,()=>3)]);let io=nY("metallicReflectanceTexture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/scale",io.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/offset",io.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/rotation",io.rotation);let ia=nY("reflectanceTexture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/scale",ia.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/offset",ia.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/rotation",ia.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"subSurface.refractionIntensity",nq,()=>1)]);let ir=nY("subSurface.refractionIntensityTexture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/scale",ir.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/offset",ir.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/rotation",ir.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/attenuationColor",[new nZ(ec.Animation.ANIMATIONTYPE_COLOR3,"subSurface.tintColor",nz,()=>3)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/attenuationDistance",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"subSurface.tintColorAtDistance",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"subSurface.maximumThickness",nq,()=>1)]);let il=nY("subSurface.thicknessTexture");(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/scale",il.scale),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/offset",il.offset),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/rotation",il.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionFactor",[new nZ(ec.Animation.ANIMATIONTYPE_FLOAT,"subSurface.translucencyIntensity",nq,()=>1)]);let ih=nY("subSurface.translucencyIntensityTexture");(0,tp.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/scale",ih.scale),(0,tp.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/offset",ih.offset),(0,tp.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/rotation",ih.rotation),(0,tp.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorFactor",[new nZ(ec.Animation.ANIMATIONTYPE_COLOR3,"subSurface.translucencyColor",nz,()=>3)]);let iu=nY("subSurface.translucencyColorTexture");(0,tp.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/scale",iu.scale),(0,tp.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/offset",iu.offset),(0,tp.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/rotation",iu.rotation),(0,tp.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/color",[new nJ(ec.Animation.ANIMATIONTYPE_COLOR3,"diffuse",nz,()=>3)]),(0,tp.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/intensity",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"intensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/range",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"range",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/spot/innerConeAngle",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"innerAngle",nX,()=>1)]),(0,tp.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/spot/outerConeAngle",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"angle",nX,()=>1)]),(0,tp.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/color",[new nJ(ec.Animation.ANIMATIONTYPE_COLOR3,"diffuse",nz,()=>3)]),(0,tp.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/intensity",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"intensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/size",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"radius",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/rect/aspect",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"radius",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/nodes/{}/extensions/EXT_lights_ies/color",[new nJ(ec.Animation.ANIMATIONTYPE_COLOR3,"diffuse",nz,()=>3)]),(0,tp.SetInterpolationForKey)("/nodes/{}/extensions/EXT_lights_ies/multiplier",[new nJ(ec.Animation.ANIMATIONTYPE_FLOAT,"intensity",nq,()=>1)]),(0,tp.SetInterpolationForKey)("/nodes/{}/extensions/KHR_node_visibility/visible",[new n0(ec.Animation.ANIMATIONTYPE_FLOAT,"isVisible",nq,()=>1)]);let ic="KHR_animation_pointer";class id{constructor(e){this.name=ic,this._loader=e,this._pathToObjectConverter=(0,tp.GetPathToObjectConverter)(this._loader.gltf)}get enabled(){return this._loader.isExtensionUsed(ic)}dispose(){this._loader=null,delete this._pathToObjectConverter}_loadAnimationChannelAsync(e,t,s,n,i){let o=n.target.extensions?.KHR_animation_pointer;if(!o||!this._pathToObjectConverter)return null;"pointer"!==n.target.path&&k.Logger.Warn(`${e}/target/path: Value (${n.target.path}) must be (pointer) when using the ${this.name} extension`),void 0!=n.target.node&&k.Logger.Warn(`${e}/target/node: Value (${n.target.node}) must not be present when using the ${this.name} extension`);let a=`${e}/extensions/${this.name}`,r=o.pointer;if(!r)throw Error(`${a}: Pointer is missing`);try{let o=this._pathToObjectConverter.convert(r);if(!o.info.interpolation)throw Error(`${a}/pointer: Interpolation is missing`);return this._loader._loadAnimationChannelFromTargetInfoAsync(e,t,s,n,{object:o.object,info:o.info.interpolation},i)}catch(e){return k.Logger.Warn(`${a}/pointer: Invalid pointer (${r}) skipped`),null}}}let i_=!1;function ip(){i_||(i_=!0,t_(ic),td(ic,!0,e=>new id(e)))}e.s(["KHR_animation_pointer",0,id,"RegisterKHR_animation_pointer",0,ip],83646),ip(),e.s([],35238),e.s([],3372);let im={coneInnerAngle:6.28318530718,coneOuterAngle:6.28318530718,coneOuterVolume:0,distanceModel:"linear",maxDistance:1e4,minDistance:1,orientation:el.Vector3.Right(),panningEnabled:!0,panningModel:"equalpower",position:el.Vector3.Zero(),rolloffFactor:1,rotation:el.Vector3.Zero(),rotationQuaternion:new el.Quaternion};function ig(e){return e.spatialEnabled||void 0!==e.spatialAutoUpdate||void 0!==e.spatialConeInnerAngle||void 0!==e.spatialConeOuterAngle||void 0!==e.spatialConeOuterVolume||void 0!==e.spatialDistanceModel||void 0!==e.spatialMaxDistance||void 0!==e.spatialMinDistance||void 0!==e.spatialMinUpdateTime||void 0!==e.spatialOrientation||void 0!==e.spatialPanningEnabled||void 0!==e.spatialPanningModel||void 0!==e.spatialPosition||void 0!==e.spatialRolloffFactor||void 0!==e.spatialRotation||void 0!==e.spatialRotationQuaternion}class iy{}(m=E||(E={}))[m.HAS_INPUTS=1]="HAS_INPUTS",m[m.HAS_OUTPUTS=2]="HAS_OUTPUTS",m[m.HAS_INPUTS_AND_OUTPUTS=3]="HAS_INPUTS_AND_OUTPUTS";class ib{constructor(e,t){this.onDisposeObservable=new R.Observable,this.engine=e,1&t&&(this._upstreamNodes=new Set),2&t&&(this._downstreamNodes=new Set)}dispose(){if(this._downstreamNodes){for(let e of Array.from(this._downstreamNodes))if(!this._disconnect(e))throw Error("Disconnect failed");this._downstreamNodes.clear()}if(this._upstreamNodes){for(let e of Array.from(this._upstreamNodes))if(!e._disconnect(this))throw Error("Disconnect failed");this._upstreamNodes.clear()}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()}_connect(e){return!(!this._downstreamNodes||this._downstreamNodes.has(e))&&!!e._onConnect(this)&&(this._downstreamNodes.add(e),!0)}_disconnect(e){return!!this._downstreamNodes&&!!this._downstreamNodes.delete(e)&&e._onDisconnect(this)}_onConnect(e){return!(!this._upstreamNodes||this._upstreamNodes.has(e))&&(this._upstreamNodes.add(e),!0)}_onDisconnect(e){return this._upstreamNodes?.delete(e)??!1}}class iT extends ib{constructor(e,t,s){super(t,s),this.onNameChangedObservable=new R.Observable,this._name=e}get name(){return this._name}set name(e){if(this._name===e)return;let t=this._name;this._name=e,this.onNameChangedObservable.notifyObservers({newName:e,oldName:t,node:this})}dispose(){super.dispose(),this.onNameChangedObservable.clear()}}class iA extends iT{constructor(e,t){super(e,t,3)}connect(e){if(!this._connect(e))throw Error("Connect failed")}disconnect(e){if(!this._disconnect(e))throw Error("Disconnect failed")}disconnectAll(){if(!this._downstreamNodes)throw Error("Disconnect failed");let e=this._downstreamNodes.values();for(let t=e.next();!t.done;t=e.next())if(!this._disconnect(t.value))throw Error("Disconnect failed")}}let ix={volume:1};class iw extends iA{constructor(e){super("Volume",e)}setOptions(e){this.setVolume(e.volume??ix.volume,{shape:"none"})}}function iv(e){return e.getSubNode("Volume")}class iM{get frequencyBinCount(){return this.fftSize/2}getByteTimeDomainData(){return t??(t=new Uint8Array)}getFloatTimeDomainData(){return s??(s=new Float32Array)}}class iC extends iA{constructor(e){super("Analyzer",e)}setOptions(e){this.fftSize=e.analyzerFFTSize??2048,this.minDecibels=e.analyzerMinDecibels??-100,this.maxDecibels=e.analyzerMaxDecibels??-30,this.smoothing=e.analyzerSmoothing??.8}}function iF(e){return e.getSubNode("Analyzer")}function iE(e,t,s){e.callOnSubNode("Analyzer",e=>{e[t]=s})}let iR=null,iS=null;class iO extends iM{constructor(e){super(),this._fftSize=2048,this._maxDecibels=-30,this._minDecibels=-100,this._smoothing=.8,this._subGraph=e}get fftSize(){return this._fftSize}set fftSize(e){this._fftSize=e,iE(this._subGraph,"fftSize",e)}get isEnabled(){return null!==iF(this._subGraph)}get minDecibels(){return this._minDecibels}set minDecibels(e){this._minDecibels=e,iE(this._subGraph,"minDecibels",e)}get maxDecibels(){return this._maxDecibels}set maxDecibels(e){this._maxDecibels=e,iE(this._subGraph,"maxDecibels",e)}get smoothing(){return this._smoothing}set smoothing(e){this._smoothing=e,iE(this._subGraph,"smoothing",e)}dispose(){let e=iF(this._subGraph);e&&(this._subGraph.removeSubNodeAsync(e),e.dispose())}async enableAsync(){iF(this._subGraph)||await this._subGraph.createAndAddSubNodeAsync("Analyzer")}getByteFrequencyData(){let e=iF(this._subGraph);return e?e.getByteFrequencyData():(k.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),iR||(iR=new Uint8Array),iR)}getByteTimeDomainData(){let e=iF(this._subGraph);return e?e.getByteTimeDomainData():(k.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),super.getByteTimeDomainData())}getFloatFrequencyData(){let e=iF(this._subGraph);return e?e.getFloatFrequencyData():(k.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),iS||(iS=new Float32Array),iS)}getFloatTimeDomainData(){let e=iF(this._subGraph);return e?e.getFloatTimeDomainData():(k.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),super.getFloatTimeDomainData())}}class iI extends iT{constructor(e,t,s){super(e,t,s),this._analyzer=null}get analyzer(){return this._analyzer??(this._analyzer=new iO(this._subGraph))}get volume(){var e,t;return e=this._subGraph,t="volume",iv(e)?.[t]??ix[t]}set volume(e){let t=iv(this._subGraph);if(!t)throw Error("No volume subnode");t.volume=e}dispose(){super.dispose(),this._analyzer?.dispose(),this._analyzer=null,this._subGraph.dispose()}setVolume(e,t=null){let s=iv(this._subGraph);if(!s)throw Error("No volume subnode");s.setVolume(e,t)}}class iN extends iI{constructor(e,t,s,n=2){super(e,t,n),this._spatialAutoUpdate=!0,this._spatialMinUpdateTime=0,this._outBus=null,this._spatial=null,this._onOutBusDisposed=null,"boolean"==typeof s.spatialAutoUpdate&&(this._spatialAutoUpdate=s.spatialAutoUpdate),"number"==typeof s.spatialMinUpdateTime&&(this._spatialMinUpdateTime=s.spatialMinUpdateTime)}get outBus(){return this._outBus}set outBus(e){if(this._outBus!==e){if(this._outBus&&(this._onOutBusDisposed&&(this._outBus.onDisposeObservable.removeCallback(this._onOutBusDisposed),this._onOutBusDisposed=null),!this._disconnect(this._outBus)))throw Error("Disconnect failed");if(this._outBus=e,this._outBus&&(this._onOutBusDisposed=()=>{this._outBus=null},this._outBus.onDisposeObservable.add(this._onOutBusDisposed),!this._connect(this._outBus)))throw Error("Connect failed")}}get spatial(){return this._spatial?this._spatial:this._initSpatialProperty()}dispose(){super.dispose(),this._spatial?.dispose(),this._spatial=null,this._outBus&&this._onOutBusDisposed&&(this._outBus.onDisposeObservable.removeCallback(this._onOutBusDisposed),this._onOutBusDisposed=null),this._outBus=null}_initSpatialProperty(){return this._spatial=this._createSpatialProperty(this._spatialAutoUpdate,this._spatialMinUpdateTime)}get _isSpatial(){return null!==this._spatial}set _isSpatial(e){e&&!this._spatial?this._initSpatialProperty():!e&&this._spatial&&(this._spatial.dispose(),this._spatial=null)}}class iB{}class ik extends iA{constructor(e){super("Stereo",e)}setOptions(e){this.pan=e.stereoPan??0}}function iP(e){return e.getSubNode("Stereo")}class iL extends iB{constructor(e){super(),this._pan=0,this._subGraph=e}get pan(){return this._pan}set pan(e){var t;this._pan=e,t=this._subGraph,t.callOnSubNode("Stereo",t=>{t.pan=e})}}class iG{constructor(e){this._attachmentType=3,this._position=new el.Vector3,this._rotationQuaternion=new el.Quaternion,this._sceneNode=null,this._useBoundingBox=!1,this.dispose=()=>{this.detach()},this._spatialAudioNode=e}get isAttached(){return null!==this._sceneNode}get sceneNode(){return this._sceneNode}get useBoundingBox(){return this._useBoundingBox}get attachmentType(){return this._attachmentType}attach(e,t,s){this._sceneNode===e||(this.detach(),e&&(this._attachmentType=s,this._sceneNode=e,this._sceneNode.onDisposeObservable.add(this.dispose),this._useBoundingBox=t))}detach(){this._sceneNode?.onDisposeObservable.removeCallback(this.dispose),this._sceneNode=null}update(){let e=!!(1&this._attachmentType);e&&(this._useBoundingBox&&this._sceneNode.getBoundingInfo?this._position.copyFrom(this._sceneNode.getBoundingInfo().boundingBox.centerWorld):this._sceneNode?.getWorldMatrix().getTranslationToRef(this._position),this._spatialAudioNode.position.copyFrom(this._position),this._spatialAudioNode._updatePosition()),2&this._attachmentType&&(this._sceneNode?.getWorldMatrix().decompose(void 0,this._rotationQuaternion),this._spatialAudioNode.rotationQuaternion.copyFrom(this._rotationQuaternion),this._spatialAudioNode._updateRotation()),!e&&"panningEnabled"in this._spatialAudioNode&&!this._spatialAudioNode.panningEnabled&&this._spatialAudioNode._updatePosition()}}class iD extends iA{constructor(e){super("Spatial",e),this._attacherComponent=null}get isAttached(){return null!==this._attacherComponent&&this._attacherComponent.isAttached}get attachedNode(){return this._attacherComponent?.sceneNode??null}get useBoundingBox(){return this._attacherComponent?.useBoundingBox??!1}get attachmentType(){return this._attacherComponent?.attachmentType??3}attach(e,t,s){this.detach(),this._attacherComponent||(this._attacherComponent=new iG(this)),this._attacherComponent.attach(e,t,s)}detach(){this._attacherComponent?.detach()}dispose(){super.dispose(),this._attacherComponent?.dispose(),this._attacherComponent=null}setOptions(e){this.coneInnerAngle=e.spatialConeInnerAngle??im.coneInnerAngle,this.coneOuterAngle=e.spatialConeOuterAngle??im.coneOuterAngle,this.coneOuterVolume=e.spatialConeOuterVolume??im.coneOuterVolume,this.distanceModel=e.spatialDistanceModel??im.distanceModel,this.maxDistance=e.spatialMaxDistance??im.maxDistance,this.minDistance=e.spatialMinDistance??im.minDistance,this.orientation=e.spatialOrientation??im.orientation,this.panningEnabled=e.spatialPanningEnabled??im.panningEnabled,this.panningModel=e.spatialPanningModel??im.panningModel,this.rolloffFactor=e.spatialRolloffFactor??im.rolloffFactor,e.spatialPosition&&(this.position=e.spatialPosition.clone()),e.spatialRotationQuaternion?this.rotationQuaternion=e.spatialRotationQuaternion.clone():e.spatialRotation?this.rotation=e.spatialRotation.clone():this.rotationQuaternion=im.rotationQuaternion.clone(),this.update()}update(){this.isAttached?this._attacherComponent?.update():(this._updatePosition(),this._updateRotation())}}function iV(e){return e.getSubNode("Spatial")}function iK(e,t,s){e.callOnSubNode("Spatial",e=>{e[t]=s})}var iH=e.i(44674);let iU=RegExp("\\.(\\w{3,4})($|\\?)"),i$=new Float32Array([0,0]),iz=null,iq=null,iW=null;function ij(e){return e.replace(/#/gm,"%23")}function iX(e){let{url:t,headers:s}=iH.WebRequest._CollectCustomizations(e);return Object.keys(s).length>0&&k.Logger.Warn("WebAudioStreamingSound: Custom request headers cannot be applied to a streaming <audio> element and will be ignored. To use custom headers with audio, switch to a static (non-streaming) sound which fetches the file up-front."),t}async function iY(e){let t=await iH.WebRequest.FetchAsync(e);if(!t.ok)throw Error(`HTTP ${t.status} loading '${e}': ${t.statusText}`);return{data:await t.arrayBuffer(),contentType:t.headers.get("Content-Type")??""}}let iQ=!0;class iZ{constructor(e,t){this._rampEndTime=0,this._engine=e,this._param=t,this._targetValue=t.value}get isRamping(){return this._engine.currentTime<this._rampEndTime}get targetValue(){return this._targetValue}set targetValue(e){this.setTargetValue(e)}get value(){return this._param.value}dispose(){this._param=null,this._engine=null}setTargetValue(e,t=null){if(!Number.isFinite(e))return void k.Logger.Warn(`Attempted to set audio parameter to non-finite value: ${e}`);this._param.cancelScheduledValues(0);let s="string"==typeof t?.shape?t.shape:"linear",n=this._engine.currentTime;if("none"===s){this._param.value=this._targetValue=e,this._rampEndTime=n;return}let i="number"==typeof t?.duration?Math.max(t.duration,this._engine.parameterRampDuration):this._engine.parameterRampDuration;if(this._targetValue=e,(i=Math.max(this._engine.parameterRampDuration,i))<1e-6)return void this._param.setValueAtTime(e,n);try{this._param.setValueCurveAtTime(function(e,t,s){let n;if(iz||(iz=new Float32Array(100)),"linear"===e)return i$[0]=t,i$[1]=s,i$;if("exponential"===e)n=function(){if(!iq){iq=new Float32Array(100);let e=1/99,t=1/99;for(let s=1;s<100;s++)iq[s]=Math.exp(-11.512925464970227*(1-t)),t+=e}return iq}();else if("logarithmic"===e)n=function(){if(!iW){iW=new Float32Array(100);let e=.01;for(let t=0;t<100;t++)iW[t]=1+Math.log10(e)/Math.log10(100),e+=.01}return iW}();else throw Error(`Unknown ramp shape: ${e}`);let i=Math.sign(s-t),o=Math.abs(s-t);if(1===i)for(let e=0;e<n.length;e++)iz[e]=t+o*n[e];else{let e=99;for(let s=0;s<n.length;s++,e--)iz[s]=t-o*(1-n[e])}return iz}(s,Number.isFinite(this._param.value)?this._param.value:0,e),n,i),this._rampEndTime=n+i}catch(e){iQ&&(k.Logger.Warn(`Audio parameter ramping failed: ${e.message}`),iQ=!1)}}}let iJ=el.Matrix.Zero(),i0=new el.Quaternion;function i1(e){return e*Math.PI/180}function i2(e){return 180*e/Math.PI}async function i3(e){return new i7(e)}class i7 extends iD{constructor(e){super(e),this._lastOrientation=el.Vector3.Zero(),this._lastPosition=el.Vector3.Zero(),this._lastRotation=el.Vector3.Zero(),this._lastRotationQuaternion=new el.Quaternion,this._panningEnabled=im.panningEnabled,this.orientation=im.orientation.clone(),this.position=im.position.clone(),this.rotation=im.rotation.clone(),this.rotationQuaternion=im.rotationQuaternion.clone(),this._inputNode=new GainNode(e._audioContext),this._attenuationNode=new GainNode(e._audioContext),this._attenuation=new iZ(e,this._attenuationNode.gain),this.node=new PannerNode(e._audioContext),this._orientationX=new iZ(e,this.node.orientationX),this._orientationY=new iZ(e,this.node.orientationY),this._orientationZ=new iZ(e,this.node.orientationZ),this._positionX=new iZ(e,this.node.positionX),this._positionY=new iZ(e,this.node.positionY),this._positionZ=new iZ(e,this.node.positionZ),this._connectActiveInput()}dispose(){super.dispose(),this._attenuation.dispose(),this._orientationX.dispose(),this._orientationY.dispose(),this._orientationZ.dispose(),this._positionX.dispose(),this._positionY.dispose(),this._positionZ.dispose(),this._inputNode.disconnect(),this._attenuationNode.disconnect(),this.node.disconnect()}get coneInnerAngle(){return i1(this.node.coneInnerAngle)}set coneInnerAngle(e){this.node.coneInnerAngle=i2(e)}get coneOuterAngle(){return i1(this.node.coneOuterAngle)}set coneOuterAngle(e){this.node.coneOuterAngle=i2(e)}get coneOuterVolume(){return this.node.coneOuterGain}set coneOuterVolume(e){this.node.coneOuterGain=e}get distanceModel(){return this.node.distanceModel}set distanceModel(e){this.node.distanceModel=e;let t=this.node.maxDistance;this.node.maxDistance=t+.001,this.node.maxDistance=t,this._updateAttenuation()}get minDistance(){return this.node.refDistance}set minDistance(e){this.node.refDistance=e,this._updateAttenuation()}get maxDistance(){return this.node.maxDistance}set maxDistance(e){this.node.maxDistance=e,this._updateAttenuation()}get panningEnabled(){return this._panningEnabled}set panningEnabled(e){this._panningEnabled!==e&&(this._panningEnabled=e,this._connectActiveInput(),this._updateAttenuation())}get panningModel(){return this.node.panningModel}set panningModel(e){this.node.panningModel=e}get rolloffFactor(){return this.node.rolloffFactor}set rolloffFactor(e){this.node.rolloffFactor=e,this._updateAttenuation()}get _inNode(){return this._inputNode}get _outNode(){return this._panningEnabled?this.node:this._attenuationNode}_updatePosition(){this._lastPosition.equalsWithEpsilon(this.position)||(this._positionX.targetValue=this.position.x,this._positionY.targetValue=this.position.y,this._positionZ.targetValue=this.position.z,this._lastPosition.copyFrom(this.position)),this._updateAttenuation()}_updateRotation(){let e=!1;if(this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion))if(this._lastRotation.equalsWithEpsilon(this.rotation)){if(this._lastOrientation.equalsWithEpsilon(this.orientation))return}else el.Quaternion.FromEulerAnglesToRef(this.rotation.x,this.rotation.y,this.rotation.z,i0),this._lastRotation.copyFrom(this.rotation),e=!0;else i0.copyFrom(this.rotationQuaternion),this._lastRotationQuaternion.copyFrom(this.rotationQuaternion),e=!0;e&&(el.Matrix.FromQuaternionToRef(i0,iJ),el.Vector3.TransformNormalToRef(el.Vector3.RightReadOnly,iJ,this.orientation)),this._orientationX.targetValue=this.orientation.x,this._orientationY.targetValue=this.orientation.y,this._orientationZ.targetValue=this.orientation.z}_connect(e){return!!super._connect(e)&&(e._inNode&&(this.node.connect(e._inNode),this._attenuationNode.connect(e._inNode)),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&(this.node.disconnect(e._inNode),this._attenuationNode.disconnect(e._inNode)),!0)}getClassName(){return"_SpatialWebAudioSubNode"}_connectActiveInput(){this._inputNode.disconnect(),this._panningEnabled?this._inputNode.connect(this.node):this._inputNode.connect(this._attenuationNode)}_updateAttenuation(){if(this._panningEnabled){this._attenuation.targetValue=1;return}let e=this.engine.listener.position,t=this.position.x-e.x,s=this.position.y-e.y,n=this.position.z-e.z,i=Math.sqrt(t*t+s*s+n*n),o=Math.max(this.minDistance,0),a=1;switch(this.distanceModel){case"linear":{let e=Math.max(this.maxDistance,o),t=Math.min(Math.max(i,o),e);a=e===o?+(i<=o):1-this.rolloffFactor*(t-o)/(e-o)}break;case"inverse":if(0===o){a=0;break}a=o/(o+this.rolloffFactor*(Math.max(i,o)-o));break;case"exponential":if(0===o){a=0;break}a=Math.pow(Math.max(i,o)/o,-this.rolloffFactor)}this._attenuation.targetValue=Math.min(Math.max(a,0),1)}}async function i4(e){return new i9(e)}class i9 extends ik{constructor(e){super(e),this.node=new StereoPannerNode(e._audioContext),this._pan=new iZ(e,this.node.pan)}dispose(){super.dispose(),this._pan.dispose()}get pan(){return this._pan.targetValue}set pan(e){this._pan.targetValue=e}get _inNode(){return this.node}get _outNode(){return this.node}getClassName(){return"_StereoWebAudioSubNode"}_connect(e){return!!super._connect(e)&&(e._inNode&&this.node.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this.node.disconnect(e._inNode),!0)}}class i6{constructor(){this._createSubNodePromises={},this._isDisposed=!1,this._subNodes={},this._onSubNodeDisposed=e=>{delete this._subNodes[e.name],this._onSubNodesChanged()}}callOnSubNode(e,t){let s=this.getSubNode(e);s?t(s):this._createSubNodePromisesResolvedAsync().then(()=>{let s=this.getSubNode(e);s?t(s):this.createAndAddSubNodeAsync(e).then(e=>{t(e)})})}createAndAddSubNodeAsync(e){var t;return(t=this._createSubNodePromises)[e]||(t[e]=this._createSubNode(e).then(e=>(this._addSubNode(e),e))),this._createSubNodePromises[e]}dispose(){for(let e of(this._isDisposed=!0,Object.values(this._subNodes)))e.dispose();this._subNodes={},this._createSubNodePromises={}}getSubNode(e){return this._subNodes[e]??null}async removeSubNodeAsync(e){if(!e)return;await this._createSubNodePromisesResolvedAsync();let t=e.name;this._subNodes[t]&&delete this._subNodes[t],delete this._createSubNodePromises[t],this._onSubNodesChanged()}async _createSubNodePromisesResolvedAsync(){return await Promise.all(Object.values(this._createSubNodePromises))}_addSubNode(e){this._isDisposed?e.dispose():(this._subNodes[e.name]=e,e.onDisposeObservable.addOnce(this._onSubNodeDisposed),this._onSubNodesChanged())}}async function i5(e){return new i8(e)}class i8 extends iw{constructor(e){super(e);const t=this.node=new GainNode(e._audioContext);this._volume=new iZ(e,t.gain)}dispose(){super.dispose(),this._volume.dispose()}get volume(){return this._volume.value}set volume(e){this.setVolume(e)}get _inNode(){return this.node}get _outNode(){return this.node}setVolume(e,t=null){this._volume.setTargetValue(e,t)}_connect(e){return!!super._connect(e)&&(e._inNode&&this.node.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this.node.disconnect(e._inNode),!0)}getClassName(){return"_VolumeWebAudioSubNode"}}async function oe(e){return new ot(e)}class ot extends iC{constructor(e){super(e),this._byteFrequencyData=null,this._byteTimeDomainData=null,this._floatFrequencyData=null,this._floatTimeDomainData=null,this._analyzerNode=new AnalyserNode(e._audioContext)}get fftSize(){return this._analyzerNode.fftSize}set fftSize(e){e!==this._analyzerNode.fftSize&&(this._analyzerNode.fftSize=e,this._clearArrays())}get _inNode(){return this._analyzerNode}get minDecibels(){return this._analyzerNode.minDecibels}set minDecibels(e){this._analyzerNode.minDecibels=e}get maxDecibels(){return this._analyzerNode.maxDecibels}set maxDecibels(e){this._analyzerNode.maxDecibels=e}get smoothing(){return this._analyzerNode.smoothingTimeConstant}set smoothing(e){this._analyzerNode.smoothingTimeConstant=e}dispose(){super.dispose(),this._clearArrays(),this._analyzerNode.disconnect()}getClassName(){return"_WebAudioAnalyzerSubNode"}getByteFrequencyData(){return this._byteFrequencyData&&0!==this._byteFrequencyData.length||(this._byteFrequencyData=new Uint8Array(this._analyzerNode.frequencyBinCount)),this._analyzerNode.getByteFrequencyData(this._byteFrequencyData),this._byteFrequencyData}getByteTimeDomainData(){return this._byteTimeDomainData&&0!==this._byteTimeDomainData.length||(this._byteTimeDomainData=new Uint8Array(this._analyzerNode.fftSize)),this._analyzerNode.getByteTimeDomainData(this._byteTimeDomainData),this._byteTimeDomainData}getFloatFrequencyData(){return this._floatFrequencyData&&0!==this._floatFrequencyData.length||(this._floatFrequencyData=new Float32Array(this._analyzerNode.frequencyBinCount)),this._analyzerNode.getFloatFrequencyData(this._floatFrequencyData),this._floatFrequencyData}getFloatTimeDomainData(){return this._floatTimeDomainData&&0!==this._floatTimeDomainData.length||(this._floatTimeDomainData=new Float32Array(this._analyzerNode.fftSize)),this._analyzerNode.getFloatTimeDomainData(this._floatTimeDomainData),this._floatTimeDomainData}_clearArrays(){this._byteFrequencyData=null,this._byteTimeDomainData=null,this._floatFrequencyData=null,this._floatTimeDomainData=null}}class os extends i6{constructor(e){super(),this._outputNode=null,this._owner=e}async initAsync(e){let t=e.analyzerEnabled||void 0!==e.analyzerFFTSize||void 0!==e.analyzerMinDecibels||void 0!==e.analyzerMaxDecibels||void 0!==e.analyzerSmoothing;if(t&&await this.createAndAddSubNodeAsync("Analyzer"),await this.createAndAddSubNodeAsync("Volume"),await this._createSubNodePromisesResolvedAsync(),t){let t=iF(this);if(!t)throw Error("No analyzer subnode.");t.setOptions(e)}let s=iv(this);if(!s)throw Error("No volume subnode.");if(s.setOptions(e),"_VolumeWebAudioSubNode"!==s.getClassName())throw Error("Not a WebAudio subnode.");if(this._outputNode=s.node,this._outputNode&&this._downstreamNodes){let e=this._downstreamNodes.values();for(let t=e.next();!t.done;t=e.next()){let e=t.value._inNode;e&&this._outputNode.connect(e)}}}get _inNode(){return this._outputNode}get _outNode(){return this._outputNode}_createSubNode(e){switch(e){case"Analyzer":return oe(this._owner.engine);case"Volume":return i5(this._owner.engine);default:throw Error(`Unknown subnode name: ${e}`)}}_onSubNodesChanged(){let e=iF(this),t=iv(this);e&&t&&t.connect(e)}}class on extends os{constructor(){super(...arguments),this._rootNode=null,this._inputNode=null}async initAsync(e){let t,s;await super.initAsync(e),(t=ig(e))&&await this.createAndAddSubNodeAsync("Spatial"),(s=e.stereoEnabled||void 0!==e.stereoPan)&&await this.createAndAddSubNodeAsync("Stereo"),await this._createSubNodePromisesResolvedAsync(),t&&iV(this)?.setOptions(e),s&&iP(this)?.setOptions(e)}get _inNode(){return this._inputNode}_createSubNode(e){try{return super._createSubNode(e)}catch(e){}switch(e){case"Spatial":return i3(this._owner.engine);case"Stereo":return i4(this._owner.engine);default:throw Error(`Unknown subnode name: ${e}`)}}_onSubNodesChanged(){let e;super._onSubNodesChanged();let t=iV(this),s=iP(this),n=iv(this);if(t&&"_SpatialWebAudioSubNode"!==t.getClassName()||s&&"_StereoWebAudioSubNode"!==s.getClassName()||n&&"_VolumeWebAudioSubNode"!==n.getClassName())throw Error("Not a WebAudio subnode.");t&&(t.disconnectAll(),n&&t.connect(n)),s&&(s.disconnectAll(),n&&s.connect(n)),t&&s?(this._rootNode=new GainNode(this._owner.engine._audioContext),this._rootNode.connect(t._inNode),this._rootNode.connect(s._inNode)):(this._rootNode?.disconnect(),this._rootNode=null);let i=null;if(this._rootNode?e=this._rootNode:(t?i=t:s?i=s:n&&(i=n),e=i?._inNode??null),this._inputNode!==e){if(this._inputNode&&this._upstreamNodes){let e=this._upstreamNodes.values();for(let t=e.next();!t.done;t=e.next())t.value._outNode?.disconnect(this._inputNode)}if(this._inputNode=e,e&&this._upstreamNodes){let t=this._upstreamNodes.values();for(let s=t.next();!s.done;s=t.next())s.value._outNode?.connect(e)}}}}class oi extends iy{constructor(e){super(),this._coneInnerAngle=im.coneInnerAngle,this._coneOuterAngle=im.coneOuterAngle,this._coneOuterVolume=im.coneOuterVolume,this._distanceModel=im.distanceModel,this._maxDistance=im.maxDistance,this._minDistance=im.minDistance,this._panningEnabled=im.panningEnabled,this._panningModel=im.panningModel,this._rolloffFactor=im.rolloffFactor;const t=iV(e);t?(this._orientation=t.orientation.clone(),this._panningEnabled=t.panningEnabled,this._position=t.position.clone(),this._rotation=t.rotation.clone(),this._rotationQuaternion=t.rotationQuaternion.clone()):(this._orientation=im.orientation.clone(),this._position=im.position.clone(),this._rotation=im.rotation.clone(),this._rotationQuaternion=im.rotationQuaternion.clone(),e.createAndAddSubNodeAsync("Spatial")),this._subGraph=e}dispose(){this._subGraph.removeSubNodeAsync(iV(this._subGraph))}get coneInnerAngle(){return this._coneInnerAngle}set coneInnerAngle(e){this._coneInnerAngle=e,iK(this._subGraph,"coneInnerAngle",e)}get coneOuterAngle(){return this._coneOuterAngle}set coneOuterAngle(e){this._coneOuterAngle=e,iK(this._subGraph,"coneOuterAngle",e)}get coneOuterVolume(){return this._coneOuterVolume}set coneOuterVolume(e){this._coneOuterVolume=e,iK(this._subGraph,"coneOuterVolume",e)}get distanceModel(){return this._distanceModel}set distanceModel(e){this._distanceModel=e,iK(this._subGraph,"distanceModel",e)}get isAttached(){return this._subGraph.getSubNode("Spatial")?.isAttached??!1}get attachedNode(){return this._subGraph.getSubNode("Spatial")?.attachedNode??null}get useBoundingBox(){return this._subGraph.getSubNode("Spatial")?.useBoundingBox??!1}get attachmentType(){return this._subGraph.getSubNode("Spatial")?.attachmentType??3}get maxDistance(){return this._maxDistance}set maxDistance(e){e<=0&&(e=1e-6),this._maxDistance=e,iK(this._subGraph,"maxDistance",e)}get minDistance(){return this._minDistance}set minDistance(e){this._minDistance=e,iK(this._subGraph,"minDistance",e)}get orientation(){return this._orientation}set orientation(e){this._orientation=e,this._updateRotation()}get panningEnabled(){return this._panningEnabled}set panningEnabled(e){this._panningEnabled=e,iK(this._subGraph,"panningEnabled",e)}get panningModel(){return this._panningModel}set panningModel(e){this._panningModel=e,iK(this._subGraph,"panningModel",e)}get position(){return this._position}set position(e){this._position=e,this._updatePosition()}get rolloffFactor(){return this._rolloffFactor}set rolloffFactor(e){this._rolloffFactor=e,iK(this._subGraph,"rolloffFactor",e)}get rotation(){return this._rotation}set rotation(e){this._rotation=e,this._updateRotation()}get rotationQuaternion(){return this._rotationQuaternion}set rotationQuaternion(e){this._rotationQuaternion=e,this._updateRotation()}attach(e,t=!1,s=3){iV(this._subGraph)?.attach(e,t,s)}detach(){iV(this._subGraph)?.detach()}update(){let e=iV(this._subGraph);e&&(e.isAttached?e.update():(this._updatePosition(e),this._updateRotation(e)))}_updatePosition(e=null){(e||(e=iV(this._subGraph)))&&(e.position.equalsWithEpsilon(this._position)?e.panningEnabled||e._updatePosition():(e.position.copyFrom(this._position),e._updatePosition()))}_updateRotation(e=null){(e||(e=iV(this._subGraph)))&&(e.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)?e.rotation.equalsWithEpsilon(this._rotation)?e.orientation.equalsWithEpsilon(this._orientation)||(e.orientation.copyFrom(this._orientation),e._updateRotation(),this._rotation.copyFrom(e.rotation),this._rotationQuaternion.copyFrom(e.rotationQuaternion)):(e.rotation.copyFrom(this._rotation),e._updateRotation(),this._orientation.copyFrom(e.orientation),this._rotationQuaternion.copyFrom(e.rotationQuaternion)):(e.rotationQuaternion.copyFrom(this._rotationQuaternion),e._updateRotation(),this._orientation.copyFrom(e.orientation),this._rotation.copyFrom(e.rotation)))}}var oo=e.i(87869);class oa{constructor(e,t,s){if(this._autoUpdate=!0,this._lastUpdateTime=0,this.minUpdateTime=0,!t)return;this.minUpdateTime=s;const n=()=>{if(!this._autoUpdate)return;let t=!1;if(0<this.minUpdateTime){let e=oo.PrecisionDate.Now;this._lastUpdateTime&&e-this._lastUpdateTime<1e3*this.minUpdateTime&&(t=!0),this._lastUpdateTime=e}t||e.update(),requestAnimationFrame(n)};requestAnimationFrame(n)}dispose(){this._autoUpdate=!1}}class or extends oi{constructor(e,t,s){super(e),this._updaterComponent=new oa(this,t,s)}get minUpdateTime(){return this._updaterComponent.minUpdateTime}set minUpdateTime(e){this._updaterComponent.minUpdateTime=e}dispose(){super.dispose(),this._updaterComponent.dispose(),this._updaterComponent=null}}class ol extends iN{constructor(e,t,s,n){super(e,s,n),this._stereo=null,this._webAudioNode=null,this._audioContext=this.engine._audioContext,this._webAudioNode=t,this._subGraph=new ol._SubGraph(this)}async _initAsync(e){e.outBus?this.outBus=e.outBus:!1!==e.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(e),ig(e)&&this._initSpatialProperty(),this.engine._addNode(this)}get _inNode(){return this._webAudioNode}get _outNode(){return this._subGraph._outNode}get stereo(){return this._stereo??(this._stereo=new iL(this._subGraph))}dispose(){if(super.dispose(),this._webAudioNode){if(this._webAudioNode instanceof MediaStreamAudioSourceNode)for(let e of this._webAudioNode.mediaStream.getTracks())e.stop();this._webAudioNode.disconnect(),this._webAudioNode=null}this._stereo=null,this._subGraph.dispose(),this.engine._removeNode(this)}getClassName(){return"_WebAudioSoundSource"}_connect(e){return!!super._connect(e)&&(e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_createSpatialProperty(e,t){return new or(this._subGraph,e,t)}}ol._SubGraph=class extends on{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}_onSubNodesChanged(){super._onSubNodesChanged(),this._owner._inNode?.disconnect(),this._owner._subGraph._inNode&&this._owner._inNode?.connect(this._owner._subGraph._inNode)}};class oh extends iN{constructor(e,t,s){super(e,t,s,3),this._newestInstance=null,this._privateInstances=new Set,this._state=1,this._instances=this._privateInstances,this.onEndedObservable=new R.Observable,this._onInstanceEnded=e=>{this._newestInstance===e&&(this._newestInstance=null),e.onStateChangedObservable.removeCallback(this._onInstanceStateChanged),this._privateInstances.delete(e),0===this._instances.size&&(this._state=1,this.onEndedObservable.notifyObservers(this)),e.dispose(),this.engine._onSoundPlaybackStateChanged()},this._onInstanceStateChanged=e=>{this.engine._onSoundPlaybackStateChanged()}}get activeInstancesCount(){return this._instances.size}get autoplay(){return this._options.autoplay}get currentTime(){let e=this._getNewestInstance();return e?e.currentTime:0}set currentTime(e){this.startOffset=e;let t=this._getNewestInstance();t&&(t.currentTime=e)}get loop(){return this._options.loop}set loop(e){this._options.loop=e}get maxInstances(){return this._options.maxInstances}set maxInstances(e){this._options.maxInstances=e}get startOffset(){return this._options.startOffset}set startOffset(e){this._options.startOffset=e}get state(){return this._state}dispose(){super.dispose(),this.stop(),this._newestInstance=null,this._privateInstances.clear(),this.onEndedObservable.clear()}pause(){let e=this._instances.values();for(let t=e.next();!t.done;t=e.next())t.value.pause();this._state=5,this.engine._onSoundPlaybackStateChanged()}resume(e){if(5!==this._state)return;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.resume(e);this._state=3,this.engine._onSoundPlaybackStateChanged()}_beforePlay(e){5===this.state&&this._instances.size>0?this.resume():(e.onEndedObservable.addOnce(this._onInstanceEnded),e.onStateChangedObservable.add(this._onInstanceStateChanged),this._privateInstances.add(e),this._newestInstance=e)}_afterPlay(e){this._state=e.state,this.engine._onSoundPlaybackStateChanged()}_getNewestInstance(){if(0===this._instances.size)return null;if(!this._newestInstance){let e=this._instances.values();for(let t=e.next();!t.done;t=e.next())this._newestInstance=t.value}return this._newestInstance}_setState(e){this._state=e}_stopExcessInstances(){if(this.maxInstances<1/0){let e=Array.from(this._instances).filter(e=>3===e.state),t=e.length-this.maxInstances;for(let s=0;s<t;s++)e[s].stop()}}}class ou extends oh{constructor(e,t,s){super(e,t,s)}get duration(){return this._options.duration}set duration(e){this._options.duration=e}get loopStart(){return this._options.loopStart}set loopStart(e){this._options.loopStart=e}get loopEnd(){return this._options.loopEnd}set loopEnd(e){this._options.loopEnd=e}get pitch(){return this._options.pitch}set pitch(e){this._options.pitch=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.pitch=e}get playbackRate(){return this._options.playbackRate}set playbackRate(e){this._options.playbackRate=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.playbackRate=e}play(e={}){if(5===this.state)return void this.resume(e);e.duration??(e.duration=this.duration),e.loop??(e.loop=this.loop),e.loopStart??(e.loopStart=this.loopStart),e.loopEnd??(e.loopEnd=this.loopEnd),e.startOffset??(e.startOffset=this.startOffset),e.volume??(e.volume=1),e.waitTime??(e.waitTime=0);let t=this._createInstance();this._beforePlay(t),t.play(e),this._afterPlay(t),this._stopExcessInstances()}resume(e){super.resume(e)}stop(e={}){if(e.waitTime&&0<e.waitTime?this._setState(0):this._setState(1),this._instances)for(let t of Array.from(this._instances))t.stop(e)}}let oc=1;class od{constructor(e){this.name=`StaticSoundBuffer #${oc++}`,this.engine=e}}class o_ extends ib{constructor(e){super(e.engine,2),this._state=1,this.onEndedObservable=new R.Observable,this.onErrorObservable=new R.Observable,this.onStateChangedObservable=new R.Observable,this._sound=e}get state(){return this._state}dispose(){super.dispose(),this.stop(),this.onEndedObservable.clear(),this.onStateChangedObservable.clear()}_setState(e){this._state!==e&&(this._state=e,this.onStateChangedObservable.notifyObservers(this),1===this._state&&this.onEndedObservable.notifyObservers(this))}}class op extends o_{}class om extends ou{constructor(e,t,s){super(e,t,s),this._stereo=null,this._options={autoplay:s.autoplay??!1,duration:s.duration??0,loop:s.loop??!1,loopEnd:s.loopEnd??0,loopStart:s.loopStart??0,maxInstances:s.maxInstances??1/0,pitch:s.pitch??0,playbackRate:s.playbackRate??1,startOffset:s.startOffset??0},this._subGraph=new om._SubGraph(this)}async _initAsync(e,t){this._audioContext=this.engine._audioContext,e instanceof of?this._buffer=e:("string"==typeof e||Array.isArray(e)||e instanceof ArrayBuffer||e instanceof AudioBuffer)&&(this._buffer=await this.engine.createSoundBufferAsync(e,t)),t.outBus?this.outBus=t.outBus:!1!==t.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(t),ig(t)&&this._initSpatialProperty(),t.autoplay&&this.play(),this.engine._addSound(this)}get buffer(){return this._buffer}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get stereo(){return this._stereo??(this._stereo=new iL(this._subGraph))}async cloneAsync(e=null){let t=await this.engine.createSoundAsync(this.name,e?.cloneBuffer?this.buffer.clone():this.buffer,this._options);return t.outBus=e?.outBus?e.outBus:this.outBus,t}dispose(){super.dispose(),this._stereo=null,this._subGraph.dispose(),this.engine._removeSound(this)}getClassName(){return"_WebAudioStaticSound"}_createInstance(){return new og(this,this._options)}_connect(e){return!!super._connect(e)&&(e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_createSpatialProperty(e,t){return new or(this._subGraph,e,t)}_getOptions(){return this._options}}om._SubGraph=class extends on{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};class of extends od{constructor(e){super(e)}async _initAsync(e,t){e instanceof AudioBuffer?this._audioBuffer=e:"string"==typeof e?await this._initFromUrlAsync(e):Array.isArray(e)?await this._initFromUrlsAsync(e,t.skipCodecCheck??!1):e instanceof ArrayBuffer&&await this._initFromArrayBufferAsync(e)}get channelCount(){return this._audioBuffer.numberOfChannels}get duration(){return this._audioBuffer.duration}get length(){return this._audioBuffer.length}get sampleRate(){return this._audioBuffer.sampleRate}clone(e=null){let t=new AudioBuffer({length:this._audioBuffer.length,numberOfChannels:this._audioBuffer.numberOfChannels,sampleRate:this._audioBuffer.sampleRate});for(let e=0;e<this._audioBuffer.numberOfChannels;e++)t.copyToChannel(this._audioBuffer.getChannelData(e),e);let s=new of(this.engine);return s._audioBuffer=t,s.name=e?.name?e.name:this.name,s}async _initFromArrayBufferAsync(e){this._audioBuffer=await this.engine._audioContext.decodeAudioData(e)}async _initFromUrlAsync(e){e=ij(e);let{data:t}=await iY(e);await this._initFromArrayBufferAsync(t)}async _initFromUrlsAsync(e,t){for(let s of e){if(t)await this._initFromUrlAsync(s);else{let e=s.match(iU),t=e?.at(1);if(t&&this.engine.isFormatValid(t))try{await this._initFromUrlAsync(s)}catch{t&&0<t.length&&this.engine.flagInvalidFormat(t)}}if(this._audioBuffer)break}}}class og extends op{constructor(e,t){super(e),this._enginePlayTime=0,this._enginePauseTime=0,this._isConnected=!1,this._pitch=null,this._playbackRate=null,this._sourceNode=null,this._onEnded=()=>{this._enginePlayTime=0,5!==this._state&&this.onEndedObservable.notifyObservers(this),this._deinitSourceNode()},this._onEngineStateChanged=()=>{"running"===this.engine.state&&(this._options.loop&&2===this.state&&this.play(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))},this._options=t,this._volumeNode=new GainNode(e._audioContext),this._initSourceNode()}dispose(){super.dispose(),this._pitch?.dispose(),this._playbackRate?.dispose(),this.stop(),this._deinitSourceNode(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}get currentTime(){if(1===this._state)return 0;let e=5===this._state?0:this.engine.currentTime-this._enginePlayTime;return this._enginePauseTime+e+this._options.startOffset}set currentTime(e){let t=2===this._state||3===this._state;if(t){let e=this._sourceNode;this._deinitSourceNode(),e?.stop(),this._state=1}5===this.state&&(this._enginePauseTime=0),this._options.startOffset=e,t&&this.play()}get _outNode(){return this._volumeNode}set pitch(e){this._pitch?.setTargetValue(e)}set playbackRate(e){this._playbackRate?.setTargetValue(e)}get startTime(){return 1===this._state?0:this._enginePlayTime}getClassName(){return"_WebAudioStaticSoundInstance"}play(e={}){if(3===this._state)return;void 0!==e.duration&&(this._options.duration=e.duration),void 0!==e.loop&&(this._options.loop=e.loop),void 0!==e.loopStart&&(this._options.loopStart=e.loopStart),void 0!==e.loopEnd&&(this._options.loopEnd=e.loopEnd),void 0!==e.startOffset&&(this._options.startOffset=e.startOffset);let t=this._options.startOffset;5===this._state&&(t+=this._enginePauseTime,t%=this._sound.buffer.duration),this._enginePlayTime=this.engine.currentTime+(e.waitTime??0),void 0!==e.volume&&(this._volumeNode.gain.value=e.volume),this._initSourceNode(),"running"===this.engine.state?(this._setState(3),this._sourceNode?.start(this._enginePlayTime,t,this._options.duration>0?this._options.duration:void 0)):this._options.loop&&(this._setState(2),this.engine.stateChangedObservable.add(this._onEngineStateChanged))}pause(){if(3!==this._state&&2!==this._state)return;let e=3===this._state;this._setState(5),this._enginePauseTime+=this.engine.currentTime-this._enginePlayTime,e?this._sourceNode?.stop():this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged),this._deinitSourceNode()}resume(e={}){5===this._state&&this.play(e)}stop(e={}){if(1!==this._state){if(3===this._state){let t=this.engine.currentTime+(e.waitTime??0);this._sourceNode?.stop(t)}(void 0===e.waitTime||e.waitTime<=0)&&(this._setState(1),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))}}_connect(e){return!!super._connect(e)&&(e instanceof om&&e._inNode&&(this._outNode?.connect(e._inNode),this._isConnected=!0),!0)}_disconnect(e){return!!super._disconnect(e)&&(e instanceof om&&e._inNode&&(this._outNode?.disconnect(e._inNode),this._isConnected=!1),!0)}_deinitSourceNode(){if(this._sourceNode){if(this._isConnected&&!this._disconnect(this._sound))throw Error("Disconnect failed");this._sourceNode.disconnect(this._volumeNode),this._sourceNode.removeEventListener("ended",this._onEnded),this._sourceNode=null}}_initSourceNode(){if(!this._sourceNode){if(this._sourceNode=new AudioBufferSourceNode(this._sound._audioContext,{buffer:this._sound.buffer._audioBuffer}),this._sourceNode.addEventListener("ended",this._onEnded,{once:!0}),this._sourceNode.connect(this._volumeNode),!this._connect(this._sound))throw Error("Connect failed");this._pitch=new iZ(this.engine,this._sourceNode.detune),this._playbackRate=new iZ(this.engine,this._sourceNode.playbackRate)}let e=this._sourceNode;e.detune.value=this._sound.pitch,e.loop=this._options.loop,e.loopEnd=this._options.loopEnd,e.loopStart=this._options.loopStart,e.playbackRate.value=this._sound.playbackRate}}class oy extends oh{constructor(e,t,s){super(e,t,s),this._preloadedInstances=[]}get preloadCount(){return this._options.preloadCount??1}get preloadCompletedCount(){return this._preloadedInstances.length}preloadInstanceAsync(){let e=this._createInstance();return this._addPreloadedInstance(e),e.preloadedPromise}async preloadInstancesAsync(e){for(let t=0;t<e;t++)this.preloadInstanceAsync();await Promise.all(this._preloadedInstances.map(async e=>await e.preloadedPromise))}play(e={}){let t;if(5===this.state)return void this.resume(e);this.preloadCompletedCount>0?((t=this._preloadedInstances[0]).startOffset=this.startOffset,this._removePreloadedInstance(t)):t=this._createInstance();let s=()=>{3===t.state&&(this._stopExcessInstances(),t.onStateChangedObservable.removeCallback(s))};t.onStateChangedObservable.add(s),e.startOffset??(e.startOffset=this.startOffset),e.loop??(e.loop=this.loop),e.volume??(e.volume=1),this._beforePlay(t),t.play(e),this._afterPlay(t)}resume(e){super.resume(e)}stop(){if(this._setState(1),this._instances)for(let e of Array.from(this._instances))e.stop()}_addPreloadedInstance(e){this._preloadedInstances.includes(e)||this._preloadedInstances.push(e)}_removePreloadedInstance(e){let t=this._preloadedInstances.indexOf(e);-1!==t&&this._preloadedInstances.splice(t,1)}}class ob extends o_{constructor(e){super(e),this.onReadyObservable=new R.Observable,this.preloadedPromise=new Promise((e,t)=>{this._rejectPreloadedPromise=t,this._resolvePreloadedPromise=e}),this.onErrorObservable.add(this._rejectPreloadedPromise),this.onReadyObservable.add(this._resolvePreloadedPromise)}set startOffset(e){this._options.startOffset=e}dispose(){super.dispose(),this.onErrorObservable.clear(),this.onReadyObservable.clear(),this._resolvePreloadedPromise()}}class oT extends oy{constructor(e,t,s){super(e,t,s),this._stereo=null,this._options={autoplay:s.autoplay??!1,loop:s.loop??!1,maxInstances:s.maxInstances??1/0,preloadCount:s.preloadCount??1,startOffset:s.startOffset??0},this._subGraph=new oT._SubGraph(this)}async _initAsync(e,t){let s=this.engine._audioContext;if(!(s instanceof AudioContext))throw Error("Unsupported audio context type.");this._audioContext=s,this._source=e,t.outBus?this.outBus=t.outBus:!1!==t.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(t),ig(t)&&this._initSpatialProperty(),this.preloadCount&&await this.preloadInstancesAsync(this.preloadCount),t.autoplay&&this.play(t),this.engine._addSound(this)}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get stereo(){return this._stereo??(this._stereo=new iL(this._subGraph))}dispose(){super.dispose(),this._stereo=null,this._subGraph.dispose(),this.engine._removeSound(this)}getClassName(){return"_WebAudioStreamingSound"}_createInstance(){return new oA(this,this._options)}_connect(e){return!!super._connect(e)&&(e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_createSpatialProperty(e,t){return new or(this._subGraph,e,t)}_getOptions(){return this._options}}oT._SubGraph=class extends on{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};class oA extends ob{constructor(e,t){if(super(e),this._currentTimeChangedWhilePaused=!1,this._enginePlayTime=1/0,this._enginePauseTime=0,this._isReady=!1,this._isReadyPromise=new Promise((e,t)=>{this._resolveIsReadyPromise=e,this._rejectIsReadyPromise=t}),this._onCanPlayThrough=()=>{this._isReady=!0,this._resolveIsReadyPromise(this._mediaElement),this.onReadyObservable.notifyObservers(this)},this._onEnded=()=>{this._setState(1)},this._onError=e=>{this._setState(4),this.onErrorObservable.notifyObservers(e),this._rejectIsReadyPromise(e),this.dispose()},this._onEngineStateChanged=()=>{"running"===this.engine.state&&(this._options.loop&&2===this.state&&this.play(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))},this._onUserGesture=()=>{this.play()},this._options=t,this._volumeNode=new GainNode(e._audioContext),"string"==typeof e._source)this._initFromUrl(e._source);else if(Array.isArray(e._source))this._initFromUrls(e._source);else if(e._source instanceof HTMLMediaElement)this._initFromMediaElement(e._source);else throw Error(`Invalid streaming sound source (${e._source}).`)}get currentTime(){if(1===this._state)return 0;let e=5===this._state?0:this.engine.currentTime-this._enginePlayTime;return this._enginePauseTime+e+this._options.startOffset}set currentTime(e){let t=2===this._state||3===this._state;t&&(this._mediaElement.pause(),this._state=1),this._options.startOffset=e,t?this.play({startOffset:e}):5===this._state&&(this._currentTimeChangedWhilePaused=!0)}get _outNode(){return this._volumeNode}get startTime(){return 1===this._state?0:this._enginePlayTime}dispose(){for(let e of(super.dispose(),this.stop(),this._sourceNode?.disconnect(this._volumeNode),this._sourceNode=null,this._mediaElement.removeEventListener("error",this._onError),this._mediaElement.removeEventListener("ended",this._onEnded),this._mediaElement.removeEventListener("canplaythrough",this._onCanPlayThrough),Array.from(this._mediaElement.children)))this._mediaElement.removeChild(e);this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged),this.engine.userGestureObservable.removeCallback(this._onUserGesture)}play(e={}){if(3===this._state)return;void 0!==e.loop&&(this._options.loop=e.loop),this._mediaElement.loop=this._options.loop;let t=e.startOffset;this._currentTimeChangedWhilePaused?(t=this._options.startOffset,this._currentTimeChangedWhilePaused=!1):5===this._state&&(t=this.currentTime),t&&t>0&&(this._mediaElement.currentTime=t),void 0!==e.volume&&(this._volumeNode.gain.value=e.volume),this._play()}pause(){(2===this._state||3===this._state)&&(this._setState(5),this._enginePauseTime+=this.engine.currentTime-this._enginePlayTime,this._mediaElement.pause())}resume(e={}){5===this._state?this.play(e):this._currentTimeChangedWhilePaused&&this.play(e)}stop(){1!==this._state&&this._stop()}getClassName(){return"_WebAudioStreamingSoundInstance"}_connect(e){return!!super._connect(e)&&(e instanceof oT&&e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e instanceof oT&&e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_initFromMediaElement(e){if(S.Tools.SetCorsBehavior(e.currentSrc,e),e.controls=!1,e.loop=this._options.loop,e.preload="auto",e.addEventListener("canplaythrough",this._onCanPlayThrough,{once:!0}),e.addEventListener("ended",this._onEnded,{once:!0}),e.addEventListener("error",this._onError,{once:!0}),e.load(),this._sourceNode=new MediaElementAudioSourceNode(this._sound._audioContext,{mediaElement:e}),this._sourceNode.connect(this._volumeNode),!this._connect(this._sound))throw Error("Connect failed");this._mediaElement=e}_initFromUrl(e){let t=new Audio(iH.WebRequest.IsCustomRequestAvailable?iX(ij(e)):ij(e));this._initFromMediaElement(t)}_initFromUrls(e){let t=new Audio;for(let s of e){let e=document.createElement("source");e.src=iH.WebRequest.IsCustomRequestAvailable?iX(ij(s)):ij(s),t.appendChild(e)}this._initFromMediaElement(t)}_play(){if(this._setState(2),!this._isReady)return void this._playWhenReady();if(2===this._state)if("running"===this.engine.state){let e=this._mediaElement.play();this._enginePlayTime=this.engine.currentTime,this._setState(3),e.catch(()=>{this._setState(4),this._options.loop&&this.engine.userGestureObservable.addOnce(this._onUserGesture)})}else this._options.loop?this.engine.stateChangedObservable.add(this._onEngineStateChanged):(this.stop(),this._setState(4))}_playWhenReady(){this._isReadyPromise.then(()=>{this._play()}).catch(()=>{k.Logger.Error("Streaming sound instance failed to play"),this._setState(4)})}_stop(){this._mediaElement.pause(),this._onEnded(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}}var ox=e.i(32622),ow=e.i(33945);class ov{constructor(e,t={}){if(this.id=-1,this._isInitialized=!1,!(e=e||P.EngineStore.LastCreatedScene))return;this._scene=e,this.soundCollection=[],this._options=t,!this._options.mainTrack&&this._scene.soundTracks&&(this._scene.soundTracks.push(this),this.id=this._scene.soundTracks.length-1)}_initializeSoundTrackAudioGraph(){ox.AbstractEngine.audioEngine?.canUseWebAudio&&ox.AbstractEngine.audioEngine.audioContext&&(this._outputAudioNode=ox.AbstractEngine.audioEngine.audioContext.createGain(),this._outputAudioNode.connect(ox.AbstractEngine.audioEngine.masterGain),this._options&&this._options.volume&&(this._outputAudioNode.gain.value=this._options.volume),this._isInitialized=!0)}dispose(){if(ox.AbstractEngine.audioEngine&&ox.AbstractEngine.audioEngine.canUseWebAudio){for(this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas();this.soundCollection.length;)this.soundCollection[0].dispose();this._outputAudioNode&&this._outputAudioNode.disconnect(),this._outputAudioNode=null}}addSound(e){this._isInitialized||this._initializeSoundTrackAudioGraph(),ox.AbstractEngine.audioEngine?.canUseWebAudio&&this._outputAudioNode&&e.connectToSoundTrackAudioNode(this._outputAudioNode),void 0!==e.soundTrackId&&(-1===e.soundTrackId?this._scene.mainSoundTrack.removeSound(e):this._scene.soundTracks&&this._scene.soundTracks[e.soundTrackId].removeSound(e)),this.soundCollection.push(e),e.soundTrackId=this.id}removeSound(e){let t=this.soundCollection.indexOf(e);-1!==t&&this.soundCollection.splice(t,1)}setVolume(e){ox.AbstractEngine.audioEngine?.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.gain.value=e)}switchPanningModelToHRTF(){if(ox.AbstractEngine.audioEngine?.canUseWebAudio)for(let e=0;e<this.soundCollection.length;e++)this.soundCollection[e].switchPanningModelToHRTF()}switchPanningModelToEqualPower(){if(ox.AbstractEngine.audioEngine?.canUseWebAudio)for(let e=0;e<this.soundCollection.length;e++)this.soundCollection[e].switchPanningModelToEqualPower()}connectToAnalyser(e){this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas(),this._connectedAnalyser=e,ox.AbstractEngine.audioEngine?.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.disconnect(),this._connectedAnalyser.connectAudioNodes(this._outputAudioNode,ox.AbstractEngine.audioEngine.masterGain))}}var oM=e.i(14149),oC=e.i(19990);let oF={};class oE{get audioEnabled(){return this._audioEnabled}get headphone(){return this._headphone}constructor(e){if(this.name=oM.SceneComponentConstants.NAME_AUDIO,this._audioEnabled=!0,this._headphone=!1,this.audioPositioningRefreshRate=500,this.audioListenerPositionProvider=null,this.audioListenerRotationProvider=null,this._cachedCameraDirection=new el.Vector3,this._cachedCameraPosition=new el.Vector3,this._lastCheck=0,this._invertMatrixTemp=new el.Matrix,this._cameraDirectionTemp=new el.Vector3,!(e=e||P.EngineStore.LastCreatedScene))return;this.scene=e,e.soundTracks=[],e.sounds=[]}register(){this.scene._afterRenderStage.registerStep(oM.SceneComponentConstants.STEP_AFTERRENDER_AUDIO,this,this._afterRender)}rebuild(){}serialize(e){if(e.sounds=[],this.scene.soundTracks)for(let t=0;t<this.scene.soundTracks.length;t++){let s=this.scene.soundTracks[t];for(let t=0;t<s.soundCollection.length;t++)e.sounds.push(s.soundCollection[t].serialize())}}addFromContainer(e){if(e.sounds)for(let t of e.sounds)t.play(),t.autoplay=!0,this.scene.mainSoundTrack.addSound(t)}removeFromContainer(e,t=!1){if(e.sounds)for(let s of e.sounds)s.stop(),s.autoplay=!1,this.scene.mainSoundTrack.removeSound(s),t&&s.dispose()}dispose(){let e=this.scene;if(e._mainSoundTrack&&e.mainSoundTrack.dispose(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].dispose()}disableAudio(){let e,t=this.scene;for(this._audioEnabled=!1,ox.AbstractEngine.audioEngine&&ox.AbstractEngine.audioEngine.audioContext&&ox.AbstractEngine.audioEngine.audioContext.suspend(),e=0;e<t.mainSoundTrack.soundCollection.length;e++)t.mainSoundTrack.soundCollection[e].pause();if(t.soundTracks)for(e=0;e<t.soundTracks.length;e++)for(let s=0;s<t.soundTracks[e].soundCollection.length;s++)t.soundTracks[e].soundCollection[s].pause()}enableAudio(){let e,t=this.scene;for(this._audioEnabled=!0,ox.AbstractEngine.audioEngine&&ox.AbstractEngine.audioEngine.audioContext&&ox.AbstractEngine.audioEngine.audioContext.resume(),e=0;e<t.mainSoundTrack.soundCollection.length;e++)t.mainSoundTrack.soundCollection[e].isPaused&&t.mainSoundTrack.soundCollection[e].play();if(t.soundTracks)for(e=0;e<t.soundTracks.length;e++)for(let s=0;s<t.soundTracks[e].soundCollection.length;s++)t.soundTracks[e].soundCollection[s].isPaused&&t.soundTracks[e].soundCollection[s].play()}switchAudioModeForHeadphones(){let e=this.scene;if(this._headphone=!0,e.mainSoundTrack.switchPanningModelToHRTF(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].switchPanningModelToHRTF()}switchAudioModeForNormalSpeakers(){let e=this.scene;if(this._headphone=!1,e.mainSoundTrack.switchPanningModelToEqualPower(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].switchPanningModelToEqualPower()}_afterRender(){let e=oo.PrecisionDate.Now;if(this._lastCheck&&e-this._lastCheck<this.audioPositioningRefreshRate)return;this._lastCheck=e;let t=this.scene;if(!this._audioEnabled||!t._mainSoundTrack||!t.soundTracks||0===t._mainSoundTrack.soundCollection.length&&1===t.soundTracks.length)return;let s=ox.AbstractEngine.audioEngine;if(s&&s.audioContext){let e,n=t.activeCamera;if(t.activeCameras&&t.activeCameras.length>0&&(n=t.activeCameras[0]),this.audioListenerPositionProvider){let e=this.audioListenerPositionProvider();s.audioContext.listener.setPosition(e.x||0,e.y||0,e.z||0)}else n?this._cachedCameraPosition.equals(n.globalPosition)||(this._cachedCameraPosition.copyFrom(n.globalPosition),s.audioContext.listener.setPosition(n.globalPosition.x,n.globalPosition.y,n.globalPosition.z)):s.audioContext.listener.setPosition(0,0,0);if(this.audioListenerRotationProvider){let e=this.audioListenerRotationProvider();s.audioContext.listener.setOrientation(e.x||0,e.y||0,e.z||0,0,1,0)}else n?(n.rigCameras&&n.rigCameras.length>0&&(n=n.rigCameras[0]),n.getViewMatrix().invertToRef(this._invertMatrixTemp),el.Vector3.TransformNormalToRef(oE._CameraDirection,this._invertMatrixTemp,this._cameraDirectionTemp),this._cameraDirectionTemp.normalize(),isNaN(this._cameraDirectionTemp.x)||isNaN(this._cameraDirectionTemp.y)||isNaN(this._cameraDirectionTemp.z)||this._cachedCameraDirection.equals(this._cameraDirectionTemp)||(this._cachedCameraDirection.copyFrom(this._cameraDirectionTemp),s.audioContext.listener.setOrientation(this._cameraDirectionTemp.x,this._cameraDirectionTemp.y,this._cameraDirectionTemp.z,0,1,0))):s.audioContext.listener.setOrientation(0,0,0,0,1,0);for(e=0;e<t.mainSoundTrack.soundCollection.length;e++){let s=t.mainSoundTrack.soundCollection[e];s.useCustomAttenuation&&s.updateDistanceFromListener()}if(t.soundTracks)for(e=0;e<t.soundTracks.length;e++)for(let s=0;s<t.soundTracks[e].soundCollection.length;s++){let n=t.soundTracks[e].soundCollection[s];n.useCustomAttenuation&&n.updateDistanceFromListener()}}}}oE._CameraDirection=new el.Vector3(0,0,-1);let oR=!1;function oS(e){if(!oR){var t;oR=!0,t=oM.SceneComponentConstants.NAME_AUDIO,oF[t]=(t,s,n,i)=>{let o,a=[];if(n.sounds=n.sounds||[],void 0!==t.sounds&&null!==t.sounds)for(let r=0,l=t.sounds.length;r<l;r++){let l=t.sounds[r];ox.AbstractEngine.audioEngine?.canUseWebAudio?(l.url||(l.url=l.name),a[l.url]?n.sounds.push(e.Parse(l,s,i,a[l.url])):(o=e.Parse(l,s,i),a[l.url]=o,n.sounds.push(o))):n.sounds.push(new e(l.name,null,s))}},Object.defineProperty(oC.Scene.prototype,"mainSoundTrack",{get:function(){let e=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);return e||(e=new oE(this),this._addComponent(e)),this._mainSoundTrack||(this._mainSoundTrack=new ov(this,{mainTrack:!0})),this._mainSoundTrack},enumerable:!0,configurable:!0}),oC.Scene.prototype.getSoundByName=function(e){let t;for(t=0;t<this.mainSoundTrack.soundCollection.length;t++)if(this.mainSoundTrack.soundCollection[t].name===e)return this.mainSoundTrack.soundCollection[t];if(this.soundTracks){for(let s=0;s<this.soundTracks.length;s++)for(t=0;t<this.soundTracks[s].soundCollection.length;t++)if(this.soundTracks[s].soundCollection[t].name===e)return this.soundTracks[s].soundCollection[t]}return null},Object.defineProperty(oC.Scene.prototype,"audioEnabled",{get:function(){let e=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);return e||(e=new oE(this),this._addComponent(e)),e.audioEnabled},set:function(e){let t=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);t||(t=new oE(this),this._addComponent(t)),e?t.enableAudio():t.disableAudio()},enumerable:!0,configurable:!0}),Object.defineProperty(oC.Scene.prototype,"headphone",{get:function(){let e=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);return e||(e=new oE(this),this._addComponent(e)),e.headphone},set:function(e){let t=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);t||(t=new oE(this),this._addComponent(t)),e?t.switchAudioModeForHeadphones():t.switchAudioModeForNormalSpeakers()},enumerable:!0,configurable:!0}),Object.defineProperty(oC.Scene.prototype,"audioListenerPositionProvider",{get:function(){let e=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);return e||(e=new oE(this),this._addComponent(e)),e.audioListenerPositionProvider},set:function(e){let t=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);if(t||(t=new oE(this),this._addComponent(t)),e&&"function"!=typeof e)throw Error("The value passed to [Scene.audioListenerPositionProvider] must be a function that returns a Vector3");t.audioListenerPositionProvider=e},enumerable:!0,configurable:!0}),Object.defineProperty(oC.Scene.prototype,"audioListenerRotationProvider",{get:function(){let e=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);return e||(e=new oE(this),this._addComponent(e)),e.audioListenerRotationProvider},set:function(e){let t=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);if(t||(t=new oE(this),this._addComponent(t)),e&&"function"!=typeof e)throw Error("The value passed to [Scene.audioListenerRotationProvider] must be a function that returns a Vector3");t.audioListenerRotationProvider=e},enumerable:!0,configurable:!0}),Object.defineProperty(oC.Scene.prototype,"audioPositioningRefreshRate",{get:function(){let e=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);return e||(e=new oE(this),this._addComponent(e)),e.audioPositioningRefreshRate},set:function(e){let t=this._getComponent(oM.SceneComponentConstants.NAME_AUDIO);t||(t=new oE(this),this._addComponent(t)),t.audioPositioningRefreshRate=e},enumerable:!0,configurable:!0}),e._SceneComponentInitialization=e=>{let t=e._getComponent(oM.SceneComponentConstants.NAME_AUDIO);t||(t=new oE(e),e._addComponent(t))}}}let oO={duration:0,shape:"linear"},oI={duration:0,startOffset:0,waitTime:0},oN={waitTime:0};function oB(e){return e*Math.PI/180}function ok(e){return 180*e/Math.PI}class oP{get name(){return this._soundV2.name}set name(e){this._soundV2.name=e}get autoplay(){return this._soundV2 instanceof ol||this._optionsV2.autoplay}set autoplay(e){this._optionsV2.autoplay=e}get loop(){return this._soundV2 instanceof ol||this._soundV2.loop}set loop(e){this._soundV2 instanceof ol||this._soundV2&&(this._soundV2.loop=e)}get isPlaying(){return this._soundV2 instanceof ol||this._soundV2?.state===3||!this.isReady()&&this._optionsV2.autoplay}get isPaused(){return!(this._soundV2 instanceof ol)&&5===this._soundV2.state}get maxDistance(){return this._optionsV2.spatialMaxDistance||100}set maxDistance(e){this._optionsV2.spatialMaxDistance=e,!this.useCustomAttenuation&&this._soundV2&&(this._initSpatial(),this._soundV2.spatial.maxDistance=e)}get distanceModel(){return this._optionsV2.spatialDistanceModel||"linear"}set distanceModel(e){this._optionsV2.spatialDistanceModel=e,this._soundV2&&(this._initSpatial(),this._soundV2.spatial.distanceModel=e)}get currentTime(){return this._soundV2 instanceof ol?this._soundV2.engine.currentTime:this._soundV2.currentTime}get spatialSound(){return this._soundV2?._isSpatial??!1}set spatialSound(e){this._soundV2&&(e?this._initSpatial():this._soundV2._isSpatial=!1)}get _onReady(){return this._onReadyObservable||(this._onReadyObservable=new R.Observable),this._onReadyObservable}constructor(e,t,s,n=null,i){if(this.useCustomAttenuation=!1,this.soundTrackId=-1,this.refDistance=1,this.rolloffFactor=1,this.metadata=null,this.onEndedObservable=new R.Observable,this._localDirection=new el.Vector3(1,0,0),this._volume=1,this._isReadyToPlay=!1,this._isDirectional=!1,this._isOutputConnected=!1,this._url=null,this._onReadyObservable=null,this._onReadyToPlay=()=>{this._scene.mainSoundTrack.addSound(this),this._isReadyToPlay=!0,this._readyToPlayCallback(),this._onReadyObservable&&this._onReadyObservable.notifyObservers(),this._optionsV2.autoplay&&this.play()},this._onended=()=>{this.onended&&this.onended(),this.onEndedObservable.notifyObservers(this)},!(s=s||P.EngineStore.LastCreatedScene))return;this._scene=s,oS(oP),oP._SceneComponentInitialization(s),this._readyToPlayCallback=n||(()=>{}),this._customAttenuationFunction=(e,t,s,n,i)=>t<s?e*(1-t/s):0;const o={analyzerEnabled:!1,autoplay:!1,duration:(i=i||{}).length||0,loop:i.loop||!1,loopEnd:0,loopStart:0,outBus:null,outBusAutoDefault:!1,playbackRate:i.playbackRate||1,pitch:0,skipCodecCheck:i.skipCodecCheck||!1,spatialDistanceModel:i.distanceModel,spatialEnabled:i.spatialSound,spatialMaxDistance:i.maxDistance,spatialMinDistance:i.refDistance,spatialRolloffFactor:i.rolloffFactor,stereoEnabled:!1,startOffset:i.offset||0,volume:i.volume??1};this._volume=i.volume??1,ig(o)&&(o.spatialAutoUpdate=!1,o.spatialConeInnerAngle=im.coneInnerAngle,o.spatialConeOuterAngle=im.coneOuterAngle,o.spatialConeOuterVolume=im.coneOuterVolume,o.spatialMinUpdateTime=0,o.spatialOrientation=im.orientation.clone(),o.spatialPanningModel=this._scene.headphone?"HRTF":"equalpower",o.spatialPosition=im.position.clone(),o.spatialRotation=im.rotation.clone(),o.spatialRotationQuaternion=im.rotationQuaternion.clone(),void 0===o.spatialMaxDistance&&(o.spatialMaxDistance=100)),this._optionsV2={...o},this._optionsV2.autoplay=i.autoplay||!1,this.useCustomAttenuation=i.useCustomAttenuation??!1,this.useCustomAttenuation&&(o.spatialMaxDistance=Number.MAX_VALUE,o.volume=0);let a=i?.streaming||!1;if(!ox.AbstractEngine.audioEngine)return;const r=ox.AbstractEngine.audioEngine._v2,l=()=>{if(a){let s=new oT(e,r,{preloadCount:0,...o});return s._initAsync(t,o).then(()=>{s.preloadInstancesAsync(1).then(this._onReadyToPlay)}),s}{let s=new om(e,r,o);return s._initAsync(t,o).then(this._onReadyToPlay),s}};if(t)if("string"==typeof t)this._url=t,this._soundV2=l();else if(t instanceof ArrayBuffer)a=!1,this._soundV2=l();else if(t instanceof HTMLMediaElement)a=!0,this._soundV2=l();else if(t instanceof MediaStream){const s=new MediaStreamAudioSourceNode(r._audioContext,{mediaStream:t});this._soundV2=new ol(e,s,r,o),this._soundV2._initAsync(o).then(this._onReadyToPlay)}else t instanceof AudioBuffer?(a=!1,this._soundV2=l()):Array.isArray(t)&&(this._soundV2=l());else this._soundV2=new om(e,r,o);if(!this._soundV2)return void k.Logger.Error("Parameter must be a URL to the sound, an Array of URLs (.mp3 & .ogg) or an ArrayBuffer of the sound.");this._soundV2 instanceof ol||this._soundV2.onEndedObservable.add(this._onended)}dispose(){this.isPlaying&&this.stop(),this._isReadyToPlay=!1,-1===this.soundTrackId?this._scene.mainSoundTrack.removeSound(this):this._scene.soundTracks&&this._scene.soundTracks[this.soundTrackId].removeSound(this),this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._connectedTransformNode=null),this._soundV2.dispose()}isReady(){return this._isReadyToPlay}getClassName(){return"Sound"}setAudioBuffer(e){!this._isReadyToPlay&&this._soundV2 instanceof om&&this._soundV2._initAsync(e,this._optionsV2).then(this._onReadyToPlay)}updateOptions(e){if(e){if(this.loop=e.loop??this.loop,this.maxDistance=e.maxDistance??this.maxDistance,this.useCustomAttenuation=e.useCustomAttenuation??this.useCustomAttenuation,this.rolloffFactor=e.rolloffFactor??this.rolloffFactor,this.refDistance=e.refDistance??this.refDistance,this.distanceModel=e.distanceModel??this.distanceModel,void 0!==e.playbackRate&&this.setPlaybackRate(e.playbackRate),void 0!==e.spatialSound&&(this.spatialSound=e.spatialSound),void 0!==e.volume&&this.setVolume(e.volume),this._soundV2 instanceof om){let t=!1;void 0!==e.offset&&(this._optionsV2.startOffset=e.offset,t=!0),void 0!==e.length&&(this._soundV2.duration=e.length,t=!0),t&&this.isPaused&&this.stop()}this._updateSpatialParameters()}}_updateSpatialParameters(){if(!this.spatialSound)return;let e=this._soundV2.spatial;this.useCustomAttenuation?(e.distanceModel="linear",e.minDistance=1,e.maxDistance=Number.MAX_VALUE,e.rolloffFactor=1,e.panningModel="equalpower"):(e.distanceModel=this.distanceModel,e.minDistance=this.refDistance,e.maxDistance=this.maxDistance,e.rolloffFactor=this.rolloffFactor,e.panningModel=this._optionsV2.spatialPanningModel||"equalpower")}switchPanningModelToHRTF(){this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.panningModel="HRTF")}switchPanningModelToEqualPower(){this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.panningModel="equalpower")}connectToSoundTrackAudioNode(e){let t=this._soundV2._outNode;t&&(this._isOutputConnected&&t.disconnect(),t.connect(e),this._isOutputConnected=!0)}setDirectionalCone(e,t,s){t<e?k.Logger.Error("setDirectionalCone(): outer angle of the cone must be superior or equal to the inner angle."):(this._optionsV2.spatialConeInnerAngle=oB(e),this._optionsV2.spatialConeOuterAngle=oB(t),this._optionsV2.spatialConeOuterVolume=s,this._initSpatial(),this._soundV2.spatial.coneInnerAngle=this._optionsV2.spatialConeInnerAngle,this._soundV2.spatial.coneOuterAngle=this._optionsV2.spatialConeOuterAngle,this._soundV2.spatial.coneOuterVolume=s,this._isDirectional=!0,this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._optionsV2.startOffset,this._optionsV2.duration)))}get directionalConeInnerAngle(){return ok("number"==typeof this._optionsV2.spatialConeInnerAngle?this._optionsV2.spatialConeInnerAngle:im.coneInnerAngle)}set directionalConeInnerAngle(e){if((e=oB(e))!=this._optionsV2.spatialConeInnerAngle){if(this.directionalConeOuterAngle<e)return void k.Logger.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");this._optionsV2.spatialConeInnerAngle=e,this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.coneInnerAngle=e)}}get directionalConeOuterAngle(){return ok("number"==typeof this._optionsV2.spatialConeOuterAngle?this._optionsV2.spatialConeOuterAngle:im.coneOuterAngle)}set directionalConeOuterAngle(e){if((e=oB(e))!=this._optionsV2.spatialConeOuterAngle){if(e<this.directionalConeInnerAngle)return void k.Logger.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");this._optionsV2.spatialConeOuterAngle=e,this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.coneOuterAngle=e)}}setPosition(e){!(this._optionsV2.spatialPosition&&e.equals(this._optionsV2.spatialPosition))&&(this._optionsV2.spatialPosition||(this._optionsV2.spatialPosition=el.Vector3.Zero()),this._optionsV2.spatialPosition.copyFrom(e),!this.spatialSound||isNaN(e.x)||isNaN(e.y)||isNaN(e.z)||(this._initSpatial(),this._soundV2.spatial.position=e))}setLocalDirectionToMesh(e){this._localDirection=e,this._connectedTransformNode&&this.isPlaying&&this._updateDirection()}_updateDirection(){if(!this._connectedTransformNode||!this.spatialSound)return;let e=this._connectedTransformNode.getWorldMatrix(),t=el.Vector3.TransformNormal(this._localDirection,e);t.normalize(),this._initSpatial(),this._soundV2.spatial.orientation=t}_initSpatial(){this._soundV2._isSpatial=!0,void 0===this._optionsV2.spatialDistanceModel&&(this._optionsV2.spatialDistanceModel="linear",this._soundV2.spatial.distanceModel="linear"),void 0===this._optionsV2.spatialMaxDistance&&(this._optionsV2.spatialMaxDistance=100,this._soundV2.spatial.maxDistance=100)}updateDistanceFromListener(){if(this._soundV2._outNode&&this._connectedTransformNode&&this.useCustomAttenuation&&this._scene.activeCamera){let e=this._scene.audioListenerPositionProvider?this._connectedTransformNode.position.subtract(this._scene.audioListenerPositionProvider()).length():this._connectedTransformNode.getDistanceToCamera(this._scene.activeCamera);this._soundV2.volume=this._customAttenuationFunction(this._volume,e,this.maxDistance,this.refDistance,this.rolloffFactor)}}setAttenuationFunction(e){this._customAttenuationFunction=e}play(e,t,s){let n=ox.AbstractEngine.audioEngine;if(n?.unlock(),!(this._soundV2 instanceof ol)&&this._isReadyToPlay&&this._scene.audioEnabled){5===this._soundV2.state&&(void 0!==e||void 0!==t||void 0!==s)&&this._soundV2.stop();try{oI.duration=s||0,oI.startOffset=void 0!==t&&t||this._optionsV2.startOffset,oI.waitTime=e||0,oI.loop=void 0,oI.loopStart=void 0,oI.loopEnd=void 0,oI.volume=void 0,n?.unlocked?this._soundV2.play(oI):setTimeout(()=>{this._soundV2.play(oI)},500)}catch(e){k.Logger.Error("Error while trying to play audio: "+this.name+", "+e.message)}}}stop(e){!this._soundV2||this._soundV2 instanceof ol||(oN.waitTime=e||0,this._soundV2.stop(oN))}pause(){!this._soundV2||this._soundV2 instanceof ol||this._soundV2.pause()}setVolume(e,t){this.isReady()?(oO.duration=t||0,this._soundV2.setVolume(e,oO),this._volume=e):this._onReady.addOnce(()=>{this.setVolume(e,t)})}setPlaybackRate(e){this._soundV2 instanceof om&&(this._soundV2.playbackRate=e)}getPlaybackRate(){return this._soundV2 instanceof om?this._soundV2.playbackRate:1}getVolume(){return this._volume}attachToMesh(e){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null),this._connectedTransformNode=e,!this.spatialSound&&(this.spatialSound=!0,this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._optionsV2.startOffset,this._optionsV2.duration))),this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),this._registerFunc=e=>this._onRegisterAfterWorldMatrixUpdate(e),this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc)}detachFromMesh(){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null,this._connectedTransformNode=null)}_onRegisterAfterWorldMatrixUpdate(e){if(e.getBoundingInfo){let t=e.getBoundingInfo();this.setPosition(t.boundingSphere.centerWorld)}else this.setPosition(e.absolutePosition);this._isDirectional&&this.isPlaying&&this._updateDirection()}clone(){if(!(this._soundV2 instanceof om))return null;let e={autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,useCustomAttenuation:this.useCustomAttenuation,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel},t=new oP(this.name+"_cloned",this._soundV2.buffer,this._scene,null,e);return t._optionsV2=this._optionsV2,this.useCustomAttenuation&&t.setAttenuationFunction(this._customAttenuationFunction),t}getAudioBuffer(){return this._soundV2 instanceof om?this._soundV2.buffer._audioBuffer:null}getSoundSource(){return null}getSoundGain(){return this._soundV2._outNode}serialize(){let e={name:this.name,url:this._url,autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel,playbackRate:this.getPlaybackRate(),panningModel:this._soundV2.spatial.panningModel,soundTrackId:this.soundTrackId,metadata:this.metadata};return this.spatialSound&&(this._connectedTransformNode&&(e.connectedMeshId=this._connectedTransformNode.id),e.position=this._soundV2.spatial.position.asArray(),e.refDistance=this.refDistance,e.distanceModel=this.distanceModel,e.isDirectional=this._isDirectional,e.localDirectionToMesh=this._localDirection.asArray(),e.coneInnerAngle=this.directionalConeInnerAngle,e.coneOuterAngle=this.directionalConeOuterAngle,e.coneOuterGain=this._soundV2.spatial.coneOuterVolume),e}static Parse(e,t,s,n){let i,o,a=e.name;i=e.url?s+e.url:s+a;let r={autoplay:e.autoplay,loop:e.loop,volume:e.volume,spatialSound:e.spatialSound,maxDistance:e.maxDistance,rolloffFactor:e.rolloffFactor,refDistance:e.refDistance,distanceModel:e.distanceModel,playbackRate:e.playbackRate};if(n?(o=new oP(a,new ArrayBuffer(0),t,null,r),(0,tC._RetryWithInterval)(()=>n._isReadyToPlay,()=>{let e=n.getAudioBuffer();e&&o.setAudioBuffer(e),o._isReadyToPlay=!0,o.autoplay&&o.play(0,n._optionsV2.startOffset,n._optionsV2.duration)},void 0,300)):(o=new oP(a,i,t,()=>{t.removePendingData(o)},r),t.addPendingData(o)),e.position){let t=el.Vector3.FromArray(e.position);o.setPosition(t)}if(e.isDirectional&&(o.setDirectionalCone(e.coneInnerAngle||360,e.coneOuterAngle||360,e.coneOuterGain||0),e.localDirectionToMesh)){let t=el.Vector3.FromArray(e.localDirectionToMesh);o.setLocalDirectionToMesh(t)}if(e.connectedMeshId){let s=t.getMeshById(e.connectedMeshId);s&&o.attachToMesh(s)}return e.metadata&&(o.metadata=e.metadata),o}}oP._SceneComponentInitialization=e=>{throw(0,ow._WarnImport)("AudioSceneComponent")},oS(oP);class oL{constructor(e,t,s){this.frame=e,this.action=t,this.onlyOnce=s,this.isDone=!1}_clone(){return new oL(this.frame,this.action,this.onlyOnce)}}class oG{constructor(e,t,s){if(this.loop=!1,this._coneInnerAngle=360,this._coneOuterAngle=360,this._volume=1,this.isPlaying=!1,this.isPaused=!1,this._sounds=[],this._weights=[],t.length!==s.length)throw Error("Sounds length does not equal weights length");this.loop=e,this._weights=s;let n=0;for(const e of s)n+=e;const i=n>0?1/n:0;for(let e=0;e<this._weights.length;e++)this._weights[e]*=i;for(const e of(this._sounds=t,this._sounds))e.onEndedObservable.add(()=>{this._onended()})}get directionalConeInnerAngle(){return this._coneInnerAngle}set directionalConeInnerAngle(e){if(e!==this._coneInnerAngle){if(this._coneOuterAngle<e)return void k.Logger.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");for(let t of(this._coneInnerAngle=e,this._sounds))t.directionalConeInnerAngle=e}}get directionalConeOuterAngle(){return this._coneOuterAngle}set directionalConeOuterAngle(e){if(e!==this._coneOuterAngle){if(e<this._coneInnerAngle)return void k.Logger.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");for(let t of(this._coneOuterAngle=e,this._sounds))t.directionalConeOuterAngle=e}}get volume(){return this._volume}set volume(e){if(e!==this._volume)for(let t of this._sounds)t.setVolume(e)}_onended(){void 0!==this._currentIndex&&(this._sounds[this._currentIndex].autoplay=!1),this.loop&&this.isPlaying?this.play():this.isPlaying=!1}pause(){this.isPlaying&&(this.isPaused=!0,void 0!==this._currentIndex&&this._sounds[this._currentIndex].pause())}stop(){this.isPlaying=!1,void 0!==this._currentIndex&&this._sounds[this._currentIndex].stop()}play(e){if(!this.isPaused){this.stop();let e=Math.random(),t=0;for(let s=0;s<this._weights.length;s++)if(e<=(t+=this._weights[s])){this._currentIndex=s;break}}let t=this._sounds[this._currentIndex??0];t.isReady()?t.play(0,this.isPaused?void 0:e):t.autoplay=!0,this.isPlaying=!0,this.isPaused=!1}}let oD="MSFT_audio_emitter";class oV{constructor(e){this.name=oD,this._loader=e,this.enabled=this._loader.isExtensionUsed(oD)}dispose(){this._loader=null,this._clips=null,this._emitters=null}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._clips=t.clips,this._emitters=t.emitters,ty.Assign(this._clips),ty.Assign(this._emitters)}}loadSceneAsync(e,t){return tT.LoadExtensionAsync(e,t,this.name,async(s,n)=>{let i=[];for(let o of(i.push(this._loader.loadSceneAsync(e,t)),n.emitters)){let e=ty.Get(`${s}/emitters`,this._emitters,o);if(void 0!=e.refDistance||void 0!=e.maxDistance||void 0!=e.rolloffFactor||void 0!=e.distanceModel||void 0!=e.innerAngle||void 0!=e.outerAngle)throw Error(`${s}: Direction or Distance properties are not allowed on emitters attached to a scene`);i.push(this._loadEmitterAsync(`${s}/emitters/${e.index}`,e))}await Promise.all(i)})}loadNodeAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(e,n)=>{let i=[],o=await this._loader.loadNodeAsync(e,t,t=>{for(let s of n.emitters){let n=ty.Get(`${e}/emitters`,this._emitters,s);i.push(this._loadEmitterAsync(`${e}/emitters/${n.index}`,n).then(()=>{for(let e of n._babylonSounds)e.attachToMesh(t),(void 0!=n.innerAngle||void 0!=n.outerAngle)&&(e.setLocalDirectionToMesh(el.Vector3.Forward()),e.setDirectionalCone(2*S.Tools.ToDegrees(void 0==n.innerAngle?Math.PI:n.innerAngle),2*S.Tools.ToDegrees(void 0==n.outerAngle?Math.PI:n.outerAngle),0))}))}s(t)});return await Promise.all(i),o})}loadAnimationAsync(e,t){return tT.LoadExtensionAsync(e,t,this.name,async(s,n)=>{let i=await this._loader.loadAnimationAsync(e,t),o=[];for(let a of(ty.Assign(n.events),n.events))o.push(this._loadAnimationEventAsync(`${s}/events/${a.index}`,e,t,a,i));return await Promise.all(o),i})}_loadClipAsync(e,t){let s;if(t._objectURL)return t._objectURL;if(t.uri)s=this._loader.loadUriAsync(e,t,t.uri);else{let n=ty.Get(`${e}/bufferView`,this._loader.gltf.bufferViews,t.bufferView);s=this._loader.loadBufferViewAsync(`/bufferViews/${n.index}`,n)}return t._objectURL=s.then(e=>{let s=(0,eK.GetBlobBufferSource)(e);return URL.createObjectURL(new Blob([s],{type:t.mimeType}))}),t._objectURL}_loadEmitterAsync(e,t){if(t._babylonSounds=t._babylonSounds||[],!t._babylonData){let e=[],s=t.name||`emitter${t.index}`,n={loop:!1,autoplay:!1,volume:void 0==t.volume?1:t.volume};for(let i=0;i<t.clips.length;i++){let o=`/extensions/${this.name}/clips`,a=ty.Get(o,this._clips,t.clips[i].clip);e.push(this._loadClipAsync(`${o}/${t.clips[i].clip}`,a).then(e=>{let o=t._babylonSounds[i]=new oP(s,e,this._loader.babylonScene,null,n);o.refDistance=t.refDistance||1,o.maxDistance=t.maxDistance||256,o.rolloffFactor=t.rolloffFactor||1,o.distanceModel=t.distanceModel||"exponential"}))}let i=Promise.all(e).then(()=>{let e=t.clips.map(e=>e.weight||1),s=new oG(t.loop||!1,t._babylonSounds,e);t.innerAngle&&(s.directionalConeInnerAngle=2*S.Tools.ToDegrees(t.innerAngle)),t.outerAngle&&(s.directionalConeOuterAngle=2*S.Tools.ToDegrees(t.outerAngle)),t.volume&&(s.volume=t.volume),t._babylonData.sound=s});t._babylonData={loaded:i}}return t._babylonData.loaded}_getEventAction(e,t,s,n,i){switch(s){case"play":return e=>{t.play((i||0)+(e-n))};case"stop":return()=>{t.stop()};case"pause":return()=>{t.pause()};default:throw Error(`${e}: Unsupported action ${s}`)}}_loadAnimationEventAsync(e,t,s,n,i){if(0==i.targetedAnimations.length)return Promise.resolve();let o=i.targetedAnimations[0],a=n.emitter,r=ty.Get(`/extensions/${this.name}/emitters`,this._emitters,a);return this._loadEmitterAsync(e,r).then(()=>{let t=r._babylonData.sound;if(t){let s=new oL(n.time,this._getEventAction(e,t,n.action,n.time,n.startOffset));o.animation.addEvent(s),i.onAnimationGroupEndObservable.add(()=>{t.stop()}),i.onAnimationGroupPauseObservable.add(()=>{t.pause()})}})}}let oK=!1;function oH(){oK||(oK=!0,t_(oD),td(oD,!0,e=>new oV(e)))}e.s(["MSFT_audio_emitter",0,oV,"RegisterMSFT_audio_emitter",0,oH],70263),oH(),e.s([],3351),e.s([],73892);let oU="MSFT_lod";class o${constructor(e){this.name=oU,this.order=100,this.maxLODsToLoad=10,this.onNodeLODsLoadedObservable=new R.Observable,this.onMaterialLODsLoadedObservable=new R.Observable,this._bufferLODs=[],this._nodeIndexLOD=null,this._nodeSignalLODs=[],this._nodePromiseLODs=[],this._nodeBufferLODs=[],this._materialIndexLOD=null,this._materialSignalLODs=[],this._materialPromiseLODs=[],this._materialBufferLODs=[],this._loader=e,this.maxLODsToLoad=this._loader.parent.extensionOptions[oU]?.maxLODsToLoad??this.maxLODsToLoad,this.enabled=this._loader.isExtensionUsed(oU)}dispose(){this._loader=null,this._nodeIndexLOD=null,this._nodeSignalLODs.length=0,this._nodePromiseLODs.length=0,this._nodeBufferLODs.length=0,this._materialIndexLOD=null,this._materialSignalLODs.length=0,this._materialPromiseLODs.length=0,this._materialBufferLODs.length=0,this.onMaterialLODsLoadedObservable.clear(),this.onNodeLODsLoadedObservable.clear()}onReady(){for(let e=0;e<this._nodePromiseLODs.length;e++){let t=Promise.all(this._nodePromiseLODs[e]).then(()=>{0!==e&&(this._loader.endPerformanceCounter(`Node LOD ${e}`),this._loader.log(`Loaded node LOD ${e}`)),this.onNodeLODsLoadedObservable.notifyObservers(e),e!==this._nodePromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Node LOD ${e+1}`),this._loadBufferLOD(this._nodeBufferLODs,e+1),this._nodeSignalLODs[e]&&this._nodeSignalLODs[e].resolve())});this._loader._completePromises.push(t)}for(let e=0;e<this._materialPromiseLODs.length;e++){let t=Promise.all(this._materialPromiseLODs[e]).then(()=>{0!==e&&(this._loader.endPerformanceCounter(`Material LOD ${e}`),this._loader.log(`Loaded material LOD ${e}`)),this.onMaterialLODsLoadedObservable.notifyObservers(e),e!==this._materialPromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Material LOD ${e+1}`),this._loadBufferLOD(this._materialBufferLODs,e+1),this._materialSignalLODs[e]&&this._materialSignalLODs[e].resolve())});this._loader._completePromises.push(t)}}loadSceneAsync(e,t){let s=this._loader.loadSceneAsync(e,t);return this._loadBufferLOD(this._bufferLODs,0),s}loadNodeAsync(e,t,s){return tT.LoadExtensionAsync(e,t,this.name,async(e,n)=>{let i,o=this._getLODs(e,t,this._loader.gltf.nodes,n.ids);this._loader.logOpen(`${e}`);for(let e=0;e<o.length;e++){let t=o[e];0!==e&&(this._nodeIndexLOD=e,this._nodeSignalLODs[e]=this._nodeSignalLODs[e]||new tn);let n=e=>{s(e),e.setEnabled(!1)},a=this._loader.loadNodeAsync(`/nodes/${t.index}`,t,n).then(t=>{if(0!==e){let t=o[e-1];t._babylonTransformNode&&(this._disposeTransformNode(t._babylonTransformNode),delete t._babylonTransformNode)}return t.setEnabled(!0),t});this._nodePromiseLODs[e]=this._nodePromiseLODs[e]||[],0===e?i=a:(this._nodeIndexLOD=null,this._nodePromiseLODs[e].push(a))}return this._loader.logClose(),await i})}_loadMaterialAsync(e,t,s,n,i){return this._nodeIndexLOD?null:tT.LoadExtensionAsync(e,t,this.name,async(e,o)=>{let a,r=this._getLODs(e,t,this._loader.gltf.materials,o.ids);this._loader.logOpen(`${e}`);for(let e=0;e<r.length;e++){let t=r[e];0!==e&&(this._materialIndexLOD=e);let o=this._loader._loadMaterialAsync(`/materials/${t.index}`,t,s,n,t=>{0===e&&i(t)}).then(t=>{if(0!==e){i(t);let s=r[e-1]._data;s[n]&&(this._disposeMaterials([s[n].babylonMaterial]),delete s[n])}return t});this._materialPromiseLODs[e]=this._materialPromiseLODs[e]||[],0===e?a=o:(this._materialIndexLOD=null,this._materialPromiseLODs[e].push(o))}return this._loader.logClose(),await a})}_loadUriAsync(e,t,s){if(null!==this._nodeIndexLOD){this._loader.log("deferred");let n=this._nodeIndexLOD-1;return this._nodeSignalLODs[n]=this._nodeSignalLODs[n]||new tn,this._nodeSignalLODs[this._nodeIndexLOD-1].promise.then(async()=>await this._loader.loadUriAsync(e,t,s))}if(null!==this._materialIndexLOD){this._loader.log("deferred");let n=this._materialIndexLOD-1;return this._materialSignalLODs[n]=this._materialSignalLODs[n]||new tn,this._materialSignalLODs[n].promise.then(async()=>await this._loader.loadUriAsync(e,t,s))}return null}loadBufferAsync(e,t,s,n){if(this._loader.parent.useRangeRequests&&!t.uri){if(!this._loader.bin)throw Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);let t=async(e,t)=>{let i=s+n-1,o=e[t];return o?(o.start=Math.min(o.start,s),o.end=Math.max(o.end,i)):(o={start:s,end:i,loaded:new tn},e[t]=o),await o.loaded.promise.then(e=>new Uint8Array(e.buffer,e.byteOffset+s-o.start,n))};return(this._loader.log("deferred"),null!==this._nodeIndexLOD)?t(this._nodeBufferLODs,this._nodeIndexLOD):null!==this._materialIndexLOD?t(this._materialBufferLODs,this._materialIndexLOD):t(this._bufferLODs,0)}return null}_loadBufferLOD(e,t){let s=e[t];s&&(this._loader.log(`Loading buffer range [${s.start}-${s.end}]`),this._loader.bin.readAsync(s.start,s.end-s.start+1).then(e=>{s.loaded.resolve(e)},e=>{s.loaded.reject(e)}))}_getLODs(e,t,s,n){if(this.maxLODsToLoad<=0)throw Error("maxLODsToLoad must be greater than zero");let i=[];for(let t=n.length-1;t>=0;t--)if(i.push(ty.Get(`${e}/ids/${n[t]}`,s,n[t])),i.length===this.maxLODsToLoad)return i;return i.push(t),i}_disposeTransformNode(e){let t=[],s=e.material;for(let n of(s&&t.push(s),e.getChildMeshes()))n.material&&t.push(n.material);e.dispose();let n=t.filter(e=>this._loader.babylonScene.meshes.every(t=>t.material!=e));this._disposeMaterials(n)}_disposeMaterials(e){let t={};for(let s of e){for(let e of s.getActiveTextures())t[e.uniqueId]=e;s.dispose()}for(let e in t)for(let s of this._loader.babylonScene.materials)s.hasTexture(t[e])&&delete t[e];for(let e in t)t[e].dispose()}}let oz=!1;function oq(){oz||(oz=!0,t_(oU),td(oU,!0,e=>new o$(e)))}e.s(["MSFT_lod",0,o$,"RegisterMSFT_lod",0,oq],5625),oq(),e.s([],49233),e.s([],22023);let oW="MSFT_minecraftMesh";class oj{constructor(e){this.name=oW,this._loader=e,this.enabled=this._loader.isExtensionUsed(oW)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtraAsync(e,t,this.name,async(n,i)=>{if(i){if(!this._loader._pbrMaterialImpls.get("pbr"))throw Error(`${n}: Material type not supported`);let i=this._loader.loadMaterialPropertiesAsync(e,t,s);return s.needAlphaBlending()&&(s.forceDepthWrite=!0,s.separateCullingPass=!0),s.backFaceCulling=s.forceDepthWrite,s.twoSidedLighting=!0,await i}})}}let oX=!1;function oY(){oX||(oX=!0,t_(oW),td(oW,!0,e=>new oj(e)))}e.s(["MSFT_minecraftMesh",0,oj,"RegisterMSFT_minecraftMesh",0,oY],30561),oY(),e.s([],24137),e.s([],52233);let oQ="MSFT_sRGBFactors";class oZ{constructor(e){this.name=oQ,this._loader=e,this.enabled=this._loader.isExtensionUsed(oQ)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return tT.LoadExtraAsync(e,t,this.name,async(n,i)=>{if(i){let n=this._loader._getOrCreateMaterialAdapter(s),i=this._loader.loadMaterialPropertiesAsync(e,t,s),o=s.getScene().getEngine().useExactSrgbConversions;return n.baseColorTexture||n.baseColor.toLinearSpaceToRef(n.baseColor,o),n.specularColorTexture||n.specularColor.toLinearSpaceToRef(n.specularColor,o),await i}})}}let oJ=!1;function o0(){oJ||(oJ=!0,t_(oQ),td(oQ,!0,e=>new oZ(e)))}e.s(["MSFT_sRGBFactors",0,oZ,"RegisterMSFT_sRGBFactors",0,o0],98342),o0(),e.s([],80666),e.s([],56614);var o1=e.i(83140);let o2={},o3={};var o7=e.i(71502),o4=e.i(79957),o9=e.i(89694);async function o6(t,s){let n=await Promise.all(t.allBlocks.map(async t=>{let s=function(t){switch(t){case"FlowGraphPlayAnimationBlock":return async()=>(await e.A(41659)).FlowGraphPlayAnimationBlock;case"FlowGraphStopAnimationBlock":return async()=>(await e.A(37726)).FlowGraphStopAnimationBlock;case"FlowGraphPauseAnimationBlock":return async()=>(await e.A(59617)).FlowGraphPauseAnimationBlock;case"FlowGraphInterpolationBlock":return async()=>(await e.A(42531)).FlowGraphInterpolationBlock;case"FlowGraphSceneReadyEventBlock":return async()=>(await e.A(60943)).FlowGraphSceneReadyEventBlock;case"FlowGraphSceneTickEventBlock":return async()=>(await e.A(96617)).FlowGraphSceneTickEventBlock;case"FlowGraphSendCustomEventBlock":return async()=>(await e.A(63121)).FlowGraphSendCustomEventBlock;case"FlowGraphReceiveCustomEventBlock":return async()=>(await e.A(26774)).FlowGraphReceiveCustomEventBlock;case"FlowGraphMeshPickEventBlock":return async()=>(await e.A(35376)).FlowGraphMeshPickEventBlock;case"FlowGraphEBlock":return async()=>(await e.A(92077)).FlowGraphEBlock;case"FlowGraphPIBlock":return async()=>(await e.A(92077)).FlowGraphPiBlock;case"FlowGraphInfBlock":return async()=>(await e.A(92077)).FlowGraphInfBlock;case"FlowGraphNaNBlock":return async()=>(await e.A(92077)).FlowGraphNaNBlock;case"FlowGraphRandomBlock":return async()=>(await e.A(92077)).FlowGraphRandomBlock;case"FlowGraphAddBlock":return async()=>(await e.A(92077)).FlowGraphAddBlock;case"FlowGraphSubtractBlock":return async()=>(await e.A(92077)).FlowGraphSubtractBlock;case"FlowGraphMultiplyBlock":return async()=>(await e.A(92077)).FlowGraphMultiplyBlock;case"FlowGraphDivideBlock":return async()=>(await e.A(92077)).FlowGraphDivideBlock;case"FlowGraphAbsBlock":return async()=>(await e.A(92077)).FlowGraphAbsBlock;case"FlowGraphSignBlock":return async()=>(await e.A(92077)).FlowGraphSignBlock;case"FlowGraphTruncBlock":return async()=>(await e.A(92077)).FlowGraphTruncBlock;case"FlowGraphFloorBlock":return async()=>(await e.A(92077)).FlowGraphFloorBlock;case"FlowGraphCeilBlock":return async()=>(await e.A(92077)).FlowGraphCeilBlock;case"FlowGraphRoundBlock":return async()=>(await e.A(92077)).FlowGraphRoundBlock;case"FlowGraphFractBlock":return async()=>(await e.A(92077)).FlowGraphFractionBlock;case"FlowGraphNegationBlock":return async()=>(await e.A(92077)).FlowGraphNegationBlock;case"FlowGraphModuloBlock":return async()=>(await e.A(92077)).FlowGraphModuloBlock;case"FlowGraphMinBlock":return async()=>(await e.A(92077)).FlowGraphMinBlock;case"FlowGraphMaxBlock":return async()=>(await e.A(92077)).FlowGraphMaxBlock;case"FlowGraphClampBlock":return async()=>(await e.A(92077)).FlowGraphClampBlock;case"FlowGraphSaturateBlock":return async()=>(await e.A(92077)).FlowGraphSaturateBlock;case"FlowGraphMathInterpolationBlock":return async()=>(await e.A(92077)).FlowGraphMathInterpolationBlock;case"FlowGraphEqualityBlock":return async()=>(await e.A(92077)).FlowGraphEqualityBlock;case"FlowGraphLessThanBlock":return async()=>(await e.A(92077)).FlowGraphLessThanBlock;case"FlowGraphLessThanOrEqualBlock":return async()=>(await e.A(92077)).FlowGraphLessThanOrEqualBlock;case"FlowGraphGreaterThanBlock":return async()=>(await e.A(92077)).FlowGraphGreaterThanBlock;case"FlowGraphGreaterThanOrEqualBlock":return async()=>(await e.A(92077)).FlowGraphGreaterThanOrEqualBlock;case"FlowGraphIsNaNBlock":return async()=>(await e.A(92077)).FlowGraphIsNanBlock;case"FlowGraphIsInfBlock":return async()=>(await e.A(92077)).FlowGraphIsInfinityBlock;case"FlowGraphDegToRadBlock":return async()=>(await e.A(92077)).FlowGraphDegToRadBlock;case"FlowGraphRadToDegBlock":return async()=>(await e.A(92077)).FlowGraphRadToDegBlock;case"FlowGraphSinBlock":return async()=>(await e.A(92077)).FlowGraphSinBlock;case"FlowGraphCosBlock":return async()=>(await e.A(92077)).FlowGraphCosBlock;case"FlowGraphTanBlock":return async()=>(await e.A(92077)).FlowGraphTanBlock;case"FlowGraphASinBlock":return async()=>(await e.A(92077)).FlowGraphAsinBlock;case"FlowGraphACosBlock":return async()=>(await e.A(92077)).FlowGraphAcosBlock;case"FlowGraphATanBlock":return async()=>(await e.A(92077)).FlowGraphAtanBlock;case"FlowGraphATan2Block":return async()=>(await e.A(92077)).FlowGraphAtan2Block;case"FlowGraphSinhBlock":return async()=>(await e.A(92077)).FlowGraphSinhBlock;case"FlowGraphCoshBlock":return async()=>(await e.A(92077)).FlowGraphCoshBlock;case"FlowGraphTanhBlock":return async()=>(await e.A(92077)).FlowGraphTanhBlock;case"FlowGraphASinhBlock":return async()=>(await e.A(92077)).FlowGraphAsinhBlock;case"FlowGraphACoshBlock":return async()=>(await e.A(92077)).FlowGraphAcoshBlock;case"FlowGraphATanhBlock":return async()=>(await e.A(92077)).FlowGraphAtanhBlock;case"FlowGraphExponentialBlock":return async()=>(await e.A(92077)).FlowGraphExpBlock;case"FlowGraphLogBlock":return async()=>(await e.A(92077)).FlowGraphLogBlock;case"FlowGraphLog2Block":return async()=>(await e.A(92077)).FlowGraphLog2Block;case"FlowGraphLog10Block":return async()=>(await e.A(92077)).FlowGraphLog10Block;case"FlowGraphSquareRootBlock":return async()=>(await e.A(92077)).FlowGraphSquareRootBlock;case"FlowGraphPowerBlock":return async()=>(await e.A(92077)).FlowGraphPowerBlock;case"FlowGraphCubeRootBlock":return async()=>(await e.A(92077)).FlowGraphCubeRootBlock;case"FlowGraphBitwiseAndBlock":return async()=>(await e.A(92077)).FlowGraphBitwiseAndBlock;case"FlowGraphBitwiseOrBlock":return async()=>(await e.A(92077)).FlowGraphBitwiseOrBlock;case"FlowGraphBitwiseNotBlock":return async()=>(await e.A(92077)).FlowGraphBitwiseNotBlock;case"FlowGraphBitwiseXorBlock":return async()=>(await e.A(92077)).FlowGraphBitwiseXorBlock;case"FlowGraphBitwiseLeftShiftBlock":return async()=>(await e.A(92077)).FlowGraphBitwiseLeftShiftBlock;case"FlowGraphBitwiseRightShiftBlock":return async()=>(await e.A(92077)).FlowGraphBitwiseRightShiftBlock;case"FlowGraphLengthBlock":return async()=>(await e.A(90795)).FlowGraphLengthBlock;case"FlowGraphNormalizeBlock":return async()=>(await e.A(90795)).FlowGraphNormalizeBlock;case"FlowGraphDotBlock":return async()=>(await e.A(90795)).FlowGraphDotBlock;case"FlowGraphCrossBlock":return async()=>(await e.A(90795)).FlowGraphCrossBlock;case"FlowGraphRotate2DBlock":return async()=>(await e.A(90795)).FlowGraphRotate2DBlock;case"FlowGraphRotate3DBlock":return async()=>(await e.A(90795)).FlowGraphRotate3DBlock;case"FlowGraphTransposeBlock":return async()=>(await e.A(13165)).FlowGraphTransposeBlock;case"FlowGraphDeterminantBlock":return async()=>(await e.A(13165)).FlowGraphDeterminantBlock;case"FlowGraphInvertMatrixBlock":return async()=>(await e.A(13165)).FlowGraphInvertMatrixBlock;case"FlowGraphMatrixMultiplicationBlock":return async()=>(await e.A(13165)).FlowGraphMatrixMultiplicationBlock;case"FlowGraphBranchBlock":return async()=>(await e.A(19738)).FlowGraphBranchBlock;case"FlowGraphSetDelayBlock":return async()=>(await e.A(6537)).FlowGraphSetDelayBlock;case"FlowGraphCancelDelayBlock":return async()=>(await e.A(10246)).FlowGraphCancelDelayBlock;case"FlowGraphCallCounterBlock":return async()=>(await e.A(35564)).FlowGraphCallCounterBlock;case"FlowGraphDebounceBlock":return async()=>(await e.A(91056)).FlowGraphDebounceBlock;case"FlowGraphThrottleBlock":return async()=>(await e.A(72755)).FlowGraphThrottleBlock;case"FlowGraphDoNBlock":return async()=>(await e.A(11892)).FlowGraphDoNBlock;case"FlowGraphFlipFlopBlock":return async()=>(await e.A(55537)).FlowGraphFlipFlopBlock;case"FlowGraphForLoopBlock":return async()=>(await e.A(76078)).FlowGraphForLoopBlock;case"FlowGraphMultiGateBlock":return async()=>(await e.A(73502)).FlowGraphMultiGateBlock;case"FlowGraphSequenceBlock":return async()=>(await e.A(26420)).FlowGraphSequenceBlock;case"FlowGraphSwitchBlock":return async()=>(await e.A(50844)).FlowGraphSwitchBlock;case"FlowGraphWaitAllBlock":return async()=>(await e.A(80132)).FlowGraphWaitAllBlock;case"FlowGraphWhileLoopBlock":return async()=>(await e.A(91898)).FlowGraphWhileLoopBlock;case"FlowGraphConsoleLogBlock":return async()=>(await e.A(33293)).FlowGraphConsoleLogBlock;case"FlowGraphConditionalBlock":return async()=>(await e.A(46014)).FlowGraphConditionalDataBlock;case"FlowGraphConstantBlock":return async()=>(await e.A(37872)).FlowGraphConstantBlock;case"FlowGraphTransformCoordinatesSystemBlock":return async()=>(await e.A(49235)).FlowGraphTransformCoordinatesSystemBlock;case"FlowGraphGetAssetBlock":return async()=>(await e.A(62630)).FlowGraphGetAssetBlock;case"FlowGraphGetPropertyBlock":return async()=>(await e.A(37134)).FlowGraphGetPropertyBlock;case"FlowGraphSetPropertyBlock":return async()=>(await e.A(6244)).FlowGraphSetPropertyBlock;case"FlowGraphGetVariableBlock":return async()=>(await e.A(18406)).FlowGraphGetVariableBlock;case"FlowGraphSetVariableBlock":return async()=>(await e.A(23690)).FlowGraphSetVariableBlock;case"FlowGraphJsonPointerParserBlock":return async()=>(await e.A(33478)).FlowGraphJsonPointerParserBlock;case"FlowGraphLeadingZerosBlock":return async()=>(await e.A(92077)).FlowGraphLeadingZerosBlock;case"FlowGraphTrailingZerosBlock":return async()=>(await e.A(92077)).FlowGraphTrailingZerosBlock;case"FlowGraphOneBitsCounterBlock":return async()=>(await e.A(92077)).FlowGraphOneBitsCounterBlock;case"FlowGraphCombineVector2Block":return async()=>(await e.A(92310)).FlowGraphCombineVector2Block;case"FlowGraphCombineVector3Block":return async()=>(await e.A(92310)).FlowGraphCombineVector3Block;case"FlowGraphCombineVector4Block":return async()=>(await e.A(92310)).FlowGraphCombineVector4Block;case"FlowGraphCombineMatrixBlock":return async()=>(await e.A(92310)).FlowGraphCombineMatrixBlock;case"FlowGraphCombineMatrix2DBlock":return async()=>(await e.A(92310)).FlowGraphCombineMatrix2DBlock;case"FlowGraphCombineMatrix3DBlock":return async()=>(await e.A(92310)).FlowGraphCombineMatrix3DBlock;case"FlowGraphExtractVector2Block":return async()=>(await e.A(92310)).FlowGraphExtractVector2Block;case"FlowGraphExtractVector3Block":return async()=>(await e.A(92310)).FlowGraphExtractVector3Block;case"FlowGraphExtractVector4Block":return async()=>(await e.A(92310)).FlowGraphExtractVector4Block;case"FlowGraphExtractMatrixBlock":return async()=>(await e.A(92310)).FlowGraphExtractMatrixBlock;case"FlowGraphExtractMatrix2DBlock":return async()=>(await e.A(92310)).FlowGraphExtractMatrix2DBlock;case"FlowGraphExtractMatrix3DBlock":return async()=>(await e.A(92310)).FlowGraphExtractMatrix3DBlock;case"FlowGraphTransformVectorBlock":return async()=>(await e.A(90795)).FlowGraphTransformBlock;case"FlowGraphTransformCoordinatesBlock":return async()=>(await e.A(90795)).FlowGraphTransformCoordinatesBlock;case"FlowGraphConjugateBlock":return async()=>(await e.A(90795)).FlowGraphConjugateBlock;case"FlowGraphAngleBetweenBlock":return async()=>(await e.A(90795)).FlowGraphAngleBetweenBlock;case"FlowGraphQuaternionFromAxisAngleBlock":return async()=>(await e.A(90795)).FlowGraphQuaternionFromAxisAngleBlock;case"FlowGraphAxisAngleFromQuaternionBlock":return async()=>(await e.A(90795)).FlowGraphAxisAngleFromQuaternionBlock;case"FlowGraphQuaternionFromDirectionsBlock":return async()=>(await e.A(90795)).FlowGraphQuaternionFromDirectionsBlock;case"FlowGraphMatrixDecompose":return async()=>(await e.A(13165)).FlowGraphMatrixDecomposeBlock;case"FlowGraphMatrixCompose":return async()=>(await e.A(13165)).FlowGraphMatrixComposeBlock;case"FlowGraphBooleanToFloat":return async()=>(await e.A(27599)).FlowGraphBooleanToFloat;case"FlowGraphBooleanToInt":return async()=>(await e.A(27599)).FlowGraphBooleanToInt;case"FlowGraphFloatToBoolean":return async()=>(await e.A(27599)).FlowGraphFloatToBoolean;case"FlowGraphIntToBoolean":return async()=>(await e.A(27599)).FlowGraphIntToBoolean;case"FlowGraphIntToFloat":return async()=>(await e.A(27599)).FlowGraphIntToFloat;case"FlowGraphFloatToInt":return async()=>(await e.A(27599)).FlowGraphFloatToInt;case"FlowGraphEasingBlock":return async()=>(await e.A(61244)).FlowGraphEasingBlock;case"FlowGraphBezierCurveEasing":return async()=>(await e.A(11204)).FlowGraphBezierCurveEasingBlock;case"FlowGraphPointerOverEventBlock":return async()=>(await e.A(30942)).FlowGraphPointerOverEventBlock;case"FlowGraphPointerOutEventBlock":return async()=>(await e.A(62393)).FlowGraphPointerOutEventBlock;case"FlowGraphPointerDownEventBlock":return async()=>(await e.A(16221)).FlowGraphPointerDownEventBlock;case"FlowGraphPointerUpEventBlock":return async()=>(await e.A(15264)).FlowGraphPointerUpEventBlock;case"FlowGraphPointerMoveEventBlock":return async()=>(await e.A(47375)).FlowGraphPointerMoveEventBlock;case"FlowGraphKeyDownEventBlock":return async()=>(await e.A(4078)).FlowGraphKeyDownEventBlock;case"FlowGraphKeyUpEventBlock":return async()=>(await e.A(58549)).FlowGraphKeyUpEventBlock;case"FlowGraphIsKeyPressedBlock":return async()=>(await e.A(38768)).FlowGraphIsKeyPressedBlock;case"FlowGraphContextBlock":return async()=>(await e.A(46092)).FlowGraphContextBlock;case"FlowGraphArrayIndexBlock":return async()=>(await e.A(91611)).FlowGraphArrayIndexBlock;case"FlowGraphCodeExecutionBlock":return async()=>(await e.A(23055)).FlowGraphCodeExecutionBlock;case"FlowGraphIndexOfBlock":return async()=>(await e.A(45807)).FlowGraphIndexOfBlock;case"FlowGraphFunctionReference":return async()=>(await e.A(60380)).FlowGraphFunctionReferenceBlock;case"FlowGraphDataSwitchBlock":return async()=>(await e.A(11210)).FlowGraphDataSwitchBlock;case"FlowGraphDebugBlock":return async()=>(await e.A(27424)).FlowGraphDebugBlock;case"FlowGraphPhysicsCollisionEventBlock":return async()=>(await e.A(29387)).FlowGraphPhysicsCollisionEventBlock;case"FlowGraphApplyForceBlock":return async()=>(await e.A(68098)).FlowGraphApplyForceBlock;case"FlowGraphApplyImpulseBlock":return async()=>(await e.A(16859)).FlowGraphApplyImpulseBlock;case"FlowGraphSetLinearVelocityBlock":return async()=>(await e.A(2206)).FlowGraphSetLinearVelocityBlock;case"FlowGraphSetAngularVelocityBlock":return async()=>(await e.A(14463)).FlowGraphSetAngularVelocityBlock;case"FlowGraphSetPhysicsMotionTypeBlock":return async()=>(await e.A(77745)).FlowGraphSetPhysicsMotionTypeBlock;case"FlowGraphGetLinearVelocityBlock":return async()=>(await e.A(52183)).FlowGraphGetLinearVelocityBlock;case"FlowGraphGetAngularVelocityBlock":return async()=>(await e.A(31855)).FlowGraphGetAngularVelocityBlock;case"FlowGraphGetPhysicsMassPropertiesBlock":return async()=>(await e.A(96186)).FlowGraphGetPhysicsMassPropertiesBlock;case"FlowGraphPlaySoundBlock":return async()=>(await e.A(92144)).FlowGraphPlaySoundBlock;case"FlowGraphStopSoundBlock":return async()=>(await e.A(29207)).FlowGraphStopSoundBlock;case"FlowGraphPauseSoundBlock":return async()=>(await e.A(31866)).FlowGraphPauseSoundBlock;case"FlowGraphSetSoundVolumeBlock":return async()=>(await e.A(64905)).FlowGraphSetSoundVolumeBlock;case"FlowGraphSoundEndedEventBlock":return async()=>(await e.A(18770)).FlowGraphSoundEndedEventBlock;case"FlowGraphGetSoundVolumeBlock":return async()=>(await e.A(90293)).FlowGraphGetSoundVolumeBlock;case"FlowGraphIsSoundPlayingBlock":return async()=>(await e.A(95316)).FlowGraphIsSoundPlayingBlock;default:if(o2[t])return o2[t];if(!t.includes("/")){let e=o3[t];if(e&&o2[e])return o2[e]}throw Error(`Unknown block name ${t}`)}}(t.className);return await s()}));return function(e,t,s){let n=t.coordinator.createGraph();e.name&&(n.name=e.name),e.uniqueId&&(n.uniqueId=e.uniqueId);let i=[],o=t.valueParseFunction??o9.defaultValueParseFunction;for(let a=0;a<e.allBlocks.length;a++){let r=function(e,t,s){let n={},i=t.valueParseFunction??o9.defaultValueParseFunction;if(e.config)for(let s in e.config)n[s]=i(s,e.config,t.assetsContainer||t.scene,t.scene);if((0,o9.needsPathConverter)(e.className)){if(!t.pathConverter)throw Error("Block "+e.className+" requires a path converter to be provided in parse options.");n.pathConverter=t.pathConverter}let o=new s(n);o.uniqueId=e.uniqueId;for(let s=0;s<e.dataInputs.length;s++){let n=o.getDataInput(e.dataInputs[s].name);if(n)n.deserialize(e.dataInputs[s]),void 0!==e.dataInputs[s].defaultValue&&(n._defaultValue=i("defaultValue",e.dataInputs[s],t.assetsContainer||t.scene,t.scene));else throw Error("Could not find data input with name "+e.dataInputs[s].name+" in block "+e.className)}for(let t=0;t<e.dataOutputs.length;t++){let s=o.getDataOutput(e.dataOutputs[t].name);if(s)s.deserialize(e.dataOutputs[t]);else throw Error("Could not find data output with name "+e.dataOutputs[t].name+" in block "+e.className)}return o.metadata=e.metadata,o.deserialize&&o.deserialize(e),o}(e.allBlocks[a],{scene:t.coordinator.config.scene,pathConverter:t.pathConverter,assetsContainer:t.coordinator.config.scene,valueParseFunction:o},s[a]);i.push(r),n.addBlock(r),r instanceof o7.FlowGraphEventBlock&&n.addEventBlock(r)}let a=new Map,r=new Map,l=new Map,h=new Map;for(let e of i){for(let t of e.dataInputs)a.set(t.uniqueId,t);for(let t of e.dataOutputs)r.set(t.uniqueId,t);if(e instanceof o4.FlowGraphExecutionBlock){for(let t of e.signalInputs)l.set(t.uniqueId,t);for(let t of e.signalOutputs)h.set(t.uniqueId,t)}}let u=(e,t)=>{-1===e._connectedPoint.indexOf(t)&&e.connectTo(t)};for(let e of i){for(let t of e.dataInputs)for(let e of t.connectedPointIds){let s=r.get(e);if(!s)throw Error("Could not find data out connection with unique id "+e);u(t,s)}for(let t of e.dataOutputs)for(let e of t.connectedPointIds){let s=a.get(e);if(!s)throw Error("Could not find data in connection with unique id "+e);u(t,s)}if(e instanceof o4.FlowGraphExecutionBlock){for(let t of e.signalOutputs)for(let e of t.connectedPointIds){let s=l.get(e);if(!s)throw Error("Could not find signal in connection with unique id "+e);u(t,s)}for(let t of e.signalInputs)for(let e of t.connectedPointIds){let s=h.get(e);if(!s)throw Error("Could not find signal out connection with unique id "+e);u(s,t)}}}for(let t of e.executionContexts??[])!function(e,t,s){let n=t.graph.createContext();e.enableLogging&&(n.enableLogging=!0),n.treatDataAsRightHanded=s||!1;let i=t.valueParseFunction??o9.defaultValueParseFunction;n.uniqueId=e.uniqueId,n.name=e.name??"";let o=n.getScene();if(e._assetsContext){let t=e._assetsContext;n.assetsContext={meshes:t.meshes?.map(e=>o.getMeshById(e)),lights:t.lights?.map(e=>o.getLightByName(e)),cameras:t.cameras?.map(e=>o.getCameraByName(e)),materials:t.materials?.map(e=>o.getMaterialById(e)),textures:t.textures?.map(e=>o.getTextureByName(e)),animations:t.animations?.map(e=>o.animations.find(t=>t.name===e)),skeletons:t.skeletons?.map(e=>o.getSkeletonByName(e)),particleSystems:t.particleSystems?.map(e=>o.getParticleSystemById(e)),animationGroups:t.animationGroups?.map(e=>o.getAnimationGroupByName(e)),transformNodes:t.transformNodes?.map(e=>o.getTransformNodeById(e)),rootNodes:[],multiMaterials:[],morphTargetManagers:[],geometries:[],actionManagers:[],environmentTexture:null,postProcesses:[],sounds:null,effectLayers:[],layers:[],reflectionProbes:[],lensFlareSystems:[],proceduralTextures:[],getNodes:function(){throw Error("Function not implemented.")}}}for(let t in e._userVariables){let s=i(t,e._userVariables,n.assetsContext,o);n.userVariables[t]=s}if(e._variableTypes)for(let t in e._variableTypes)n.setVariableType(t,e._variableTypes[t]);for(let t in e._connectionValues){let s=i(t,e._connectionValues,n.assetsContext,o);n._setConnectionValueByKey(t,s)}}(t,{graph:n,valueParseFunction:o},e.rightHanded);return n}(t,s,n)}e.i(83221);var o5=e.i(19434);function o8(e){let[t,s]=e.split(":");return ae({op:t,extension:s})}function ae(e,t=!0){let s=e.extension?as[e.extension]?.[e.op]:an[e.op];if(!s&&(k.Logger.Warn(`No mapping found for operation ${e.op} and extension ${e.extension||"KHR_interactivity"}`),t)){let t={},s={flows:{}};if(e.inputValueSockets)for(let s in t.values={},e.inputValueSockets)t.values[s]={name:s};return e.outputValueSockets&&(s.values={},Object.keys(e.outputValueSockets).forEach(e=>{s.values[e]={name:e}})),{blocks:[],inputs:t,outputs:s}}return s}function at(e,t,s){as[t]||(as[t]={}),as[t][e]=s}let as={BABYLON:{"flow/log":{blocks:["FlowGraphConsoleLogBlock"],inputs:{values:{message:{name:"message"}}}}}},an={"event/onStart":{blocks:["FlowGraphSceneReadyEventBlock"],outputs:{flows:{out:{name:"done"}}}},"event/onTick":{blocks:["FlowGraphSceneTickEventBlock"],inputs:{},outputs:{values:{timeSinceLastTick:{name:"deltaTime",gltfType:"number"}},flows:{out:{name:"done"}}}},"event/send":{blocks:["FlowGraphSendCustomEventBlock"],extraProcessor(e,t,s,n,i){if("event/send"!==t.op||!e.configuration||1!==Object.keys(e.configuration).length)throw Error("Receive event should have a single configuration object, the event itself");let o=e.configuration.event,a=o.value?.[0];if("number"!=typeof a)throw Error("Event id should be a number");let r=n.arrays.events[a],l=i[0];return l.config||(l.config={}),l.config.eventId=r.eventId,l.config.eventData=r.eventData,i}},"event/receive":{blocks:["FlowGraphReceiveCustomEventBlock"],outputs:{flows:{out:{name:"done"}}},validation(e,t){if(!e.configuration)return k.Logger.Error("Receive event should have a configuration object"),{valid:!1,error:"Receive event should have a configuration object"};let s=e.configuration.event;if(!s)return k.Logger.Error("Receive event should have a single configuration object, the event itself"),{valid:!1,error:"Receive event should have a single configuration object, the event itself"};let n=s.value?.[0];return"number"!=typeof n?(k.Logger.Error("Event id should be a number"),{valid:!1,error:"Event id should be a number"}):t.events?.[n]?{valid:!0}:(k.Logger.Error(`Event with id ${n} not found`),{valid:!1,error:`Event with id ${n} not found`})},extraProcessor(e,t,s,n,i){if("event/receive"!==t.op||!e.configuration||1!==Object.keys(e.configuration).length)throw Error("Receive event should have a single configuration object, the event itself");let o=e.configuration.event,a=o.value?.[0];if("number"!=typeof a)throw Error("Event id should be a number");let r=n.arrays.events[a],l=i[0];return l.config||(l.config={}),l.config.eventId=r.eventId,l.config.eventData=r.eventData,i}},"math/E":ai("FlowGraphEBlock"),"math/Pi":ai("FlowGraphPIBlock"),"math/Inf":ai("FlowGraphInfBlock"),"math/NaN":ai("FlowGraphNaNBlock"),"math/abs":ai("FlowGraphAbsBlock"),"math/sign":ai("FlowGraphSignBlock"),"math/trunc":ai("FlowGraphTruncBlock"),"math/floor":ai("FlowGraphFloorBlock"),"math/ceil":ai("FlowGraphCeilBlock"),"math/round":{blocks:["FlowGraphRoundBlock"],configuration:{},inputs:{values:{a:{name:"a"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var o;return(o=i[0]).config||(o.config={}),i[0].config.roundHalfAwayFromZero=!0,i}},"math/fract":ai("FlowGraphFractBlock"),"math/neg":ai("FlowGraphNegationBlock"),"math/add":ai("FlowGraphAddBlock",["a","b"],!0),"math/sub":ai("FlowGraphSubtractBlock",["a","b"],!0),"math/mul":{blocks:["FlowGraphMultiplyBlock"],extraProcessor(e,t,s,n,i){var o;(o=i[0]).config||(o.config={}),i[0].config.useMatrixPerComponent=!0,i[0].config.preventIntegerFloatArithmetic=!0;let a=-1;return Object.keys(e.values||{}).find(t=>e.values?.[t].type!==void 0&&(a=e.values[t].type,!0)),-1!==a&&(i[0].config.type=n.arrays.types[a].flowGraphType),i},validation:e=>e.values?ao(e):{valid:!0}},"math/div":ai("FlowGraphDivideBlock",["a","b"],!0),"math/rem":ai("FlowGraphModuloBlock",["a","b"]),"math/min":ai("FlowGraphMinBlock",["a","b"]),"math/max":ai("FlowGraphMaxBlock",["a","b"]),"math/clamp":ai("FlowGraphClampBlock",["a","b","c"]),"math/saturate":ai("FlowGraphSaturateBlock"),"math/mix":ai("FlowGraphMathInterpolationBlock",["a","b","c"]),"math/eq":ai("FlowGraphEqualityBlock",["a","b"]),"math/lt":ai("FlowGraphLessThanBlock",["a","b"]),"math/le":ai("FlowGraphLessThanOrEqualBlock",["a","b"]),"math/gt":ai("FlowGraphGreaterThanBlock",["a","b"]),"math/ge":ai("FlowGraphGreaterThanOrEqualBlock",["a","b"]),"math/isNaN":ai("FlowGraphIsNaNBlock"),"math/isInf":ai("FlowGraphIsInfBlock"),"math/select":{blocks:["FlowGraphConditionalBlock"],inputs:{values:{condition:{name:"condition"},a:{name:"onTrue"},b:{name:"onFalse"}}},outputs:{values:{value:{name:"output"}}}},"math/random":{blocks:["FlowGraphRandomBlock"],outputs:{values:{value:{name:"value"}}}},"math/sin":ai("FlowGraphSinBlock"),"math/cos":ai("FlowGraphCosBlock"),"math/tan":ai("FlowGraphTanBlock"),"math/asin":ai("FlowGraphASinBlock"),"math/acos":ai("FlowGraphACosBlock"),"math/atan":ai("FlowGraphATanBlock"),"math/atan2":ai("FlowGraphATan2Block",["a","b"]),"math/sinh":ai("FlowGraphSinhBlock"),"math/cosh":ai("FlowGraphCoshBlock"),"math/tanh":ai("FlowGraphTanhBlock"),"math/asinh":ai("FlowGraphASinhBlock"),"math/acosh":ai("FlowGraphACoshBlock"),"math/atanh":ai("FlowGraphATanhBlock"),"math/exp":ai("FlowGraphExponentialBlock"),"math/log":ai("FlowGraphLogBlock"),"math/log2":ai("FlowGraphLog2Block"),"math/log10":ai("FlowGraphLog10Block"),"math/sqrt":ai("FlowGraphSquareRootBlock"),"math/cbrt":ai("FlowGraphCubeRootBlock"),"math/pow":ai("FlowGraphPowerBlock",["a","b"]),"math/length":ai("FlowGraphLengthBlock"),"math/normalize":ai("FlowGraphNormalizeBlock"),"math/dot":ai("FlowGraphDotBlock",["a","b"]),"math/cross":ai("FlowGraphCrossBlock",["a","b"]),"math/rotate2D":{blocks:["FlowGraphRotate2DBlock"],inputs:{values:{a:{name:"a"},angle:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/rotate3D":{blocks:["FlowGraphRotate3DBlock"],inputs:{values:{a:{name:"a"},rotation:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/transform":{blocks:["FlowGraphTransformVectorBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/combine2":{blocks:["FlowGraphCombineVector2Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine3":{blocks:["FlowGraphCombineVector3Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine4":{blocks:["FlowGraphCombineVector4Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/extract2":{blocks:["FlowGraphExtractVector2Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"}}}},"math/extract3":{blocks:["FlowGraphExtractVector3Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"}}}},"math/extract4":{blocks:["FlowGraphExtractVector4Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"}}}},"math/transpose":ai("FlowGraphTransposeBlock"),"math/determinant":ai("FlowGraphDeterminantBlock"),"math/inverse":ai("FlowGraphInvertMatrixBlock"),"math/matMul":ai("FlowGraphMatrixMultiplicationBlock",["a","b"]),"math/matCompose":{blocks:["FlowGraphMatrixCompose"],inputs:{values:{translation:{name:"position",gltfType:"float3"},rotation:{name:"rotationQuaternion",gltfType:"float4"},scale:{name:"scaling",gltfType:"float3"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,o){let a=i[0].dataInputs.find(e=>"rotationQuaternion"===e.name);if(!a)throw Error("Rotation quaternion input not found");return o._connectionValues[a.uniqueId]&&(o._connectionValues[a.uniqueId].type="Quaternion"),i}},"math/matDecompose":{blocks:["FlowGraphMatrixDecompose"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{translation:{name:"position"},rotation:{name:"rotationQuaternion"},scale:{name:"scaling"}}}},"math/quatConjugate":ai("FlowGraphConjugateBlock",["a"]),"math/quatMul":{blocks:["FlowGraphMultiplyBlock"],inputs:{values:{a:{name:"a",gltfType:"vector4"},b:{name:"b",gltfType:"vector4"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var o;return(o=i[0]).config||(o.config={}),i[0].config.type="Quaternion",i}},"math/quatAngleBetween":ai("FlowGraphAngleBetweenBlock",["a","b"]),"math/quatFromAxisAngle":{blocks:["FlowGraphQuaternionFromAxisAngleBlock"],inputs:{values:{axis:{name:"a",gltfType:"float3"},angle:{name:"b",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/quatToAxisAngle":ai("FlowGraphAxisAngleFromQuaternionBlock",["a"]),"math/quatFromDirections":ai("FlowGraphQuaternionFromDirectionsBlock",["a","b"]),"math/combine2x2":{blocks:["FlowGraphCombineMatrix2DBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var o;return(o=i[0]).config||(o.config={}),i[0].config.inputIsColumnMajor=!0,i}},"math/extract2x2":{blocks:["FlowGraphExtractMatrix2DBlock"],inputs:{values:{a:{name:"input",gltfType:"float2x2"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"}}}},"math/combine3x3":{blocks:["FlowGraphCombineMatrix3DBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"},e:{name:"input_4",gltfType:"number"},f:{name:"input_5",gltfType:"number"},g:{name:"input_6",gltfType:"number"},h:{name:"input_7",gltfType:"number"},i:{name:"input_8",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var o;return(o=i[0]).config||(o.config={}),i[0].config.inputIsColumnMajor=!0,i}},"math/extract3x3":{blocks:["FlowGraphExtractMatrix3DBlock"],inputs:{values:{a:{name:"input",gltfType:"float3x3"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"},4:{name:"output_4"},5:{name:"output_5"},6:{name:"output_6"},7:{name:"output_7"},8:{name:"output_8"}}}},"math/combine4x4":{blocks:["FlowGraphCombineMatrixBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"},e:{name:"input_4",gltfType:"number"},f:{name:"input_5",gltfType:"number"},g:{name:"input_6",gltfType:"number"},h:{name:"input_7",gltfType:"number"},i:{name:"input_8",gltfType:"number"},j:{name:"input_9",gltfType:"number"},k:{name:"input_10",gltfType:"number"},l:{name:"input_11",gltfType:"number"},m:{name:"input_12",gltfType:"number"},n:{name:"input_13",gltfType:"number"},o:{name:"input_14",gltfType:"number"},p:{name:"input_15",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var o;return(o=i[0]).config||(o.config={}),i[0].config.inputIsColumnMajor=!0,i}},"math/extract4x4":{blocks:["FlowGraphExtractMatrixBlock"],configuration:{},inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"},4:{name:"output_4"},5:{name:"output_5"},6:{name:"output_6"},7:{name:"output_7"},8:{name:"output_8"},9:{name:"output_9"},10:{name:"output_10"},11:{name:"output_11"},12:{name:"output_12"},13:{name:"output_13"},14:{name:"output_14"},15:{name:"output_15"}}}},"math/not":{blocks:["FlowGraphBitwiseNotBlock"],inputs:{values:{a:{name:"a"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,o){var a;(a=i[0]).config||(a.config={});let r=i[0].dataInputs[0];return i[0].config.valueType=o._connectionValues[r.uniqueId]?.type??"FlowGraphInteger",i}},"math/and":{blocks:["FlowGraphBitwiseAndBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,o){var a;(a=i[0]).config||(a.config={});let r=i[0].dataInputs[0],l=i[0].dataInputs[1];return i[0].config.valueType=o._connectionValues[r.uniqueId]?.type??o._connectionValues[l.uniqueId]?.type??"FlowGraphInteger",i}},"math/or":{blocks:["FlowGraphBitwiseOrBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,o){var a;(a=i[0]).config||(a.config={});let r=i[0].dataInputs[0],l=i[0].dataInputs[1];return i[0].config.valueType=o._connectionValues[r.uniqueId]?.type??o._connectionValues[l.uniqueId]?.type??"FlowGraphInteger",i}},"math/xor":{blocks:["FlowGraphBitwiseXorBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,o){var a;(a=i[0]).config||(a.config={});let r=i[0].dataInputs[0],l=i[0].dataInputs[1];return i[0].config.valueType=o._connectionValues[r.uniqueId]?.type??o._connectionValues[l.uniqueId]?.type??"FlowGraphInteger",i}},"math/asr":ai("FlowGraphBitwiseRightShiftBlock",["a","b"]),"math/lsl":ai("FlowGraphBitwiseLeftShiftBlock",["a","b"]),"math/clz":ai("FlowGraphLeadingZerosBlock"),"math/ctz":ai("FlowGraphTrailingZerosBlock"),"math/popcnt":ai("FlowGraphOneBitsCounterBlock"),"math/rad":ai("FlowGraphDegToRadBlock"),"math/deg":ai("FlowGraphRadToDegBlock"),"type/boolToInt":ai("FlowGraphBooleanToInt"),"type/boolToFloat":ai("FlowGraphBooleanToFloat"),"type/intToBool":ai("FlowGraphIntToBoolean"),"type/intToFloat":ai("FlowGraphIntToFloat"),"type/floatToInt":ai("FlowGraphFloatToInt"),"type/floatToBool":ai("FlowGraphFloatToBoolean"),"flow/sequence":{blocks:["FlowGraphSequenceBlock"],extraProcessor(e,t,s,n,i){let o=i[0];return o.config||(o.config={}),o.config.outputSignalCount=Object.keys(e.flows||[]).length,o.signalOutputs.forEach((e,t)=>{e.name="out_"+t}),i}},"flow/branch":{blocks:["FlowGraphBranchBlock"],outputs:{flows:{true:{name:"onTrue"},false:{name:"onFalse"}}}},"flow/switch":{blocks:["FlowGraphSwitchBlock"],configuration:{cases:{name:"cases",isArray:!0,inOptions:!0,defaultValue:[]}},inputs:{values:{selection:{name:"case"},default:{name:"default"}}},validation(e){let t=e.configuration?.cases;if(t&&t.value){if(!t.value.every(e=>"number"==typeof e&&/^-?\d+$/.test(e.toString())))return k.Logger.Warn("Switch cases should be integers. Using empty array instead."),t.value=[],{valid:!0};let e=new Set(t.value);t.value=Array.from(e)}return{valid:!0}},extraProcessor(e,t,s,n,i){if("flow/switch"!==t.op||!e.flows||0===Object.keys(e.flows).length)throw Error("Switch should have a single configuration object, the cases array");return i[0].signalOutputs.forEach(e=>{"default"!==e.name&&(e.name="out_"+e.name)}),i}},"flow/while":{blocks:["FlowGraphWhileLoopBlock"],outputs:{flows:{loopBody:{name:"executionFlow"}}}},"flow/for":{blocks:["FlowGraphForLoopBlock"],configuration:{initialIndex:{name:"initialIndex",gltfType:"number",inOptions:!0,defaultValue:0}},inputs:{values:{startIndex:{name:"startIndex",gltfType:"number"},endIndex:{name:"endIndex",gltfType:"number"}}},outputs:{values:{index:{name:"index"}},flows:{loopBody:{name:"executionFlow"}}},extraProcessor(e,t,s,n,i){let o=i[0];return o.config||(o.config={}),o.config.incrementIndexWhenLoopDone=!0,i}},"flow/doN":{blocks:["FlowGraphDoNBlock"],configuration:{},inputs:{values:{n:{name:"maxExecutions",gltfType:"number"}}},outputs:{values:{currentCount:{name:"executionCount"}}}},"flow/multiGate":{blocks:["FlowGraphMultiGateBlock"],configuration:{isRandom:{name:"isRandom",gltfType:"boolean",inOptions:!0,defaultValue:!1},isLoop:{name:"isLoop",gltfType:"boolean",inOptions:!0,defaultValue:!1}},extraProcessor(e,t,s,n,i){if("flow/multiGate"!==t.op||!e.flows||0===Object.keys(e.flows).length)throw Error("MultiGate should have a single configuration object, the number of output flows");let o=i[0];return o.config||(o.config={}),o.config.outputSignalCount=Object.keys(e.flows).length,o.signalOutputs.forEach((e,t)=>{e.name="out_"+t}),i}},"flow/waitAll":{blocks:["FlowGraphWaitAllBlock"],configuration:{inputFlows:{name:"inputSignalCount",gltfType:"number",inOptions:!0,defaultValue:0}},inputs:{flows:{reset:{name:"reset"},"[segment]":{name:"in_$1"}}},validation:e=>("number"!=typeof e.configuration?.inputFlows?.value?.[0]&&(e.configuration=e.configuration||{inputFlows:{value:[0]}},e.configuration.inputFlows.value=[0]),{valid:!0})},"flow/throttle":{blocks:["FlowGraphThrottleBlock"],outputs:{flows:{err:{name:"error"}}}},"flow/setDelay":{blocks:["FlowGraphSetDelayBlock"],outputs:{flows:{err:{name:"error"}}}},"flow/cancelDelay":{blocks:["FlowGraphCancelDelayBlock"]},"variable/get":{blocks:["FlowGraphGetVariableBlock"],validation:e=>e.configuration?.variable?.value?{valid:!0}:(k.Logger.Error("Variable get block should have a variable configuration"),{valid:!1,error:"Variable get block should have a variable configuration"}),configuration:{variable:{name:"variable",gltfType:"number",flowGraphType:"string",inOptions:!0,isVariable:!0,dataTransformer:(e,t)=>t.getVariableName(e)}}},"variable/set":{blocks:["FlowGraphSetVariableBlock"],configuration:{variables:{name:"variables",gltfType:"number",flowGraphType:"string",inOptions:!0,isArray:!0,dataTransformer:(e,t)=>e.map(e=>t.getVariableName(e))}},extraProcessor:(e,t,s,n,i)=>(i[0].dataInputs.forEach(e=>{e.name=n.getVariableName(+e.name)}),i)},"variable/interpolate":{blocks:["FlowGraphInterpolationBlock","FlowGraphContextBlock","FlowGraphPlayAnimationBlock","FlowGraphBezierCurveEasing","FlowGraphGetVariableBlock"],configuration:{variable:{name:"propertyName",inOptions:!0,isVariable:!0,dataTransformer:(e,t)=>t.getVariableName(e)},useSlerp:{name:"animationType",inOptions:!0,defaultValue:!1,dataTransformer:e=>!0===e?"Quaternion":void 0}},inputs:{values:{value:{name:"value_1"},duration:{name:"duration_1",gltfType:"number"},p1:{name:"controlPoint1",toBlock:"FlowGraphBezierCurveEasing"},p2:{name:"controlPoint2",toBlock:"FlowGraphBezierCurveEasing"}},flows:{in:{name:"in",toBlock:"FlowGraphPlayAnimationBlock"}}},outputs:{flows:{err:{name:"error",toBlock:"FlowGraphPlayAnimationBlock"},out:{name:"out",toBlock:"FlowGraphPlayAnimationBlock"},done:{name:"done",toBlock:"FlowGraphPlayAnimationBlock"}}},interBlockConnectors:[{input:"object",output:"userVariables",inputBlockIndex:2,outputBlockIndex:1,isVariable:!0},{input:"animation",output:"animation",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0},{input:"easingFunction",output:"easingFunction",inputBlockIndex:0,outputBlockIndex:3,isVariable:!0},{input:"value_0",output:"value",inputBlockIndex:0,outputBlockIndex:4,isVariable:!0}],extraProcessor(e,t,s,n,i){var o,a;let r=i[0],l=e.configuration?.variable.value?.[0];if("number"!=typeof l)throw k.Logger.Error("Variable index is not defined for variable interpolation block"),Error("Variable index is not defined for variable interpolation block");let h=n.arrays.staticVariables[l];void 0===r.config?.animationType?.value&&(r.config||(r.config={}),(o=r.config).animationType||(o.animationType={}),r.config.animationType.value=(0,o5.getAnimationTypeByFlowGraphType)(h.type));let u=i[4];return u.config||(u.config={}),(a=u.config).variable||(a.variable={}),u.config.variable.value=n.getVariableName(l),i}},"pointer/get":{blocks:["FlowGraphGetPropertyBlock","FlowGraphJsonPointerParserBlock"],configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customGetFunction",output:"getFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor:(e,t,s,n,i)=>(i.forEach(e=>{"FlowGraphJsonPointerParserBlock"===e.className&&(e.config||(e.config={}),e.config.outputValue=!0)}),i)},"pointer/set":{blocks:["FlowGraphSetPropertyBlock","FlowGraphJsonPointerParserBlock"],configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{value:{name:"value"},"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customSetFunction",output:"setFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor:(e,t,s,n,i)=>(i.forEach(e=>{"FlowGraphJsonPointerParserBlock"===e.className&&(e.config||(e.config={}),e.config.outputValue=!0)}),i)},"pointer/interpolate":{blocks:["FlowGraphInterpolationBlock","FlowGraphJsonPointerParserBlock","FlowGraphPlayAnimationBlock","FlowGraphBezierCurveEasing"],configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{value:{name:"value_1"},"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"},duration:{name:"duration_1",gltfType:"number"},p1:{name:"controlPoint1",toBlock:"FlowGraphBezierCurveEasing"},p2:{name:"controlPoint2",toBlock:"FlowGraphBezierCurveEasing"}},flows:{in:{name:"in",toBlock:"FlowGraphPlayAnimationBlock"}}},outputs:{flows:{err:{name:"error",toBlock:"FlowGraphPlayAnimationBlock"},out:{name:"out",toBlock:"FlowGraphPlayAnimationBlock"},done:{name:"done",toBlock:"FlowGraphPlayAnimationBlock"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:2,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customBuildAnimation",output:"generateAnimationsFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"animation",output:"animation",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0},{input:"easingFunction",output:"easingFunction",inputBlockIndex:0,outputBlockIndex:3,isVariable:!0},{input:"value_0",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor:(e,t,s,n,i)=>(i.forEach(t=>{"FlowGraphJsonPointerParserBlock"===t.className?(t.config||(t.config={}),t.config.outputValue=!0):"FlowGraphInterpolationBlock"===t.className&&(t.config||(t.config={}),Object.keys(e.values||[]).forEach(s=>{let i=e.values?.[s];if("value"===s&&i){let e=i.type;void 0!==e&&(t.config.animationType=n.arrays.types[e].flowGraphType)}}))}),i)},"animation/start":{blocks:["FlowGraphPlayAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"},speed:{name:"speed",gltfType:"number"},startTime:{name:"from",gltfType:"number",dataTransformer:(e,t)=>[e[0]*t._animationTargetFps]},endTime:{name:"to",gltfType:"number",dataTransformer:(e,t)=>[e[0]*t._animationTargetFps]}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(e,t,s,n,i,o,a){let r=i[i.length-1];return r.config||(r.config={}),r.config.glTF=a,i}},"animation/stop":{blocks:["FlowGraphStopAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(e,t,s,n,i,o,a){let r=i[i.length-1];return r.config||(r.config={}),r.config.glTF=a,i}},"animation/stopAt":{blocks:["FlowGraphStopAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{},inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"},stopTime:{name:"stopAtFrame",gltfType:"number",dataTransformer:(e,t)=>[e[0]*t._animationTargetFps]}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(e,t,s,n,i,o,a){let r=i[i.length-1];return r.config||(r.config={}),r.config.glTF=a,i}},"math/switch":{blocks:["FlowGraphDataSwitchBlock"],configuration:{cases:{name:"cases",isArray:!0,inOptions:!0,defaultValue:[]}},inputs:{values:{selection:{name:"case"}}},validation(e){let t=e.configuration?.cases;if(t&&t.value){if(!t.value.every(e=>"number"==typeof e&&/^-?\d+$/.test(e.toString())))return k.Logger.Warn("Switch cases should be integers. Using empty array instead."),t.value=[],{valid:!0};let e=new Set(t.value);t.value=Array.from(e)}return{valid:!0}},extraProcessor(e,t,s,n,i){let o=i[0];return o.dataInputs.forEach(e=>{"default"!==e.name&&"case"!==e.name&&(e.name="in_"+e.name)}),o.config||(o.config={}),o.config.treatCasesAsIntegers=!0,i}},"debug/log":{blocks:["FlowGraphConsoleLogBlock"],configuration:{message:{name:"messageTemplate",inOptions:!0}}}};function ai(e,t=["a"],s){return{blocks:[e],inputs:{values:t.reduce((e,t)=>(e[t]={name:t},e),{})},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,n,i,o){var a;if(s){(a=o[0]).config||(a.config={}),o[0].config.preventIntegerFloatArithmetic=!0;let t=-1;Object.keys(e.values||{}).find(s=>e.values?.[s].type!==void 0&&(t=e.values[s].type,!0)),-1!==t&&(o[0].config.type=i.arrays.types[t].flowGraphType)}return o},validation:e=>s?ao(e):{valid:!0}}}function ao(e){if(e.values){let t=Object.keys(e.values).map(t=>e.values[t].type).filter(e=>void 0!==e);if(!t.every(e=>e===t[0]))return{valid:!1,error:"All inputs must be of the same type"}}return{valid:!0}}function aa(){return Object.keys(an)}e.s(["addNewInteractivityFlowGraphMapping",0,at,"getAllSupportedNativeNodeTypes",0,aa,"getMappingForDeclaration",0,ae,"getMappingForFullOperationName",0,o8],6504);var ar=e.i(31919);let al={float:{length:1,flowGraphType:"number",elementType:"number"},bool:{length:1,flowGraphType:"boolean",elementType:"boolean"},float2:{length:2,flowGraphType:"Vector2",elementType:"number"},float3:{length:3,flowGraphType:"Vector3",elementType:"number"},float4:{length:4,flowGraphType:"Vector4",elementType:"number"},float4x4:{length:16,flowGraphType:"Matrix",elementType:"number"},float2x2:{length:4,flowGraphType:"Matrix2D",elementType:"number"},float3x3:{length:9,flowGraphType:"Matrix3D",elementType:"number"},int:{length:1,flowGraphType:"FlowGraphInteger",elementType:"number"}};class ah{constructor(e,t,s=60){this._interactivityGraph=e,this._gltf=t,this._animationTargetFps=s,this._types=[],this._mappings=[],this._staticVariables=[],this._events=[],this._internalEventsCounter=0,this._nodes=[],this._parseTypes(),this._parseDeclarations(),this._parseVariables(),this._parseEvents(),this._parseNodes()}get arrays(){return{types:this._types,mappings:this._mappings,staticVariables:this._staticVariables,events:this._events,nodes:this._nodes}}_parseTypes(){if(this._interactivityGraph.types)for(let e of this._interactivityGraph.types)this._types.push(al[e.signature])}_parseDeclarations(){if(this._interactivityGraph.declarations)for(let e of this._interactivityGraph.declarations){let t=ae(e);if(!t)throw k.Logger.Error(["No mapping found for declaration",e]),Error("Error parsing declarations");this._mappings.push({flowGraphMapping:t,fullOperationName:e.extension?e.op+":"+e.extension:e.op})}}_parseVariables(){if(this._interactivityGraph.variables)for(let e of this._interactivityGraph.variables){let t=this._parseVariable(e);this._staticVariables.push(t)}}_parseVariable(e,t){let s=this._types[e.type];if(!s)throw k.Logger.Error(["No type found for variable",e]),Error("Error parsing variables");if(e.value&&e.value.length!==s.length)throw k.Logger.Error(["Invalid value length for variable",e,s]),Error("Error parsing variables");let n=e.value||[];if(!n.length)switch(s.flowGraphType){case"boolean":n.push(!1);break;case"FlowGraphInteger":n.push(0);break;case"number":n.push(NaN);break;case"Vector2":n.push(NaN,NaN);break;case"Vector3":n.push(NaN,NaN,NaN);break;case"Vector4":case"Matrix2D":case"Quaternion":n.fill(NaN,0,4);break;case"Matrix":n.fill(NaN,0,16);break;case"Matrix3D":n.fill(NaN,0,9)}return"number"===s.elementType&&"string"==typeof n[0]&&(n[0]=parseFloat(n[0])),{type:s.flowGraphType,value:t?t(n,this):n}}_parseEvents(){if(this._interactivityGraph.events)for(let e of this._interactivityGraph.events){let t={eventId:e.id||"internalEvent_"+this._internalEventsCounter++};e.values&&(t.eventData=Object.keys(e.values).map(t=>{let s=e.values?.[t];if(!s)throw k.Logger.Error(["No value found for event key",t]),Error("Error parsing events");let n=this._types[s.type];if(!n)throw k.Logger.Error(["No type found for event value",s]),Error("Error parsing events");let i=void 0!==s.value?this._parseVariable(s):void 0;return{id:t,type:n.flowGraphType,eventData:!0,value:i}})),this._events.push(t)}}_parseNodes(){if(this._interactivityGraph.nodes)for(let e of this._interactivityGraph.nodes){if("number"!=typeof e.declaration)throw k.Logger.Error(["No declaration found for node",e]),Error("Error parsing nodes");let t=this._mappings[e.declaration];if(!t)throw k.Logger.Error(["No mapping found for node",e]),Error("Error parsing nodes");if(t.flowGraphMapping.validation){let s=t.flowGraphMapping.validation(e,this._interactivityGraph,this._gltf);if(!s.valid)throw Error(`Error validating interactivity node ${this._interactivityGraph.declarations?.[e.declaration].op} - ${s.error}`)}let s=[];for(let n of t.flowGraphMapping.blocks){let i=this._getEmptyBlock(n,t.fullOperationName);this._parseNodeConfiguration(e,i,t.flowGraphMapping,n),s.push(i)}this._nodes.push({blocks:s,fullOperationName:t.fullOperationName})}}_getEmptyBlock(e,t){return{uniqueId:(0,ar.RandomGUID)(),className:e,dataInputs:[],dataOutputs:[],signalInputs:[],signalOutputs:[],config:{},type:t,metadata:{}}}_parseNodeConfiguration(e,t,s,n){let i=e.configuration;if(i)for(let e in i){let o=i[e];if(!o)throw Error("Error parsing node configuration");let a=s.configuration?.[e];if(a&&a.toBlock?a.toBlock===n:0===s.blocks.indexOf(n)){let s=a?.defaultValue;o?.value&&(s=o.value),a?.isArray||(1!==s.length&&k.Logger.Warn(`Invalid non-array value length: ${s.length}`),s=s[0]),a?.dataTransformer&&(s=a.dataTransformer(s,this)),void 0!==s&&(t.config[a?.name||e]={value:s})}}}_parseNodeConnections(e){for(let t=0;t<this._nodes.length;t++){let s=this._interactivityGraph.nodes?.[t];if(!s)throw k.Logger.Error(["No node found for interactivity node",this._nodes[t]]),Error("Error parsing node connections");let n=this._nodes[t],i=this._mappings[s.declaration];if(!i)throw k.Logger.Error(["No mapping found for node",s]),Error("Error parsing node connections");let o=s.flows||{};for(let e of Object.keys(o).sort()){let t=o[e],s=i.flowGraphMapping.outputs?.flows?.[e],a=s?.name||e,r=this._createNewSocketConnection(a,!0);(s&&s.toBlock&&n.blocks.find(e=>e.className===s.toBlock)||n.blocks[0]).signalOutputs.push(r);let l=t.node,h=this._nodes[l];if(!h)throw k.Logger.Error(["No node found for input node id",l]),Error("Error parsing node connections");let u=o8(h.fullOperationName);if(!u)throw k.Logger.Error(["No mapping found for input node",h]),Error("Error parsing node connections");let c=u.inputs?.flows?.[t.socket||"in"],d=!1;if(!c)for(let e in u.inputs?.flows)e.startsWith("[")&&e.endsWith("]")&&(d=!0,c=u.inputs?.flows?.[e]);let _=c?d?c.name.replace("$1",t.socket||""):c.name:t.socket||"in",p=c&&c.toBlock&&h.blocks.find(e=>e.className===c.toBlock)||h.blocks[0],m=p.signalInputs.find(e=>e.name===_);m||(m=this._createNewSocketConnection(_),p.signalInputs.push(m)),m.connectedPointIds.push(r.uniqueId),r.connectedPointIds.push(m.uniqueId)}let a=s.values||{};for(let t of Object.keys(a)){let s=a[t],o=i.flowGraphMapping.inputs?.values?.[t],r=!1;if(!o)for(let e in i.flowGraphMapping.inputs?.values)e.startsWith("[")&&e.endsWith("]")&&(r=!0,o=i.flowGraphMapping.inputs?.values?.[e]);let l=o?r?o.name.replace("$1",t):o.name:t,h=this._createNewSocketConnection(l);if((o&&o.toBlock&&n.blocks.find(e=>e.className===o.toBlock)||n.blocks[0]).dataInputs.push(h),void 0!==s.value){let t=this._parseVariable(s,o&&o.dataTransformer);e._connectionValues[h.uniqueId]=t}else if(void 0!==s.node){let e=s.node,t=s.socket||"value",n=this._nodes[e];if(!n)throw k.Logger.Error(["No node found for output socket reference",s]),Error("Error parsing node connections");let i=o8(n.fullOperationName);if(!i)throw k.Logger.Error(["No mapping found for output socket reference",s]),Error("Error parsing node connections");let o=i.outputs?.values?.[t],a=!1;if(!o)for(let e in i.outputs?.values)e.startsWith("[")&&e.endsWith("]")&&(a=!0,o=i.outputs?.values?.[e]);let r=o?a?o.name.replace("$1",t):o?.name:t,l=o&&o.toBlock&&n.blocks.find(e=>e.className===o.toBlock)||n.blocks[0],u=l.dataOutputs.find(e=>e.name===r);u||(u=this._createNewSocketConnection(r,!0),l.dataOutputs.push(u)),h.connectedPointIds.push(u.uniqueId),u.connectedPointIds.push(h.uniqueId)}else throw k.Logger.Error(["Invalid value for value connection",s]),Error("Error parsing node connections")}if(i.flowGraphMapping.interBlockConnectors)for(let e of i.flowGraphMapping.interBlockConnectors){let t=e.input,s=e.output,i=e.isVariable;this._connectFlowGraphNodes(t,s,n.blocks[e.inputBlockIndex],n.blocks[e.outputBlockIndex],i)}if(i.flowGraphMapping.extraProcessor){let t=this._interactivityGraph.declarations?.[s.declaration];if(!t)throw k.Logger.Error(["No declaration found for extra processor",s]),Error("Error parsing node connections");n.blocks=i.flowGraphMapping.extraProcessor(s,t,i.flowGraphMapping,this,n.blocks,e,this._gltf)}}}_createNewSocketConnection(e,t){return{uniqueId:(0,ar.RandomGUID)(),name:e,_connectionType:+!!t,connectedPointIds:[]}}_connectFlowGraphNodes(e,t,s,n,i){let o=i?s.dataInputs:s.signalInputs,a=i?n.dataOutputs:n.signalOutputs,r=o.find(t=>t.name===e)||this._createNewSocketConnection(e),l=a.find(e=>e.name===t)||this._createNewSocketConnection(t,!0);o.find(t=>t.name===e)||o.push(r),a.find(e=>e.name===t)||a.push(l),r.connectedPointIds.push(l.uniqueId),l.connectedPointIds.push(r.uniqueId)}getVariableName(e){return"staticVariable_"+e}serializeToFlowGraph(){let e={uniqueId:(0,ar.RandomGUID)(),_userVariables:{},_connectionValues:{}};this._parseNodeConnections(e);for(let t=0;t<this._staticVariables.length;t++){let s=this._staticVariables[t];e._userVariables[this.getVariableName(t)]=s}return{rightHanded:!0,allBlocks:this._nodes.reduce((e,t)=>e.concat(t.blocks),[]),executionContexts:[e]}}}e.s(["InteractivityGraphToFlowGraphParser",0,ah,"gltfTypeToBabylonType",0,al],6583);let au="KHR_interactivity";class ac{constructor(e){this._loader=e,this.name=au,this.enabled=this._loader.isExtensionUsed(au),this._pathConverter=(0,tp.GetPathToObjectConverter)(this._loader.gltf),e._skipStartAnimationStep=!0;const t=e.babylonScene;t&&ad(t)}dispose(){this._loader=null,delete this._pathConverter}async onReady(){if(!this._loader.babylonScene||!this._pathConverter)return;let e=this._loader.babylonScene,t=this._loader.gltf.extensions?.KHR_interactivity;if(!t)return;let s=new o1.FlowGraphCoordinator({scene:e});s.dispatchEventsSynchronously=!1;let n=t.graphs.map(e=>new ah(e,this._loader.gltf,this._loader.parent.targetFps).serializeToFlowGraph());await Promise.all(n.map(async e=>await o6(e,{coordinator:s,pathConverter:this._pathConverter}))),s.start()}}function ad(e){(0,tp.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/rotation",{get:()=>{if(!e.activeCamera)return new el.Quaternion(NaN,NaN,NaN,NaN);let t=el.Quaternion.FromRotationMatrix(e.activeCamera.getWorldMatrix()).normalize();return e.useRightHandedSystem||(t.w*=-1,t.x*=-1),t},type:"Quaternion",getTarget:()=>e.activeCamera}),(0,tp.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/position",{get:()=>{if(!e.activeCamera)return new el.Vector3(NaN,NaN,NaN);let t=e.activeCamera.getWorldMatrix().getTranslation();return e.useRightHandedSystem||(t.x*=-1),t},type:"Vector3",getTarget:()=>e.activeCamera}),(0,tp.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/isPlaying",{get:e=>e._babylonAnimationGroup?.isPlaying??!1,type:"boolean",getTarget:e=>e._babylonAnimationGroup}),(0,tp.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/minTime",{get:e=>(e._babylonAnimationGroup?.from??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup}),(0,tp.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/maxTime",{get:e=>(e._babylonAnimationGroup?.to??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup}),(0,tp.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/playhead",{get:e=>(e._babylonAnimationGroup?.getCurrentFrame()??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup}),(0,tp.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/virtualPlayhead",{get:e=>(e._babylonAnimationGroup?.getCurrentFrame()??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup})}let a_=!1;function ap(){if(!a_){var t;let s;a_=!0,t=async()=>(await e.A(89112)).FlowGraphGLTFDataProvider,o2[s=`${au}/FlowGraphGLTFDataProvider`]=t,o3.FlowGraphGLTFDataProvider=s,t_(au),td(au,!0,e=>new ac(e))}}e.s(["KHR_interactivity",0,ac,"RegisterKHR_interactivity",0,ap,"_AddInteractivityObjectModel",0,ad],97981),ap(),e.s([],2092),e.s([],4120);let am="KHR_node_visibility";class af{constructor(e){this.name=am,this._loader=e,this.enabled=e.isExtensionUsed(am)}onReady(){if(!this._loader)return;let e=this._loader.gltf.nodes;if(e)for(let t of e){let e=t._babylonTransformNode;e&&(e.inheritVisibility=!0,t.extensions&&t.extensions.KHR_node_visibility&&!1===t.extensions.KHR_node_visibility.visible&&(e.isVisible=!1))}}dispose(){delete this._loader}}let ag=!1;function ay(){ag||(ag=!0,(0,tp.AddObjectAccessorToKey)("/nodes/{}/extensions/KHR_node_visibility/visible",{get:e=>{let t=e._babylonTransformNode;return!t||void 0===t.isVisible||t.isVisible},set:(e,t)=>{t._primitiveBabylonMeshes?.forEach(e=>{e.inheritVisibility=!0}),t._babylonTransformNode&&(t._babylonTransformNode.isVisible=e),t._primitiveBabylonMeshes?.forEach(t=>{t.isVisible=e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"isVisible"],type:"boolean"}),t_(am),td(am,!0,e=>new af(e)))}e.s(["KHR_node_visibility",0,af,"RegisterKHR_node_visibility",0,ay],52862),ay(),e.s([],77491),e.s([],28727);let ab="KHR_node_selectability";class aT{constructor(e){this.name=ab,this._loader=e,this.enabled=e.isExtensionUsed(ab)}async onReady(){this._loader.gltf.nodes?.forEach(e=>{e.extensions?.KHR_node_selectability&&e.extensions?.KHR_node_selectability.selectable===!1&&e._babylonTransformNode?.getChildMeshes().forEach(e=>{e.isPickable=!1})})}dispose(){this._loader=null}}let aA=!1;function ax(){aA||(aA=!0,at("event/onSelect",ab,{blocks:["FlowGraphMeshPickEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>"pickedMesh_"+e}},outputs:{values:{selectedNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"},selectionPoint:{name:"pickedPoint"},selectionRayOrigin:{name:"pickOrigin"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"asset",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"pickedMesh",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,t,s,n,i,o,a){let r=i[i.length-1];r.config=r.config||{},r.config.glTF=a;let l=e.configuration?.nodeIndex?.value?.[0];if(void 0===l||"number"!=typeof l)throw Error("nodeIndex not found in configuration");let h="pickedMesh_"+l;return i[1].config.variable=h,o._userVariables[h]={className:"Mesh",id:a?.nodes?.[l]._babylonTransformNode?.id,uniqueId:a?.nodes?.[l]._babylonTransformNode?.uniqueId},i}}),(0,tp.AddObjectAccessorToKey)("/nodes/{}/extensions/KHR_node_selectability/selectable",{get:e=>{let t=e._babylonTransformNode;return!t||void 0===t.isPickable||t.isPickable},set:(e,t)=>{t._primitiveBabylonMeshes?.forEach(t=>{t.isPickable=e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"isPickable"],type:"boolean"}),t_(ab),td(ab,!0,e=>new aT(e)))}e.s(["KHR_node_selectability",0,aT,"RegisterKHR_node_selectability",0,ax],81289),ax(),e.s([],48715),e.s([],82975);let aw="KHR_node_hoverability",av="targetMeshPointerOver_",aM="targetMeshPointerOut_";class aC{constructor(e){this.name=aw,this._loader=e,this.enabled=e.isExtensionUsed(aw)}async onReady(){this._loader.gltf.nodes?.forEach(e=>{e.extensions?.KHR_node_hoverability&&e.extensions?.KHR_node_hoverability.hoverable===!1&&e._babylonTransformNode?.getChildMeshes().forEach(e=>{e.pointerOverDisableMeshTesting=!0})})}dispose(){this._loader=null}}let aF=!1;function aE(){aF||(aF=!0,at("event/onHoverIn",aw,{blocks:["FlowGraphPointerOverEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>av+e}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshUnderPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,t,s,n,i,o,a){let r=i[i.length-1];r.config=r.config||{},r.config.glTF=a;let l=e.configuration?.nodeIndex?.value?.[0];if(void 0===l||"number"!=typeof l)throw Error("nodeIndex not found in configuration");let h=av+l;return i[1].config.variable=h,o._userVariables[h]={className:"Mesh",id:a?.nodes?.[l]._babylonTransformNode?.id,uniqueId:a?.nodes?.[l]._babylonTransformNode?.uniqueId},i}}),at("event/onHoverOut",aw,{blocks:["FlowGraphPointerOutEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>aM+e}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshOutOfPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,t,s,n,i,o,a){let r=i[i.length-1];r.config=r.config||{},r.config.glTF=a;let l=e.configuration?.nodeIndex?.value?.[0];if(void 0===l||"number"!=typeof l)throw Error("nodeIndex not found in configuration");let h=aM+l;return i[1].config.variable=h,o._userVariables[h]={className:"Mesh",id:a?.nodes?.[l]._babylonTransformNode?.id,uniqueId:a?.nodes?.[l]._babylonTransformNode?.uniqueId},i}}),(0,tp.AddObjectAccessorToKey)("/nodes/{}/extensions/KHR_node_hoverability/hoverable",{get:e=>{let t=e._babylonTransformNode;return!t||void 0===t.pointerOverDisableMeshTesting||t.pointerOverDisableMeshTesting},set:(e,t)=>{t._primitiveBabylonMeshes?.forEach(t=>{t.pointerOverDisableMeshTesting=!e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"pointerOverDisableMeshTesting"],type:"boolean"}),t_(aw),td(aw,!0,e=>new aC(e)))}e.s(["KHR_node_hoverability",0,aC,"RegisterKHR_node_hoverability",0,aE],25333),aE(),e.s([],78729),e.s([],96211);let aR="ExtrasAsMetadata";class aS{_assignExtras(e,t){if(t.extras&&Object.keys(t.extras).length>0){let s=e.metadata=e.metadata||{};(s.gltf=s.gltf||{}).extras=t.extras}}constructor(e){this.name=aR,this.enabled=!0,this._loader=e}dispose(){this._loader=null}loadNodeAsync(e,t,s){return this._loader.loadNodeAsync(e,t,e=>{this._assignExtras(e,t),s(e)})}loadCameraAsync(e,t,s){return this._loader.loadCameraAsync(e,t,e=>{this._assignExtras(e,t),s(e)})}createMaterial(e,t,s){let n=this._loader.createMaterial(e,t,s);return this._assignExtras(n,t),n}loadAnimationAsync(e,t){return this._loader.loadAnimationAsync(e,t).then(e=>(this._assignExtras(e,t),e))}}let aO=!1;function aI(){aO||(aO=!0,t_(aR),td(aR,!1,e=>new aS(e)))}e.s(["ExtrasAsMetadata",0,aS,"RegisterExtrasAsMetadata",0,aI],91176),aI(),e.s([],67461),e.s([],72196),e.s([],5610),e.s([],53739),e.i(53739),e.i(97709),e.i(62991),e.s(["ArrayItem",0,ty,"GLTFFileLoader",0,eo,"GLTFLoader",0,tT,"LoadBoundingInfoFromPositionAccessor",0,tb,"RegisterGLTF2Loader",0,tx],71448),e.i(71448),e.s(["ArrayItem",0,ty,"GLTFFileLoader",0,eo,"GLTFLoader",0,tT,"LoadBoundingInfoFromPositionAccessor",0,tb,"RegisterGLTF2Loader",0,tx],10651),e.i(10651),e.s([],69214),e.i(69214),e.i(91023),e.s([],47307),e.i(47307);var aN=e.i(61138),aB=e.i(97968);e.i(5610),e.i(87018),e.i(84523),e.i(28514),e.s(["EXT_lights_image_based",0,tI,"RegisterEXT_lights_image_based",0,tB],35075),e.i(35075),e.i(61568),e.i(32391),e.i(5335),e.s(["EXT_mesh_gpu_instancing",0,tP,"RegisterEXT_mesh_gpu_instancing",0,tG],52093),e.i(52093),e.i(13272),e.i(96902),e.i(36553),e.s(["EXT_meshopt_compression",0,tU,"RegisterEXT_meshopt_compression",0,tz],93666),e.i(93666),e.i(43372),e.i(56758),e.i(76614),e.s(["EXT_texture_webp",0,tW,"RegisterEXT_texture_webp",0,tX],47254),e.i(47254),e.i(18107),e.i(82989),e.i(37140),e.s(["EXT_texture_avif",0,tQ,"RegisterEXT_texture_avif",0,tJ],34614),e.i(34614),e.i(92020),e.i(90500),e.i(55416),e.s(["EXT_lights_ies",0,t1,"RegisterEXT_lights_ies",0,t3],1201),e.i(1201),e.i(34639),e.i(47096),e.i(87483),e.s(["KHR_draco_mesh_compression",0,st,"RegisterKHR_draco_mesh_compression",0,sn],19424),e.i(19424),e.i(28929),e.i(42700),e.i(29466),e.s(["KHR_lights",0,so,"RegisterKHR_lights",0,sr],3931),e.i(3931),e.i(1397),e.i(69721),e.i(88216),e.s(["EXT_lights_area",0,sp,"RegisterEXT_lights_area",0,sf],75596),e.i(75596),e.i(21416),e.i(12368),e.i(30204),e.s(["KHR_materials_pbrSpecularGlossiness",0,sy,"RegisterKHR_materials_pbrSpecularGlossiness",0,sT],99408),e.i(99408),e.i(79573),e.i(67571),e.i(92130),e.s(["KHR_materials_unlit",0,sx,"RegisterKHR_materials_unlit",0,sv],35128),e.i(35128),e.i(30851),e.i(58658),e.i(37133),e.s(["KHR_materials_clearcoat",0,sC,"RegisterKHR_materials_clearcoat",0,sE],73824),e.i(73824),e.i(74533),e.i(87339),e.i(3568),e.s(["KHR_materials_coat",0,sS,"RegisterKHR_materials_coat",0,sI],57101),e.i(57101),e.i(13612),e.i(83991),e.i(29408),e.s(["KHR_materials_iridescence",0,sB,"RegisterKHR_materials_iridescence",0,sP],23381),e.i(23381),e.i(92174),e.i(39754),e.i(8717),e.s(["KHR_materials_anisotropy",0,sG,"RegisterKHR_materials_anisotropy",0,sV],62063),e.i(62063),e.i(25239),e.i(80695),e.i(79917),e.s(["KHR_materials_emissive_strength",0,sH,"RegisterKHR_materials_emissive_strength",0,s$],75437),e.i(75437),e.i(92075),e.i(80340),e.i(87793),e.s(["KHR_materials_sheen",0,sq,"RegisterKHR_materials_sheen",0,sj],9261),e.i(9261),e.i(45667),e.i(89295),e.i(54818),e.s(["KHR_materials_fuzz",0,sY,"RegisterKHR_materials_fuzz",0,sZ],47467),e.i(47467),e.i(87770),e.i(56698),e.i(66366),e.s(["KHR_materials_specular",0,s0,"RegisterKHR_materials_specular",0,s2],58761),e.i(58761),e.i(2602),e.i(1633),e.i(63571),e.s(["KHR_materials_ior",0,s7,"RegisterKHR_materials_ior",0,s9],45966),e.i(45966),e.i(58147),e.i(75058),e.i(79047),e.s(["KHR_materials_variants",0,s5,"RegisterKHR_materials_variants",0,ne],39271),e.i(39271),e.i(65061),e.i(40961),e.i(27980),e.i(41982),e.s(["KHR_materials_transmission",0,no,"RegisterKHR_materials_transmission",0,nr],68714),e.i(68714),e.i(52493),e.i(78684),e.i(70257),e.s(["KHR_materials_diffuse_transmission",0,nh,"RegisterKHR_materials_diffuse_transmission",0,nc],2547),e.i(2547),e.i(13364),e.i(43822),e.i(79890),e.s(["KHR_materials_volume",0,n_,"RegisterKHR_materials_volume",0,nm],48626),e.i(48626),e.i(13731),e.i(70228),e.i(61664),e.s(["KHR_materials_volume_scatter",0,ng,"RegisterKHR_materials_volume_scatter",0,nb],71333),e.i(71333),e.i(38446),e.i(29533),e.i(76098),e.s(["KHR_materials_dispersion",0,nA,"RegisterKHR_materials_dispersion",0,nw],90768),e.i(90768),e.i(38173),e.i(57936),e.i(21506),e.s(["KHR_materials_diffuse_roughness",0,nM,"RegisterKHR_materials_diffuse_roughness",0,nF],41530),e.i(41530),e.i(40614),e.i(66308),e.i(87615),e.s(["KHR_mesh_quantization",0,nR,"RegisterKHR_mesh_quantization",0,nO],38684),e.i(38684),e.i(63702),e.i(74054),e.i(62148),e.s(["KHR_texture_basisu",0,nN,"RegisterKHR_texture_basisu",0,nk],90446),e.i(90446),e.i(63839),e.i(83915),e.i(52670),e.s(["KHR_texture_transform",0,nL,"RegisterKHR_texture_transform",0,nD],30780),e.i(30780),e.i(25924),e.i(63632),e.i(18075),e.s(["KHR_xmp_json_ld",0,nK,"RegisterKHR_xmp_json_ld",0,nU],95227),e.i(95227),e.i(35238),e.i(42062),e.i(83646),e.s(["KHR_animation_pointer",0,id,"RegisterKHR_animation_pointer",0,ip],38051),e.i(38051),e.i(3351),e.i(3372),e.i(70263),e.s(["MSFT_audio_emitter",0,oV,"RegisterMSFT_audio_emitter",0,oH],16814),e.i(16814),e.i(49233),e.i(73892),e.i(5625),e.s(["MSFT_lod",0,o$,"RegisterMSFT_lod",0,oq],90449),e.i(90449),e.i(24137),e.i(22023),e.i(30561),e.s(["MSFT_minecraftMesh",0,oj,"RegisterMSFT_minecraftMesh",0,oY],34147),e.i(34147),e.i(80666),e.i(52233),e.i(98342),e.s(["MSFT_sRGBFactors",0,oZ,"RegisterMSFT_sRGBFactors",0,o0],14097),e.i(14097),e.i(2092),e.i(56614),e.i(97981),e.s(["KHR_interactivity",0,ac,"RegisterKHR_interactivity",0,ap,"_AddInteractivityObjectModel",0,ad],63293),e.i(63293),e.i(77491),e.i(4120),e.i(52862),e.s(["KHR_node_visibility",0,af,"RegisterKHR_node_visibility",0,ay],42564),e.i(42564),e.i(48715),e.i(28727),e.i(81289),e.s(["KHR_node_selectability",0,aT,"RegisterKHR_node_selectability",0,ax],22691),e.i(22691),e.i(78729),e.i(82975),e.i(25333),e.s(["KHR_node_hoverability",0,aC,"RegisterKHR_node_hoverability",0,aE],5547),e.i(5547),e.i(67461),e.i(96211),e.i(91176),e.s(["ExtrasAsMetadata",0,aS,"RegisterExtrasAsMetadata",0,aI],41545),e.i(41545),e.i(72196),e.i(6504),e.i(6583);var ak=e.i(79853);e.s(["FlowGraphGLTFDataProvider",()=>ak.FlowGraphGLTFDataProvider,"InteractivityGraphToFlowGraphParser",0,ah,"addNewInteractivityFlowGraphMapping",0,at,"getAllSupportedNativeNodeTypes",0,aa,"getMappingForDeclaration",0,ae,"getMappingForFullOperationName",0,o8,"gltfTypeToBabylonType",0,al],72526),e.i(72526),e.s(["AddObjectAccessorToKey",()=>tp.AddObjectAccessorToKey,"EXT_lights_area",0,sp,"EXT_lights_ies",0,t1,"EXT_lights_image_based",0,tI,"EXT_mesh_gpu_instancing",0,tP,"EXT_meshopt_compression",0,tU,"EXT_texture_avif",0,tQ,"EXT_texture_webp",0,tW,"ExtrasAsMetadata",0,aS,"FlowGraphGLTFDataProvider",()=>ak.FlowGraphGLTFDataProvider,"GetMappingForKey",()=>tp.GetMappingForKey,"GetPathToObjectConverter",()=>tp.GetPathToObjectConverter,"InteractivityGraphToFlowGraphParser",0,ah,"KHR_animation_pointer",0,id,"KHR_draco_mesh_compression",0,st,"KHR_interactivity",0,ac,"KHR_lights",0,so,"KHR_materials_anisotropy",0,sG,"KHR_materials_clearcoat",0,sC,"KHR_materials_coat",0,sS,"KHR_materials_diffuse_roughness",0,nM,"KHR_materials_diffuse_transmission",0,nh,"KHR_materials_dispersion",0,nA,"KHR_materials_emissive_strength",0,sH,"KHR_materials_fuzz",0,sY,"KHR_materials_ior",0,s7,"KHR_materials_iridescence",0,sB,"KHR_materials_pbrSpecularGlossiness",0,sy,"KHR_materials_sheen",0,sq,"KHR_materials_specular",0,s0,"KHR_materials_transmission",0,no,"KHR_materials_unlit",0,sx,"KHR_materials_variants",0,s5,"KHR_materials_volume",0,n_,"KHR_materials_volume_scatter",0,ng,"KHR_mesh_quantization",0,nR,"KHR_node_hoverability",0,aC,"KHR_node_selectability",0,aT,"KHR_node_visibility",0,af,"KHR_texture_basisu",0,nN,"KHR_texture_transform",0,nL,"KHR_xmp_json_ld",0,nK,"MSFT_audio_emitter",0,oV,"MSFT_lod",0,o$,"MSFT_minecraftMesh",0,oj,"MSFT_sRGBFactors",0,oZ,"RegisterEXT_lights_area",0,sf,"RegisterEXT_lights_ies",0,t3,"RegisterEXT_lights_image_based",0,tB,"RegisterEXT_mesh_gpu_instancing",0,tG,"RegisterEXT_meshopt_compression",0,tz,"RegisterEXT_texture_avif",0,tJ,"RegisterEXT_texture_webp",0,tX,"RegisterExtrasAsMetadata",0,aI,"RegisterKHR_animation_pointer",0,ip,"RegisterKHR_draco_mesh_compression",0,sn,"RegisterKHR_interactivity",0,ap,"RegisterKHR_lights",0,sr,"RegisterKHR_materials_anisotropy",0,sV,"RegisterKHR_materials_clearcoat",0,sE,"RegisterKHR_materials_coat",0,sI,"RegisterKHR_materials_diffuse_roughness",0,nF,"RegisterKHR_materials_diffuse_transmission",0,nc,"RegisterKHR_materials_dispersion",0,nw,"RegisterKHR_materials_emissive_strength",0,s$,"RegisterKHR_materials_fuzz",0,sZ,"RegisterKHR_materials_ior",0,s9,"RegisterKHR_materials_iridescence",0,sP,"RegisterKHR_materials_pbrSpecularGlossiness",0,sT,"RegisterKHR_materials_sheen",0,sj,"RegisterKHR_materials_specular",0,s2,"RegisterKHR_materials_transmission",0,nr,"RegisterKHR_materials_unlit",0,sv,"RegisterKHR_materials_variants",0,ne,"RegisterKHR_materials_volume",0,nm,"RegisterKHR_materials_volume_scatter",0,nb,"RegisterKHR_mesh_quantization",0,nO,"RegisterKHR_node_hoverability",0,aE,"RegisterKHR_node_selectability",0,ax,"RegisterKHR_node_visibility",0,ay,"RegisterKHR_texture_basisu",0,nk,"RegisterKHR_texture_transform",0,nD,"RegisterKHR_xmp_json_ld",0,nU,"RegisterMSFT_audio_emitter",0,oH,"RegisterMSFT_lod",0,oq,"RegisterMSFT_minecraftMesh",0,oY,"RegisterMSFT_sRGBFactors",0,o0,"SetInterpolationForKey",()=>tp.SetInterpolationForKey,"TransmissionHelper",0,ns,"_AddInteractivityObjectModel",0,ad,"addNewInteractivityFlowGraphMapping",0,at,"ensureTransmissionHelper",0,nn,"getAllSupportedNativeNodeTypes",0,aa,"getMappingForDeclaration",0,ae,"getMappingForFullOperationName",0,o8,"gltfTypeToBabylonType",0,al],1902),e.i(1902),e.s(["AddObjectAccessorToKey",()=>tp.AddObjectAccessorToKey,"AnimationPropertyInfo",()=>tw.AnimationPropertyInfo,"ArrayItem",0,ty,"EXT_lights_area",0,sp,"EXT_lights_ies",0,t1,"EXT_lights_image_based",0,tI,"EXT_mesh_gpu_instancing",0,tP,"EXT_meshopt_compression",0,tU,"EXT_texture_avif",0,tQ,"EXT_texture_webp",0,tW,"ExtrasAsMetadata",0,aS,"FlowGraphGLTFDataProvider",()=>ak.FlowGraphGLTFDataProvider,"GLTFFileLoader",0,eo,"GLTFLoader",0,tT,"GetMappingForKey",()=>tp.GetMappingForKey,"GetPathToObjectConverter",()=>tp.GetPathToObjectConverter,"InteractivityGraphToFlowGraphParser",0,ah,"KHR_animation_pointer",0,id,"KHR_draco_mesh_compression",0,st,"KHR_interactivity",0,ac,"KHR_lights",0,so,"KHR_materials_anisotropy",0,sG,"KHR_materials_clearcoat",0,sC,"KHR_materials_coat",0,sS,"KHR_materials_diffuse_roughness",0,nM,"KHR_materials_diffuse_transmission",0,nh,"KHR_materials_dispersion",0,nA,"KHR_materials_emissive_strength",0,sH,"KHR_materials_fuzz",0,sY,"KHR_materials_ior",0,s7,"KHR_materials_iridescence",0,sB,"KHR_materials_pbrSpecularGlossiness",0,sy,"KHR_materials_sheen",0,sq,"KHR_materials_specular",0,s0,"KHR_materials_transmission",0,no,"KHR_materials_unlit",0,sx,"KHR_materials_variants",0,s5,"KHR_materials_volume",0,n_,"KHR_materials_volume_scatter",0,ng,"KHR_mesh_quantization",0,nR,"KHR_node_hoverability",0,aC,"KHR_node_selectability",0,aT,"KHR_node_visibility",0,af,"KHR_texture_basisu",0,nN,"KHR_texture_transform",0,nL,"KHR_xmp_json_ld",0,nK,"LoadBoundingInfoFromPositionAccessor",0,tb,"MSFT_audio_emitter",0,oV,"MSFT_lod",0,o$,"MSFT_minecraftMesh",0,oj,"MSFT_sRGBFactors",0,oZ,"OpenPBRMaterialLoadingAdapter",()=>aN.OpenPBRMaterialLoadingAdapter,"PBRMaterialLoadingAdapter",()=>aB.PBRMaterialLoadingAdapter,"RegisterEXT_lights_area",0,sf,"RegisterEXT_lights_ies",0,t3,"RegisterEXT_lights_image_based",0,tB,"RegisterEXT_mesh_gpu_instancing",0,tG,"RegisterEXT_meshopt_compression",0,tz,"RegisterEXT_texture_avif",0,tJ,"RegisterEXT_texture_webp",0,tX,"RegisterExtrasAsMetadata",0,aI,"RegisterGLTF2Loader",0,tx,"RegisterKHR_animation_pointer",0,ip,"RegisterKHR_draco_mesh_compression",0,sn,"RegisterKHR_interactivity",0,ap,"RegisterKHR_lights",0,sr,"RegisterKHR_materials_anisotropy",0,sV,"RegisterKHR_materials_clearcoat",0,sE,"RegisterKHR_materials_coat",0,sI,"RegisterKHR_materials_diffuse_roughness",0,nF,"RegisterKHR_materials_diffuse_transmission",0,nc,"RegisterKHR_materials_dispersion",0,nw,"RegisterKHR_materials_emissive_strength",0,s$,"RegisterKHR_materials_fuzz",0,sZ,"RegisterKHR_materials_ior",0,s9,"RegisterKHR_materials_iridescence",0,sP,"RegisterKHR_materials_pbrSpecularGlossiness",0,sT,"RegisterKHR_materials_sheen",0,sj,"RegisterKHR_materials_specular",0,s2,"RegisterKHR_materials_transmission",0,nr,"RegisterKHR_materials_unlit",0,sv,"RegisterKHR_materials_variants",0,ne,"RegisterKHR_materials_volume",0,nm,"RegisterKHR_materials_volume_scatter",0,nb,"RegisterKHR_mesh_quantization",0,nO,"RegisterKHR_node_hoverability",0,aE,"RegisterKHR_node_selectability",0,ax,"RegisterKHR_node_visibility",0,ay,"RegisterKHR_texture_basisu",0,nk,"RegisterKHR_texture_transform",0,nD,"RegisterKHR_xmp_json_ld",0,nU,"RegisterMSFT_audio_emitter",0,oH,"RegisterMSFT_lod",0,oq,"RegisterMSFT_minecraftMesh",0,oY,"RegisterMSFT_sRGBFactors",0,o0,"SetInterpolationForKey",()=>tp.SetInterpolationForKey,"TransformNodeAnimationPropertyInfo",()=>tw.TransformNodeAnimationPropertyInfo,"TransmissionHelper",0,ns,"WeightAnimationPropertyInfo",()=>tw.WeightAnimationPropertyInfo,"_AddInteractivityObjectModel",0,ad,"addNewInteractivityFlowGraphMapping",0,at,"ensureTransmissionHelper",0,nn,"getAllSupportedNativeNodeTypes",0,aa,"getMappingForDeclaration",0,ae,"getMappingForFullOperationName",0,o8,"getQuaternion",()=>tw.getQuaternion,"getVector3",()=>tw.getVector3,"getWeights",()=>tw.getWeights,"gltfTypeToBabylonType",0,al,"registerGLTFExtension",0,td,"registeredGLTFExtensions",0,tc,"unregisterGLTFExtension",0,t_],13876);var aP=e.i(13876);e.s([],70277),e.i(70277),e.i(81738),e.i(9439),e.i(92438),e.s(["GLTFFileLoader",0,eo,"GLTFLoaderAnimationStartMode",0,g,"GLTFLoaderCoordinateSystemMode",0,f,"GLTFLoaderDefaultOptions",0,en,"GLTFLoaderState",0,y,"RegisterGLTFFileLoader",0,er],11518),e.i(11518),e.i(40765),e.s(["GLTF1",0,ts,"GLTF2",0,aP,"GLTFFileLoader",0,eo,"GLTFLoaderAnimationStartMode",0,g,"GLTFLoaderCoordinateSystemMode",0,f,"GLTFLoaderDefaultOptions",0,en,"GLTFLoaderState",0,y,"GLTFValidation",0,X,"RegisterGLTFFileLoader",0,er],80911)}]);