@flyfish-group/file-viewer3 1.0.14 → 1.0.15

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 (250) hide show
  1. package/README.md +8 -8
  2. package/dist/components/3MFLoader.js +1 -1
  3. package/dist/components/AMFLoader.js +1 -1
  4. package/dist/components/ArchiveViewer.js +293 -1
  5. package/dist/components/AudioViewer.js +1 -1
  6. package/dist/components/CadViewer.js +1 -1
  7. package/dist/components/CodeViewer.js +1 -1
  8. package/dist/components/ColladaLoader.js +1 -1
  9. package/dist/components/DrawingViewer.js +1 -1
  10. package/dist/components/EdaViewer.js +1 -1
  11. package/dist/components/EmailViewer.js +1 -1
  12. package/dist/components/EpubViewer.js +1 -1
  13. package/dist/components/FBXLoader.js +1 -1
  14. package/dist/components/GLTFLoader.js +1 -1
  15. package/dist/components/ImageViewer.js +1 -1
  16. package/dist/components/KMZLoader.js +1 -1
  17. package/dist/components/MarkdownViewer.js +1 -1
  18. package/dist/components/ModelViewer.js +1 -1
  19. package/dist/components/OBJLoader.js +1 -1
  20. package/dist/components/OfdViewer.js +1 -1
  21. package/dist/components/PCDLoader.js +1 -1
  22. package/dist/components/PLYLoader.js +1 -1
  23. package/dist/components/PptxRender.js +1 -1
  24. package/dist/components/STLLoader.js +1 -1
  25. package/dist/components/TDSLoader.js +1 -1
  26. package/dist/components/USDLoader.js +1 -1
  27. package/dist/components/UmdViewer.js +1 -1
  28. package/dist/components/VRMLLoader.js +1 -1
  29. package/dist/components/VTKLoader.js +1 -1
  30. package/dist/components/XYZLoader.js +1 -1
  31. package/dist/components/XlsxTable.js +1 -1
  32. package/dist/components/__vite-browser-external.js +1 -1
  33. package/dist/components/_plugin-vue_export-helper.js +1 -1
  34. package/dist/components/ar-SA-G6X2FPQ2.js +1 -1
  35. package/dist/components/arc.js +1 -1
  36. package/dist/components/architecture-7EHR7CIX.js +1 -1
  37. package/dist/components/architectureDiagram-3BPJPVTR.js +1 -1
  38. package/dist/components/archive.js +1 -1
  39. package/dist/components/asyncToGenerator.js +1 -1
  40. package/dist/components/audio.js +1 -1
  41. package/dist/components/az-AZ-76LH7QW2.js +1 -1
  42. package/dist/components/bash.js +1 -1
  43. package/dist/components/bg-BG-XCXSNQG7.js +1 -1
  44. package/dist/components/blockDiagram-GPEHLZMM.js +1 -1
  45. package/dist/components/bn-BD-2XOGV67Q.js +1 -1
  46. package/dist/components/c4Diagram-AAUBKEIU.js +1 -1
  47. package/dist/components/ca-ES-6MX7JW3Y.js +1 -1
  48. package/dist/components/cad.js +1 -1
  49. package/dist/components/cfb.js +1 -1
  50. package/dist/components/channel.js +1 -1
  51. package/dist/components/chunk-2J33WTMH.js +1 -1
  52. package/dist/components/chunk-3OPIFGDE.js +1 -1
  53. package/dist/components/chunk-4BX2VUAB.js +1 -1
  54. package/dist/components/chunk-55IACEB6.js +1 -1
  55. package/dist/components/chunk-5ZQYHXKU.js +1 -1
  56. package/dist/components/chunk-6U3AYISY.js +1 -1
  57. package/dist/components/chunk-727SXJPM.js +1 -1
  58. package/dist/components/chunk-AGHRB4JF.js +1 -1
  59. package/dist/components/chunk-AQP2D5EJ.js +1 -1
  60. package/dist/components/chunk-BSJP7CBP.js +1 -1
  61. package/dist/components/chunk-CSCIHK7Q.js +1 -1
  62. package/dist/components/chunk-FMBD7UC4.js +1 -1
  63. package/dist/components/chunk-K2UTITRG.js +1 -1
  64. package/dist/components/chunk-KSCS5N6A.js +1 -1
  65. package/dist/components/chunk-L5ZTLDWV.js +1 -1
  66. package/dist/components/chunk-LZXEDZCA.js +1 -1
  67. package/dist/components/chunk-ND2GUHAM.js +1 -1
  68. package/dist/components/chunk-NZK2D7GU.js +1 -1
  69. package/dist/components/chunk-O5CBEL6O.js +1 -1
  70. package/dist/components/chunk-QZHKN3VN.js +1 -1
  71. package/dist/components/chunk-SRAX5OIU.js +1 -1
  72. package/dist/components/chunk-WU5MYG2G.js +1 -1
  73. package/dist/components/chunk-XPW4576I.js +1 -1
  74. package/dist/components/chunk-Z3N5DIM6.js +1 -1
  75. package/dist/components/chunk-ZUYEQ4TG.js +1 -1
  76. package/dist/components/chunk.js +1 -1
  77. package/dist/components/classDiagram-4FO5ZUOK.js +1 -1
  78. package/dist/components/classDiagram-v2-Q7XG4LA2.js +1 -1
  79. package/dist/components/core.js +1 -1
  80. package/dist/components/cose-bilkent-S5V4N54A.js +1 -1
  81. package/dist/components/cpp.js +1 -1
  82. package/dist/components/cs-CZ-2BRQDIVT.js +1 -1
  83. package/dist/components/csharp.js +1 -1
  84. package/dist/components/css.js +1 -1
  85. package/dist/components/cytoscape.esm.js +1 -1
  86. package/dist/components/da-DK-5WZEPLOC.js +1 -1
  87. package/dist/components/dagre-BM42HDAG.js +1 -1
  88. package/dist/components/dagre.js +1 -1
  89. package/dist/components/de-DE-XR44H4JA.js +1 -1
  90. package/dist/components/defaultLocale.js +1 -1
  91. package/dist/components/defineProperty.js +1 -1
  92. package/dist/components/diagram-2AECGRRQ.js +1 -1
  93. package/dist/components/diagram-5GNKFQAL.js +1 -1
  94. package/dist/components/diagram-KO2AKTUF.js +1 -1
  95. package/dist/components/diagram-LMA3HP47.js +1 -1
  96. package/dist/components/diagram-OG6HWLK6.js +1 -1
  97. package/dist/components/diff.js +1 -1
  98. package/dist/components/directory-open-01563666.js +1 -1
  99. package/dist/components/directory-open-4ed118d0.js +1 -1
  100. package/dist/components/dist.js +1 -1
  101. package/dist/components/dist2.js +1 -1
  102. package/dist/components/dist3.js +1 -1
  103. package/dist/components/docx-preview.js +1 -1
  104. package/dist/components/drawing.js +1 -1
  105. package/dist/components/ebook.js +1 -1
  106. package/dist/components/eda.js +1 -1
  107. package/dist/components/el-GR-BZB4AONW.js +1 -1
  108. package/dist/components/email.js +1 -1
  109. package/dist/components/en-B4ZKOASM.js +1 -1
  110. package/dist/components/erDiagram-TEJ5UH35.js +1 -1
  111. package/dist/components/es-ES-U4NZUMDT.js +1 -1
  112. package/dist/components/eu-ES-A7QVB2H4.js +1 -1
  113. package/dist/components/eventmodeling-FCH6USID.js +1 -1
  114. package/dist/components/fa-IR-HGAKTJCU.js +1 -1
  115. package/dist/components/fflate.module.js +1 -1
  116. package/dist/components/fi-FI-Z5N7JZ37.js +1 -1
  117. package/dist/components/file-open-002ab408.js +1 -1
  118. package/dist/components/file-open-7c801643.js +1 -1
  119. package/dist/components/file-save-3189631c.js +1 -1
  120. package/dist/components/file-save-745eba88.js +1 -1
  121. package/dist/components/flowDiagram-I6XJVG4X.js +1 -1
  122. package/dist/components/fr-FR-RHASNOE6.js +1 -1
  123. package/dist/components/ganttDiagram-6RSMTGT7.js +1 -1
  124. package/dist/components/gitGraph-WXDBUCRP.js +1 -1
  125. package/dist/components/gitGraphDiagram-PVQCEYII.js +1 -1
  126. package/dist/components/gl-ES-HMX3MZ6V.js +1 -1
  127. package/dist/components/go.js +1 -1
  128. package/dist/components/graphlib.js +1 -1
  129. package/dist/components/he-IL-6SHJWFNN.js +1 -1
  130. package/dist/components/hi-IN-IWLTKZ5I.js +1 -1
  131. package/dist/components/hu-HU-A5ZG7DT2.js +1 -1
  132. package/dist/components/id-ID-SAP4L64H.js +1 -1
  133. package/dist/components/image-GAAHSSAO.js +1 -1
  134. package/dist/components/image-blob-reduce.esm.js +1 -1
  135. package/dist/components/image.js +1 -1
  136. package/dist/components/info-J43DQDTF.js +1 -1
  137. package/dist/components/infoDiagram-5YYISTIA.js +1 -1
  138. package/dist/components/ini.js +1 -1
  139. package/dist/components/init.js +1 -1
  140. package/dist/components/ishikawaDiagram-YF4QCWOH.js +1 -1
  141. package/dist/components/it-IT-JPQ66NNP.js +1 -1
  142. package/dist/components/ja-JP-DBVTYXUO.js +1 -1
  143. package/dist/components/java.js +1 -1
  144. package/dist/components/javascript.js +1 -1
  145. package/dist/components/journeyDiagram-JHISSGLW.js +1 -1
  146. package/dist/components/json.js +1 -1
  147. package/dist/components/jszip.min.js +1 -1
  148. package/dist/components/kaa-6HZHGXH3.js +1 -1
  149. package/dist/components/kab-KAB-ZGHBKWFO.js +1 -1
  150. package/dist/components/kanban-definition-UN3LZRKU.js +1 -1
  151. package/dist/components/katex.js +1 -1
  152. package/dist/components/kk-KZ-P5N5QNE5.js +1 -1
  153. package/dist/components/km-KH-HSX4SM5Z.js +1 -1
  154. package/dist/components/ko-KR-MTYHY66A.js +1 -1
  155. package/dist/components/ku-TR-6OUDTVRD.js +1 -1
  156. package/dist/components/lib.js +1 -1
  157. package/dist/components/libarchive.js +1 -1
  158. package/dist/components/linear.js +1 -1
  159. package/dist/components/lt-LT-XHIRWOB4.js +1 -1
  160. package/dist/components/lv-LV-5QDEKY6T.js +1 -1
  161. package/dist/components/markdown.js +1 -1
  162. package/dist/components/md.js +1 -1
  163. package/dist/components/mermaid-parser.core.js +1 -1
  164. package/dist/components/mindmap-definition-RKZ34NQL.js +1 -1
  165. package/dist/components/model.js +1 -1
  166. package/dist/components/mp4.js +1 -1
  167. package/dist/components/mr-IN-CRQNXWMA.js +1 -1
  168. package/dist/components/my-MM-5M5IBNSE.js +1 -1
  169. package/dist/components/nb-NO-T6EIAALU.js +1 -1
  170. package/dist/components/nestedRender.js +1 -1
  171. package/dist/components/nl-NL-IS3SIHDZ.js +1 -1
  172. package/dist/components/nn-NO-6E72VCQL.js +1 -1
  173. package/dist/components/objectSpread2.js +1 -1
  174. package/dist/components/objectWithoutProperties.js +1 -1
  175. package/dist/components/oc-FR-POXYY2M6.js +1 -1
  176. package/dist/components/ofd.js +1 -1
  177. package/dist/components/ofd2.js +1 -1
  178. package/dist/components/ordinal.js +1 -1
  179. package/dist/components/pa-IN-N4M65BXN.js +1 -1
  180. package/dist/components/packet-YPE3B663.js +1 -1
  181. package/dist/components/pdf.js +1 -1
  182. package/dist/components/percentages-BXMCSKIN.js +1 -1
  183. package/dist/components/php.js +1 -1
  184. package/dist/components/pica.js +1 -1
  185. package/dist/components/pie-LRSECV5Y.js +1 -1
  186. package/dist/components/pie.js +1 -1
  187. package/dist/components/pieDiagram-4H26LBE5.js +1 -1
  188. package/dist/components/pl-PL-T2D74RX3.js +1 -1
  189. package/dist/components/postal-mime.js +1 -1
  190. package/dist/components/pptx.js +1 -1
  191. package/dist/components/prod.js +1 -1
  192. package/dist/components/pt-BR-5N22H2LF.js +1 -1
  193. package/dist/components/pt-PT-UZXXM6DQ.js +1 -1
  194. package/dist/components/python.js +1 -1
  195. package/dist/components/quadrantDiagram-W4KKPZXB.js +1 -1
  196. package/dist/components/radar-GUYGQ44K.js +1 -1
  197. package/dist/components/requirementDiagram-4Y6WPE33.js +1 -1
  198. package/dist/components/ro-RO-JPDTUUEW.js +1 -1
  199. package/dist/components/rough.esm.js +1 -1
  200. package/dist/components/roundRect.js +1 -1
  201. package/dist/components/ru-RU-B4JR7IUQ.js +1 -1
  202. package/dist/components/rust.js +1 -1
  203. package/dist/components/sankeyDiagram-5OEKKPKP.js +1 -1
  204. package/dist/components/sequenceDiagram-3UESZ5HK.js +1 -1
  205. package/dist/components/shared.js +1 -1
  206. package/dist/components/shared2.js +1 -1
  207. package/dist/components/si-LK-N5RQ5JYF.js +1 -1
  208. package/dist/components/sk-SK-C5VTKIMK.js +1 -1
  209. package/dist/components/sl-SI-NN7IZMDC.js +1 -1
  210. package/dist/components/sql.js +1 -1
  211. package/dist/components/src.js +1 -1
  212. package/dist/components/src2.js +1 -1
  213. package/dist/components/stateDiagram-AJRCARHV.js +1 -1
  214. package/dist/components/stateDiagram-v2-BHNVJYJU.js +1 -1
  215. package/dist/components/subset-shared.chunk.js +1 -1
  216. package/dist/components/subset-worker.chunk.js +1 -1
  217. package/dist/components/sv-SE-XGPEYMSR.js +1 -1
  218. package/dist/components/ta-IN-2NMHFXQM.js +1 -1
  219. package/dist/components/text.js +1 -1
  220. package/dist/components/th-TH-HPSO5L25.js +1 -1
  221. package/dist/components/three.module.js +1 -1
  222. package/dist/components/time.js +1 -1
  223. package/dist/components/timeline-definition-PNZ67QCA.js +1 -1
  224. package/dist/components/tr-TR-DEFEU3FU.js +1 -1
  225. package/dist/components/treeView-BLDUP644.js +1 -1
  226. package/dist/components/treemap-LRROVOQU.js +1 -1
  227. package/dist/components/typescript.js +1 -1
  228. package/dist/components/uk-UA-QMV73CPH.js +1 -1
  229. package/dist/components/umd.js +1 -1
  230. package/dist/components/use.js +1 -1
  231. package/dist/components/util.js +1 -1
  232. package/dist/components/vennDiagram-CIIHVFJN.js +1 -1
  233. package/dist/components/vi-VN-M7AON7JQ.js +1 -1
  234. package/dist/components/wardley-L42UT6IY.js +1 -1
  235. package/dist/components/wardleyDiagram-YWT4CUSO.js +1 -1
  236. package/dist/components/word.js +1 -1
  237. package/dist/components/worker-ref.js +1 -1
  238. package/dist/components/wrapAsyncGenerator.js +1 -1
  239. package/dist/components/xlsx.js +1 -1
  240. package/dist/components/xml.js +1 -1
  241. package/dist/components/xychartDiagram-2RQKCTM6.js +1 -1
  242. package/dist/components/yaml.js +1 -1
  243. package/dist/components/zh-CN-LNUGB5OW.js +1 -1
  244. package/dist/components/zh-HK-E62DVLB3.js +1 -1
  245. package/dist/components/zh-TW-RAJ6MFWO.js +1 -1
  246. package/dist/file-viewer3.css +1 -1
  247. package/dist/index.mjs +1 -1
  248. package/package.json +1 -1
  249. package/dist/components/worker-bundle.js +0 -1
  250. package/dist/worker/pptx.worker.js +0 -1
@@ -1 +1 @@
1
- const d4=a1;(function(a4,a5){const d3=a1,a6=a4();while(!![]){try{const a7=-parseInt(d3(0xc1))/0x1+parseInt(d3(0x128))/0x2*(-parseInt(d3(0x255))/0x3)+parseInt(d3(0x42c))/0x4+-parseInt(d3(0x1e7))/0x5+parseInt(d3(0x3cf))/0x6*(-parseInt(d3(0x31a))/0x7)+parseInt(d3(0x33d))/0x8*(parseInt(d3(0xa5))/0x9)+parseInt(d3(0x1ef))/0xa;if(a7===a5)break;else a6['push'](a6['shift']());}catch(a8){a6['push'](a6['shift']());}}}(a0,0x99665));import{n as a2,t}from'./objectSpread2.js';import{n,t as a3}from'./asyncToGenerator.js';a2();var i,a,o,s,c,l,u,d,f,p={'LEFT':0x0,'MIDDLE':0x1,'RIGHT':0x2,'ROTATE':0x0,'DOLLY':0x1,'PAN':0x2},m={'ROTATE':0x0,'PAN':0x1,'DOLLY_PAN':0x2,'DOLLY_ROTATE':0x3},h=d4(0x24b),g=0x3e8,_=0x3e9,v=0x3ea,y=0x3eb,b=0x3ec,x=0x3ed,S=0x3ee,C=0x3ef,w=0x3f0,T=0x3f1,E=0x3f2,D=0x3f3,ee=0x3f4,O=0x3f5,k=0x3f6,A=0x3f7,te=0x3f8,j=0x3f9,ne=0x3fa,re=0x3fc,M=0x8c3e,ie=0x8c3b,ae=0x3fd,N=0x3fe,oe=0x3ff,se=0x402,ce=0x403,le=0x404,ue=0x405,P=0x406,de=0x407,fe=0x409,pe=0x83f0,me=0x83f1,he=0x83f2,ge=0x83f3,_e=0x8c00,ve=0x8c01,ye=0x8c02,be=0x8c03,xe=0x8d64,Se=0x9274,Ce=0x9278,we=0x9270,Te=0x9271,Ee=0x9272,De=0x9273,Oe=0x93b0,ke=0x93b1,Ae=0x93b2,je=0x93b3,F=0x93b4,Me=0x93b5,Ne=0x93b6,Pe=0x93b7,I=0x93b8,Fe=0x93b9,L=0x93ba,R=0x93bb,Ie=0x93bc,Le=0x93bd,Re=0x8e8c,ze=0x8e8e,Be=0x8e8f,Ve=0x8dbb,He=0x8dbc,Ue=0x8dbd,We=0x8dbe,Ge=0x899,Ke=0x89a,qe=0x8fc,Je=0x8fd,Ye=0x8fe,Xe=0x8ff,Ze=0x960,Qe=0x961,$e=0x962,et=0x9c4,tt=0x9c5,nt=0xc80,rt='srgb',it=d4(0x582),at='linear',ot=d4(0x472),st=0x1e00,ct=0x88e4,lt=0x7d0;function ut(a4){for(let a5=a4['length']-0x1;a5>=0x0;--a5)if(a4[a5]>=0xffff)return!0x0;return!0x1;}function dt(a4){return ArrayBuffer['isView'](a4)&&!(a4 instanceof DataView);}function ft(a4){const d5=d4;return document[d5(0x253)]('http://www.w3.org/1999/xhtml',a4);}function pt(){let a4=ft('canvas');return a4['style']['display']='block',a4;}var mt={},ht=null;function gt(...a4){const d6=d4;let a5='THREE.'+a4['shift']();ht?ht('log',a5,...a4):console[d6(0x281)](a5,...a4);}function _t(a4){const d7=d4;let a5=a4[0x0];if(typeof a5=='string'&&a5['startsWith']('TSL:')){let a6=a4[0x1];a6&&a6['isStackTrace']?a4[0x0]+='\x20'+a6[d7(0x308)]():a4[0x1]='Stack\x20trace\x20not\x20available.\x20Enable\x20\x22THREE.Node.captureStackTrace\x22\x20to\x20capture\x20stack\x20traces.';}return a4;}function z(...a4){a4=_t(a4);let a5='THREE.'+a4['shift']();if(ht)ht('warn',a5,...a4);else{let a6=a4[0x0];a6&&a6['isStackTrace']?console['warn'](a6['getError'](a5)):console['warn'](a5,...a4);}}function B(...a4){const d8=d4;a4=_t(a4);let a5=d8(0x7c)+a4[d8(0x58a)]();if(ht)ht(d8(0x2d8),a5,...a4);else{let a6=a4[0x0];a6&&a6[d8(0x244)]?console['error'](a6['getError'](a5)):console[d8(0x2d8)](a5,...a4);}}function vt(...a4){const d9=d4;let a5=a4[d9(0x558)]('\x20');a5 in mt||(mt[a5]=!0x0,z(...a4));}function yt(a4,a5,a6){return new Promise(function(a7,a8){function a9(){const db=a1;switch(a4['clientWaitSync'](a5,a4[db(0x19b)],0x0)){case a4['WAIT_FAILED']:a8();break;case a4['TIMEOUT_EXPIRED']:setTimeout(a9,a6);break;default:a7();}}setTimeout(a9,a6);});}var bt={0x0:0x1,0x2:0x6,0x4:0x7,0x3:0x5,0x1:0x0,0x6:0x2,0x7:0x4,0x5:0x3},xt=class{['addEventListener'](a4,a5){this['_listeners']===void 0x0&&(this['_listeners']={});let a6=this['_listeners'];a6[a4]===void 0x0&&(a6[a4]=[]),a6[a4]['indexOf'](a5)===-0x1&&a6[a4]['push'](a5);}[d4(0x2af)](a4,a5){const df=d4;let a6=this['_listeners'];return a6===void 0x0?!0x1:a6[a4]!==void 0x0&&a6[a4][df(0x496)](a5)!==-0x1;}['removeEventListener'](a4,a5){let a6=this['_listeners'];if(a6===void 0x0)return;let a7=a6[a4];if(a7!==void 0x0){let a8=a7['indexOf'](a5);a8!==-0x1&&a7['splice'](a8,0x1);}}['dispatchEvent'](a4){const dg=d4;let a5=this['_listeners'];if(a5===void 0x0)return;let a6=a5[a4['type']];if(a6!==void 0x0){a4['target']=this;let a7=a6['slice'](0x0);for(let a8=0x0,a9=a7['length'];a8<a9;a8++)a7[a8]['call'](this,a4);a4[dg(0x33b)]=null;}}},St='00.01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f.10.11.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f.20.21.22.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f.30.31.32.33.34.35.36.37.38.39.3a.3b.3c.3d.3e.3f.40.41.42.43.44.45.46.47.48.49.4a.4b.4c.4d.4e.4f.50.51.52.53.54.55.56.57.58.59.5a.5b.5c.5d.5e.5f.60.61.62.63.64.65.66.67.68.69.6a.6b.6c.6d.6e.6f.70.71.72.73.74.75.76.77.78.79.7a.7b.7c.7d.7e.7f.80.81.82.83.84.85.86.87.88.89.8a.8b.8c.8d.8e.8f.90.91.92.93.94.95.96.97.98.99.9a.9b.9c.9d.9e.9f.a0.a1.a2.a3.a4.a5.a6.a7.a8.a9.aa.ab.ac.ad.ae.af.b0.b1.b2.b3.b4.b5.b6.b7.b8.b9.ba.bb.bc.bd.be.bf.c0.c1.c2.c3.c4.c5.c6.c7.c8.c9.ca.cb.cc.cd.ce.cf.d0.d1.d2.d3.d4.d5.d6.d7.d8.d9.da.db.dc.dd.de.df.e0.e1.e2.e3.e4.e5.e6.e7.e8.e9.ea.eb.ec.ed.ee.ef.f0.f1.f2.f3.f4.f5.f6.f7.f8.f9.fa.fb.fc.fd.fe.ff'['split']('.'),Ct=0x12d687,wt=Math['PI']/0xb4,Tt=0xb4/Math['PI'];function Et(){const dh=d4;let a4=Math['random']()*0xffffffff|0x0,a5=Math[dh(0x2e1)]()*0xffffffff|0x0,a6=Math['random']()*0xffffffff|0x0,a7=Math['random']()*0xffffffff|0x0;return(St[a4&0xff]+St[a4>>0x8&0xff]+St[a4>>0x10&0xff]+St[a4>>0x18&0xff]+'-'+St[a5&0xff]+St[a5>>0x8&0xff]+'-'+St[a5>>0x10&0xf|0x40]+St[a5>>0x18&0xff]+'-'+St[a6&0x3f|0x80]+St[a6>>0x8&0xff]+'-'+St[a6>>0x10&0xff]+St[a6>>0x18&0xff]+St[a7&0xff]+St[a7>>0x8&0xff]+St[a7>>0x10&0xff]+St[a7>>0x18&0xff])['toLowerCase']();}function V(a4,a5,a6){const dj=d4;return Math[dj(0x360)](a5,Math['min'](a6,a4));}function Dt(a4,a5){return(a4%a5+a5)%a5;}function Ot(a4,a5,a6,a7,a8){return a7+(a4-a5)*(a8-a7)/(a6-a5);}function kt(a4,a5,a6){return a4===a5?0x0:(a6-a4)/(a5-a4);}function At(a4,a5,a6){return(0x1-a6)*a4+a6*a5;}function jt(a4,a5,a6,a7){return At(a4,a5,0x1-Math['exp'](-a6*a7));}function Mt(a4,a5=0x1){return a5-Math['abs'](Dt(a4,a5*0x2)-a5);}function Nt(a4,a5,a6){return a4<=a5?0x0:a4>=a6?0x1:(a4=(a4-a5)/(a6-a5),a4*a4*(0x3-0x2*a4));}function Pt(a4,a5,a6){return a4<=a5?0x0:a4>=a6?0x1:(a4=(a4-a5)/(a6-a5),a4*a4*a4*(a4*(a4*0x6-0xf)+0xa));}function Ft(a4,a5){return a4+Math['floor'](Math['random']()*(a5-a4+0x1));}function It(a4,a5){const dk=d4;return a4+Math[dk(0x2e1)]()*(a5-a4);}function Lt(a4){return a4*(0.5-Math['random']());}function Rt(a4){const dm=d4;a4!==void 0x0&&(Ct=a4);let a5=Ct+=0x6d2b79f5;return a5=Math[dm(0x4f3)](a5^a5>>>0xf,a5|0x1),a5^=a5+Math[dm(0x4f3)](a5^a5>>>0x7,a5|0x3d),((a5^a5>>>0xe)>>>0x0)/0x100000000;}function zt(a4){return a4*wt;}function Bt(a4){return a4*Tt;}function a1(a,b){a=a-0x76;const c=a0();let d=c[a];return d;}function Vt(a4){return(a4&a4-0x1)==0x0&&a4!==0x0;}function Ht(a4){return Math['pow'](0x2,Math['ceil'](Math['log'](a4)/Math['LN2']));}function Ut(a4){const dp=d4;return Math[dp(0x275)](0x2,Math['floor'](Math['log'](a4)/Math['LN2']));}function Wt(a4,a5,a6,a7,a8){const dq=d4;let a9=Math['cos'],ab=Math['sin'],af=a9(a6/0x2),ag=ab(a6/0x2),ah=a9((a5+a7)/0x2),aj=ab((a5+a7)/0x2),ak=a9((a5-a7)/0x2),am=ab((a5-a7)/0x2),ap=a9((a7-a5)/0x2),aq=ab((a7-a5)/0x2);switch(a8){case'XYX':a4[dq(0x479)](af*aj,ag*ak,ag*am,af*ah);break;case'YZY':a4['set'](ag*am,af*aj,ag*ak,af*ah);break;case'ZXZ':a4['set'](ag*ak,ag*am,af*aj,af*ah);break;case dq(0x48a):a4['set'](af*aj,ag*aq,ag*ap,af*ah);break;case dq(0x56c):a4['set'](ag*ap,af*aj,ag*aq,af*ah);break;case dq(0x3c3):a4['set'](ag*aq,ag*ap,af*aj,af*ah);break;default:z('MathUtils:\x20.setQuaternionFromProperEuler()\x20encountered\x20an\x20unknown\x20order:\x20'+a8);}}function Gt(a4,a5){const dv=d4;switch(a5['constructor']){case Float32Array:return a4;case Uint32Array:return a4/0xffffffff;case Uint16Array:return a4/0xffff;case Uint8Array:return a4/0xff;case Int32Array:return Math['max'](a4/0x7fffffff,-0x1);case Int16Array:return Math['max'](a4/0x7fff,-0x1);case Int8Array:return Math[dv(0x360)](a4/0x7f,-0x1);default:throw Error(dv(0x4e7));}}function H(a4,a5){const dw=d4;switch(a5['constructor']){case Float32Array:return a4;case Uint32Array:return Math['round'](a4*0xffffffff);case Uint16Array:return Math['round'](a4*0xffff);case Uint8Array:return Math['round'](a4*0xff);case Int32Array:return Math[dw(0x43b)](a4*0x7fffffff);case Int16Array:return Math['round'](a4*0x7fff);case Int8Array:return Math['round'](a4*0x7f);default:throw Error(dw(0x4e7));}}var Kt={'DEG2RAD':wt,'RAD2DEG':Tt,'generateUUID':Et,'clamp':V,'euclideanModulo':Dt,'mapLinear':Ot,'inverseLerp':kt,'lerp':At,'damp':jt,'pingpong':Mt,'smoothstep':Nt,'smootherstep':Pt,'randInt':Ft,'randFloat':It,'randFloatSpread':Lt,'seededRandom':Rt,'degToRad':zt,'radToDeg':Bt,'isPowerOfTwo':Vt,'ceilPowerOfTwo':Ht,'floorPowerOfTwo':Ut,'setQuaternionFromProperEuler':Wt,'normalize':H,'denormalize':Gt};u=Symbol['iterator'];var U=class{constructor(a4=0x0,a5=0x0){this['x']=a4,this['y']=a5;}get['width'](){return this['x'];}set['width'](a4){this['x']=a4;}get[d4(0x45f)](){return this['y'];}set['height'](a4){this['y']=a4;}[d4(0x479)](a4,a5){return this['x']=a4,this['y']=a5,this;}['setScalar'](a4){return this['x']=a4,this['y']=a4,this;}[d4(0x419)](a4){return this['x']=a4,this;}['setY'](a4){return this['y']=a4,this;}['setComponent'](a4,a5){const dx=d4;switch(a4){case 0x0:this['x']=a5;break;case 0x1:this['y']=a5;break;default:throw Error(dx(0x8e)+a4);}return this;}['getComponent'](a4){const dy=d4;switch(a4){case 0x0:return this['x'];case 0x1:return this['y'];default:throw Error(dy(0x8e)+a4);}}['clone'](){const dz=d4;return new this[(dz(0x27b))](this['x'],this['y']);}['copy'](a4){return this['x']=a4['x'],this['y']=a4['y'],this;}['add'](a4){return this['x']+=a4['x'],this['y']+=a4['y'],this;}['addScalar'](a4){return this['x']+=a4,this['y']+=a4,this;}['addVectors'](a4,a5){return this['x']=a4['x']+a5['x'],this['y']=a4['y']+a5['y'],this;}['addScaledVector'](a4,a5){return this['x']+=a4['x']*a5,this['y']+=a4['y']*a5,this;}['sub'](a4){return this['x']-=a4['x'],this['y']-=a4['y'],this;}[d4(0x56e)](a4){return this['x']-=a4,this['y']-=a4,this;}['subVectors'](a4,a5){return this['x']=a4['x']-a5['x'],this['y']=a4['y']-a5['y'],this;}['multiply'](a4){return this['x']*=a4['x'],this['y']*=a4['y'],this;}['multiplyScalar'](a4){return this['x']*=a4,this['y']*=a4,this;}['divide'](a4){return this['x']/=a4['x'],this['y']/=a4['y'],this;}['divideScalar'](a4){return this['multiplyScalar'](0x1/a4);}['applyMatrix3'](a4){let a5=this['x'],a6=this['y'],a7=a4['elements'];return this['x']=a7[0x0]*a5+a7[0x3]*a6+a7[0x6],this['y']=a7[0x1]*a5+a7[0x4]*a6+a7[0x7],this;}['min'](a4){return this['x']=Math['min'](this['x'],a4['x']),this['y']=Math['min'](this['y'],a4['y']),this;}['max'](a4){const dA=d4;return this['x']=Math['max'](this['x'],a4['x']),this['y']=Math[dA(0x360)](this['y'],a4['y']),this;}['clamp'](a4,a5){return this['x']=V(this['x'],a4['x'],a5['x']),this['y']=V(this['y'],a4['y'],a5['y']),this;}['clampScalar'](a4,a5){return this['x']=V(this['x'],a4,a5),this['y']=V(this['y'],a4,a5),this;}['clampLength'](a4,a5){let a6=this['length']();return this['divideScalar'](a6||0x1)['multiplyScalar'](V(a6,a4,a5));}[d4(0x4ec)](){const dB=d4;return this['x']=Math['floor'](this['x']),this['y']=Math[dB(0x4ec)](this['y']),this;}[d4(0x456)](){const dC=d4;return this['x']=Math['ceil'](this['x']),this['y']=Math[dC(0x456)](this['y']),this;}['round'](){return this['x']=Math['round'](this['x']),this['y']=Math['round'](this['y']),this;}['roundToZero'](){const dD=d4;return this['x']=Math['trunc'](this['x']),this['y']=Math[dD(0x4bd)](this['y']),this;}['negate'](){return this['x']=-this['x'],this['y']=-this['y'],this;}['dot'](a4){return this['x']*a4['x']+this['y']*a4['y'];}['cross'](a4){return this['x']*a4['y']-this['y']*a4['x'];}['lengthSq'](){return this['x']*this['x']+this['y']*this['y'];}[d4(0x27a)](){return Math['sqrt'](this['x']*this['x']+this['y']*this['y']);}['manhattanLength'](){const dE=d4;return Math[dE(0x553)](this['x'])+Math[dE(0x553)](this['y']);}['normalize'](){const dF=d4;return this['divideScalar'](this[dF(0x27a)]()||0x1);}['angle'](){return Math['atan2'](-this['y'],-this['x'])+Math['PI'];}['angleTo'](a4){const dG=d4;let a5=Math['sqrt'](this['lengthSq']()*a4['lengthSq']());if(a5===0x0)return Math['PI']/0x2;let a6=this[dG(0x465)](a4)/a5;return Math['acos'](V(a6,-0x1,0x1));}[d4(0xe2)](a4){return Math['sqrt'](this['distanceToSquared'](a4));}['distanceToSquared'](a4){let a5=this['x']-a4['x'],a6=this['y']-a4['y'];return a5*a5+a6*a6;}['manhattanDistanceTo'](a4){return Math['abs'](this['x']-a4['x'])+Math['abs'](this['y']-a4['y']);}['setLength'](a4){return this['normalize']()['multiplyScalar'](a4);}['lerp'](a4,a5){return this['x']+=(a4['x']-this['x'])*a5,this['y']+=(a4['y']-this['y'])*a5,this;}['lerpVectors'](a4,a5,a6){return this['x']=a4['x']+(a5['x']-a4['x'])*a6,this['y']=a4['y']+(a5['y']-a4['y'])*a6,this;}['equals'](a4){return a4['x']===this['x']&&a4['y']===this['y'];}['fromArray'](a4,a5=0x0){return this['x']=a4[a5],this['y']=a4[a5+0x1],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['x'],a4[a5+0x1]=this['y'],a4;}['fromBufferAttribute'](a4,a5){const dH=d4;return this['x']=a4['getX'](a5),this['y']=a4[dH(0x2c1)](a5),this;}['rotateAround'](a4,a5){let a6=Math['cos'](a5),a7=Math['sin'](a5),a8=this['x']-a4['x'],a9=this['y']-a4['y'];return this['x']=a8*a6-a9*a7+a4['x'],this['y']=a8*a7+a9*a6+a4['y'],this;}['random'](){return this['x']=Math['random'](),this['y']=Math['random'](),this;}*[u](){yield this['x'],yield this['y'];}};i=U,i['prototype'][d4(0xc4)]=!0x0;var qt=class{constructor(a4=0x0,a5=0x0,a6=0x0,a7=0x1){this['isQuaternion']=!0x0,this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_w']=a7;}static['slerpFlat'](a4,a5,a6,a7,a8,a9,ab){const dI=d4;let af=a6[a7+0x0],ag=a6[a7+0x1],ah=a6[a7+0x2],aj=a6[a7+0x3],ak=a8[a9+0x0],am=a8[a9+0x1],ap=a8[a9+0x2],aq=a8[a9+0x3];if(aj!==aq||af!==ak||ag!==am||ah!==ap){let av=af*ak+ag*am+ah*ap+aj*aq;av<0x0&&(ak=-ak,am=-am,ap=-ap,aq=-aq,av=-av);let aw=0x1-ab;if(av<0.9995){let ax=Math['acos'](av),ay=Math[dI(0x8a)](ax);aw=Math['sin'](aw*ax)/ay,ab=Math['sin'](ab*ax)/ay,af=af*aw+ak*ab,ag=ag*aw+am*ab,ah=ah*aw+ap*ab,aj=aj*aw+aq*ab;}else{af=af*aw+ak*ab,ag=ag*aw+am*ab,ah=ah*aw+ap*ab,aj=aj*aw+aq*ab;let az=0x1/Math['sqrt'](af*af+ag*ag+ah*ah+aj*aj);af*=az,ag*=az,ah*=az,aj*=az;}}a4[a5]=af,a4[a5+0x1]=ag,a4[a5+0x2]=ah,a4[a5+0x3]=aj;}static['multiplyQuaternionsFlat'](a4,a5,a6,a7,a8,a9){let ab=a6[a7],af=a6[a7+0x1],ag=a6[a7+0x2],ah=a6[a7+0x3],aj=a8[a9],ak=a8[a9+0x1],am=a8[a9+0x2],ap=a8[a9+0x3];return a4[a5]=ab*ap+ah*aj+af*am-ag*ak,a4[a5+0x1]=af*ap+ah*ak+ag*aj-ab*am,a4[a5+0x2]=ag*ap+ah*am+ab*ak-af*aj,a4[a5+0x3]=ah*ap-ab*aj-af*ak-ag*am,a4;}get['x'](){return this['_x'];}set['x'](a4){this['_x']=a4,this['_onChangeCallback']();}get['y'](){return this['_y'];}set['y'](a4){this['_y']=a4,this['_onChangeCallback']();}get['z'](){return this['_z'];}set['z'](a4){this['_z']=a4,this['_onChangeCallback']();}get['w'](){return this['_w'];}set['w'](a4){this['_w']=a4,this['_onChangeCallback']();}['set'](a4,a5,a6,a7){return this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_w']=a7,this['_onChangeCallback'](),this;}['clone'](){return new this['constructor'](this['_x'],this['_y'],this['_z'],this['_w']);}['copy'](a4){return this['_x']=a4['x'],this['_y']=a4['y'],this['_z']=a4['z'],this['_w']=a4['w'],this['_onChangeCallback'](),this;}['setFromEuler'](a4,a5=!0x0){const dJ=d4;let a6=a4['_x'],a7=a4['_y'],a8=a4['_z'],a9=a4['_order'],ab=Math['cos'],af=Math['sin'],ag=ab(a6/0x2),ah=ab(a7/0x2),aj=ab(a8/0x2),ak=af(a6/0x2),am=af(a7/0x2),ap=af(a8/0x2);switch(a9){case dJ(0x2f4):this['_x']=ak*ah*aj+ag*am*ap,this['_y']=ag*am*aj-ak*ah*ap,this['_z']=ag*ah*ap+ak*am*aj,this['_w']=ag*ah*aj-ak*am*ap;break;case'YXZ':this['_x']=ak*ah*aj+ag*am*ap,this['_y']=ag*am*aj-ak*ah*ap,this['_z']=ag*ah*ap-ak*am*aj,this['_w']=ag*ah*aj+ak*am*ap;break;case dJ(0x7b):this['_x']=ak*ah*aj-ag*am*ap,this['_y']=ag*am*aj+ak*ah*ap,this['_z']=ag*ah*ap+ak*am*aj,this['_w']=ag*ah*aj-ak*am*ap;break;case'ZYX':this['_x']=ak*ah*aj-ag*am*ap,this['_y']=ag*am*aj+ak*ah*ap,this['_z']=ag*ah*ap-ak*am*aj,this['_w']=ag*ah*aj+ak*am*ap;break;case'YZX':this['_x']=ak*ah*aj+ag*am*ap,this['_y']=ag*am*aj+ak*ah*ap,this['_z']=ag*ah*ap-ak*am*aj,this['_w']=ag*ah*aj-ak*am*ap;break;case'XZY':this['_x']=ak*ah*aj-ag*am*ap,this['_y']=ag*am*aj-ak*ah*ap,this['_z']=ag*ah*ap+ak*am*aj,this['_w']=ag*ah*aj+ak*am*ap;break;default:z('Quaternion:\x20.setFromEuler()\x20encountered\x20an\x20unknown\x20order:\x20'+a9);}return a5===!0x0&&this[dJ(0x212)](),this;}[d4(0x46b)](a4,a5){const dK=d4;let a6=a5/0x2,a7=Math[dK(0x8a)](a6);return this['_x']=a4['x']*a7,this['_y']=a4['y']*a7,this['_z']=a4['z']*a7,this['_w']=Math[dK(0x4ea)](a6),this['_onChangeCallback'](),this;}['setFromRotationMatrix'](a4){const dL=d4;let a5=a4[dL(0xdf)],a6=a5[0x0],a7=a5[0x4],a8=a5[0x8],a9=a5[0x1],ab=a5[0x5],af=a5[0x9],ag=a5[0x2],ah=a5[0x6],aj=a5[0xa],ak=a6+ab+aj;if(ak>0x0){let am=0.5/Math[dL(0x408)](ak+0x1);this['_w']=0.25/am,this['_x']=(ah-af)*am,this['_y']=(a8-ag)*am,this['_z']=(a9-a7)*am;}else{if(a6>ab&&a6>aj){let ap=0x2*Math['sqrt'](0x1+a6-ab-aj);this['_w']=(ah-af)/ap,this['_x']=0.25*ap,this['_y']=(a7+a9)/ap,this['_z']=(a8+ag)/ap;}else{if(ab>aj){let aq=0x2*Math['sqrt'](0x1+ab-a6-aj);this['_w']=(a8-ag)/aq,this['_x']=(a7+a9)/aq,this['_y']=0.25*aq,this['_z']=(af+ah)/aq;}else{let av=0x2*Math[dL(0x408)](0x1+aj-a6-ab);this['_w']=(a9-a7)/av,this['_x']=(a8+ag)/av,this['_y']=(af+ah)/av,this['_z']=0.25*av;}}}return this['_onChangeCallback'](),this;}['setFromUnitVectors'](a4,a5){let a6=a4['dot'](a5)+0x1;return a6<1e-8?(a6=0x0,Math['abs'](a4['x'])>Math['abs'](a4['z'])?(this['_x']=-a4['y'],this['_y']=a4['x'],this['_z']=0x0,this['_w']=a6):(this['_x']=0x0,this['_y']=-a4['z'],this['_z']=a4['y'],this['_w']=a6)):(this['_x']=a4['y']*a5['z']-a4['z']*a5['y'],this['_y']=a4['z']*a5['x']-a4['x']*a5['z'],this['_z']=a4['x']*a5['y']-a4['y']*a5['x'],this['_w']=a6),this['normalize']();}['angleTo'](a4){const dM=d4;return 0x2*Math[dM(0x3d1)](Math['abs'](V(this['dot'](a4),-0x1,0x1)));}['rotateTowards'](a4,a5){const dN=d4;let a6=this[dN(0x325)](a4);if(a6===0x0)return this;let a7=Math['min'](0x1,a5/a6);return this[dN(0x2a0)](a4,a7),this;}['identity'](){return this['set'](0x0,0x0,0x0,0x1);}['invert'](){return this['conjugate']();}['conjugate'](){return this['_x']*=-0x1,this['_y']*=-0x1,this['_z']*=-0x1,this['_onChangeCallback'](),this;}['dot'](a4){return this['_x']*a4['_x']+this['_y']*a4['_y']+this['_z']*a4['_z']+this['_w']*a4['_w'];}['lengthSq'](){return this['_x']*this['_x']+this['_y']*this['_y']+this['_z']*this['_z']+this['_w']*this['_w'];}['length'](){return Math['sqrt'](this['_x']*this['_x']+this['_y']*this['_y']+this['_z']*this['_z']+this['_w']*this['_w']);}['normalize'](){let a4=this['length']();return a4===0x0?(this['_x']=0x0,this['_y']=0x0,this['_z']=0x0,this['_w']=0x1):(a4=0x1/a4,this['_x']*=a4,this['_y']*=a4,this['_z']*=a4,this['_w']*=a4),this['_onChangeCallback'](),this;}['multiply'](a4){return this['multiplyQuaternions'](this,a4);}['premultiply'](a4){return this['multiplyQuaternions'](a4,this);}['multiplyQuaternions'](a4,a5){let a6=a4['_x'],a7=a4['_y'],a8=a4['_z'],a9=a4['_w'],ab=a5['_x'],af=a5['_y'],ag=a5['_z'],ah=a5['_w'];return this['_x']=a6*ah+a9*ab+a7*ag-a8*af,this['_y']=a7*ah+a9*af+a8*ab-a6*ag,this['_z']=a8*ah+a9*ag+a6*af-a7*ab,this['_w']=a9*ah-a6*ab-a7*af-a8*ag,this['_onChangeCallback'](),this;}['slerp'](a4,a5){const dO=d4;let a6=a4['_x'],a7=a4['_y'],a8=a4['_z'],a9=a4['_w'],ab=this[dO(0x465)](a4);ab<0x0&&(a6=-a6,a7=-a7,a8=-a8,a9=-a9,ab=-ab);let af=0x1-a5;if(ab<0.9995){let ag=Math['acos'](ab),ah=Math[dO(0x8a)](ag);af=Math['sin'](af*ag)/ah,a5=Math['sin'](a5*ag)/ah,this['_x']=this['_x']*af+a6*a5,this['_y']=this['_y']*af+a7*a5,this['_z']=this['_z']*af+a8*a5,this['_w']=this['_w']*af+a9*a5,this['_onChangeCallback']();}else this['_x']=this['_x']*af+a6*a5,this['_y']=this['_y']*af+a7*a5,this['_z']=this['_z']*af+a8*a5,this['_w']=this['_w']*af+a9*a5,this['normalize']();return this;}['slerpQuaternions'](a4,a5,a6){return this['copy'](a4)['slerp'](a5,a6);}['random'](){const dP=d4;let a4=0x2*Math['PI']*Math['random'](),a5=0x2*Math['PI']*Math['random'](),a6=Math['random'](),a7=Math['sqrt'](0x1-a6),a8=Math[dP(0x408)](a6);return this['set'](a7*Math['sin'](a4),a7*Math['cos'](a4),a8*Math['sin'](a5),a8*Math['cos'](a5));}[d4(0x37e)](a4){return a4['_x']===this['_x']&&a4['_y']===this['_y']&&a4['_z']===this['_z']&&a4['_w']===this['_w'];}[d4(0x3c4)](a4,a5=0x0){const dQ=d4;return this['_x']=a4[a5],this['_y']=a4[a5+0x1],this['_z']=a4[a5+0x2],this['_w']=a4[a5+0x3],this[dQ(0x212)](),this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['_x'],a4[a5+0x1]=this['_y'],a4[a5+0x2]=this['_z'],a4[a5+0x3]=this['_w'],a4;}['fromBufferAttribute'](a4,a5){const dR=d4;return this['_x']=a4['getX'](a5),this['_y']=a4['getY'](a5),this['_z']=a4['getZ'](a5),this['_w']=a4[dR(0x3be)](a5),this['_onChangeCallback'](),this;}['toJSON'](){const dS=d4;return this[dS(0x442)]();}['_onChange'](a4){return this['_onChangeCallback']=a4,this;}['_onChangeCallback'](){}*[Symbol['iterator']](){yield this['_x'],yield this['_y'],yield this['_z'],yield this['_w'];}};d=Symbol[d4(0x396)];var W=class{constructor(a4=0x0,a5=0x0,a6=0x0){this['x']=a4,this['y']=a5,this['z']=a6;}['set'](a4,a5,a6){return a6===void 0x0&&(a6=this['z']),this['x']=a4,this['y']=a5,this['z']=a6,this;}['setScalar'](a4){return this['x']=a4,this['y']=a4,this['z']=a4,this;}['setX'](a4){return this['x']=a4,this;}['setY'](a4){return this['y']=a4,this;}['setZ'](a4){return this['z']=a4,this;}['setComponent'](a4,a5){switch(a4){case 0x0:this['x']=a5;break;case 0x1:this['y']=a5;break;case 0x2:this['z']=a5;break;default:throw Error('index\x20is\x20out\x20of\x20range:\x20'+a4);}return this;}['getComponent'](a4){switch(a4){case 0x0:return this['x'];case 0x1:return this['y'];case 0x2:return this['z'];default:throw Error('index\x20is\x20out\x20of\x20range:\x20'+a4);}}[d4(0x26d)](){return new this['constructor'](this['x'],this['y'],this['z']);}['copy'](a4){return this['x']=a4['x'],this['y']=a4['y'],this['z']=a4['z'],this;}['add'](a4){return this['x']+=a4['x'],this['y']+=a4['y'],this['z']+=a4['z'],this;}['addScalar'](a4){return this['x']+=a4,this['y']+=a4,this['z']+=a4,this;}['addVectors'](a4,a5){return this['x']=a4['x']+a5['x'],this['y']=a4['y']+a5['y'],this['z']=a4['z']+a5['z'],this;}['addScaledVector'](a4,a5){return this['x']+=a4['x']*a5,this['y']+=a4['y']*a5,this['z']+=a4['z']*a5,this;}[d4(0x2b7)](a4){return this['x']-=a4['x'],this['y']-=a4['y'],this['z']-=a4['z'],this;}[d4(0x56e)](a4){return this['x']-=a4,this['y']-=a4,this['z']-=a4,this;}['subVectors'](a4,a5){return this['x']=a4['x']-a5['x'],this['y']=a4['y']-a5['y'],this['z']=a4['z']-a5['z'],this;}['multiply'](a4){return this['x']*=a4['x'],this['y']*=a4['y'],this['z']*=a4['z'],this;}['multiplyScalar'](a4){return this['x']*=a4,this['y']*=a4,this['z']*=a4,this;}['multiplyVectors'](a4,a5){return this['x']=a4['x']*a5['x'],this['y']=a4['y']*a5['y'],this['z']=a4['z']*a5['z'],this;}['applyEuler'](a4){const dT=d4;return this[dT(0x525)](Yt[dT(0x237)](a4));}['applyAxisAngle'](a4,a5){return this['applyQuaternion'](Yt['setFromAxisAngle'](a4,a5));}['applyMatrix3'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4['elements'];return this['x']=a8[0x0]*a5+a8[0x3]*a6+a8[0x6]*a7,this['y']=a8[0x1]*a5+a8[0x4]*a6+a8[0x7]*a7,this['z']=a8[0x2]*a5+a8[0x5]*a6+a8[0x8]*a7,this;}['applyNormalMatrix'](a4){const dU=d4;return this['applyMatrix3'](a4)[dU(0x3ca)]();}['applyMatrix4'](a4){const dV=d4;let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4[dV(0xdf)],a9=0x1/(a8[0x3]*a5+a8[0x7]*a6+a8[0xb]*a7+a8[0xf]);return this['x']=(a8[0x0]*a5+a8[0x4]*a6+a8[0x8]*a7+a8[0xc])*a9,this['y']=(a8[0x1]*a5+a8[0x5]*a6+a8[0x9]*a7+a8[0xd])*a9,this['z']=(a8[0x2]*a5+a8[0x6]*a6+a8[0xa]*a7+a8[0xe])*a9,this;}['applyQuaternion'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4['x'],a9=a4['y'],ab=a4['z'],af=a4['w'],ag=0x2*(a9*a7-ab*a6),ah=0x2*(ab*a5-a8*a7),aj=0x2*(a8*a6-a9*a5);return this['x']=a5+af*ag+a9*aj-ab*ah,this['y']=a6+af*ah+ab*ag-a8*aj,this['z']=a7+af*aj+a8*ah-a9*ag,this;}['project'](a4){const dW=d4;return this[dW(0x510)](a4['matrixWorldInverse'])['applyMatrix4'](a4[dW(0x2ea)]);}['unproject'](a4){return this['applyMatrix4'](a4['projectionMatrixInverse'])['applyMatrix4'](a4['matrixWorld']);}['transformDirection'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4['elements'];return this['x']=a8[0x0]*a5+a8[0x4]*a6+a8[0x8]*a7,this['y']=a8[0x1]*a5+a8[0x5]*a6+a8[0x9]*a7,this['z']=a8[0x2]*a5+a8[0x6]*a6+a8[0xa]*a7,this['normalize']();}['divide'](a4){return this['x']/=a4['x'],this['y']/=a4['y'],this['z']/=a4['z'],this;}['divideScalar'](a4){const dX=d4;return this[dX(0x175)](0x1/a4);}[d4(0xbb)](a4){return this['x']=Math['min'](this['x'],a4['x']),this['y']=Math['min'](this['y'],a4['y']),this['z']=Math['min'](this['z'],a4['z']),this;}['max'](a4){const dY=d4;return this['x']=Math['max'](this['x'],a4['x']),this['y']=Math[dY(0x360)](this['y'],a4['y']),this['z']=Math['max'](this['z'],a4['z']),this;}['clamp'](a4,a5){return this['x']=V(this['x'],a4['x'],a5['x']),this['y']=V(this['y'],a4['y'],a5['y']),this['z']=V(this['z'],a4['z'],a5['z']),this;}[d4(0x470)](a4,a5){return this['x']=V(this['x'],a4,a5),this['y']=V(this['y'],a4,a5),this['z']=V(this['z'],a4,a5),this;}['clampLength'](a4,a5){const dZ=d4;let a6=this['length']();return this[dZ(0x2bd)](a6||0x1)[dZ(0x175)](V(a6,a4,a5));}['floor'](){return this['x']=Math['floor'](this['x']),this['y']=Math['floor'](this['y']),this['z']=Math['floor'](this['z']),this;}['ceil'](){const e0=d4;return this['x']=Math['ceil'](this['x']),this['y']=Math[e0(0x456)](this['y']),this['z']=Math['ceil'](this['z']),this;}['round'](){const e1=d4;return this['x']=Math['round'](this['x']),this['y']=Math[e1(0x43b)](this['y']),this['z']=Math['round'](this['z']),this;}['roundToZero'](){const e2=d4;return this['x']=Math[e2(0x4bd)](this['x']),this['y']=Math[e2(0x4bd)](this['y']),this['z']=Math['trunc'](this['z']),this;}['negate'](){return this['x']=-this['x'],this['y']=-this['y'],this['z']=-this['z'],this;}[d4(0x465)](a4){return this['x']*a4['x']+this['y']*a4['y']+this['z']*a4['z'];}[d4(0x57d)](){return this['x']*this['x']+this['y']*this['y']+this['z']*this['z'];}['length'](){return Math['sqrt'](this['x']*this['x']+this['y']*this['y']+this['z']*this['z']);}['manhattanLength'](){return Math['abs'](this['x'])+Math['abs'](this['y'])+Math['abs'](this['z']);}['normalize'](){const e3=d4;return this[e3(0x2bd)](this['length']()||0x1);}['setLength'](a4){const e4=d4;return this['normalize']()[e4(0x175)](a4);}['lerp'](a4,a5){return this['x']+=(a4['x']-this['x'])*a5,this['y']+=(a4['y']-this['y'])*a5,this['z']+=(a4['z']-this['z'])*a5,this;}['lerpVectors'](a4,a5,a6){return this['x']=a4['x']+(a5['x']-a4['x'])*a6,this['y']=a4['y']+(a5['y']-a4['y'])*a6,this['z']=a4['z']+(a5['z']-a4['z'])*a6,this;}['cross'](a4){const e5=d4;return this[e5(0x122)](this,a4);}['crossVectors'](a4,a5){let a6=a4['x'],a7=a4['y'],a8=a4['z'],a9=a5['x'],ab=a5['y'],af=a5['z'];return this['x']=a7*af-a8*ab,this['y']=a8*a9-a6*af,this['z']=a6*ab-a7*a9,this;}[d4(0x1e5)](a4){const e6=d4;let a5=a4[e6(0x57d)]();if(a5===0x0)return this[e6(0x479)](0x0,0x0,0x0);let a6=a4['dot'](this)/a5;return this['copy'](a4)['multiplyScalar'](a6);}['projectOnPlane'](a4){const e7=d4;return Jt['copy'](this)[e7(0x1e5)](a4),this['sub'](Jt);}[d4(0xdd)](a4){const e8=d4;return this[e8(0x2b7)](Jt['copy'](a4)['multiplyScalar'](0x2*this['dot'](a4)));}['angleTo'](a4){const e9=d4;let a5=Math[e9(0x408)](this['lengthSq']()*a4['lengthSq']());if(a5===0x0)return Math['PI']/0x2;let a6=this['dot'](a4)/a5;return Math['acos'](V(a6,-0x1,0x1));}['distanceTo'](a4){const eb=d4;return Math['sqrt'](this[eb(0x380)](a4));}['distanceToSquared'](a4){let a5=this['x']-a4['x'],a6=this['y']-a4['y'],a7=this['z']-a4['z'];return a5*a5+a6*a6+a7*a7;}['manhattanDistanceTo'](a4){const ef=d4;return Math['abs'](this['x']-a4['x'])+Math['abs'](this['y']-a4['y'])+Math[ef(0x553)](this['z']-a4['z']);}['setFromSpherical'](a4){const eg=d4;return this['setFromSphericalCoords'](a4[eg(0x42d)],a4[eg(0x2fa)],a4['theta']);}['setFromSphericalCoords'](a4,a5,a6){const eh=d4;let a7=Math[eh(0x8a)](a5)*a4;return this['x']=a7*Math['sin'](a6),this['y']=Math['cos'](a5)*a4,this['z']=a7*Math['cos'](a6),this;}['setFromCylindrical'](a4){return this['setFromCylindricalCoords'](a4['radius'],a4['theta'],a4['y']);}['setFromCylindricalCoords'](a4,a5,a6){return this['x']=a4*Math['sin'](a5),this['y']=a6,this['z']=a4*Math['cos'](a5),this;}['setFromMatrixPosition'](a4){let a5=a4['elements'];return this['x']=a5[0xc],this['y']=a5[0xd],this['z']=a5[0xe],this;}['setFromMatrixScale'](a4){const ej=d4;let a5=this['setFromMatrixColumn'](a4,0x0)['length'](),a6=this[ej(0x28f)](a4,0x1)['length'](),a7=this['setFromMatrixColumn'](a4,0x2)['length']();return this['x']=a5,this['y']=a6,this['z']=a7,this;}['setFromMatrixColumn'](a4,a5){return this['fromArray'](a4['elements'],a5*0x4);}['setFromMatrix3Column'](a4,a5){return this['fromArray'](a4['elements'],a5*0x3);}[d4(0x237)](a4){return this['x']=a4['_x'],this['y']=a4['_y'],this['z']=a4['_z'],this;}['setFromColor'](a4){return this['x']=a4['r'],this['y']=a4['g'],this['z']=a4['b'],this;}['equals'](a4){return a4['x']===this['x']&&a4['y']===this['y']&&a4['z']===this['z'];}['fromArray'](a4,a5=0x0){return this['x']=a4[a5],this['y']=a4[a5+0x1],this['z']=a4[a5+0x2],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['x'],a4[a5+0x1]=this['y'],a4[a5+0x2]=this['z'],a4;}['fromBufferAttribute'](a4,a5){const ek=d4;return this['x']=a4[ek(0x48b)](a5),this['y']=a4['getY'](a5),this['z']=a4['getZ'](a5),this;}['random'](){return this['x']=Math['random'](),this['y']=Math['random'](),this['z']=Math['random'](),this;}['randomDirection'](){const em=d4;let a4=Math[em(0x2e1)]()*Math['PI']*0x2,a5=Math['random']()*0x2-0x1,a6=Math['sqrt'](0x1-a5*a5);return this['x']=a6*Math['cos'](a4),this['y']=a5,this['z']=a6*Math['sin'](a4),this;}*[d](){yield this['x'],yield this['y'],yield this['z'];}};a=W,a['prototype']['isVector3']=!0x0;var Jt=new W(),Yt=new qt(),G=class{constructor(a4,a5,a6,a7,a8,a9,ab,af,ag){this['elements']=[0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1],a4!==void 0x0&&this['set'](a4,a5,a6,a7,a8,a9,ab,af,ag);}['set'](a4,a5,a6,a7,a8,a9,ab,af,ag){let ah=this['elements'];return ah[0x0]=a4,ah[0x1]=a7,ah[0x2]=ab,ah[0x3]=a5,ah[0x4]=a8,ah[0x5]=af,ah[0x6]=a6,ah[0x7]=a9,ah[0x8]=ag,this;}['identity'](){return this['set'](0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1),this;}['copy'](a4){const ep=d4;let a5=this['elements'],a6=a4[ep(0xdf)];return a5[0x0]=a6[0x0],a5[0x1]=a6[0x1],a5[0x2]=a6[0x2],a5[0x3]=a6[0x3],a5[0x4]=a6[0x4],a5[0x5]=a6[0x5],a5[0x6]=a6[0x6],a5[0x7]=a6[0x7],a5[0x8]=a6[0x8],this;}['extractBasis'](a4,a5,a6){return a4['setFromMatrix3Column'](this,0x0),a5['setFromMatrix3Column'](this,0x1),a6['setFromMatrix3Column'](this,0x2),this;}['setFromMatrix4'](a4){let a5=a4['elements'];return this['set'](a5[0x0],a5[0x4],a5[0x8],a5[0x1],a5[0x5],a5[0x9],a5[0x2],a5[0x6],a5[0xa]),this;}['multiply'](a4){return this['multiplyMatrices'](this,a4);}[d4(0x376)](a4){const eq=d4;return this[eq(0x49c)](a4,this);}['multiplyMatrices'](a4,a5){const ev=d4;let a6=a4[ev(0xdf)],a7=a5['elements'],a8=this['elements'],a9=a6[0x0],ab=a6[0x3],af=a6[0x6],ag=a6[0x1],ah=a6[0x4],aj=a6[0x7],ak=a6[0x2],am=a6[0x5],ap=a6[0x8],aq=a7[0x0],av=a7[0x3],aw=a7[0x6],ax=a7[0x1],ay=a7[0x4],az=a7[0x7],aA=a7[0x2],aB=a7[0x5],aC=a7[0x8];return a8[0x0]=a9*aq+ab*ax+af*aA,a8[0x3]=a9*av+ab*ay+af*aB,a8[0x6]=a9*aw+ab*az+af*aC,a8[0x1]=ag*aq+ah*ax+aj*aA,a8[0x4]=ag*av+ah*ay+aj*aB,a8[0x7]=ag*aw+ah*az+aj*aC,a8[0x2]=ak*aq+am*ax+ap*aA,a8[0x5]=ak*av+am*ay+ap*aB,a8[0x8]=ak*aw+am*az+ap*aC,this;}['multiplyScalar'](a4){const ew=d4;let a5=this[ew(0xdf)];return a5[0x0]*=a4,a5[0x3]*=a4,a5[0x6]*=a4,a5[0x1]*=a4,a5[0x4]*=a4,a5[0x7]*=a4,a5[0x2]*=a4,a5[0x5]*=a4,a5[0x8]*=a4,this;}['determinant'](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x1],a7=a4[0x2],a8=a4[0x3],a9=a4[0x4],ab=a4[0x5],af=a4[0x6],ag=a4[0x7],ah=a4[0x8];return a5*a9*ah-a5*ab*ag-a6*a8*ah+a6*ab*af+a7*a8*ag-a7*a9*af;}['invert'](){const ex=d4;let a4=this[ex(0xdf)],a5=a4[0x0],a6=a4[0x1],a7=a4[0x2],a8=a4[0x3],a9=a4[0x4],ab=a4[0x5],af=a4[0x6],ag=a4[0x7],ah=a4[0x8],aj=ah*a9-ab*ag,ak=ab*af-ah*a8,am=ag*a8-a9*af,ap=a5*aj+a6*ak+a7*am;if(ap===0x0)return this['set'](0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0);let aq=0x1/ap;return a4[0x0]=aj*aq,a4[0x1]=(a7*ag-ah*a6)*aq,a4[0x2]=(ab*a6-a7*a9)*aq,a4[0x3]=ak*aq,a4[0x4]=(ah*a5-a7*af)*aq,a4[0x5]=(a7*a8-ab*a5)*aq,a4[0x6]=am*aq,a4[0x7]=(a6*af-ag*a5)*aq,a4[0x8]=(a9*a5-a6*a8)*aq,this;}['transpose'](){let a4,a5=this['elements'];return a4=a5[0x1],a5[0x1]=a5[0x3],a5[0x3]=a4,a4=a5[0x2],a5[0x2]=a5[0x6],a5[0x6]=a4,a4=a5[0x5],a5[0x5]=a5[0x7],a5[0x7]=a4,this;}['getNormalMatrix'](a4){const ey=d4;return this['setFromMatrix4'](a4)['invert']()[ey(0xae)]();}['transposeIntoArray'](a4){const ez=d4;let a5=this[ez(0xdf)];return a4[0x0]=a5[0x0],a4[0x1]=a5[0x3],a4[0x2]=a5[0x6],a4[0x3]=a5[0x1],a4[0x4]=a5[0x4],a4[0x5]=a5[0x7],a4[0x6]=a5[0x2],a4[0x7]=a5[0x5],a4[0x8]=a5[0x8],this;}['setUvTransform'](a4,a5,a6,a7,a8,a9,ab){const eA=d4;let af=Math['cos'](a8),ag=Math[eA(0x8a)](a8);return this['set'](a6*af,a6*ag,-a6*(af*a9+ag*ab)+a9+a4,-a7*ag,a7*af,-a7*(-ag*a9+af*ab)+ab+a5,0x0,0x0,0x1),this;}['scale'](a4,a5){return this['premultiply'](Xt['makeScale'](a4,a5)),this;}['rotate'](a4){const eB=d4;return this[eB(0x376)](Xt['makeRotation'](-a4)),this;}['translate'](a4,a5){const eC=d4;return this['premultiply'](Xt[eC(0x3aa)](a4,a5)),this;}['makeTranslation'](a4,a5){return a4['isVector2']?this['set'](0x1,0x0,a4['x'],0x0,0x1,a4['y'],0x0,0x0,0x1):this['set'](0x1,0x0,a4,0x0,0x1,a5,0x0,0x0,0x1),this;}['makeRotation'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](a5,-a6,0x0,a6,a5,0x0,0x0,0x0,0x1),this;}['makeScale'](a4,a5){const eD=d4;return this[eD(0x479)](a4,0x0,0x0,0x0,a5,0x0,0x0,0x0,0x1),this;}['equals'](a4){let a5=this['elements'],a6=a4['elements'];for(let a7=0x0;a7<0x9;a7++)if(a5[a7]!==a6[a7])return!0x1;return!0x0;}['fromArray'](a4,a5=0x0){for(let a6=0x0;a6<0x9;a6++)this['elements'][a6]=a4[a6+a5];return this;}['toArray'](a4=[],a5=0x0){let a6=this['elements'];return a4[a5]=a6[0x0],a4[a5+0x1]=a6[0x1],a4[a5+0x2]=a6[0x2],a4[a5+0x3]=a6[0x3],a4[a5+0x4]=a6[0x4],a4[a5+0x5]=a6[0x5],a4[a5+0x6]=a6[0x6],a4[a5+0x7]=a6[0x7],a4[a5+0x8]=a6[0x8],a4;}['clone'](){const eE=d4;return new this[(eE(0x27b))]()['fromArray'](this['elements']);}};o=G,o[d4(0xcb)][d4(0x304)]=!0x0;var Xt=new G(),Zt=new G()['set'](0.4123908,0.3575843,0.1804808,0.212639,0.7151687,0.0721923,0.0193308,0.1191948,0.9505322),Qt=new G()['set'](3.2409699,-1.5373832,-0.4986108,-0.9692436,1.8759675,0.0415551,0.0556301,-0.203977,1.0569715);function $t(){let a4={'enabled':!0x0,'workingColorSpace':it,'spaces':{},'convert':function(a8,a9,ab){const eF=a1;return this['enabled']===!0x1||a9===ab||!a9||!ab?a8:(this['spaces'][a9]['transfer']==='srgb'&&(a8['r']=en(a8['r']),a8['g']=en(a8['g']),a8['b']=en(a8['b'])),this[eF(0x3b9)][a9]['primaries']!==this['spaces'][ab]['primaries']&&(a8['applyMatrix3'](this['spaces'][a9]['toXYZ']),a8['applyMatrix3'](this['spaces'][ab]['fromXYZ'])),this['spaces'][ab]['transfer']==='srgb'&&(a8['r']=tn(a8['r']),a8['g']=tn(a8['g']),a8['b']=tn(a8['b'])),a8);},'workingToColorSpace':function(a8,a9){return this['convert'](a8,this['workingColorSpace'],a9);},'colorSpaceToWorking':function(a8,a9){return this['convert'](a8,a9,this['workingColorSpace']);},'getPrimaries':function(a8){const eG=a1;return this[eG(0x3b9)][a8]['primaries'];},'getTransfer':function(a8){const eH=a1;return a8===''?at:this[eH(0x3b9)][a8]['transfer'];},'getToneMappingMode':function(a8){const eI=a1;return this[eI(0x3b9)][a8][eI(0x4bc)]['toneMappingMode']||'standard';},'getLuminanceCoefficients':function(a8,a9=this['workingColorSpace']){return a8['fromArray'](this['spaces'][a9]['luminanceCoefficients']);},'define':function(a8){Object['assign'](this['spaces'],a8);},'_getMatrix':function(a8,a9,ab){const eJ=a1;return a8['copy'](this['spaces'][a9][eJ(0x390)])[eJ(0x3d0)](this['spaces'][ab]['fromXYZ']);},'_getDrawingBufferColorSpace':function(a8){const eK=a1;return this['spaces'][a8][eK(0x4bc)]['drawingBufferColorSpace'];},'_getUnpackColorSpace':function(a8=this['workingColorSpace']){const eL=a1;return this['spaces'][a8][eL(0x26f)]['unpackColorSpace'];},'fromWorkingColorSpace':function(a8,a9){const eM=a1;return vt(eM(0x18b)),a4['workingToColorSpace'](a8,a9);},'toWorkingColorSpace':function(a8,a9){return vt('ColorManagement:\x20.toWorkingColorSpace()\x20has\x20been\x20renamed\x20to\x20.colorSpaceToWorking().'),a4['colorSpaceToWorking'](a8,a9);}},a5=[0.64,0.33,0.3,0.6,0.15,0.06],a6=[0.2126,0.7152,0.0722],a7=[0.3127,0.329];return a4['define']({[it]:{'primaries':a5,'whitePoint':a7,'transfer':at,'toXYZ':Zt,'fromXYZ':Qt,'luminanceCoefficients':a6,'workingColorSpaceConfig':{'unpackColorSpace':rt},'outputColorSpaceConfig':{'drawingBufferColorSpace':rt}},[rt]:{'primaries':a5,'whitePoint':a7,'transfer':ot,'toXYZ':Zt,'fromXYZ':Qt,'luminanceCoefficients':a6,'outputColorSpaceConfig':{'drawingBufferColorSpace':rt}}}),a4;}var K=$t();function en(a4){return a4<0.04045?a4*0.0773993808:Math['pow'](a4*0.9478672986+0.0521327014,2.4);}function tn(a4){return a4<0.0031308?a4*12.92:1.055*Math['pow'](a4,0.41666)-0.055;}var nn,rn=class{static['getDataURL'](a4,a5='image/png'){const eN=d4;if(/^data:/i['test'](a4['src'])||typeof HTMLCanvasElement>'u')return a4['src'];let a6;if(a4 instanceof HTMLCanvasElement)a6=a4;else{nn===void 0x0&&(nn=ft(eN(0x182))),nn['width']=a4[eN(0x426)],nn[eN(0x45f)]=a4['height'];let a7=nn['getContext']('2d');a4 instanceof ImageData?a7['putImageData'](a4,0x0,0x0):a7['drawImage'](a4,0x0,0x0,a4['width'],a4['height']),a6=nn;}return a6[eN(0x1cb)](a5);}static[d4(0x2b4)](a4){const eO=d4;if(typeof HTMLImageElement<'u'&&a4 instanceof HTMLImageElement||typeof HTMLCanvasElement<'u'&&a4 instanceof HTMLCanvasElement||typeof ImageBitmap<'u'&&a4 instanceof ImageBitmap){let a5=ft('canvas');a5['width']=a4[eO(0x426)],a5['height']=a4[eO(0x45f)];let a6=a5[eO(0x3c2)]('2d');a6[eO(0x312)](a4,0x0,0x0,a4['width'],a4['height']);let a7=a6[eO(0x269)](0x0,0x0,a4['width'],a4[eO(0x45f)]),a8=a7[eO(0x26c)];for(let a9=0x0;a9<a8['length'];a9++)a8[a9]=en(a8[a9]/0xff)*0xff;return a6['putImageData'](a7,0x0,0x0),a5;}else{if(a4[eO(0x26c)]){let ab=a4[eO(0x26c)]['slice'](0x0);for(let af=0x0;af<ab['length'];af++)ab instanceof Uint8Array||ab instanceof Uint8ClampedArray?ab[af]=Math['floor'](en(ab[af]/0xff)*0xff):ab[af]=en(ab[af]);return{'data':ab,'width':a4['width'],'height':a4[eO(0x45f)]};}else return z('ImageUtils.sRGBToLinear():\x20Unsupported\x20image\x20type.\x20No\x20color\x20space\x20conversion\x20applied.'),a4;}}},an=0x0,on=class{constructor(a4=null){const eP=d4;this[eP(0xf4)]=!0x0,Object[eP(0x138)](this,'id',{'value':an++}),this['uuid']=Et(),this[eP(0x26c)]=a4,this['dataReady']=!0x0,this[eP(0x2d1)]=0x0;}['getSize'](a4){const eQ=d4;let a5=this['data'];return typeof HTMLVideoElement<'u'&&a5 instanceof HTMLVideoElement?a4['set'](a5[eQ(0x315)],a5['videoHeight'],0x0):typeof VideoFrame<'u'&&a5 instanceof VideoFrame?a4['set'](a5['displayWidth'],a5['displayHeight'],0x0):a5===null?a4[eQ(0x479)](0x0,0x0,0x0):a4['set'](a5[eQ(0x426)],a5['height'],a5['depth']||0x0),a4;}set['needsUpdate'](a4){a4===!0x0&&this['version']++;}['toJSON'](a4){const eR=d4;let a5=a4===void 0x0||typeof a4=='string';if(!a5&&a4['images'][this['uuid']]!==void 0x0)return a4[eR(0x53c)][this['uuid']];let a6={'uuid':this[eR(0x2ca)],'url':''},a7=this[eR(0x26c)];if(a7!==null){let a8;if(Array[eR(0x93)](a7)){a8=[];for(let a9=0x0,ab=a7['length'];a9<ab;a9++)a7[a9]['isDataTexture']?a8[eR(0x403)](sn(a7[a9]['image'])):a8['push'](sn(a7[a9]));}else a8=sn(a7);a6['url']=a8;}return a5||(a4['images'][this[eR(0x2ca)]]=a6),a6;}};function sn(a4){const eS=d4;return typeof HTMLImageElement<'u'&&a4 instanceof HTMLImageElement||typeof HTMLCanvasElement<'u'&&a4 instanceof HTMLCanvasElement||typeof ImageBitmap<'u'&&a4 instanceof ImageBitmap?rn[eS(0x17f)](a4):a4['data']?{'data':Array['from'](a4[eS(0x26c)]),'width':a4['width'],'height':a4['height'],'type':a4['data'][eS(0x27b)]['name']}:(z('Texture:\x20Unable\x20to\x20serialize\x20Texture.'),{});}var cn=0x0,ln=new W(),un=class e extends xt{constructor(a4=e['DEFAULT_IMAGE'],a5=e['DEFAULT_MAPPING'],a6=_,a7=_,a8=S,a9=w,ab=oe,af=T,ag=e['DEFAULT_ANISOTROPY'],ah=''){const eT=d4;super(),this['isTexture']=!0x0,Object['defineProperty'](this,'id',{'value':cn++}),this['uuid']=Et(),this['name']='',this['source']=new on(a4),this[eT(0x1b8)]=[],this['mapping']=a5,this['channel']=0x0,this['wrapS']=a6,this[eT(0x103)]=a7,this['magFilter']=a8,this['minFilter']=a9,this['anisotropy']=ag,this['format']=ab,this['internalFormat']=null,this['type']=af,this[eT(0x3c8)]=new U(0x0,0x0),this['repeat']=new U(0x1,0x1),this['center']=new U(0x0,0x0),this['rotation']=0x0,this['matrixAutoUpdate']=!0x0,this['matrix']=new G(),this[eT(0x4aa)]=!0x0,this['premultiplyAlpha']=!0x1,this['flipY']=!0x0,this['unpackAlignment']=0x4,this['colorSpace']=ah,this['userData']={},this['updateRanges']=[],this['version']=0x0,this[eT(0xda)]=null,this['renderTarget']=null,this['isRenderTargetTexture']=!0x1,this['isArrayTexture']=!!(a4&&a4['depth']&&a4['depth']>0x1),this['pmremVersion']=0x0,this['normalized']=!0x1;}get['width'](){const eU=d4;return this[eU(0xb8)]['getSize'](ln)['x'];}get['height'](){return this['source']['getSize'](ln)['y'];}get['depth'](){return this['source']['getSize'](ln)['z'];}get['image'](){return this['source']['data'];}set[d4(0x251)](a4){this['source']['data']=a4;}['updateMatrix'](){const eV=d4;this['matrix']['setUvTransform'](this[eV(0x3c8)]['x'],this['offset']['y'],this['repeat']['x'],this['repeat']['y'],this['rotation'],this['center']['x'],this[eV(0x230)]['y']);}['addUpdateRange'](a4,a5){this['updateRanges']['push']({'start':a4,'count':a5});}['clearUpdateRanges'](){const eW=d4;this[eW(0x28b)][eW(0x27a)]=0x0;}['clone'](){const eX=d4;return new this[(eX(0x27b))]()['copy'](this);}['copy'](a4){const eY=d4;return this['name']=a4['name'],this['source']=a4['source'],this['mipmaps']=a4[eY(0x1b8)]['slice'](0x0),this[eY(0x23a)]=a4['mapping'],this['channel']=a4['channel'],this['wrapS']=a4['wrapS'],this[eY(0x103)]=a4[eY(0x103)],this['magFilter']=a4['magFilter'],this['minFilter']=a4['minFilter'],this['anisotropy']=a4[eY(0x238)],this['format']=a4['format'],this['internalFormat']=a4['internalFormat'],this['type']=a4['type'],this['normalized']=a4['normalized'],this['offset']['copy'](a4['offset']),this['repeat']['copy'](a4['repeat']),this['center']['copy'](a4['center']),this['rotation']=a4['rotation'],this['matrixAutoUpdate']=a4['matrixAutoUpdate'],this['matrix'][eY(0x32f)](a4['matrix']),this['generateMipmaps']=a4['generateMipmaps'],this['premultiplyAlpha']=a4['premultiplyAlpha'],this['flipY']=a4[eY(0x20a)],this['unpackAlignment']=a4['unpackAlignment'],this['colorSpace']=a4['colorSpace'],this['renderTarget']=a4['renderTarget'],this['isRenderTargetTexture']=a4['isRenderTargetTexture'],this['isArrayTexture']=a4['isArrayTexture'],this['userData']=JSON['parse'](JSON['stringify'](a4['userData'])),this['needsUpdate']=!0x0,this;}['setValues'](a4){const eZ=d4;for(let a5 in a4){let a6=a4[a5];if(a6===void 0x0){z(eZ(0x469)+a5+'\x27\x20has\x20value\x20of\x20undefined.');continue;}let a7=this[a5];if(a7===void 0x0){z(eZ(0x35a)+a5+'\x27\x20does\x20not\x20exist.');continue;}a7&&a6&&a7['isVector2']&&a6[eZ(0xc4)]||a7&&a6&&a7['isVector3']&&a6['isVector3']||a7&&a6&&a7['isMatrix3']&&a6['isMatrix3']?a7['copy'](a6):this[a5]=a6;}}['toJSON'](a4){const f0=d4;let a5=a4===void 0x0||typeof a4=='string';if(!a5&&a4['textures'][this[f0(0x2ca)]]!==void 0x0)return a4['textures'][this['uuid']];let a6={'metadata':{'version':4.7,'type':'Texture','generator':'Texture.toJSON'},'uuid':this['uuid'],'name':this[f0(0x3a8)],'image':this['source']['toJSON'](a4)['uuid'],'mapping':this['mapping'],'channel':this['channel'],'repeat':[this[f0(0x461)]['x'],this['repeat']['y']],'offset':[this['offset']['x'],this['offset']['y']],'center':[this[f0(0x230)]['x'],this['center']['y']],'rotation':this['rotation'],'wrap':[this['wrapS'],this['wrapT']],'format':this[f0(0x196)],'internalFormat':this[f0(0x555)],'type':this['type'],'normalized':this['normalized'],'colorSpace':this['colorSpace'],'minFilter':this['minFilter'],'magFilter':this['magFilter'],'anisotropy':this['anisotropy'],'flipY':this['flipY'],'generateMipmaps':this['generateMipmaps'],'premultiplyAlpha':this['premultiplyAlpha'],'unpackAlignment':this['unpackAlignment']};return Object[f0(0x310)](this['userData'])['length']>0x0&&(a6['userData']=this[f0(0x511)]),a5||(a4['textures'][this['uuid']]=a6),a6;}['dispose'](){this['dispatchEvent']({'type':'dispose'});}['transformUv'](a4){const f1=d4;if(this['mapping']!==0x12c)return a4;if(a4['applyMatrix3'](this['matrix']),a4['x']<0x0||a4['x']>0x1)switch(this[f1(0x3ea)]){case g:a4['x']-=Math['floor'](a4['x']);break;case _:a4['x']=a4['x']<0x0?0x0:0x1;break;case v:Math['abs'](Math['floor'](a4['x'])%0x2)===0x1?a4['x']=Math[f1(0x456)](a4['x'])-a4['x']:a4['x']-=Math['floor'](a4['x']);break;}if(a4['y']<0x0||a4['y']>0x1)switch(this[f1(0x103)]){case g:a4['y']-=Math['floor'](a4['y']);break;case _:a4['y']=a4['y']<0x0?0x0:0x1;break;case v:Math[f1(0x553)](Math[f1(0x4ec)](a4['y'])%0x2)===0x1?a4['y']=Math['ceil'](a4['y'])-a4['y']:a4['y']-=Math['floor'](a4['y']);break;}return this['flipY']&&(a4['y']=0x1-a4['y']),a4;}set['needsUpdate'](a4){const f2=d4;a4===!0x0&&(this['version']++,this['source'][f2(0x3f1)]=!0x0);}set['needsPMREMUpdate'](a4){a4===!0x0&&this['pmremVersion']++;}};un['DEFAULT_IMAGE']=null,un['DEFAULT_MAPPING']=0x12c,un['DEFAULT_ANISOTROPY']=0x1,f=Symbol['iterator'];var q=class{constructor(a4=0x0,a5=0x0,a6=0x0,a7=0x1){this['x']=a4,this['y']=a5,this['z']=a6,this['w']=a7;}get['width'](){return this['z'];}set['width'](a4){this['z']=a4;}get['height'](){return this['w'];}set[d4(0x45f)](a4){this['w']=a4;}['set'](a4,a5,a6,a7){return this['x']=a4,this['y']=a5,this['z']=a6,this['w']=a7,this;}[d4(0x321)](a4){return this['x']=a4,this['y']=a4,this['z']=a4,this['w']=a4,this;}['setX'](a4){return this['x']=a4,this;}['setY'](a4){return this['y']=a4,this;}['setZ'](a4){return this['z']=a4,this;}['setW'](a4){return this['w']=a4,this;}[d4(0x438)](a4,a5){const f3=d4;switch(a4){case 0x0:this['x']=a5;break;case 0x1:this['y']=a5;break;case 0x2:this['z']=a5;break;case 0x3:this['w']=a5;break;default:throw Error(f3(0x8e)+a4);}return this;}['getComponent'](a4){switch(a4){case 0x0:return this['x'];case 0x1:return this['y'];case 0x2:return this['z'];case 0x3:return this['w'];default:throw Error('index\x20is\x20out\x20of\x20range:\x20'+a4);}}['clone'](){return new this['constructor'](this['x'],this['y'],this['z'],this['w']);}['copy'](a4){return this['x']=a4['x'],this['y']=a4['y'],this['z']=a4['z'],this['w']=a4['w']===void 0x0?0x1:a4['w'],this;}['add'](a4){return this['x']+=a4['x'],this['y']+=a4['y'],this['z']+=a4['z'],this['w']+=a4['w'],this;}[d4(0x11d)](a4){return this['x']+=a4,this['y']+=a4,this['z']+=a4,this['w']+=a4,this;}[d4(0x1ab)](a4,a5){return this['x']=a4['x']+a5['x'],this['y']=a4['y']+a5['y'],this['z']=a4['z']+a5['z'],this['w']=a4['w']+a5['w'],this;}['addScaledVector'](a4,a5){return this['x']+=a4['x']*a5,this['y']+=a4['y']*a5,this['z']+=a4['z']*a5,this['w']+=a4['w']*a5,this;}['sub'](a4){return this['x']-=a4['x'],this['y']-=a4['y'],this['z']-=a4['z'],this['w']-=a4['w'],this;}['subScalar'](a4){return this['x']-=a4,this['y']-=a4,this['z']-=a4,this['w']-=a4,this;}['subVectors'](a4,a5){return this['x']=a4['x']-a5['x'],this['y']=a4['y']-a5['y'],this['z']=a4['z']-a5['z'],this['w']=a4['w']-a5['w'],this;}['multiply'](a4){return this['x']*=a4['x'],this['y']*=a4['y'],this['z']*=a4['z'],this['w']*=a4['w'],this;}[d4(0x175)](a4){return this['x']*=a4,this['y']*=a4,this['z']*=a4,this['w']*=a4,this;}['applyMatrix4'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=this['w'],a9=a4['elements'];return this['x']=a9[0x0]*a5+a9[0x4]*a6+a9[0x8]*a7+a9[0xc]*a8,this['y']=a9[0x1]*a5+a9[0x5]*a6+a9[0x9]*a7+a9[0xd]*a8,this['z']=a9[0x2]*a5+a9[0x6]*a6+a9[0xa]*a7+a9[0xe]*a8,this['w']=a9[0x3]*a5+a9[0x7]*a6+a9[0xb]*a7+a9[0xf]*a8,this;}['divide'](a4){return this['x']/=a4['x'],this['y']/=a4['y'],this['z']/=a4['z'],this['w']/=a4['w'],this;}[d4(0x2bd)](a4){return this['multiplyScalar'](0x1/a4);}['setAxisAngleFromQuaternion'](a4){this['w']=0x2*Math['acos'](a4['w']);let a5=Math['sqrt'](0x1-a4['w']*a4['w']);return a5<0.0001?(this['x']=0x1,this['y']=0x0,this['z']=0x0):(this['x']=a4['x']/a5,this['y']=a4['y']/a5,this['z']=a4['z']/a5),this;}['setAxisAngleFromRotationMatrix'](a4){const f4=d4;let a5,a6,a7,a8,a9=0.01,ab=0.1,af=a4['elements'],ag=af[0x0],ah=af[0x4],aj=af[0x8],ak=af[0x1],am=af[0x5],ap=af[0x9],aq=af[0x2],av=af[0x6],aw=af[0xa];if(Math['abs'](ah-ak)<a9&&Math['abs'](aj-aq)<a9&&Math['abs'](ap-av)<a9){if(Math[f4(0x553)](ah+ak)<ab&&Math['abs'](aj+aq)<ab&&Math['abs'](ap+av)<ab&&Math['abs'](ag+am+aw-0x3)<ab)return this['set'](0x1,0x0,0x0,0x0),this;a5=Math['PI'];let ay=(ag+0x1)/0x2,az=(am+0x1)/0x2,aA=(aw+0x1)/0x2,aB=(ah+ak)/0x4,aC=(aj+aq)/0x4,aD=(ap+av)/0x4;return ay>az&&ay>aA?ay<a9?(a6=0x0,a7=0.707106781,a8=0.707106781):(a6=Math['sqrt'](ay),a7=aB/a6,a8=aC/a6):az>aA?az<a9?(a6=0.707106781,a7=0x0,a8=0.707106781):(a7=Math['sqrt'](az),a6=aB/a7,a8=aD/a7):aA<a9?(a6=0.707106781,a7=0.707106781,a8=0x0):(a8=Math[f4(0x408)](aA),a6=aC/a8,a7=aD/a8),this['set'](a6,a7,a8,a5),this;}let ax=Math[f4(0x408)]((av-ap)*(av-ap)+(aj-aq)*(aj-aq)+(ak-ah)*(ak-ah));return Math['abs'](ax)<0.001&&(ax=0x1),this['x']=(av-ap)/ax,this['y']=(aj-aq)/ax,this['z']=(ak-ah)/ax,this['w']=Math['acos']((ag+am+aw-0x1)/0x2),this;}[d4(0x434)](a4){const f5=d4;let a5=a4[f5(0xdf)];return this['x']=a5[0xc],this['y']=a5[0xd],this['z']=a5[0xe],this['w']=a5[0xf],this;}['min'](a4){const f6=d4;return this['x']=Math['min'](this['x'],a4['x']),this['y']=Math['min'](this['y'],a4['y']),this['z']=Math[f6(0xbb)](this['z'],a4['z']),this['w']=Math['min'](this['w'],a4['w']),this;}['max'](a4){const f7=d4;return this['x']=Math[f7(0x360)](this['x'],a4['x']),this['y']=Math['max'](this['y'],a4['y']),this['z']=Math['max'](this['z'],a4['z']),this['w']=Math[f7(0x360)](this['w'],a4['w']),this;}['clamp'](a4,a5){return this['x']=V(this['x'],a4['x'],a5['x']),this['y']=V(this['y'],a4['y'],a5['y']),this['z']=V(this['z'],a4['z'],a5['z']),this['w']=V(this['w'],a4['w'],a5['w']),this;}['clampScalar'](a4,a5){return this['x']=V(this['x'],a4,a5),this['y']=V(this['y'],a4,a5),this['z']=V(this['z'],a4,a5),this['w']=V(this['w'],a4,a5),this;}['clampLength'](a4,a5){let a6=this['length']();return this['divideScalar'](a6||0x1)['multiplyScalar'](V(a6,a4,a5));}['floor'](){return this['x']=Math['floor'](this['x']),this['y']=Math['floor'](this['y']),this['z']=Math['floor'](this['z']),this['w']=Math['floor'](this['w']),this;}['ceil'](){const f8=d4;return this['x']=Math['ceil'](this['x']),this['y']=Math[f8(0x456)](this['y']),this['z']=Math['ceil'](this['z']),this['w']=Math['ceil'](this['w']),this;}[d4(0x43b)](){return this['x']=Math['round'](this['x']),this['y']=Math['round'](this['y']),this['z']=Math['round'](this['z']),this['w']=Math['round'](this['w']),this;}['roundToZero'](){const f9=d4;return this['x']=Math['trunc'](this['x']),this['y']=Math[f9(0x4bd)](this['y']),this['z']=Math[f9(0x4bd)](this['z']),this['w']=Math['trunc'](this['w']),this;}['negate'](){return this['x']=-this['x'],this['y']=-this['y'],this['z']=-this['z'],this['w']=-this['w'],this;}['dot'](a4){return this['x']*a4['x']+this['y']*a4['y']+this['z']*a4['z']+this['w']*a4['w'];}['lengthSq'](){return this['x']*this['x']+this['y']*this['y']+this['z']*this['z']+this['w']*this['w'];}['length'](){return Math['sqrt'](this['x']*this['x']+this['y']*this['y']+this['z']*this['z']+this['w']*this['w']);}[d4(0x3f3)](){const fb=d4;return Math['abs'](this['x'])+Math['abs'](this['y'])+Math[fb(0x553)](this['z'])+Math['abs'](this['w']);}['normalize'](){return this['divideScalar'](this['length']()||0x1);}['setLength'](a4){return this['normalize']()['multiplyScalar'](a4);}['lerp'](a4,a5){return this['x']+=(a4['x']-this['x'])*a5,this['y']+=(a4['y']-this['y'])*a5,this['z']+=(a4['z']-this['z'])*a5,this['w']+=(a4['w']-this['w'])*a5,this;}[d4(0x569)](a4,a5,a6){return this['x']=a4['x']+(a5['x']-a4['x'])*a6,this['y']=a4['y']+(a5['y']-a4['y'])*a6,this['z']=a4['z']+(a5['z']-a4['z'])*a6,this['w']=a4['w']+(a5['w']-a4['w'])*a6,this;}['equals'](a4){return a4['x']===this['x']&&a4['y']===this['y']&&a4['z']===this['z']&&a4['w']===this['w'];}[d4(0x3c4)](a4,a5=0x0){return this['x']=a4[a5],this['y']=a4[a5+0x1],this['z']=a4[a5+0x2],this['w']=a4[a5+0x3],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['x'],a4[a5+0x1]=this['y'],a4[a5+0x2]=this['z'],a4[a5+0x3]=this['w'],a4;}['fromBufferAttribute'](a4,a5){const ff=d4;return this['x']=a4['getX'](a5),this['y']=a4['getY'](a5),this['z']=a4[ff(0x132)](a5),this['w']=a4['getW'](a5),this;}[d4(0x2e1)](){const fg=d4;return this['x']=Math[fg(0x2e1)](),this['y']=Math['random'](),this['z']=Math['random'](),this['w']=Math['random'](),this;}*[f](){yield this['x'],yield this['y'],yield this['z'],yield this['w'];}};s=q,s['prototype']['isVector4']=!0x0;var dn=class extends xt{constructor(a4=0x1,a5=0x1,a6={}){const fh=d4;super(),a6=Object['assign']({'generateMipmaps':!0x1,'internalFormat':null,'minFilter':S,'depthBuffer':!0x0,'stencilBuffer':!0x1,'resolveDepthBuffer':!0x0,'resolveStencilBuffer':!0x0,'depthTexture':null,'samples':0x0,'count':0x1,'depth':0x1,'multiview':!0x1},a6),this['isRenderTarget']=!0x0,this['width']=a4,this[fh(0x45f)]=a5,this['depth']=a6[fh(0x11c)],this['scissor']=new q(0x0,0x0,a4,a5),this[fh(0x115)]=!0x1,this['viewport']=new q(0x0,0x0,a4,a5),this['textures']=[];let a7=new un({'width':a4,'height':a5,'depth':a6[fh(0x11c)]}),a8=a6[fh(0x58d)];for(let a9=0x0;a9<a8;a9++)this['textures'][a9]=a7['clone'](),this['textures'][a9]['isRenderTargetTexture']=!0x0,this['textures'][a9]['renderTarget']=this;this['_setTextureOptions'](a6),this['depthBuffer']=a6['depthBuffer'],this['stencilBuffer']=a6['stencilBuffer'],this[fh(0x21b)]=a6['resolveDepthBuffer'],this['resolveStencilBuffer']=a6['resolveStencilBuffer'],this['_depthTexture']=null,this['depthTexture']=a6['depthTexture'],this['samples']=a6['samples'],this[fh(0x337)]=a6['multiview'];}['_setTextureOptions'](a4={}){const fj=d4;let a5={'minFilter':S,'generateMipmaps':!0x1,'flipY':!0x1,'internalFormat':null};a4['mapping']!==void 0x0&&(a5['mapping']=a4[fj(0x23a)]),a4['wrapS']!==void 0x0&&(a5['wrapS']=a4['wrapS']),a4[fj(0x103)]!==void 0x0&&(a5['wrapT']=a4['wrapT']),a4[fj(0x88)]!==void 0x0&&(a5['wrapR']=a4[fj(0x88)]),a4['magFilter']!==void 0x0&&(a5['magFilter']=a4['magFilter']),a4['minFilter']!==void 0x0&&(a5['minFilter']=a4['minFilter']),a4[fj(0x196)]!==void 0x0&&(a5[fj(0x196)]=a4['format']),a4['type']!==void 0x0&&(a5['type']=a4[fj(0x40b)]),a4['anisotropy']!==void 0x0&&(a5['anisotropy']=a4['anisotropy']),a4[fj(0x30e)]!==void 0x0&&(a5['colorSpace']=a4['colorSpace']),a4['flipY']!==void 0x0&&(a5[fj(0x20a)]=a4['flipY']),a4[fj(0x4aa)]!==void 0x0&&(a5['generateMipmaps']=a4['generateMipmaps']),a4['internalFormat']!==void 0x0&&(a5['internalFormat']=a4['internalFormat']);for(let a6=0x0;a6<this['textures']['length'];a6++)this['textures'][a6][fj(0x12c)](a5);}get[d4(0x2e9)](){const fk=d4;return this[fk(0x2c6)][0x0];}set['texture'](a4){this['textures'][0x0]=a4;}set['depthTexture'](a4){this['_depthTexture']!==null&&(this['_depthTexture']['renderTarget']=null),a4!==null&&(a4['renderTarget']=this),this['_depthTexture']=a4;}get[d4(0x49e)](){const fm=d4;return this[fm(0x2a2)];}['setSize'](a4,a5,a6=0x1){const fp=d4;if(this['width']!==a4||this['height']!==a5||this['depth']!==a6){this['width']=a4,this['height']=a5,this['depth']=a6;for(let a7=0x0,a8=this['textures']['length'];a7<a8;a7++)this['textures'][a7]['image']['width']=a4,this['textures'][a7]['image']['height']=a5,this['textures'][a7]['image']['depth']=a6,this['textures'][a7][fp(0x3ad)]!==!0x0&&(this[fp(0x2c6)][a7][fp(0x1af)]=this['textures'][a7]['image']['depth']>0x1);this['dispose']();}this[fp(0x1c0)][fp(0x479)](0x0,0x0,a4,a5),this['scissor']['set'](0x0,0x0,a4,a5);}['clone'](){return new this['constructor']()['copy'](this);}[d4(0x32f)](a4){const fq=d4;this['width']=a4['width'],this['height']=a4['height'],this['depth']=a4['depth'],this['scissor'][fq(0x32f)](a4['scissor']),this[fq(0x115)]=a4['scissorTest'],this['viewport']['copy'](a4['viewport']),this['textures']['length']=0x0;for(let a5=0x0,a6=a4['textures'][fq(0x27a)];a5<a6;a5++){this['textures'][a5]=a4[fq(0x2c6)][a5]['clone'](),this['textures'][a5][fq(0x588)]=!0x0,this['textures'][a5][fq(0x355)]=this;let a7=Object[fq(0x130)]({},a4['textures'][a5]['image']);this[fq(0x2c6)][a5]['source']=new on(a7);}return this['depthBuffer']=a4['depthBuffer'],this['stencilBuffer']=a4['stencilBuffer'],this['resolveDepthBuffer']=a4[fq(0x21b)],this['resolveStencilBuffer']=a4[fq(0x51e)],a4['depthTexture']!==null&&(this['depthTexture']=a4[fq(0x49e)]['clone']()),this['samples']=a4['samples'],this['multiview']=a4[fq(0x337)],this;}['dispose'](){const fv=d4;this[fv(0x8c)]({'type':'dispose'});}},fn=class extends dn{constructor(a4=0x1,a5=0x1,a6={}){super(a4,a5,a6),this['isWebGLRenderTarget']=!0x0;}},pn=class extends un{constructor(a4=null,a5=0x1,a6=0x1,a7=0x1){const fw=d4;super(null),this['isDataArrayTexture']=!0x0,this['image']={'data':a4,'width':a5,'height':a6,'depth':a7},this[fw(0x2b8)]=y,this['minFilter']=y,this['wrapR']=_,this['generateMipmaps']=!0x1,this['flipY']=!0x1,this['unpackAlignment']=0x1,this['layerUpdates']=new Set();}['addLayerUpdate'](a4){this['layerUpdates']['add'](a4);}['clearLayerUpdates'](){const fx=d4;this['layerUpdates'][fx(0x330)]();}},mn=class extends un{constructor(a4=null,a5=0x1,a6=0x1,a7=0x1){const fy=d4;super(null),this[fy(0x3ad)]=!0x0,this['image']={'data':a4,'width':a5,'height':a6,'depth':a7},this['magFilter']=y,this['minFilter']=y,this['wrapR']=_,this['generateMipmaps']=!0x1,this['flipY']=!0x1,this[fy(0x9b)]=0x1;}},J=class e{constructor(a4,a5,a6,a7,a8,a9,ab,af,ag,ah,aj,ak,am,ap,aq,av){this['elements']=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],a4!==void 0x0&&this['set'](a4,a5,a6,a7,a8,a9,ab,af,ag,ah,aj,ak,am,ap,aq,av);}['set'](a4,a5,a6,a7,a8,a9,ab,af,ag,ah,aj,ak,am,ap,aq,av){let aw=this['elements'];return aw[0x0]=a4,aw[0x4]=a5,aw[0x8]=a6,aw[0xc]=a7,aw[0x1]=a8,aw[0x5]=a9,aw[0x9]=ab,aw[0xd]=af,aw[0x2]=ag,aw[0x6]=ah,aw[0xa]=aj,aw[0xe]=ak,aw[0x3]=am,aw[0x7]=ap,aw[0xb]=aq,aw[0xf]=av,this;}[d4(0x581)](){const fz=d4;return this[fz(0x479)](0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1),this;}['clone'](){const fA=d4;return new e()['fromArray'](this[fA(0xdf)]);}['copy'](a4){const fB=d4;let a5=this['elements'],a6=a4[fB(0xdf)];return a5[0x0]=a6[0x0],a5[0x1]=a6[0x1],a5[0x2]=a6[0x2],a5[0x3]=a6[0x3],a5[0x4]=a6[0x4],a5[0x5]=a6[0x5],a5[0x6]=a6[0x6],a5[0x7]=a6[0x7],a5[0x8]=a6[0x8],a5[0x9]=a6[0x9],a5[0xa]=a6[0xa],a5[0xb]=a6[0xb],a5[0xc]=a6[0xc],a5[0xd]=a6[0xd],a5[0xe]=a6[0xe],a5[0xf]=a6[0xf],this;}['copyPosition'](a4){let a5=this['elements'],a6=a4['elements'];return a5[0xc]=a6[0xc],a5[0xd]=a6[0xd],a5[0xe]=a6[0xe],this;}['setFromMatrix3'](a4){const fC=d4;let a5=a4[fC(0xdf)];return this[fC(0x479)](a5[0x0],a5[0x3],a5[0x6],0x0,a5[0x1],a5[0x4],a5[0x7],0x0,a5[0x2],a5[0x5],a5[0x8],0x0,0x0,0x0,0x0,0x1),this;}[d4(0x25f)](a4,a5,a6){const fD=d4;return this['determinant']()===0x0?(a4['set'](0x1,0x0,0x0),a5['set'](0x0,0x1,0x0),a6[fD(0x479)](0x0,0x0,0x1),this):(a4['setFromMatrixColumn'](this,0x0),a5['setFromMatrixColumn'](this,0x1),a6['setFromMatrixColumn'](this,0x2),this);}[d4(0x359)](a4,a5,a6){return this['set'](a4['x'],a5['x'],a6['x'],0x0,a4['y'],a5['y'],a6['y'],0x0,a4['z'],a5['z'],a6['z'],0x0,0x0,0x0,0x0,0x1),this;}[d4(0x135)](a4){const fE=d4;if(a4['determinant']()===0x0)return this[fE(0x581)]();let a5=this['elements'],a6=a4['elements'],a7=0x1/hn['setFromMatrixColumn'](a4,0x0)['length'](),a8=0x1/hn['setFromMatrixColumn'](a4,0x1)['length'](),a9=0x1/hn['setFromMatrixColumn'](a4,0x2)['length']();return a5[0x0]=a6[0x0]*a7,a5[0x1]=a6[0x1]*a7,a5[0x2]=a6[0x2]*a7,a5[0x3]=0x0,a5[0x4]=a6[0x4]*a8,a5[0x5]=a6[0x5]*a8,a5[0x6]=a6[0x6]*a8,a5[0x7]=0x0,a5[0x8]=a6[0x8]*a9,a5[0x9]=a6[0x9]*a9,a5[0xa]=a6[0xa]*a9,a5[0xb]=0x0,a5[0xc]=0x0,a5[0xd]=0x0,a5[0xe]=0x0,a5[0xf]=0x1,this;}['makeRotationFromEuler'](a4){const fF=d4;let a5=this['elements'],a6=a4['x'],a7=a4['y'],a8=a4['z'],a9=Math[fF(0x4ea)](a6),ab=Math[fF(0x8a)](a6),af=Math['cos'](a7),ag=Math['sin'](a7),ah=Math['cos'](a8),aj=Math['sin'](a8);if(a4[fF(0x4a2)]==='XYZ'){let ak=a9*ah,am=a9*aj,ap=ab*ah,aq=ab*aj;a5[0x0]=af*ah,a5[0x4]=-af*aj,a5[0x8]=ag,a5[0x1]=am+ap*ag,a5[0x5]=ak-aq*ag,a5[0x9]=-ab*af,a5[0x2]=aq-ak*ag,a5[0x6]=ap+am*ag,a5[0xa]=a9*af;}else{if(a4['order']==='YXZ'){let av=af*ah,aw=af*aj,ax=ag*ah,ay=ag*aj;a5[0x0]=av+ay*ab,a5[0x4]=ax*ab-aw,a5[0x8]=a9*ag,a5[0x1]=a9*aj,a5[0x5]=a9*ah,a5[0x9]=-ab,a5[0x2]=aw*ab-ax,a5[0x6]=ay+av*ab,a5[0xa]=a9*af;}else{if(a4[fF(0x4a2)]==='ZXY'){let az=af*ah,aA=af*aj,aB=ag*ah,aC=ag*aj;a5[0x0]=az-aC*ab,a5[0x4]=-a9*aj,a5[0x8]=aB+aA*ab,a5[0x1]=aA+aB*ab,a5[0x5]=a9*ah,a5[0x9]=aC-az*ab,a5[0x2]=-a9*ag,a5[0x6]=ab,a5[0xa]=a9*af;}else{if(a4['order']==='ZYX'){let aD=a9*ah,aE=a9*aj,aF=ab*ah,aG=ab*aj;a5[0x0]=af*ah,a5[0x4]=aF*ag-aE,a5[0x8]=aD*ag+aG,a5[0x1]=af*aj,a5[0x5]=aG*ag+aD,a5[0x9]=aE*ag-aF,a5[0x2]=-ag,a5[0x6]=ab*af,a5[0xa]=a9*af;}else{if(a4[fF(0x4a2)]==='YZX'){let aH=a9*af,aI=a9*ag,aJ=ab*af,aK=ab*ag;a5[0x0]=af*ah,a5[0x4]=aK-aH*aj,a5[0x8]=aJ*aj+aI,a5[0x1]=aj,a5[0x5]=a9*ah,a5[0x9]=-ab*ah,a5[0x2]=-ag*ah,a5[0x6]=aI*aj+aJ,a5[0xa]=aH-aK*aj;}else{if(a4['order']==='XZY'){let aL=a9*af,aM=a9*ag,aN=ab*af,aO=ab*ag;a5[0x0]=af*ah,a5[0x4]=-aj,a5[0x8]=ag*ah,a5[0x1]=aL*aj+aO,a5[0x5]=a9*ah,a5[0x9]=aM*aj-aN,a5[0x2]=aN*aj-aM,a5[0x6]=ab*ah,a5[0xa]=aO*aj+aL;}}}}}}return a5[0x3]=0x0,a5[0x7]=0x0,a5[0xb]=0x0,a5[0xc]=0x0,a5[0xd]=0x0,a5[0xe]=0x0,a5[0xf]=0x1,this;}['makeRotationFromQuaternion'](a4){return this['compose'](_n,a4,vn);}['lookAt'](a4,a5,a6){const fG=d4;let a7=this['elements'];return xn[fG(0x52f)](a4,a5),xn['lengthSq']()===0x0&&(xn['z']=0x1),xn['normalize'](),yn['crossVectors'](a6,xn),yn['lengthSq']()===0x0&&(Math['abs'](a6['z'])===0x1?xn['x']+=0.0001:xn['z']+=0.0001,xn['normalize'](),yn['crossVectors'](a6,xn)),yn['normalize'](),bn['crossVectors'](xn,yn),a7[0x0]=yn['x'],a7[0x4]=bn['x'],a7[0x8]=xn['x'],a7[0x1]=yn['y'],a7[0x5]=bn['y'],a7[0x9]=xn['y'],a7[0x2]=yn['z'],a7[0x6]=bn['z'],a7[0xa]=xn['z'],this;}[d4(0x3d0)](a4){const fH=d4;return this[fH(0x49c)](this,a4);}['premultiply'](a4){return this['multiplyMatrices'](a4,this);}[d4(0x49c)](a4,a5){let a6=a4['elements'],a7=a5['elements'],a8=this['elements'],a9=a6[0x0],ab=a6[0x4],af=a6[0x8],ag=a6[0xc],ah=a6[0x1],aj=a6[0x5],ak=a6[0x9],am=a6[0xd],ap=a6[0x2],aq=a6[0x6],av=a6[0xa],aw=a6[0xe],ax=a6[0x3],ay=a6[0x7],az=a6[0xb],aA=a6[0xf],aB=a7[0x0],aC=a7[0x4],aD=a7[0x8],aE=a7[0xc],aF=a7[0x1],aG=a7[0x5],aH=a7[0x9],aI=a7[0xd],aJ=a7[0x2],aK=a7[0x6],aL=a7[0xa],aM=a7[0xe],aN=a7[0x3],aO=a7[0x7],aP=a7[0xb],aQ=a7[0xf];return a8[0x0]=a9*aB+ab*aF+af*aJ+ag*aN,a8[0x4]=a9*aC+ab*aG+af*aK+ag*aO,a8[0x8]=a9*aD+ab*aH+af*aL+ag*aP,a8[0xc]=a9*aE+ab*aI+af*aM+ag*aQ,a8[0x1]=ah*aB+aj*aF+ak*aJ+am*aN,a8[0x5]=ah*aC+aj*aG+ak*aK+am*aO,a8[0x9]=ah*aD+aj*aH+ak*aL+am*aP,a8[0xd]=ah*aE+aj*aI+ak*aM+am*aQ,a8[0x2]=ap*aB+aq*aF+av*aJ+aw*aN,a8[0x6]=ap*aC+aq*aG+av*aK+aw*aO,a8[0xa]=ap*aD+aq*aH+av*aL+aw*aP,a8[0xe]=ap*aE+aq*aI+av*aM+aw*aQ,a8[0x3]=ax*aB+ay*aF+az*aJ+aA*aN,a8[0x7]=ax*aC+ay*aG+az*aK+aA*aO,a8[0xb]=ax*aD+ay*aH+az*aL+aA*aP,a8[0xf]=ax*aE+ay*aI+az*aM+aA*aQ,this;}['multiplyScalar'](a4){const fI=d4;let a5=this[fI(0xdf)];return a5[0x0]*=a4,a5[0x4]*=a4,a5[0x8]*=a4,a5[0xc]*=a4,a5[0x1]*=a4,a5[0x5]*=a4,a5[0x9]*=a4,a5[0xd]*=a4,a5[0x2]*=a4,a5[0x6]*=a4,a5[0xa]*=a4,a5[0xe]*=a4,a5[0x3]*=a4,a5[0x7]*=a4,a5[0xb]*=a4,a5[0xf]*=a4,this;}['determinant'](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x4],a7=a4[0x8],a8=a4[0xc],a9=a4[0x1],ab=a4[0x5],af=a4[0x9],ag=a4[0xd],ah=a4[0x2],aj=a4[0x6],ak=a4[0xa],am=a4[0xe],ap=a4[0x3],aq=a4[0x7],av=a4[0xb],aw=a4[0xf],ax=af*am-ag*ak,ay=ab*am-ag*aj,az=ab*ak-af*aj,aA=a9*am-ag*ah,aB=a9*ak-af*ah,aC=a9*aj-ab*ah;return a5*(aq*ax-av*ay+aw*az)-a6*(ap*ax-av*aA+aw*aB)+a7*(ap*ay-aq*aA+aw*aC)-a8*(ap*az-aq*aB+av*aC);}['transpose'](){let a4=this['elements'],a5;return a5=a4[0x1],a4[0x1]=a4[0x4],a4[0x4]=a5,a5=a4[0x2],a4[0x2]=a4[0x8],a4[0x8]=a5,a5=a4[0x6],a4[0x6]=a4[0x9],a4[0x9]=a5,a5=a4[0x3],a4[0x3]=a4[0xc],a4[0xc]=a5,a5=a4[0x7],a4[0x7]=a4[0xd],a4[0xd]=a5,a5=a4[0xb],a4[0xb]=a4[0xe],a4[0xe]=a5,this;}['setPosition'](a4,a5,a6){let a7=this['elements'];return a4['isVector3']?(a7[0xc]=a4['x'],a7[0xd]=a4['y'],a7[0xe]=a4['z']):(a7[0xc]=a4,a7[0xd]=a5,a7[0xe]=a6),this;}['invert'](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x1],a7=a4[0x2],a8=a4[0x3],a9=a4[0x4],ab=a4[0x5],af=a4[0x6],ag=a4[0x7],ah=a4[0x8],aj=a4[0x9],ak=a4[0xa],am=a4[0xb],ap=a4[0xc],aq=a4[0xd],av=a4[0xe],aw=a4[0xf],ax=a5*ab-a6*a9,ay=a5*af-a7*a9,az=a5*ag-a8*a9,aA=a6*af-a7*ab,aB=a6*ag-a8*ab,aC=a7*ag-a8*af,aD=ah*aq-aj*ap,aE=ah*av-ak*ap,aF=ah*aw-am*ap,aG=aj*av-ak*aq,aH=aj*aw-am*aq,aI=ak*aw-am*av,aJ=ax*aI-ay*aH+az*aG+aA*aF-aB*aE+aC*aD;if(aJ===0x0)return this['set'](0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0);let aK=0x1/aJ;return a4[0x0]=(ab*aI-af*aH+ag*aG)*aK,a4[0x1]=(a7*aH-a6*aI-a8*aG)*aK,a4[0x2]=(aq*aC-av*aB+aw*aA)*aK,a4[0x3]=(ak*aB-aj*aC-am*aA)*aK,a4[0x4]=(af*aF-a9*aI-ag*aE)*aK,a4[0x5]=(a5*aI-a7*aF+a8*aE)*aK,a4[0x6]=(av*az-ap*aC-aw*ay)*aK,a4[0x7]=(ah*aC-ak*az+am*ay)*aK,a4[0x8]=(a9*aH-ab*aF+ag*aD)*aK,a4[0x9]=(a6*aF-a5*aH-a8*aD)*aK,a4[0xa]=(ap*aB-aq*az+aw*ax)*aK,a4[0xb]=(aj*az-ah*aB-am*ax)*aK,a4[0xc]=(ab*aE-a9*aG-af*aD)*aK,a4[0xd]=(a5*aG-a6*aE+a7*aD)*aK,a4[0xe]=(aq*ay-ap*aA-av*ax)*aK,a4[0xf]=(ah*aA-aj*ay+ak*ax)*aK,this;}['scale'](a4){let a5=this['elements'],a6=a4['x'],a7=a4['y'],a8=a4['z'];return a5[0x0]*=a6,a5[0x4]*=a7,a5[0x8]*=a8,a5[0x1]*=a6,a5[0x5]*=a7,a5[0x9]*=a8,a5[0x2]*=a6,a5[0x6]*=a7,a5[0xa]*=a8,a5[0x3]*=a6,a5[0x7]*=a7,a5[0xb]*=a8,this;}[d4(0x2bc)](){const fJ=d4;let a4=this['elements'],a5=a4[0x0]*a4[0x0]+a4[0x1]*a4[0x1]+a4[0x2]*a4[0x2],a6=a4[0x4]*a4[0x4]+a4[0x5]*a4[0x5]+a4[0x6]*a4[0x6],a7=a4[0x8]*a4[0x8]+a4[0x9]*a4[0x9]+a4[0xa]*a4[0xa];return Math['sqrt'](Math[fJ(0x360)](a5,a6,a7));}['makeTranslation'](a4,a5,a6){return a4['isVector3']?this['set'](0x1,0x0,0x0,a4['x'],0x0,0x1,0x0,a4['y'],0x0,0x0,0x1,a4['z'],0x0,0x0,0x0,0x1):this['set'](0x1,0x0,0x0,a4,0x0,0x1,0x0,a5,0x0,0x0,0x1,a6,0x0,0x0,0x0,0x1),this;}['makeRotationX'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](0x1,0x0,0x0,0x0,0x0,a5,-a6,0x0,0x0,a6,a5,0x0,0x0,0x0,0x0,0x1),this;}['makeRotationY'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](a5,0x0,a6,0x0,0x0,0x1,0x0,0x0,-a6,0x0,a5,0x0,0x0,0x0,0x0,0x1),this;}['makeRotationZ'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](a5,-a6,0x0,0x0,a6,a5,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1),this;}[d4(0x4b2)](a4,a5){const fK=d4;let a6=Math[fK(0x4ea)](a5),a7=Math['sin'](a5),a8=0x1-a6,a9=a4['x'],ab=a4['y'],af=a4['z'],ag=a8*a9,ah=a8*ab;return this['set'](ag*a9+a6,ag*ab-a7*af,ag*af+a7*ab,0x0,ag*ab+a7*af,ah*ab+a6,ah*af-a7*a9,0x0,ag*af-a7*ab,ah*af+a7*a9,a8*af*af+a6,0x0,0x0,0x0,0x0,0x1),this;}['makeScale'](a4,a5,a6){const fL=d4;return this[fL(0x479)](a4,0x0,0x0,0x0,0x0,a5,0x0,0x0,0x0,0x0,a6,0x0,0x0,0x0,0x0,0x1),this;}['makeShear'](a4,a5,a6,a7,a8,a9){return this['set'](0x1,a6,a8,0x0,a4,0x1,a9,0x0,a5,a7,0x1,0x0,0x0,0x0,0x0,0x1),this;}['compose'](a4,a5,a6){let a7=this['elements'],a8=a5['_x'],a9=a5['_y'],ab=a5['_z'],af=a5['_w'],ag=a8+a8,ah=a9+a9,aj=ab+ab,ak=a8*ag,am=a8*ah,ap=a8*aj,aq=a9*ah,av=a9*aj,aw=ab*aj,ax=af*ag,ay=af*ah,az=af*aj,aA=a6['x'],aB=a6['y'],aC=a6['z'];return a7[0x0]=(0x1-(aq+aw))*aA,a7[0x1]=(am+az)*aA,a7[0x2]=(ap-ay)*aA,a7[0x3]=0x0,a7[0x4]=(am-az)*aB,a7[0x5]=(0x1-(ak+aw))*aB,a7[0x6]=(av+ax)*aB,a7[0x7]=0x0,a7[0x8]=(ap+ay)*aC,a7[0x9]=(av-ax)*aC,a7[0xa]=(0x1-(ak+aq))*aC,a7[0xb]=0x0,a7[0xc]=a4['x'],a7[0xd]=a4['y'],a7[0xe]=a4['z'],a7[0xf]=0x1,this;}['decompose'](a4,a5,a6){const fM=d4;let a7=this['elements'];a4['x']=a7[0xc],a4['y']=a7[0xd],a4['z']=a7[0xe];let a8=this['determinant']();if(a8===0x0)return a6['set'](0x1,0x1,0x1),a5['identity'](),this;let a9=hn[fM(0x479)](a7[0x0],a7[0x1],a7[0x2])['length'](),ab=hn[fM(0x479)](a7[0x4],a7[0x5],a7[0x6])['length'](),af=hn['set'](a7[0x8],a7[0x9],a7[0xa])['length']();a8<0x0&&(a9=-a9),gn[fM(0x32f)](this);let ag=0x1/a9,ah=0x1/ab,aj=0x1/af;return gn['elements'][0x0]*=ag,gn[fM(0xdf)][0x1]*=ag,gn[fM(0xdf)][0x2]*=ag,gn['elements'][0x4]*=ah,gn[fM(0xdf)][0x5]*=ah,gn['elements'][0x6]*=ah,gn[fM(0xdf)][0x8]*=aj,gn['elements'][0x9]*=aj,gn['elements'][0xa]*=aj,a5['setFromRotationMatrix'](gn),a6['x']=a9,a6['y']=ab,a6['z']=af,this;}['makePerspective'](a4,a5,a6,a7,a8,a9,ab=lt,af=!0x1){const fN=d4;let ag=this['elements'],ah=0x2*a8/(a5-a4),aj=0x2*a8/(a6-a7),ak=(a5+a4)/(a5-a4),am=(a6+a7)/(a6-a7),ap,aq;if(af)ap=a8/(a9-a8),aq=a9*a8/(a9-a8);else{if(ab===0x7d0)ap=-(a9+a8)/(a9-a8),aq=-0x2*a9*a8/(a9-a8);else{if(ab===0x7d1)ap=-a9/(a9-a8),aq=-a9*a8/(a9-a8);else throw Error(fN(0x147)+ab);}}return ag[0x0]=ah,ag[0x4]=0x0,ag[0x8]=ak,ag[0xc]=0x0,ag[0x1]=0x0,ag[0x5]=aj,ag[0x9]=am,ag[0xd]=0x0,ag[0x2]=0x0,ag[0x6]=0x0,ag[0xa]=ap,ag[0xe]=aq,ag[0x3]=0x0,ag[0x7]=0x0,ag[0xb]=-0x1,ag[0xf]=0x0,this;}[d4(0x53a)](a4,a5,a6,a7,a8,a9,ab=lt,af=!0x1){let ag=this['elements'],ah=0x2/(a5-a4),aj=0x2/(a6-a7),ak=-(a5+a4)/(a5-a4),am=-(a6+a7)/(a6-a7),ap,aq;if(af)ap=0x1/(a9-a8),aq=a9/(a9-a8);else{if(ab===0x7d0)ap=-0x2/(a9-a8),aq=-(a9+a8)/(a9-a8);else{if(ab===0x7d1)ap=-0x1/(a9-a8),aq=-a8/(a9-a8);else throw Error('THREE.Matrix4.makeOrthographic():\x20Invalid\x20coordinate\x20system:\x20'+ab);}}return ag[0x0]=ah,ag[0x4]=0x0,ag[0x8]=0x0,ag[0xc]=ak,ag[0x1]=0x0,ag[0x5]=aj,ag[0x9]=0x0,ag[0xd]=am,ag[0x2]=0x0,ag[0x6]=0x0,ag[0xa]=ap,ag[0xe]=aq,ag[0x3]=0x0,ag[0x7]=0x0,ag[0xb]=0x0,ag[0xf]=0x1,this;}['equals'](a4){let a5=this['elements'],a6=a4['elements'];for(let a7=0x0;a7<0x10;a7++)if(a5[a7]!==a6[a7])return!0x1;return!0x0;}['fromArray'](a4,a5=0x0){for(let a6=0x0;a6<0x10;a6++)this['elements'][a6]=a4[a6+a5];return this;}['toArray'](a4=[],a5=0x0){let a6=this['elements'];return a4[a5]=a6[0x0],a4[a5+0x1]=a6[0x1],a4[a5+0x2]=a6[0x2],a4[a5+0x3]=a6[0x3],a4[a5+0x4]=a6[0x4],a4[a5+0x5]=a6[0x5],a4[a5+0x6]=a6[0x6],a4[a5+0x7]=a6[0x7],a4[a5+0x8]=a6[0x8],a4[a5+0x9]=a6[0x9],a4[a5+0xa]=a6[0xa],a4[a5+0xb]=a6[0xb],a4[a5+0xc]=a6[0xc],a4[a5+0xd]=a6[0xd],a4[a5+0xe]=a6[0xe],a4[a5+0xf]=a6[0xf],a4;}};c=J,c['prototype']['isMatrix4']=!0x0;var hn=new W(),gn=new J(),_n=new W(0x0,0x0,0x0),vn=new W(0x1,0x1,0x1),yn=new W(),bn=new W(),xn=new W(),Sn=new J(),Cn=new qt(),wn=class e{constructor(a4=0x0,a5=0x0,a6=0x0,a7=e['DEFAULT_ORDER']){const fO=d4;this[fO(0x28c)]=!0x0,this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_order']=a7;}get['x'](){return this['_x'];}set['x'](a4){const fP=d4;this['_x']=a4,this[fP(0x212)]();}get['y'](){return this['_y'];}set['y'](a4){this['_y']=a4,this['_onChangeCallback']();}get['z'](){return this['_z'];}set['z'](a4){this['_z']=a4,this['_onChangeCallback']();}get[d4(0x4a2)](){return this['_order'];}set['order'](a4){this['_order']=a4,this['_onChangeCallback']();}['set'](a4,a5,a6,a7=this['_order']){const fQ=d4;return this['_x']=a4,this['_y']=a5,this['_z']=a6,this[fQ(0x3e1)]=a7,this[fQ(0x212)](),this;}['clone'](){const fR=d4;return new this['constructor'](this['_x'],this['_y'],this['_z'],this[fR(0x3e1)]);}['copy'](a4){return this['_x']=a4['_x'],this['_y']=a4['_y'],this['_z']=a4['_z'],this['_order']=a4['_order'],this['_onChangeCallback'](),this;}['setFromRotationMatrix'](a4,a5=this['_order'],a6=!0x0){const fS=d4;let a7=a4['elements'],a8=a7[0x0],a9=a7[0x4],ab=a7[0x8],af=a7[0x1],ag=a7[0x5],ah=a7[0x9],aj=a7[0x2],ak=a7[0x6],am=a7[0xa];switch(a5){case'XYZ':this['_y']=Math['asin'](V(ab,-0x1,0x1)),Math['abs'](ab)<0.9999999?(this['_x']=Math['atan2'](-ah,am),this['_z']=Math['atan2'](-a9,a8)):(this['_x']=Math['atan2'](ak,ag),this['_z']=0x0);break;case'YXZ':this['_x']=Math['asin'](-V(ah,-0x1,0x1)),Math['abs'](ah)<0.9999999?(this['_y']=Math['atan2'](ab,am),this['_z']=Math[fS(0x262)](af,ag)):(this['_y']=Math['atan2'](-aj,a8),this['_z']=0x0);break;case'ZXY':this['_x']=Math['asin'](V(ak,-0x1,0x1)),Math['abs'](ak)<0.9999999?(this['_y']=Math['atan2'](-aj,am),this['_z']=Math['atan2'](-a9,ag)):(this['_y']=0x0,this['_z']=Math['atan2'](af,a8));break;case fS(0x2d3):this['_y']=Math['asin'](-V(aj,-0x1,0x1)),Math['abs'](aj)<0.9999999?(this['_x']=Math['atan2'](ak,am),this['_z']=Math['atan2'](af,a8)):(this['_x']=0x0,this['_z']=Math[fS(0x262)](-a9,ag));break;case'YZX':this['_z']=Math['asin'](V(af,-0x1,0x1)),Math['abs'](af)<0.9999999?(this['_x']=Math['atan2'](-ah,ag),this['_y']=Math['atan2'](-aj,a8)):(this['_x']=0x0,this['_y']=Math['atan2'](ab,am));break;case'XZY':this['_z']=Math['asin'](-V(a9,-0x1,0x1)),Math['abs'](a9)<0.9999999?(this['_x']=Math[fS(0x262)](ak,ag),this['_y']=Math['atan2'](ab,a8)):(this['_x']=Math['atan2'](-ah,am),this['_y']=0x0);break;default:z('Euler:\x20.setFromRotationMatrix()\x20encountered\x20an\x20unknown\x20order:\x20'+a5);}return this['_order']=a5,a6===!0x0&&this[fS(0x212)](),this;}['setFromQuaternion'](a4,a5,a6){return Sn['makeRotationFromQuaternion'](a4),this['setFromRotationMatrix'](Sn,a5,a6);}[d4(0x296)](a4,a5=this['_order']){return this['set'](a4['x'],a4['y'],a4['z'],a5);}['reorder'](a4){return Cn['setFromEuler'](this),this['setFromQuaternion'](Cn,a4);}['equals'](a4){return a4['_x']===this['_x']&&a4['_y']===this['_y']&&a4['_z']===this['_z']&&a4['_order']===this['_order'];}['fromArray'](a4){return this['_x']=a4[0x0],this['_y']=a4[0x1],this['_z']=a4[0x2],a4[0x3]!==void 0x0&&(this['_order']=a4[0x3]),this['_onChangeCallback'](),this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['_x'],a4[a5+0x1]=this['_y'],a4[a5+0x2]=this['_z'],a4[a5+0x3]=this['_order'],a4;}['_onChange'](a4){return this['_onChangeCallback']=a4,this;}['_onChangeCallback'](){}*[Symbol['iterator']](){yield this['_x'],yield this['_y'],yield this['_z'],yield this['_order'];}};wn[d4(0x1d6)]='XYZ';var Tn=class{constructor(){this['mask']=0x1;}[d4(0x479)](a4){this['mask']=(0x1<<a4|0x0)>>>0x0;}['enable'](a4){this['mask']|=0x1<<a4|0x0;}['enableAll'](){this['mask']=-0x1;}['toggle'](a4){this['mask']^=0x1<<a4|0x0;}['disable'](a4){this['mask']&=~(0x1<<a4|0x0);}['disableAll'](){const fT=d4;this[fT(0x12b)]=0x0;}['test'](a4){const fU=d4;return(this['mask']&a4[fU(0x12b)])!==0x0;}['isEnabled'](a4){return(this['mask']&(0x1<<a4|0x0))!=0x0;}},En=0x0,Dn=new W(),On=new qt(),kn=new J(),An=new W(),jn=new W(),Mn=new W(),Nn=new qt(),Pn=new W(0x1,0x0,0x0),Fn=new W(0x0,0x1,0x0),In=new W(0x0,0x0,0x1),Ln={'type':'added'},Rn={'type':d4(0x53b)},zn={'type':'childadded','child':null},Bn={'type':'childremoved','child':null},Vn=class e extends xt{constructor(){const fV=d4;super(),this['isObject3D']=!0x0,Object['defineProperty'](this,'id',{'value':En++}),this['uuid']=Et(),this['name']='',this['type']='Object3D',this[fV(0x25a)]=null,this['children']=[],this['up']=e['DEFAULT_UP']['clone']();let a4=new W(),a5=new wn(),a6=new qt(),a7=new W(0x1,0x1,0x1);function a8(){a6['setFromEuler'](a5,!0x1);}function a9(){a5['setFromQuaternion'](a6,void 0x0,!0x1);}a5['_onChange'](a8),a6['_onChange'](a9),Object['defineProperties'](this,{'position':{'configurable':!0x0,'enumerable':!0x0,'value':a4},'rotation':{'configurable':!0x0,'enumerable':!0x0,'value':a5},'quaternion':{'configurable':!0x0,'enumerable':!0x0,'value':a6},'scale':{'configurable':!0x0,'enumerable':!0x0,'value':a7},'modelViewMatrix':{'value':new J()},'normalMatrix':{'value':new G()}}),this[fV(0x57a)]=new J(),this['matrixWorld']=new J(),this['matrixAutoUpdate']=e['DEFAULT_MATRIX_AUTO_UPDATE'],this['matrixWorldAutoUpdate']=e['DEFAULT_MATRIX_WORLD_AUTO_UPDATE'],this['matrixWorldNeedsUpdate']=!0x1,this['layers']=new Tn(),this['visible']=!0x0,this['castShadow']=!0x1,this['receiveShadow']=!0x1,this['frustumCulled']=!0x0,this['renderOrder']=0x0,this['animations']=[],this['customDepthMaterial']=void 0x0,this[fV(0x57c)]=void 0x0,this['static']=!0x1,this['userData']={},this['pivot']=null;}['onBeforeShadow'](){}[d4(0x28e)](){}['onBeforeRender'](){}['onAfterRender'](){}['applyMatrix4'](a4){const fW=d4;this['matrixAutoUpdate']&&this['updateMatrix'](),this['matrix']['premultiply'](a4),this[fW(0x57a)][fW(0xe8)](this['position'],this['quaternion'],this['scale']);}['applyQuaternion'](a4){return this['quaternion']['premultiply'](a4),this;}['setRotationFromAxisAngle'](a4,a5){this['quaternion']['setFromAxisAngle'](a4,a5);}['setRotationFromEuler'](a4){this['quaternion']['setFromEuler'](a4,!0x0);}['setRotationFromMatrix'](a4){this['quaternion']['setFromRotationMatrix'](a4);}['setRotationFromQuaternion'](a4){this['quaternion']['copy'](a4);}['rotateOnAxis'](a4,a5){const fX=d4;return On[fX(0x46b)](a4,a5),this['quaternion'][fX(0x3d0)](On),this;}[d4(0x13f)](a4,a5){return On['setFromAxisAngle'](a4,a5),this['quaternion']['premultiply'](On),this;}[d4(0x1a1)](a4){return this['rotateOnAxis'](Pn,a4);}['rotateY'](a4){return this['rotateOnAxis'](Fn,a4);}['rotateZ'](a4){return this['rotateOnAxis'](In,a4);}['translateOnAxis'](a4,a5){return Dn['copy'](a4)['applyQuaternion'](this['quaternion']),this['position']['add'](Dn['multiplyScalar'](a5)),this;}['translateX'](a4){return this['translateOnAxis'](Pn,a4);}['translateY'](a4){return this['translateOnAxis'](Fn,a4);}['translateZ'](a4){const fY=d4;return this[fY(0x3fe)](In,a4);}['localToWorld'](a4){return this['updateWorldMatrix'](!0x0,!0x1),a4['applyMatrix4'](this['matrixWorld']);}[d4(0x2e6)](a4){const fZ=d4;return this[fZ(0x20e)](!0x0,!0x1),a4[fZ(0x510)](kn[fZ(0x32f)](this['matrixWorld'])['invert']());}['lookAt'](a4,a5,a6){const g0=d4;a4['isVector3']?An['copy'](a4):An[g0(0x479)](a4,a5,a6);let a7=this[g0(0x25a)];this['updateWorldMatrix'](!0x0,!0x1),jn[g0(0x434)](this['matrixWorld']),this['isCamera']||this['isLight']?kn['lookAt'](jn,An,this['up']):kn['lookAt'](An,jn,this['up']),this[g0(0x3fd)]['setFromRotationMatrix'](kn),a7&&(kn['extractRotation'](a7['matrixWorld']),On['setFromRotationMatrix'](kn),this['quaternion']['premultiply'](On['invert']()));}['add'](a4){if(arguments['length']>0x1){for(let a5=0x0;a5<arguments['length'];a5++)this['add'](arguments[a5]);return this;}return a4===this?(B('Object3D.add:\x20object\x20can\x27t\x20be\x20added\x20as\x20a\x20child\x20of\x20itself.',a4),this):(a4&&a4['isObject3D']?(a4['removeFromParent'](),a4['parent']=this,this['children']['push'](a4),a4['dispatchEvent'](Ln),zn['child']=a4,this['dispatchEvent'](zn),zn['child']=null):B('Object3D.add:\x20object\x20not\x20an\x20instance\x20of\x20THREE.Object3D.',a4),this);}['remove'](a4){const g1=d4;if(arguments['length']>0x1){for(let a6=0x0;a6<arguments['length'];a6++)this['remove'](arguments[a6]);return this;}let a5=this['children']['indexOf'](a4);return a5!==-0x1&&(a4['parent']=null,this['children']['splice'](a5,0x1),a4['dispatchEvent'](Rn),Bn['child']=a4,this['dispatchEvent'](Bn),Bn[g1(0x87)]=null),this;}[d4(0x58b)](){let a4=this['parent'];return a4!==null&&a4['remove'](this),this;}['clear'](){const g2=d4;return this['remove'](...this[g2(0x314)]);}['attach'](a4){const g3=d4;return this[g3(0x20e)](!0x0,!0x1),kn['copy'](this['matrixWorld'])['invert'](),a4['parent']!==null&&(a4['parent']['updateWorldMatrix'](!0x0,!0x1),kn['multiply'](a4['parent'][g3(0x3b8)])),a4['applyMatrix4'](kn),a4[g3(0x58b)](),a4['parent']=this,this['children']['push'](a4),a4['updateWorldMatrix'](!0x1,!0x0),a4['dispatchEvent'](Ln),zn['child']=a4,this['dispatchEvent'](zn),zn[g3(0x87)]=null,this;}[d4(0x149)](a4){return this['getObjectByProperty']('id',a4);}['getObjectByName'](a4){return this['getObjectByProperty']('name',a4);}['getObjectByProperty'](a4,a5){if(this[a4]===a5)return this;for(let a6=0x0,a7=this['children']['length'];a6<a7;a6++){let a8=this['children'][a6]['getObjectByProperty'](a4,a5);if(a8!==void 0x0)return a8;}}['getObjectsByProperty'](a4,a5,a6=[]){const g4=d4;this[a4]===a5&&a6[g4(0x403)](this);let a7=this['children'];for(let a8=0x0,a9=a7[g4(0x27a)];a8<a9;a8++)a7[a8]['getObjectsByProperty'](a4,a5,a6);return a6;}['getWorldPosition'](a4){return this['updateWorldMatrix'](!0x0,!0x1),a4['setFromMatrixPosition'](this['matrixWorld']);}['getWorldQuaternion'](a4){const g5=d4;return this[g5(0x20e)](!0x0,!0x1),this[g5(0x3b8)]['decompose'](jn,a4,Mn),a4;}['getWorldScale'](a4){const g6=d4;return this[g6(0x20e)](!0x0,!0x1),this['matrixWorld'][g6(0xe8)](jn,Nn,a4),a4;}['getWorldDirection'](a4){const g7=d4;this['updateWorldMatrix'](!0x0,!0x1);let a5=this['matrixWorld']['elements'];return a4[g7(0x479)](a5[0x8],a5[0x9],a5[0xa])['normalize']();}[d4(0x3e5)](){}['traverse'](a4){a4(this);let a5=this['children'];for(let a6=0x0,a7=a5['length'];a6<a7;a6++)a5[a6]['traverse'](a4);}['traverseVisible'](a4){const g8=d4;if(this[g8(0xa9)]===!0x1)return;a4(this);let a5=this['children'];for(let a6=0x0,a7=a5['length'];a6<a7;a6++)a5[a6]['traverseVisible'](a4);}[d4(0x143)](a4){let a5=this['parent'];a5!==null&&(a4(a5),a5['traverseAncestors'](a4));}['updateMatrix'](){const g9=d4;this['matrix']['compose'](this['position'],this['quaternion'],this['scale']);let a4=this[g9(0x270)];if(a4!==null){let a5=a4['x'],a6=a4['y'],a7=a4['z'],a8=this['matrix']['elements'];a8[0xc]+=a5-a8[0x0]*a5-a8[0x4]*a6-a8[0x8]*a7,a8[0xd]+=a6-a8[0x1]*a5-a8[0x5]*a6-a8[0x9]*a7,a8[0xe]+=a7-a8[0x2]*a5-a8[0x6]*a6-a8[0xa]*a7;}this['matrixWorldNeedsUpdate']=!0x0;}['updateMatrixWorld'](a4){const gb=d4;this['matrixAutoUpdate']&&this['updateMatrix'](),(this['matrixWorldNeedsUpdate']||a4)&&(this[gb(0x305)]===!0x0&&(this['parent']===null?this['matrixWorld']['copy'](this['matrix']):this[gb(0x3b8)]['multiplyMatrices'](this['parent']['matrixWorld'],this['matrix'])),this['matrixWorldNeedsUpdate']=!0x1,a4=!0x0);let a5=this['children'];for(let a6=0x0,a7=a5['length'];a6<a7;a6++)a5[a6]['updateMatrixWorld'](a4);}['updateWorldMatrix'](a4,a5){const gf=d4;let a6=this['parent'];if(a4===!0x0&&a6!==null&&a6['updateWorldMatrix'](!0x0,!0x1),this['matrixAutoUpdate']&&this['updateMatrix'](),this[gf(0x305)]===!0x0&&(this['parent']===null?this[gf(0x3b8)][gf(0x32f)](this['matrix']):this['matrixWorld']['multiplyMatrices'](this['parent']['matrixWorld'],this['matrix'])),a5===!0x0){let a7=this['children'];for(let a8=0x0,a9=a7['length'];a8<a9;a8++)a7[a8][gf(0x20e)](!0x1,!0x0);}}['toJSON'](a4){const gg=d4;let a5=a4===void 0x0||typeof a4=='string',a6={};a5&&(a4={'geometries':{},'materials':{},'textures':{},'images':{},'shapes':{},'skeletons':{},'animations':{},'nodes':{}},a6[gg(0x33f)]={'version':4.7,'type':gg(0x294),'generator':'Object3D.toJSON'});let a7={};a7['uuid']=this['uuid'],a7['type']=this['type'],this['name']!==''&&(a7[gg(0x3a8)]=this['name']),this['castShadow']===!0x0&&(a7['castShadow']=!0x0),this['receiveShadow']===!0x0&&(a7['receiveShadow']=!0x0),this[gg(0xa9)]===!0x1&&(a7['visible']=!0x1),this['frustumCulled']===!0x1&&(a7['frustumCulled']=!0x1),this['renderOrder']!==0x0&&(a7['renderOrder']=this['renderOrder']),this['static']!==!0x1&&(a7['static']=this['static']),Object[gg(0x310)](this[gg(0x511)])['length']>0x0&&(a7['userData']=this['userData']),a7[gg(0x9d)]=this['layers']['mask'],a7['matrix']=this['matrix']['toArray'](),a7['up']=this['up']['toArray'](),this['pivot']!==null&&(a7['pivot']=this['pivot'][gg(0x442)]()),this[gg(0x4fc)]===!0x1&&(a7[gg(0x4fc)]=!0x1),this['morphTargetDictionary']!==void 0x0&&(a7[gg(0x545)]=Object['assign']({},this['morphTargetDictionary'])),this['morphTargetInfluences']!==void 0x0&&(a7[gg(0x197)]=this['morphTargetInfluences']['slice']()),this['isInstancedMesh']&&(a7[gg(0x40b)]='InstancedMesh',a7[gg(0x58d)]=this['count'],a7['instanceMatrix']=this[gg(0x422)]['toJSON'](),this['instanceColor']!==null&&(a7['instanceColor']=this['instanceColor']['toJSON']())),this['isBatchedMesh']&&(a7['type']='BatchedMesh',a7[gg(0x2a3)]=this['perObjectFrustumCulled'],a7[gg(0x214)]=this['sortObjects'],a7['drawRanges']=this[gg(0x322)],a7[gg(0x3ce)]=this['_reservedRanges'],a7['geometryInfo']=this['_geometryInfo']['map'](ab=>t(t({},ab),{},{'boundingBox':ab['boundingBox']?ab['boundingBox']['toJSON']():void 0x0,'boundingSphere':ab['boundingSphere']?ab[gg(0x2f0)]['toJSON']():void 0x0})),a7['instanceInfo']=this['_instanceInfo']['map'](ab=>t({},ab)),a7['availableInstanceIds']=this['_availableInstanceIds'][gg(0xfd)](),a7['availableGeometryIds']=this['_availableGeometryIds'][gg(0xfd)](),a7[gg(0xc7)]=this['_nextIndexStart'],a7['nextVertexStart']=this['_nextVertexStart'],a7['geometryCount']=this[gg(0x2d0)],a7['maxInstanceCount']=this['_maxInstanceCount'],a7['maxVertexCount']=this['_maxVertexCount'],a7['maxIndexCount']=this['_maxIndexCount'],a7['geometryInitialized']=this['_geometryInitialized'],a7['matricesTexture']=this[gg(0x2fc)]['toJSON'](a4),a7['indirectTexture']=this['_indirectTexture']['toJSON'](a4),this['_colorsTexture']!==null&&(a7[gg(0x39d)]=this[gg(0x31d)]['toJSON'](a4)),this['boundingSphere']!==null&&(a7['boundingSphere']=this['boundingSphere']['toJSON']()),this[gg(0xb4)]!==null&&(a7['boundingBox']=this['boundingBox']['toJSON']()));function a8(ab,af){const gh=gg;return ab[af['uuid']]===void 0x0&&(ab[af[gh(0x2ca)]]=af['toJSON'](a4)),af[gh(0x2ca)];}if(this['isScene'])this['background']&&(this[gg(0x116)]['isColor']?a7['background']=this['background']['toJSON']():this[gg(0x116)]['isTexture']&&(a7['background']=this[gg(0x116)]['toJSON'](a4)['uuid'])),this[gg(0x4c5)]&&this['environment']['isTexture']&&this['environment']['isRenderTargetTexture']!==!0x0&&(a7['environment']=this[gg(0x4c5)]['toJSON'](a4)['uuid']);else{if(this['isMesh']||this['isLine']||this['isPoints']){a7[gg(0x120)]=a8(a4[gg(0x47a)],this[gg(0x120)]);let ab=this['geometry']['parameters'];if(ab!==void 0x0&&ab[gg(0x4ba)]!==void 0x0){let af=ab['shapes'];if(Array['isArray'](af))for(let ag=0x0,ah=af['length'];ag<ah;ag++){let aj=af[ag];a8(a4['shapes'],aj);}else a8(a4['shapes'],af);}}}if(this['isSkinnedMesh']&&(a7['bindMode']=this['bindMode'],a7['bindMatrix']=this[gg(0x4d7)]['toArray'](),this['skeleton']!==void 0x0&&(a8(a4['skeletons'],this[gg(0xd6)]),a7['skeleton']=this['skeleton'][gg(0x2ca)])),this['material']!==void 0x0){if(Array['isArray'](this['material'])){let ak=[];for(let am=0x0,ap=this['material'][gg(0x27a)];am<ap;am++)ak['push'](a8(a4['materials'],this['material'][am]));a7['material']=ak;}else a7['material']=a8(a4['materials'],this[gg(0xd7)]);}if(this['children']['length']>0x0){a7['children']=[];for(let aq=0x0;aq<this['children'][gg(0x27a)];aq++)a7['children'][gg(0x403)](this[gg(0x314)][aq]['toJSON'](a4)['object']);}if(this['animations']['length']>0x0){a7['animations']=[];for(let av=0x0;av<this[gg(0x332)][gg(0x27a)];av++){let aw=this['animations'][av];a7['animations']['push'](a8(a4['animations'],aw));}}if(a5){let ax=a9(a4['geometries']),ay=a9(a4['materials']),az=a9(a4['textures']),aA=a9(a4[gg(0x53c)]),aB=a9(a4['shapes']),aC=a9(a4['skeletons']),aD=a9(a4['animations']),aE=a9(a4[gg(0x18c)]);ax['length']>0x0&&(a6['geometries']=ax),ay['length']>0x0&&(a6[gg(0x415)]=ay),az[gg(0x27a)]>0x0&&(a6['textures']=az),aA[gg(0x27a)]>0x0&&(a6['images']=aA),aB['length']>0x0&&(a6['shapes']=aB),aC['length']>0x0&&(a6['skeletons']=aC),aD['length']>0x0&&(a6['animations']=aD),aE[gg(0x27a)]>0x0&&(a6['nodes']=aE);}return a6['object']=a7,a6;function a9(aF){let aG=[];for(let aH in aF){let aI=aF[aH];delete aI['metadata'],aG['push'](aI);}return aG;}}['clone'](a4){return new this['constructor']()['copy'](this,a4);}[d4(0x32f)](a4,a5=!0x0){const gj=d4;if(this['name']=a4['name'],this['up']['copy'](a4['up']),this['position']['copy'](a4['position']),this['rotation']['order']=a4['rotation']['order'],this['quaternion']['copy'](a4['quaternion']),this['scale']['copy'](a4['scale']),this['pivot']=a4['pivot']===null?null:a4['pivot'][gj(0x26d)](),this['matrix']['copy'](a4['matrix']),this['matrixWorld']['copy'](a4['matrixWorld']),this[gj(0x4fc)]=a4['matrixAutoUpdate'],this['matrixWorldAutoUpdate']=a4['matrixWorldAutoUpdate'],this['matrixWorldNeedsUpdate']=a4['matrixWorldNeedsUpdate'],this['layers']['mask']=a4[gj(0x9d)]['mask'],this[gj(0xa9)]=a4['visible'],this['castShadow']=a4['castShadow'],this['receiveShadow']=a4['receiveShadow'],this['frustumCulled']=a4['frustumCulled'],this['renderOrder']=a4['renderOrder'],this['static']=a4[gj(0x163)],this[gj(0x332)]=a4['animations']['slice'](),this['userData']=JSON['parse'](JSON['stringify'](a4['userData'])),a5===!0x0)for(let a6=0x0;a6<a4['children']['length'];a6++){let a7=a4[gj(0x314)][a6];this['add'](a7['clone']());}return this;}};Vn['DEFAULT_UP']=new W(0x0,0x1,0x0),Vn['DEFAULT_MATRIX_AUTO_UPDATE']=!0x0,Vn['DEFAULT_MATRIX_WORLD_AUTO_UPDATE']=!0x0;var Hn=class extends Vn{constructor(){super(),this['isGroup']=!0x0,this['type']='Group';}},Un={'type':d4(0x9a)},Wn=class{constructor(){const gk=d4;this['_targetRay']=null,this['_grip']=null,this[gk(0x55a)]=null;}['getHandSpace'](){const gm=d4;return this['_hand']===null&&(this['_hand']=new Hn(),this['_hand']['matrixAutoUpdate']=!0x1,this['_hand']['visible']=!0x1,this[gm(0x55a)][gm(0x292)]={},this[gm(0x55a)]['inputState']={'pinching':!0x1}),this['_hand'];}['getTargetRaySpace'](){const gp=d4;return this['_targetRay']===null&&(this['_targetRay']=new Hn(),this['_targetRay']['matrixAutoUpdate']=!0x1,this['_targetRay']['visible']=!0x1,this[gp(0x428)]['hasLinearVelocity']=!0x1,this['_targetRay'][gp(0x414)]=new W(),this['_targetRay']['hasAngularVelocity']=!0x1,this['_targetRay']['angularVelocity']=new W()),this[gp(0x428)];}['getGripSpace'](){const gq=d4;return this['_grip']===null&&(this['_grip']=new Hn(),this['_grip']['matrixAutoUpdate']=!0x1,this[gq(0x83)]['visible']=!0x1,this['_grip']['hasLinearVelocity']=!0x1,this['_grip']['linearVelocity']=new W(),this[gq(0x83)]['hasAngularVelocity']=!0x1,this['_grip'][gq(0x4c7)]=new W(),this[gq(0x83)][gq(0x1c7)]=!0x1),this[gq(0x83)];}['dispatchEvent'](a4){const gv=d4;return this['_targetRay']!==null&&this['_targetRay']['dispatchEvent'](a4),this['_grip']!==null&&this['_grip']['dispatchEvent'](a4),this[gv(0x55a)]!==null&&this['_hand']['dispatchEvent'](a4),this;}['connect'](a4){const gw=d4;if(a4&&a4[gw(0x531)]){let a5=this['_hand'];if(a5){for(let a6 of a4['hand']['values']())this['_getHandJoint'](a5,a6);}}return this['dispatchEvent']({'type':gw(0xf3),'data':a4}),this;}['disconnect'](a4){const gx=d4;return this['dispatchEvent']({'type':'disconnected','data':a4}),this['_targetRay']!==null&&(this['_targetRay']['visible']=!0x1),this['_grip']!==null&&(this['_grip']['visible']=!0x1),this[gx(0x55a)]!==null&&(this['_hand']['visible']=!0x1),this;}['update'](a4,a5,a6){const gy=d4;let a7=null,a8=null,a9=null,ab=this['_targetRay'],af=this['_grip'],ag=this['_hand'];if(a4&&a5['session'][gy(0x50e)]!==gy(0x211)){if(ag&&a4['hand']){a9=!0x0;for(let aq of a4['hand']['values']()){let av=a5['getJointPose'](aq,a6),aw=this['_getHandJoint'](ag,aq);av!==null&&(aw['matrix']['fromArray'](av['transform']['matrix']),aw['matrix']['decompose'](aw['position'],aw['rotation'],aw['scale']),aw['matrixWorldNeedsUpdate']=!0x0,aw['jointRadius']=av[gy(0x42d)]),aw['visible']=av!==null;}let ah=ag['joints']['index-finger-tip'],aj=ag['joints']['thumb-tip'],ak=ah['position']['distanceTo'](aj['position']),am=0.02,ap=0.005;ag[gy(0x37d)]['pinching']&&ak>am+ap?(ag[gy(0x37d)]['pinching']=!0x1,this['dispatchEvent']({'type':'pinchend','handedness':a4['handedness'],'target':this})):!ag['inputState']['pinching']&&ak<=am-ap&&(ag['inputState']['pinching']=!0x0,this['dispatchEvent']({'type':'pinchstart','handedness':a4['handedness'],'target':this}));}else af!==null&&a4['gripSpace']&&(a8=a5['getPose'](a4[gy(0x3c7)],a6),a8!==null&&(af['matrix'][gy(0x3c4)](a8['transform']['matrix']),af['matrix'][gy(0xe8)](af[gy(0x478)],af['rotation'],af['scale']),af[gy(0x47c)]=!0x0,a8['linearVelocity']?(af['hasLinearVelocity']=!0x0,af['linearVelocity']['copy'](a8['linearVelocity'])):af['hasLinearVelocity']=!0x1,a8['angularVelocity']?(af[gy(0x26a)]=!0x0,af['angularVelocity'][gy(0x32f)](a8['angularVelocity'])):af['hasAngularVelocity']=!0x1,af['eventsEnabled']&&af['dispatchEvent']({'type':'gripUpdated','data':a4,'target':this})));ab!==null&&(a7=a5['getPose'](a4[gy(0x563)],a6),a7===null&&a8!==null&&(a7=a8),a7!==null&&(ab[gy(0x57a)]['fromArray'](a7['transform']['matrix']),ab['matrix']['decompose'](ab['position'],ab[gy(0x2d7)],ab['scale']),ab[gy(0x47c)]=!0x0,a7['linearVelocity']?(ab['hasLinearVelocity']=!0x0,ab['linearVelocity']['copy'](a7['linearVelocity'])):ab[gy(0x295)]=!0x1,a7['angularVelocity']?(ab['hasAngularVelocity']=!0x0,ab['angularVelocity']['copy'](a7['angularVelocity'])):ab['hasAngularVelocity']=!0x1,this['dispatchEvent'](Un)));}return ab!==null&&(ab['visible']=a7!==null),af!==null&&(af['visible']=a8!==null),ag!==null&&(ag['visible']=a9!==null),this;}['_getHandJoint'](a4,a5){if(a4['joints'][a5['jointName']]===void 0x0){let a6=new Hn();a6['matrixAutoUpdate']=!0x1,a6['visible']=!0x1,a4['joints'][a5['jointName']]=a6,a4['add'](a6);}return a4['joints'][a5['jointName']];}},Gn={'aliceblue':0xf0f8ff,'antiquewhite':0xfaebd7,'aqua':0xffff,'aquamarine':0x7fffd4,'azure':0xf0ffff,'beige':0xf5f5dc,'bisque':0xffe4c4,'black':0x0,'blanchedalmond':0xffebcd,'blue':0xff,'blueviolet':0x8a2be2,'brown':0xa52a2a,'burlywood':0xdeb887,'cadetblue':0x5f9ea0,'chartreuse':0x7fff00,'chocolate':0xd2691e,'coral':0xff7f50,'cornflowerblue':0x6495ed,'cornsilk':0xfff8dc,'crimson':0xdc143c,'cyan':0xffff,'darkblue':0x8b,'darkcyan':0x8b8b,'darkgoldenrod':0xb8860b,'darkgray':0xa9a9a9,'darkgreen':0x6400,'darkgrey':0xa9a9a9,'darkkhaki':0xbdb76b,'darkmagenta':0x8b008b,'darkolivegreen':0x556b2f,'darkorange':0xff8c00,'darkorchid':0x9932cc,'darkred':0x8b0000,'darksalmon':0xe9967a,'darkseagreen':0x8fbc8f,'darkslateblue':0x483d8b,'darkslategray':0x2f4f4f,'darkslategrey':0x2f4f4f,'darkturquoise':0xced1,'darkviolet':0x9400d3,'deeppink':0xff1493,'deepskyblue':0xbfff,'dimgray':0x696969,'dimgrey':0x696969,'dodgerblue':0x1e90ff,'firebrick':0xb22222,'floralwhite':0xfffaf0,'forestgreen':0x228b22,'fuchsia':0xff00ff,'gainsboro':0xdcdcdc,'ghostwhite':0xf8f8ff,'gold':0xffd700,'goldenrod':0xdaa520,'gray':0x808080,'green':0x8000,'greenyellow':0xadff2f,'grey':0x808080,'honeydew':0xf0fff0,'hotpink':0xff69b4,'indianred':0xcd5c5c,'indigo':0x4b0082,'ivory':0xfffff0,'khaki':0xf0e68c,'lavender':0xe6e6fa,'lavenderblush':0xfff0f5,'lawngreen':0x7cfc00,'lemonchiffon':0xfffacd,'lightblue':0xadd8e6,'lightcoral':0xf08080,'lightcyan':0xe0ffff,'lightgoldenrodyellow':0xfafad2,'lightgray':0xd3d3d3,'lightgreen':0x90ee90,'lightgrey':0xd3d3d3,'lightpink':0xffb6c1,'lightsalmon':0xffa07a,'lightseagreen':0x20b2aa,'lightskyblue':0x87cefa,'lightslategray':0x778899,'lightslategrey':0x778899,'lightsteelblue':0xb0c4de,'lightyellow':0xffffe0,'lime':0xff00,'limegreen':0x32cd32,'linen':0xfaf0e6,'magenta':0xff00ff,'maroon':0x800000,'mediumaquamarine':0x66cdaa,'mediumblue':0xcd,'mediumorchid':0xba55d3,'mediumpurple':0x9370db,'mediumseagreen':0x3cb371,'mediumslateblue':0x7b68ee,'mediumspringgreen':0xfa9a,'mediumturquoise':0x48d1cc,'mediumvioletred':0xc71585,'midnightblue':0x191970,'mintcream':0xf5fffa,'mistyrose':0xffe4e1,'moccasin':0xffe4b5,'navajowhite':0xffdead,'navy':0x80,'oldlace':0xfdf5e6,'olive':0x808000,'olivedrab':0x6b8e23,'orange':0xffa500,'orangered':0xff4500,'orchid':0xda70d6,'palegoldenrod':0xeee8aa,'palegreen':0x98fb98,'paleturquoise':0xafeeee,'palevioletred':0xdb7093,'papayawhip':0xffefd5,'peachpuff':0xffdab9,'peru':0xcd853f,'pink':0xffc0cb,'plum':0xdda0dd,'powderblue':0xb0e0e6,'purple':0x800080,'rebeccapurple':0x663399,'red':0xff0000,'rosybrown':0xbc8f8f,'royalblue':0x4169e1,'saddlebrown':0x8b4513,'salmon':0xfa8072,'sandybrown':0xf4a460,'seagreen':0x2e8b57,'seashell':0xfff5ee,'sienna':0xa0522d,'silver':0xc0c0c0,'skyblue':0x87ceeb,'slateblue':0x6a5acd,'slategray':0x708090,'slategrey':0x708090,'snow':0xfffafa,'springgreen':0xff7f,'steelblue':0x4682b4,'tan':0xd2b48c,'teal':0x8080,'thistle':0xd8bfd8,'tomato':0xff6347,'turquoise':0x40e0d0,'violet':0xee82ee,'wheat':0xf5deb3,'white':0xffffff,'whitesmoke':0xf5f5f5,'yellow':0xffff00,'yellowgreen':0x9acd32},Kn={'h':0x0,'s':0x0,'l':0x0},qn={'h':0x0,'s':0x0,'l':0x0};function Jn(a4,a5,a6){return a6<0x0&&(a6+=0x1),a6>0x1&&--a6,a6<0x1/0x6?a4+(a5-a4)*0x6*a6:a6<0x1/0x2?a5:a6<0x2/0x3?a4+(a5-a4)*0x6*(0x2/0x3-a6):a4;}var Y=class{constructor(a4,a5,a6){return this['isColor']=!0x0,this['r']=0x1,this['g']=0x1,this['b']=0x1,this['set'](a4,a5,a6);}[d4(0x479)](a4,a5,a6){const gz=d4;if(a5===void 0x0&&a6===void 0x0){let a7=a4;a7&&a7['isColor']?this[gz(0x32f)](a7):typeof a7=='number'?this[gz(0xde)](a7):typeof a7=='string'&&this['setStyle'](a7);}else this['setRGB'](a4,a5,a6);return this;}['setScalar'](a4){return this['r']=a4,this['g']=a4,this['b']=a4,this;}['setHex'](a4,a5=rt){const gA=d4;return a4=Math['floor'](a4),this['r']=(a4>>0x10&0xff)/0xff,this['g']=(a4>>0x8&0xff)/0xff,this['b']=(a4&0xff)/0xff,K[gA(0x1dd)](this,a5),this;}[d4(0x101)](a4,a5,a6,a7=K['workingColorSpace']){const gB=d4;return this['r']=a4,this['g']=a5,this['b']=a6,K[gB(0x1dd)](this,a7),this;}['setHSL'](a4,a5,a6,a7=K['workingColorSpace']){if(a4=Dt(a4,0x1),a5=V(a5,0x0,0x1),a6=V(a6,0x0,0x1),a5===0x0)this['r']=this['g']=this['b']=a6;else{let a8=a6<=0.5?a6*(0x1+a5):a6+a5-a6*a5,a9=0x2*a6-a8;this['r']=Jn(a9,a8,a4+0x1/0x3),this['g']=Jn(a9,a8,a4),this['b']=Jn(a9,a8,a4-0x1/0x3);}return K['colorSpaceToWorking'](this,a7),this;}['setStyle'](a4,a5=rt){const gD=d4;function a6(a8){const gC=a1;a8!==void 0x0&&parseFloat(a8)<0x1&&z('Color:\x20Alpha\x20component\x20of\x20'+a4+gC(0x32a));}let a7;if(a7=/^(\w+)\(([^\)]*)\)/[gD(0x16b)](a4)){let a8,a9=a7[0x1],ab=a7[0x2];switch(a9){case'rgb':case'rgba':if(a8=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/['exec'](ab))return a6(a8[0x4]),this[gD(0x101)](Math['min'](0xff,parseInt(a8[0x1],0xa))/0xff,Math['min'](0xff,parseInt(a8[0x2],0xa))/0xff,Math['min'](0xff,parseInt(a8[0x3],0xa))/0xff,a5);if(a8=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/['exec'](ab))return a6(a8[0x4]),this['setRGB'](Math['min'](0x64,parseInt(a8[0x1],0xa))/0x64,Math['min'](0x64,parseInt(a8[0x2],0xa))/0x64,Math['min'](0x64,parseInt(a8[0x3],0xa))/0x64,a5);break;case gD(0x240):case'hsla':if(a8=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/['exec'](ab))return a6(a8[0x4]),this[gD(0x3d8)](parseFloat(a8[0x1])/0x168,parseFloat(a8[0x2])/0x64,parseFloat(a8[0x3])/0x64,a5);break;default:z('Color:\x20Unknown\x20color\x20model\x20'+a4);}}else{if(a7=/^\#([A-Fa-f\d]+)$/['exec'](a4)){let af=a7[0x1],ag=af['length'];if(ag===0x3)return this['setRGB'](parseInt(af['charAt'](0x0),0x10)/0xf,parseInt(af[gD(0x48d)](0x1),0x10)/0xf,parseInt(af[gD(0x48d)](0x2),0x10)/0xf,a5);if(ag===0x6)return this['setHex'](parseInt(af,0x10),a5);z('Color:\x20Invalid\x20hex\x20color\x20'+a4);}else{if(a4&&a4['length']>0x0)return this['setColorName'](a4,a5);}}return this;}['setColorName'](a4,a5=rt){let a6=Gn[a4['toLowerCase']()];return a6===void 0x0?z('Color:\x20Unknown\x20color\x20'+a4):this['setHex'](a6,a5),this;}['clone'](){return new this['constructor'](this['r'],this['g'],this['b']);}['copy'](a4){return this['r']=a4['r'],this['g']=a4['g'],this['b']=a4['b'],this;}['copySRGBToLinear'](a4){return this['r']=en(a4['r']),this['g']=en(a4['g']),this['b']=en(a4['b']),this;}[d4(0x12d)](a4){return this['r']=tn(a4['r']),this['g']=tn(a4['g']),this['b']=tn(a4['b']),this;}['convertSRGBToLinear'](){return this['copySRGBToLinear'](this),this;}['convertLinearToSRGB'](){return this['copyLinearToSRGB'](this),this;}['getHex'](a4=rt){return K['workingToColorSpace'](Yn['copy'](this),a4),Math['round'](V(Yn['r']*0xff,0x0,0xff))*0x10000+Math['round'](V(Yn['g']*0xff,0x0,0xff))*0x100+Math['round'](V(Yn['b']*0xff,0x0,0xff));}['getHexString'](a4=rt){const gE=d4;return('000000'+this['getHex'](a4)['toString'](0x10))[gE(0xfd)](-0x6);}['getHSL'](a4,a5=K[d4(0x590)]){const gF=d4;K[gF(0x1f4)](Yn['copy'](this),a5);let a6=Yn['r'],a7=Yn['g'],a8=Yn['b'],a9=Math['max'](a6,a7,a8),ab=Math['min'](a6,a7,a8),af,ag,ah=(ab+a9)/0x2;if(ab===a9)af=0x0,ag=0x0;else{let aj=a9-ab;switch(ag=ah<=0.5?aj/(a9+ab):aj/(0x2-a9-ab),a9){case a6:af=(a7-a8)/aj+(a7<a8?0x6:0x0);break;case a7:af=(a8-a6)/aj+0x2;break;case a8:af=(a6-a7)/aj+0x4;break;}af/=0x6;}return a4['h']=af,a4['s']=ag,a4['l']=ah,a4;}['getRGB'](a4,a5=K['workingColorSpace']){return K['workingToColorSpace'](Yn['copy'](this),a5),a4['r']=Yn['r'],a4['g']=Yn['g'],a4['b']=Yn['b'],a4;}[d4(0x13c)](a4=rt){K['workingToColorSpace'](Yn['copy'](this),a4);let a5=Yn['r'],a6=Yn['g'],a7=Yn['b'];return a4==='srgb'?'rgb('+Math['round'](a5*0xff)+','+Math['round'](a6*0xff)+','+Math['round'](a7*0xff)+')':'color('+a4+'\x20'+a5['toFixed'](0x3)+'\x20'+a6['toFixed'](0x3)+'\x20'+a7['toFixed'](0x3)+')';}['offsetHSL'](a4,a5,a6){return this['getHSL'](Kn),this['setHSL'](Kn['h']+a4,Kn['s']+a5,Kn['l']+a6);}['add'](a4){return this['r']+=a4['r'],this['g']+=a4['g'],this['b']+=a4['b'],this;}['addColors'](a4,a5){return this['r']=a4['r']+a5['r'],this['g']=a4['g']+a5['g'],this['b']=a4['b']+a5['b'],this;}['addScalar'](a4){return this['r']+=a4,this['g']+=a4,this['b']+=a4,this;}['sub'](a4){return this['r']=Math['max'](0x0,this['r']-a4['r']),this['g']=Math['max'](0x0,this['g']-a4['g']),this['b']=Math['max'](0x0,this['b']-a4['b']),this;}[d4(0x3d0)](a4){return this['r']*=a4['r'],this['g']*=a4['g'],this['b']*=a4['b'],this;}['multiplyScalar'](a4){return this['r']*=a4,this['g']*=a4,this['b']*=a4,this;}['lerp'](a4,a5){return this['r']+=(a4['r']-this['r'])*a5,this['g']+=(a4['g']-this['g'])*a5,this['b']+=(a4['b']-this['b'])*a5,this;}['lerpColors'](a4,a5,a6){return this['r']=a4['r']+(a5['r']-a4['r'])*a6,this['g']=a4['g']+(a5['g']-a4['g'])*a6,this['b']=a4['b']+(a5['b']-a4['b'])*a6,this;}['lerpHSL'](a4,a5){const gG=d4;this['getHSL'](Kn),a4['getHSL'](qn);let a6=At(Kn['h'],qn['h'],a5),a7=At(Kn['s'],qn['s'],a5),a8=At(Kn['l'],qn['l'],a5);return this[gG(0x3d8)](a6,a7,a8),this;}['setFromVector3'](a4){return this['r']=a4['x'],this['g']=a4['y'],this['b']=a4['z'],this;}['applyMatrix3'](a4){let a5=this['r'],a6=this['g'],a7=this['b'],a8=a4['elements'];return this['r']=a8[0x0]*a5+a8[0x3]*a6+a8[0x6]*a7,this['g']=a8[0x1]*a5+a8[0x4]*a6+a8[0x7]*a7,this['b']=a8[0x2]*a5+a8[0x5]*a6+a8[0x8]*a7,this;}['equals'](a4){return a4['r']===this['r']&&a4['g']===this['g']&&a4['b']===this['b'];}['fromArray'](a4,a5=0x0){return this['r']=a4[a5],this['g']=a4[a5+0x1],this['b']=a4[a5+0x2],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['r'],a4[a5+0x1]=this['g'],a4[a5+0x2]=this['b'],a4;}['fromBufferAttribute'](a4,a5){const gH=d4;return this['r']=a4['getX'](a5),this['g']=a4[gH(0x2c1)](a5),this['b']=a4['getZ'](a5),this;}[d4(0x599)](){const gI=d4;return this[gI(0x4ee)]();}*[Symbol['iterator']](){yield this['r'],yield this['g'],yield this['b'];}},Yn=new Y();Y['NAMES']=Gn;var Xn=class extends Vn{constructor(){const gJ=d4;super(),this['isScene']=!0x0,this['type']='Scene',this['background']=null,this[gJ(0x4c5)]=null,this['fog']=null,this[gJ(0x4eb)]=0x0,this['backgroundIntensity']=0x1,this['backgroundRotation']=new wn(),this['environmentIntensity']=0x1,this['environmentRotation']=new wn(),this['overrideMaterial']=null,typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent(gJ(0xcd),{'detail':this}));}['copy'](a4,a5){const gK=d4;return super['copy'](a4,a5),a4['background']!==null&&(this['background']=a4['background']['clone']()),a4['environment']!==null&&(this['environment']=a4['environment']['clone']()),a4['fog']!==null&&(this[gK(0x4e3)]=a4['fog'][gK(0x26d)]()),this['backgroundBlurriness']=a4[gK(0x4eb)],this['backgroundIntensity']=a4[gK(0x353)],this['backgroundRotation']['copy'](a4[gK(0x53d)]),this['environmentIntensity']=a4[gK(0x301)],this['environmentRotation']['copy'](a4[gK(0x89)]),a4['overrideMaterial']!==null&&(this['overrideMaterial']=a4[gK(0x1ac)]['clone']()),this['matrixAutoUpdate']=a4[gK(0x4fc)],this;}['toJSON'](a4){const gL=d4;let a5=super[gL(0x599)](a4);return this['fog']!==null&&(a5[gL(0x54f)]['fog']=this['fog']['toJSON']()),this['backgroundBlurriness']>0x0&&(a5['object']['backgroundBlurriness']=this['backgroundBlurriness']),this['backgroundIntensity']!==0x1&&(a5['object']['backgroundIntensity']=this['backgroundIntensity']),a5['object']['backgroundRotation']=this['backgroundRotation']['toArray'](),this['environmentIntensity']!==0x1&&(a5['object'][gL(0x301)]=this['environmentIntensity']),a5['object'][gL(0x89)]=this['environmentRotation']['toArray'](),a5;}},Zn=new W(),Qn=new W(),$n=new W(),er=new W(),tr=new W(),nr=new W(),rr=new W(),ir=new W(),ar=new W(),or=new W(),sr=new q(),cr=new q(),lr=new q(),ur=class e{constructor(a4=new W(),a5=new W(),a6=new W()){this['a']=a4,this['b']=a5,this['c']=a6;}static['getNormal'](a4,a5,a6,a7){const gM=d4;a7['subVectors'](a6,a5),Zn[gM(0x52f)](a4,a5),a7['cross'](Zn);let a8=a7['lengthSq']();return a8>0x0?a7['multiplyScalar'](0x1/Math['sqrt'](a8)):a7[gM(0x479)](0x0,0x0,0x0);}static[d4(0x475)](a4,a5,a6,a7,a8){const gN=d4;Zn['subVectors'](a7,a5),Qn['subVectors'](a6,a5),$n['subVectors'](a4,a5);let a9=Zn['dot'](Zn),ab=Zn['dot'](Qn),af=Zn['dot']($n),ag=Qn[gN(0x465)](Qn),ah=Qn['dot']($n),aj=a9*ag-ab*ab;if(aj===0x0)return a8['set'](0x0,0x0,0x0),null;let ak=0x1/aj,am=(ag*af-ab*ah)*ak,ap=(a9*ah-ab*af)*ak;return a8['set'](0x1-am-ap,ap,am);}static['containsPoint'](a4,a5,a6,a7){return this['getBarycoord'](a4,a5,a6,a7,er)===null?!0x1:er['x']>=0x0&&er['y']>=0x0&&er['x']+er['y']<=0x1;}static['getInterpolation'](a4,a5,a6,a7,a8,a9,ab,af){const gO=d4;return this['getBarycoord'](a4,a5,a6,a7,er)===null?(af['x']=0x0,af['y']=0x0,'z'in af&&(af['z']=0x0),'w'in af&&(af['w']=0x0),null):(af['setScalar'](0x0),af[gO(0x3df)](a8,er['x']),af[gO(0x3df)](a9,er['y']),af['addScaledVector'](ab,er['z']),af);}static[d4(0xca)](a4,a5,a6,a7,a8,a9){const gP=d4;return sr['setScalar'](0x0),cr['setScalar'](0x0),lr['setScalar'](0x0),sr[gP(0x2bb)](a4,a5),cr['fromBufferAttribute'](a4,a6),lr['fromBufferAttribute'](a4,a7),a9['setScalar'](0x0),a9['addScaledVector'](sr,a8['x']),a9['addScaledVector'](cr,a8['y']),a9['addScaledVector'](lr,a8['z']),a9;}static['isFrontFacing'](a4,a5,a6,a7){return Zn['subVectors'](a6,a5),Qn['subVectors'](a4,a5),Zn['cross'](Qn)['dot'](a7)<0x0;}['set'](a4,a5,a6){return this['a']['copy'](a4),this['b']['copy'](a5),this['c']['copy'](a6),this;}['setFromPointsAndIndices'](a4,a5,a6,a7){return this['a']['copy'](a4[a5]),this['b']['copy'](a4[a6]),this['c']['copy'](a4[a7]),this;}['setFromAttributeAndIndices'](a4,a5,a6,a7){return this['a']['fromBufferAttribute'](a4,a5),this['b']['fromBufferAttribute'](a4,a6),this['c']['fromBufferAttribute'](a4,a7),this;}['clone'](){return new this['constructor']()['copy'](this);}['copy'](a4){return this['a']['copy'](a4['a']),this['b']['copy'](a4['b']),this['c']['copy'](a4['c']),this;}['getArea'](){const gQ=d4;return Zn['subVectors'](this['c'],this['b']),Qn['subVectors'](this['a'],this['b']),Zn['cross'](Qn)[gQ(0x27a)]()*0.5;}['getMidpoint'](a4){return a4['addVectors'](this['a'],this['b'])['add'](this['c'])['multiplyScalar'](0x1/0x3);}['getNormal'](a4){const gR=d4;return e[gR(0x25d)](this['a'],this['b'],this['c'],a4);}['getPlane'](a4){return a4['setFromCoplanarPoints'](this['a'],this['b'],this['c']);}['getBarycoord'](a4,a5){const gS=d4;return e[gS(0x475)](a4,this['a'],this['b'],this['c'],a5);}['getInterpolation'](a4,a5,a6,a7,a8){return e['getInterpolation'](a4,this['a'],this['b'],this['c'],a5,a6,a7,a8);}[d4(0x2b3)](a4){return e['containsPoint'](a4,this['a'],this['b'],this['c']);}['isFrontFacing'](a4){return e['isFrontFacing'](this['a'],this['b'],this['c'],a4);}['intersectsBox'](a4){return a4['intersectsTriangle'](this);}['closestPointToPoint'](a4,a5){const gT=d4;let a6=this['a'],a7=this['b'],a8=this['c'],a9,ab;tr['subVectors'](a7,a6),nr['subVectors'](a8,a6),ir['subVectors'](a4,a6);let af=tr['dot'](ir),ag=nr['dot'](ir);if(af<=0x0&&ag<=0x0)return a5[gT(0x32f)](a6);ar['subVectors'](a4,a7);let ah=tr['dot'](ar),aj=nr['dot'](ar);if(ah>=0x0&&aj<=ah)return a5[gT(0x32f)](a7);let ak=af*aj-ah*ag;if(ak<=0x0&&af>=0x0&&ah<=0x0)return a9=af/(af-ah),a5[gT(0x32f)](a6)[gT(0x3df)](tr,a9);or['subVectors'](a4,a8);let am=tr['dot'](or),ap=nr['dot'](or);if(ap>=0x0&&am<=ap)return a5['copy'](a8);let aq=am*ag-af*ap;if(aq<=0x0&&ag>=0x0&&ap<=0x0)return ab=ag/(ag-ap),a5['copy'](a6)['addScaledVector'](nr,ab);let av=ah*ap-am*aj;if(av<=0x0&&aj-ah>=0x0&&am-ap>=0x0)return rr[gT(0x52f)](a8,a7),ab=(aj-ah)/(aj-ah+(am-ap)),a5['copy'](a7)['addScaledVector'](rr,ab);let aw=0x1/(av+aq+ak);return a9=aq*aw,ab=ak*aw,a5['copy'](a6)[gT(0x3df)](tr,a9)['addScaledVector'](nr,ab);}[d4(0x37e)](a4){return a4['a']['equals'](this['a'])&&a4['b']['equals'](this['b'])&&a4['c']['equals'](this['c']);}},dr=class{constructor(a4=new W(Infinity,Infinity,Infinity),a5=new W(-Infinity,-Infinity,-Infinity)){const gU=d4;this['isBox3']=!0x0,this['min']=a4,this[gU(0x360)]=a5;}['set'](a4,a5){const gV=d4;return this[gV(0xbb)]['copy'](a4),this['max']['copy'](a5),this;}['setFromArray'](a4){const gW=d4;this[gW(0x1fc)]();for(let a5=0x0,a6=a4['length'];a5<a6;a5+=0x3)this['expandByPoint'](pr['fromArray'](a4,a5));return this;}['setFromBufferAttribute'](a4){const gX=d4;this[gX(0x1fc)]();for(let a5=0x0,a6=a4[gX(0x58d)];a5<a6;a5++)this['expandByPoint'](pr[gX(0x2bb)](a4,a5));return this;}[d4(0x35d)](a4){const gY=d4;this[gY(0x1fc)]();for(let a5=0x0,a6=a4['length'];a5<a6;a5++)this['expandByPoint'](a4[a5]);return this;}['setFromCenterAndSize'](a4,a5){let a6=pr['copy'](a5)['multiplyScalar'](0.5);return this['min']['copy'](a4)['sub'](a6),this['max']['copy'](a4)['add'](a6),this;}['setFromObject'](a4,a5=!0x1){const gZ=d4;return this['makeEmpty'](),this[gZ(0x528)](a4,a5);}['clone'](){const h0=d4;return new this[(h0(0x27b))]()['copy'](this);}[d4(0x32f)](a4){const h1=d4;return this['min']['copy'](a4[h1(0xbb)]),this['max']['copy'](a4['max']),this;}['makeEmpty'](){const h2=d4;return this['min']['x']=this[h2(0xbb)]['y']=this['min']['z']=Infinity,this['max']['x']=this['max']['y']=this['max']['z']=-Infinity,this;}['isEmpty'](){return this['max']['x']<this['min']['x']||this['max']['y']<this['min']['y']||this['max']['z']<this['min']['z'];}[d4(0x1c3)](a4){const h3=d4;return this['isEmpty']()?a4['set'](0x0,0x0,0x0):a4[h3(0x1ab)](this['min'],this['max'])['multiplyScalar'](0.5);}['getSize'](a4){const h4=d4;return this['isEmpty']()?a4['set'](0x0,0x0,0x0):a4['subVectors'](this[h4(0x360)],this['min']);}[d4(0x297)](a4){const h5=d4;return this[h5(0xbb)]['min'](a4),this['max']['max'](a4),this;}['expandByVector'](a4){return this['min']['sub'](a4),this['max']['add'](a4),this;}['expandByScalar'](a4){const h6=d4;return this['min'][h6(0x11d)](-a4),this[h6(0x360)]['addScalar'](a4),this;}[d4(0x528)](a4,a5=!0x1){const h7=d4;a4['updateWorldMatrix'](!0x1,!0x1);let a6=a4['geometry'];if(a6!==void 0x0){let a8=a6[h7(0x123)](h7(0x478));if(a5===!0x0&&a8!==void 0x0&&a4['isInstancedMesh']!==!0x0){for(let a9=0x0,ab=a8['count'];a9<ab;a9++)a4['isMesh']===!0x0?a4[h7(0xd8)](a9,pr):pr['fromBufferAttribute'](a8,a9),pr['applyMatrix4'](a4['matrixWorld']),this['expandByPoint'](pr);}else a4[h7(0xb4)]===void 0x0?(a6['boundingBox']===null&&a6['computeBoundingBox'](),mr['copy'](a6['boundingBox'])):(a4['boundingBox']===null&&a4['computeBoundingBox'](),mr['copy'](a4['boundingBox'])),mr['applyMatrix4'](a4['matrixWorld']),this['union'](mr);}let a7=a4['children'];for(let af=0x0,ag=a7['length'];af<ag;af++)this[h7(0x528)](a7[af],a5);return this;}['containsPoint'](a4){const h8=d4;return a4['x']>=this['min']['x']&&a4['x']<=this['max']['x']&&a4['y']>=this['min']['y']&&a4['y']<=this[h8(0x360)]['y']&&a4['z']>=this['min']['z']&&a4['z']<=this['max']['z'];}['containsBox'](a4){const h9=d4;return this['min']['x']<=a4['min']['x']&&a4['max']['x']<=this['max']['x']&&this['min']['y']<=a4['min']['y']&&a4['max']['y']<=this['max']['y']&&this['min']['z']<=a4[h9(0xbb)]['z']&&a4['max']['z']<=this['max']['z'];}['getParameter'](a4,a5){const hb=d4;return a5['set']((a4['x']-this['min']['x'])/(this['max']['x']-this['min']['x']),(a4['y']-this['min']['y'])/(this['max']['y']-this['min']['y']),(a4['z']-this[hb(0xbb)]['z'])/(this[hb(0x360)]['z']-this['min']['z']));}['intersectsBox'](a4){const hf=d4;return a4['max']['x']>=this['min']['x']&&a4['min']['x']<=this['max']['x']&&a4[hf(0x360)]['y']>=this['min']['y']&&a4['min']['y']<=this['max']['y']&&a4['max']['z']>=this[hf(0xbb)]['z']&&a4['min']['z']<=this[hf(0x360)]['z'];}['intersectsSphere'](a4){return this['clampPoint'](a4['center'],pr),pr['distanceToSquared'](a4['center'])<=a4['radius']*a4['radius'];}['intersectsPlane'](a4){const hg=d4;let a5,a6;return a4['normal']['x']>0x0?(a5=a4['normal']['x']*this['min']['x'],a6=a4['normal']['x']*this['max']['x']):(a5=a4['normal']['x']*this['max']['x'],a6=a4['normal']['x']*this['min']['x']),a4['normal']['y']>0x0?(a5+=a4['normal']['y']*this['min']['y'],a6+=a4['normal']['y']*this['max']['y']):(a5+=a4['normal']['y']*this['max']['y'],a6+=a4['normal']['y']*this['min']['y']),a4[hg(0x264)]['z']>0x0?(a5+=a4['normal']['z']*this['min']['z'],a6+=a4['normal']['z']*this['max']['z']):(a5+=a4[hg(0x264)]['z']*this['max']['z'],a6+=a4['normal']['z']*this[hg(0xbb)]['z']),a5<=-a4['constant']&&a6>=-a4['constant'];}['intersectsTriangle'](a4){const hh=d4;if(this[hh(0x2b0)]())return!0x1;this['getCenter'](xr),Sr['subVectors'](this[hh(0x360)],xr),hr['subVectors'](a4['a'],xr),gr['subVectors'](a4['b'],xr),_r['subVectors'](a4['c'],xr),vr[hh(0x52f)](gr,hr),yr['subVectors'](_r,gr),br[hh(0x52f)](hr,_r);let a5=[0x0,-vr['z'],vr['y'],0x0,-yr['z'],yr['y'],0x0,-br['z'],br['y'],vr['z'],0x0,-vr['x'],yr['z'],0x0,-yr['x'],br['z'],0x0,-br['x'],-vr['y'],vr['x'],0x0,-yr['y'],yr['x'],0x0,-br['y'],br['x'],0x0];return!Tr(a5,hr,gr,_r,Sr)||(a5=[0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1],!Tr(a5,hr,gr,_r,Sr))?!0x1:(Cr['crossVectors'](vr,yr),a5=[Cr['x'],Cr['y'],Cr['z']],Tr(a5,hr,gr,_r,Sr));}['clampPoint'](a4,a5){const hj=d4;return a5[hj(0x32f)](a4)['clamp'](this['min'],this['max']);}['distanceToPoint'](a4){const hk=d4;return this[hk(0x2a5)](a4,pr)['distanceTo'](a4);}['getBoundingSphere'](a4){const hm=d4;return this['isEmpty']()?a4['makeEmpty']():(this['getCenter'](a4['center']),a4['radius']=this[hm(0x283)](pr)['length']()*0.5),a4;}['intersect'](a4){const hp=d4;return this['min']['max'](a4['min']),this[hp(0x360)]['min'](a4['max']),this['isEmpty']()&&this['makeEmpty'](),this;}['union'](a4){const hq=d4;return this[hq(0xbb)][hq(0xbb)](a4['min']),this['max']['max'](a4['max']),this;}[d4(0x510)](a4){const hv=d4;return this[hv(0x2b0)]()?this:(fr[0x0][hv(0x479)](this['min']['x'],this['min']['y'],this[hv(0xbb)]['z'])[hv(0x510)](a4),fr[0x1]['set'](this['min']['x'],this['min']['y'],this['max']['z'])['applyMatrix4'](a4),fr[0x2]['set'](this['min']['x'],this['max']['y'],this['min']['z'])['applyMatrix4'](a4),fr[0x3]['set'](this['min']['x'],this['max']['y'],this['max']['z'])['applyMatrix4'](a4),fr[0x4]['set'](this['max']['x'],this['min']['y'],this[hv(0xbb)]['z'])['applyMatrix4'](a4),fr[0x5]['set'](this['max']['x'],this['min']['y'],this[hv(0x360)]['z'])['applyMatrix4'](a4),fr[0x6]['set'](this['max']['x'],this[hv(0x360)]['y'],this['min']['z'])['applyMatrix4'](a4),fr[0x7]['set'](this['max']['x'],this['max']['y'],this['max']['z'])['applyMatrix4'](a4),this['setFromPoints'](fr),this);}['translate'](a4){const hw=d4;return this[hw(0xbb)]['add'](a4),this['max']['add'](a4),this;}['equals'](a4){const hx=d4;return a4['min']['equals'](this['min'])&&a4[hx(0x360)]['equals'](this[hx(0x360)]);}['toJSON'](){return{'min':this['min']['toArray'](),'max':this['max']['toArray']()};}['fromJSON'](a4){const hy=d4;return this[hy(0xbb)]['fromArray'](a4['min']),this['max']['fromArray'](a4['max']),this;}},fr=[new W(),new W(),new W(),new W(),new W(),new W(),new W(),new W()],pr=new W(),mr=new dr(),hr=new W(),gr=new W(),_r=new W(),vr=new W(),yr=new W(),br=new W(),xr=new W(),Sr=new W(),Cr=new W(),wr=new W();function Tr(a4,a5,a6,a7,a8){const hz=d4;for(let a9=0x0,ab=a4['length']-0x3;a9<=ab;a9+=0x3){wr['fromArray'](a4,a9);let af=a8['x']*Math[hz(0x553)](wr['x'])+a8['y']*Math['abs'](wr['y'])+a8['z']*Math['abs'](wr['z']),ag=a5['dot'](wr),ah=a6['dot'](wr),aj=a7['dot'](wr);if(Math['max'](-Math['max'](ag,ah,aj),Math['min'](ag,ah,aj))>af)return!0x1;}return!0x0;}var Er=new W(),Dr=new U(),Or=0x0,kr=class extends xt{constructor(a4,a5,a6=!0x1){const hA=d4;if(super(),Array['isArray'](a4))throw TypeError('THREE.BufferAttribute:\x20array\x20should\x20be\x20a\x20Typed\x20Array.');this['isBufferAttribute']=!0x0,Object['defineProperty'](this,'id',{'value':Or++}),this['name']='',this['array']=a4,this[hA(0xc2)]=a5,this[hA(0x58d)]=a4===void 0x0?0x0:a4['length']/a5,this['normalized']=a6,this['usage']=ct,this['updateRanges']=[],this['gpuType']=A,this['version']=0x0;}['onUploadCallback'](){}set[d4(0x3f1)](a4){const hB=d4;a4===!0x0&&this[hB(0x2d1)]++;}['setUsage'](a4){return this['usage']=a4,this;}['addUpdateRange'](a4,a5){this['updateRanges']['push']({'start':a4,'count':a5});}['clearUpdateRanges'](){this['updateRanges']['length']=0x0;}[d4(0x32f)](a4){const hC=d4;return this[hC(0x3a8)]=a4['name'],this['array']=new a4['array']['constructor'](a4['array']),this['itemSize']=a4['itemSize'],this['count']=a4['count'],this['normalized']=a4['normalized'],this['usage']=a4['usage'],this['gpuType']=a4['gpuType'],this;}[d4(0x34b)](a4,a5,a6){a4*=this['itemSize'],a6*=a5['itemSize'];for(let a7=0x0,a8=this['itemSize'];a7<a8;a7++)this['array'][a4+a7]=a5['array'][a6+a7];return this;}['copyArray'](a4){return this['array']['set'](a4),this;}['applyMatrix3'](a4){const hD=d4;if(this['itemSize']===0x2){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Dr['fromBufferAttribute'](this,a5),Dr['applyMatrix3'](a4),this[hD(0x381)](a5,Dr['x'],Dr['y']);}else{if(this['itemSize']===0x3){for(let a7=0x0,a8=this['count'];a7<a8;a7++)Er['fromBufferAttribute'](this,a7),Er[hD(0x10a)](a4),this['setXYZ'](a7,Er['x'],Er['y'],Er['z']);}}return this;}['applyMatrix4'](a4){const hE=d4;for(let a5=0x0,a6=this['count'];a5<a6;a5++)Er['fromBufferAttribute'](this,a5),Er[hE(0x510)](a4),this['setXYZ'](a5,Er['x'],Er['y'],Er['z']);return this;}[d4(0x573)](a4){const hF=d4;for(let a5=0x0,a6=this['count'];a5<a6;a5++)Er[hF(0x2bb)](this,a5),Er['applyNormalMatrix'](a4),this['setXYZ'](a5,Er['x'],Er['y'],Er['z']);return this;}['transformDirection'](a4){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Er['fromBufferAttribute'](this,a5),Er['transformDirection'](a4),this['setXYZ'](a5,Er['x'],Er['y'],Er['z']);return this;}['set'](a4,a5=0x0){const hG=d4;return this['array'][hG(0x479)](a4,a5),this;}['getComponent'](a4,a5){const hH=d4;let a6=this['array'][a4*this[hH(0xc2)]+a5];return this['normalized']&&(a6=Gt(a6,this['array'])),a6;}['setComponent'](a4,a5,a6){const hI=d4;return this['normalized']&&(a6=H(a6,this['array'])),this['array'][a4*this[hI(0xc2)]+a5]=a6,this;}['getX'](a4){const hJ=d4;let a5=this[hJ(0x15e)][a4*this['itemSize']];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}['setX'](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['array'][a4*this['itemSize']]=a5,this;}['getY'](a4){const hK=d4;let a5=this['array'][a4*this[hK(0xc2)]+0x1];return this[hK(0x1ed)]&&(a5=Gt(a5,this['array'])),a5;}[d4(0x583)](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['array'][a4*this['itemSize']+0x1]=a5,this;}[d4(0x132)](a4){const hL=d4;let a5=this['array'][a4*this['itemSize']+0x2];return this['normalized']&&(a5=Gt(a5,this[hL(0x15e)])),a5;}['setZ'](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['array'][a4*this['itemSize']+0x2]=a5,this;}['getW'](a4){const hM=d4;let a5=this['array'][a4*this['itemSize']+0x3];return this[hM(0x1ed)]&&(a5=Gt(a5,this['array'])),a5;}['setW'](a4,a5){const hN=d4;return this[hN(0x1ed)]&&(a5=H(a5,this['array'])),this['array'][a4*this['itemSize']+0x3]=a5,this;}[d4(0x381)](a4,a5,a6){const hO=d4;return a4*=this['itemSize'],this['normalized']&&(a5=H(a5,this[hO(0x15e)]),a6=H(a6,this['array'])),this['array'][a4+0x0]=a5,this[hO(0x15e)][a4+0x1]=a6,this;}['setXYZ'](a4,a5,a6,a7){const hP=d4;return a4*=this['itemSize'],this['normalized']&&(a5=H(a5,this[hP(0x15e)]),a6=H(a6,this[hP(0x15e)]),a7=H(a7,this['array'])),this['array'][a4+0x0]=a5,this['array'][a4+0x1]=a6,this['array'][a4+0x2]=a7,this;}[d4(0x541)](a4,a5,a6,a7,a8){const hQ=d4;return a4*=this['itemSize'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this['array']),a7=H(a7,this['array']),a8=H(a8,this[hQ(0x15e)])),this['array'][a4+0x0]=a5,this[hQ(0x15e)][a4+0x1]=a6,this[hQ(0x15e)][a4+0x2]=a7,this['array'][a4+0x3]=a8,this;}['onUpload'](a4){const hR=d4;return this[hR(0x578)]=a4,this;}['clone'](){return new this['constructor'](this['array'],this['itemSize'])['copy'](this);}[d4(0x599)](){const hS=d4;let a4={'itemSize':this['itemSize'],'type':this['array']['constructor']['name'],'array':Array['from'](this[hS(0x15e)]),'normalized':this['normalized']};return this['name']!==''&&(a4['name']=this['name']),this['usage']!==0x88e4&&(a4['usage']=this['usage']),a4;}[d4(0x365)](){this['dispatchEvent']({'type':'dispose'});}},Ar=class extends kr{constructor(a4,a5,a6){super(new Uint16Array(a4),a5,a6);}},jr=class extends kr{constructor(a4,a5,a6){super(new Int32Array(a4),a5,a6);}},Mr=class extends kr{constructor(a4,a5,a6){super(new Uint32Array(a4),a5,a6);}},X=class extends kr{constructor(a4,a5,a6){super(new Float32Array(a4),a5,a6);}},Nr=new dr(),Pr=new W(),Fr=new W(),Ir=class{constructor(a4=new W(),a5=-0x1){const hT=d4;this[hT(0x26e)]=!0x0,this['center']=a4,this['radius']=a5;}['set'](a4,a5){return this['center']['copy'](a4),this['radius']=a5,this;}['setFromPoints'](a4,a5){const hU=d4;let a6=this['center'];a5===void 0x0?Nr['setFromPoints'](a4)['getCenter'](a6):a6['copy'](a5);let a7=0x0;for(let a8=0x0,a9=a4[hU(0x27a)];a8<a9;a8++)a7=Math['max'](a7,a6['distanceToSquared'](a4[a8]));return this[hU(0x42d)]=Math['sqrt'](a7),this;}[d4(0x32f)](a4){const hV=d4;return this['center']['copy'](a4['center']),this['radius']=a4[hV(0x42d)],this;}['isEmpty'](){const hW=d4;return this[hW(0x42d)]<0x0;}['makeEmpty'](){return this['center']['set'](0x0,0x0,0x0),this['radius']=-0x1,this;}['containsPoint'](a4){const hX=d4;return a4['distanceToSquared'](this[hX(0x230)])<=this['radius']*this[hX(0x42d)];}[d4(0x2f5)](a4){const hY=d4;return a4['distanceTo'](this['center'])-this[hY(0x42d)];}['intersectsSphere'](a4){let a5=this['radius']+a4['radius'];return a4['center']['distanceToSquared'](this['center'])<=a5*a5;}['intersectsBox'](a4){return a4['intersectsSphere'](this);}[d4(0x319)](a4){const hZ=d4;return Math['abs'](a4[hZ(0x2f5)](this['center']))<=this['radius'];}['clampPoint'](a4,a5){const i0=d4;let a6=this['center']['distanceToSquared'](a4);return a5['copy'](a4),a6>this['radius']*this[i0(0x42d)]&&(a5['sub'](this['center'])['normalize'](),a5['multiplyScalar'](this[i0(0x42d)])[i0(0x14b)](this['center'])),a5;}['getBoundingBox'](a4){const i1=d4;return this[i1(0x2b0)]()?(a4['makeEmpty'](),a4):(a4[i1(0x479)](this['center'],this['center']),a4['expandByScalar'](this['radius']),a4);}['applyMatrix4'](a4){const i2=d4;return this[i2(0x230)][i2(0x510)](a4),this[i2(0x42d)]*=a4['getMaxScaleOnAxis'](),this;}[d4(0x42f)](a4){return this['center']['add'](a4),this;}[d4(0x297)](a4){const i3=d4;if(this['isEmpty']())return this['center']['copy'](a4),this[i3(0x42d)]=0x0,this;Pr['subVectors'](a4,this['center']);let a5=Pr['lengthSq']();if(a5>this[i3(0x42d)]*this[i3(0x42d)]){let a6=Math['sqrt'](a5),a7=(a6-this['radius'])*0.5;this['center']['addScaledVector'](Pr,a7/a6),this['radius']+=a7;}return this;}[d4(0x4dc)](a4){const i4=d4;return a4[i4(0x2b0)]()?this:this['isEmpty']()?(this[i4(0x32f)](a4),this):(this['center']['equals'](a4['center'])===!0x0?this[i4(0x42d)]=Math['max'](this['radius'],a4['radius']):(Fr['subVectors'](a4['center'],this['center'])['setLength'](a4[i4(0x42d)]),this['expandByPoint'](Pr['copy'](a4['center'])['add'](Fr)),this['expandByPoint'](Pr['copy'](a4['center'])[i4(0x2b7)](Fr))),this);}['equals'](a4){const i5=d4;return a4['center']['equals'](this['center'])&&a4['radius']===this[i5(0x42d)];}['clone'](){return new this['constructor']()['copy'](this);}['toJSON'](){const i6=d4;return{'radius':this['radius'],'center':this['center'][i6(0x442)]()};}['fromJSON'](a4){const i7=d4;return this[i7(0x42d)]=a4['radius'],this['center']['fromArray'](a4['center']),this;}},Lr=0x0,Rr=new J(),zr=new Vn(),Br=new W(),Vr=new dr(),Hr=new dr(),Ur=new W(),Wr=class e extends xt{constructor(){const i8=d4;super(),this['isBufferGeometry']=!0x0,Object[i8(0x138)](this,'id',{'value':Lr++}),this['uuid']=Et(),this['name']='',this[i8(0x40b)]='BufferGeometry',this['index']=null,this['indirect']=null,this[i8(0x1cd)]=0x0,this['attributes']={},this['morphAttributes']={},this[i8(0x99)]=!0x1,this['groups']=[],this['boundingBox']=null,this['boundingSphere']=null,this['drawRange']={'start':0x0,'count':Infinity},this['userData']={};}['getIndex'](){const i9=d4;return this[i9(0x150)];}[d4(0x4f2)](a4){return Array['isArray'](a4)?this['index']=new((ut(a4))?Mr:Ar)(a4,0x1):this['index']=a4,this;}['setIndirect'](a4,a5=0x0){const ib=d4;return this['indirect']=a4,this[ib(0x1cd)]=a5,this;}['getIndirect'](){return this['indirect'];}['getAttribute'](a4){return this['attributes'][a4];}[d4(0x3a6)](a4,a5){const ig=d4;return this[ig(0xab)][a4]=a5,this;}['deleteAttribute'](a4){return delete this['attributes'][a4],this;}['hasAttribute'](a4){return this['attributes'][a4]!==void 0x0;}['addGroup'](a4,a5,a6=0x0){const ih=d4;this[ih(0x552)][ih(0x403)]({'start':a4,'count':a5,'materialIndex':a6});}['clearGroups'](){this['groups']=[];}['setDrawRange'](a4,a5){this['drawRange']['start']=a4,this['drawRange']['count']=a5;}['applyMatrix4'](a4){const ij=d4;let a5=this['attributes']['position'];a5!==void 0x0&&(a5['applyMatrix4'](a4),a5['needsUpdate']=!0x0);let a6=this['attributes']['normal'];if(a6!==void 0x0){let a8=new G()['getNormalMatrix'](a4);a6['applyNormalMatrix'](a8),a6['needsUpdate']=!0x0;}let a7=this['attributes']['tangent'];return a7!==void 0x0&&(a7['transformDirection'](a4),a7['needsUpdate']=!0x0),this['boundingBox']!==null&&this['computeBoundingBox'](),this[ij(0x2f0)]!==null&&this['computeBoundingSphere'](),this;}['applyQuaternion'](a4){return Rr['makeRotationFromQuaternion'](a4),this['applyMatrix4'](Rr),this;}['rotateX'](a4){return Rr['makeRotationX'](a4),this['applyMatrix4'](Rr),this;}[d4(0x3d9)](a4){const ik=d4;return Rr[ik(0x260)](a4),this['applyMatrix4'](Rr),this;}['rotateZ'](a4){const im=d4;return Rr[im(0x248)](a4),this['applyMatrix4'](Rr),this;}['translate'](a4,a5,a6){return Rr['makeTranslation'](a4,a5,a6),this['applyMatrix4'](Rr),this;}['scale'](a4,a5,a6){const ip=d4;return Rr[ip(0x34c)](a4,a5,a6),this['applyMatrix4'](Rr),this;}['lookAt'](a4){const iq=d4;return zr['lookAt'](a4),zr['updateMatrix'](),this[iq(0x510)](zr['matrix']),this;}['center'](){return this['computeBoundingBox'](),this['boundingBox']['getCenter'](Br)['negate'](),this['translate'](Br['x'],Br['y'],Br['z']),this;}[d4(0x35d)](a4){const iv=d4;let a5=this['getAttribute']('position');if(a5===void 0x0){let a6=[];for(let a7=0x0,a8=a4['length'];a7<a8;a7++){let a9=a4[a7];a6[iv(0x403)](a9['x'],a9['y'],a9['z']||0x0);}this[iv(0x3a6)]('position',new X(a6,0x3));}else{let ab=Math[iv(0xbb)](a4['length'],a5['count']);for(let af=0x0;af<ab;af++){let ag=a4[af];a5['setXYZ'](af,ag['x'],ag['y'],ag['z']||0x0);}a4[iv(0x27a)]>a5['count']&&z(iv(0x356)),a5['needsUpdate']=!0x0;}return this;}[d4(0x579)](){const iw=d4;this['boundingBox']===null&&(this['boundingBox']=new dr());let a4=this['attributes']['position'],a5=this['morphAttributes']['position'];if(a4&&a4['isGLBufferAttribute']){B(iw(0x113),this),this['boundingBox']['set'](new W(-Infinity,-Infinity,-Infinity),new W(Infinity,Infinity,Infinity));return;}if(a4!==void 0x0){if(this['boundingBox']['setFromBufferAttribute'](a4),a5)for(let a6=0x0,a7=a5['length'];a6<a7;a6++){let a8=a5[a6];Vr['setFromBufferAttribute'](a8),this['morphTargetsRelative']?(Ur['addVectors'](this[iw(0xb4)]['min'],Vr[iw(0xbb)]),this['boundingBox']['expandByPoint'](Ur),Ur[iw(0x1ab)](this['boundingBox']['max'],Vr['max']),this[iw(0xb4)]['expandByPoint'](Ur)):(this['boundingBox']['expandByPoint'](Vr['min']),this['boundingBox']['expandByPoint'](Vr[iw(0x360)]));}}else this['boundingBox']['makeEmpty']();(isNaN(this['boundingBox']['min']['x'])||isNaN(this['boundingBox']['min']['y'])||isNaN(this['boundingBox']['min']['z']))&&B(iw(0x41c),this);}[d4(0x3a4)](){const ix=d4;this['boundingSphere']===null&&(this['boundingSphere']=new Ir());let a4=this[ix(0xab)][ix(0x478)],a5=this['morphAttributes']['position'];if(a4&&a4[ix(0x1f2)]){B('BufferGeometry.computeBoundingSphere():\x20GLBufferAttribute\x20requires\x20a\x20manual\x20bounding\x20sphere.',this),this['boundingSphere'][ix(0x479)](new W(),Infinity);return;}if(a4){let a6=this['boundingSphere'][ix(0x230)];if(Vr['setFromBufferAttribute'](a4),a5)for(let a8=0x0,a9=a5['length'];a8<a9;a8++){let ab=a5[a8];Hr['setFromBufferAttribute'](ab),this['morphTargetsRelative']?(Ur['addVectors'](Vr['min'],Hr['min']),Vr['expandByPoint'](Ur),Ur['addVectors'](Vr[ix(0x360)],Hr['max']),Vr['expandByPoint'](Ur)):(Vr['expandByPoint'](Hr['min']),Vr['expandByPoint'](Hr['max']));}Vr[ix(0x1c3)](a6);let a7=0x0;for(let af=0x0,ag=a4['count'];af<ag;af++)Ur['fromBufferAttribute'](a4,af),a7=Math['max'](a7,a6['distanceToSquared'](Ur));if(a5)for(let ah=0x0,aj=a5['length'];ah<aj;ah++){let ak=a5[ah],am=this[ix(0x99)];for(let ap=0x0,aq=ak['count'];ap<aq;ap++)Ur[ix(0x2bb)](ak,ap),am&&(Br['fromBufferAttribute'](a4,ap),Ur['add'](Br)),a7=Math['max'](a7,a6[ix(0x380)](Ur));}this['boundingSphere']['radius']=Math[ix(0x408)](a7),isNaN(this['boundingSphere']['radius'])&&B('BufferGeometry.computeBoundingSphere():\x20Computed\x20radius\x20is\x20NaN.\x20The\x20\x22position\x22\x20attribute\x20is\x20likely\x20to\x20have\x20NaN\x20values.',this);}}['computeTangents'](){const iy=d4;let a4=this[iy(0x150)],a5=this[iy(0xab)];if(a4===null||a5[iy(0x478)]===void 0x0||a5['normal']===void 0x0||a5['uv']===void 0x0){B('BufferGeometry:\x20.computeTangents()\x20failed.\x20Missing\x20required\x20attributes\x20(index,\x20position,\x20normal\x20or\x20uv)');return;}let a6=a5['position'],a7=a5['normal'],a8=a5['uv'];this['hasAttribute']('tangent')===!0x1&&this['setAttribute']('tangent',new kr(new Float32Array(0x4*a6['count']),0x4));let a9=this['getAttribute']('tangent'),ab=[],af=[];for(let aD=0x0;aD<a6['count'];aD++)ab[aD]=new W(),af[aD]=new W();let ag=new W(),ah=new W(),aj=new W(),ak=new U(),am=new U(),ap=new U(),aq=new W(),av=new W();function aw(aE,aF,aG){const iz=iy;ag['fromBufferAttribute'](a6,aE),ah['fromBufferAttribute'](a6,aF),aj['fromBufferAttribute'](a6,aG),ak['fromBufferAttribute'](a8,aE),am['fromBufferAttribute'](a8,aF),ap[iz(0x2bb)](a8,aG),ah['sub'](ag),aj['sub'](ag),am['sub'](ak),ap['sub'](ak);let aH=0x1/(am['x']*ap['y']-ap['x']*am['y']);isFinite(aH)&&(aq['copy'](ah)['multiplyScalar'](ap['y'])['addScaledVector'](aj,-am['y'])['multiplyScalar'](aH),av['copy'](aj)['multiplyScalar'](am['x'])['addScaledVector'](ah,-ap['x'])['multiplyScalar'](aH),ab[aE]['add'](aq),ab[aF][iz(0x14b)](aq),ab[aG][iz(0x14b)](aq),af[aE]['add'](av),af[aF]['add'](av),af[aG]['add'](av));}let ax=this['groups'];ax[iy(0x27a)]===0x0&&(ax=[{'start':0x0,'count':a4['count']}]);for(let aE=0x0,aF=ax['length'];aE<aF;++aE){let aG=ax[aE],aH=aG['start'],aI=aG['count'];for(let aJ=aH,aK=aH+aI;aJ<aK;aJ+=0x3)aw(a4[iy(0x48b)](aJ+0x0),a4[iy(0x48b)](aJ+0x1),a4[iy(0x48b)](aJ+0x2));}let ay=new W(),az=new W(),aA=new W(),aB=new W();function aC(aL){const iA=iy;aA[iA(0x2bb)](a7,aL),aB['copy'](aA);let aM=ab[aL];ay[iA(0x32f)](aM),ay['sub'](aA['multiplyScalar'](aA['dot'](aM)))[iA(0x3ca)](),az['crossVectors'](aB,aM);let aN=az['dot'](af[aL])<0x0?-0x1:0x1;a9['setXYZW'](aL,ay['x'],ay['y'],ay['z'],aN);}for(let aL=0x0,aM=ax['length'];aL<aM;++aL){let aN=ax[aL],aO=aN[iy(0x2f9)],aP=aN['count'];for(let aQ=aO,aR=aO+aP;aQ<aR;aQ+=0x3)aC(a4['getX'](aQ+0x0)),aC(a4['getX'](aQ+0x1)),aC(a4['getX'](aQ+0x2));}}[d4(0x4ce)](){const iB=d4;let a4=this[iB(0x150)],a5=this['getAttribute']('position');if(a5!==void 0x0){let a6=this['getAttribute']('normal');if(a6===void 0x0)a6=new kr(new Float32Array(a5['count']*0x3),0x3),this['setAttribute'](iB(0x264),a6);else{for(let ak=0x0,am=a6['count'];ak<am;ak++)a6[iB(0x117)](ak,0x0,0x0,0x0);}let a7=new W(),a8=new W(),a9=new W(),ab=new W(),af=new W(),ag=new W(),ah=new W(),aj=new W();if(a4)for(let ap=0x0,aq=a4['count'];ap<aq;ap+=0x3){let av=a4['getX'](ap+0x0),aw=a4['getX'](ap+0x1),ax=a4['getX'](ap+0x2);a7['fromBufferAttribute'](a5,av),a8[iB(0x2bb)](a5,aw),a9[iB(0x2bb)](a5,ax),ah[iB(0x52f)](a9,a8),aj['subVectors'](a7,a8),ah['cross'](aj),ab['fromBufferAttribute'](a6,av),af['fromBufferAttribute'](a6,aw),ag[iB(0x2bb)](a6,ax),ab[iB(0x14b)](ah),af['add'](ah),ag['add'](ah),a6['setXYZ'](av,ab['x'],ab['y'],ab['z']),a6['setXYZ'](aw,af['x'],af['y'],af['z']),a6['setXYZ'](ax,ag['x'],ag['y'],ag['z']);}else{for(let ay=0x0,az=a5[iB(0x58d)];ay<az;ay+=0x3)a7['fromBufferAttribute'](a5,ay+0x0),a8['fromBufferAttribute'](a5,ay+0x1),a9[iB(0x2bb)](a5,ay+0x2),ah[iB(0x52f)](a9,a8),aj['subVectors'](a7,a8),ah['cross'](aj),a6['setXYZ'](ay+0x0,ah['x'],ah['y'],ah['z']),a6['setXYZ'](ay+0x1,ah['x'],ah['y'],ah['z']),a6['setXYZ'](ay+0x2,ah['x'],ah['y'],ah['z']);}this['normalizeNormals'](),a6['needsUpdate']=!0x0;}}['normalizeNormals'](){const iC=d4;let a4=this[iC(0xab)]['normal'];for(let a5=0x0,a6=a4['count'];a5<a6;a5++)Ur['fromBufferAttribute'](a4,a5),Ur['normalize'](),a4['setXYZ'](a5,Ur['x'],Ur['y'],Ur['z']);}['toNonIndexed'](){const iE=d4;function a4(ab,af){const iD=a1;let ag=ab['array'],ah=ab[iD(0xc2)],aj=ab['normalized'],ak=new ag['constructor'](af['length']*ah),am=0x0,ap=0x0;for(let aq=0x0,av=af['length'];aq<av;aq++){am=ab['isInterleavedBufferAttribute']?af[aq]*ab['data'][iD(0x2ee)]+ab['offset']:af[aq]*ah;for(let aw=0x0;aw<ah;aw++)ak[ap++]=ag[am++];}return new kr(ak,ah,aj);}if(this[iE(0x150)]===null)return z('BufferGeometry.toNonIndexed():\x20BufferGeometry\x20is\x20already\x20non-indexed.'),this;let a5=new e(),a6=this['index']['array'],a7=this['attributes'];for(let ab in a7){let af=a7[ab],ag=a4(af,a6);a5['setAttribute'](ab,ag);}let a8=this[iE(0x1d7)];for(let ah in a8){let aj=[],ak=a8[ah];for(let am=0x0,ap=ak['length'];am<ap;am++){let aq=ak[am],av=a4(aq,a6);aj['push'](av);}a5['morphAttributes'][ah]=aj;}a5['morphTargetsRelative']=this['morphTargetsRelative'];let a9=this['groups'];for(let aw=0x0,ax=a9[iE(0x27a)];aw<ax;aw++){let ay=a9[aw];a5['addGroup'](ay['start'],ay['count'],ay[iE(0x48c)]);}return a5;}['toJSON'](){const iF=d4;let a4={'metadata':{'version':4.7,'type':iF(0x55f),'generator':'BufferGeometry.toJSON'}};if(a4[iF(0x2ca)]=this['uuid'],a4['type']=this['type'],this['name']!==''&&(a4['name']=this['name']),Object['keys'](this['userData'])[iF(0x27a)]>0x0&&(a4['userData']=this['userData']),this['parameters']!==void 0x0){let af=this['parameters'];for(let ag in af)af[ag]!==void 0x0&&(a4[ag]=af[ag]);return a4;}a4['data']={'attributes':{}};let a5=this['index'];a5!==null&&(a4[iF(0x26c)][iF(0x150)]={'type':a5['array']['constructor']['name'],'array':Array[iF(0xcb)]['slice']['call'](a5['array'])});let a6=this['attributes'];for(let ah in a6){let aj=a6[ah];a4['data']['attributes'][ah]=aj['toJSON'](a4['data']);}let a7={},a8=!0x1;for(let ak in this['morphAttributes']){let am=this['morphAttributes'][ak],ap=[];for(let aq=0x0,av=am['length'];aq<av;aq++){let aw=am[aq];ap['push'](aw[iF(0x599)](a4['data']));}ap['length']>0x0&&(a7[ak]=ap,a8=!0x0);}a8&&(a4[iF(0x26c)][iF(0x1d7)]=a7,a4['data']['morphTargetsRelative']=this['morphTargetsRelative']);let a9=this['groups'];a9['length']>0x0&&(a4['data']['groups']=JSON[iF(0x2c2)](JSON['stringify'](a9)));let ab=this['boundingSphere'];return ab!==null&&(a4['data']['boundingSphere']=ab['toJSON']()),a4;}['clone'](){const iG=d4;return new this['constructor']()[iG(0x32f)](this);}['copy'](a4){const iH=d4;this[iH(0x150)]=null,this['attributes']={},this['morphAttributes']={},this['groups']=[],this['boundingBox']=null,this['boundingSphere']=null;let a5={};this['name']=a4['name'];let a6=a4['index'];a6!==null&&this['setIndex'](a6['clone']());let a7=a4['attributes'];for(let ag in a7){let ah=a7[ag];this['setAttribute'](ag,ah[iH(0x26d)](a5));}let a8=a4[iH(0x1d7)];for(let aj in a8){let ak=[],am=a8[aj];for(let ap=0x0,aq=am['length'];ap<aq;ap++)ak['push'](am[ap][iH(0x26d)](a5));this['morphAttributes'][aj]=ak;}this['morphTargetsRelative']=a4['morphTargetsRelative'];let a9=a4['groups'];for(let av=0x0,aw=a9[iH(0x27a)];av<aw;av++){let ax=a9[av];this[iH(0x3ba)](ax['start'],ax['count'],ax['materialIndex']);}let ab=a4['boundingBox'];ab!==null&&(this['boundingBox']=ab['clone']());let af=a4[iH(0x2f0)];return af!==null&&(this['boundingSphere']=af['clone']()),this['drawRange']['start']=a4['drawRange']['start'],this['drawRange']['count']=a4[iH(0x168)][iH(0x58d)],this['userData']=a4[iH(0x511)],this;}['dispose'](){const iI=d4;this['dispatchEvent']({'type':iI(0x365)});}},Gr=class{constructor(a4,a5){const iJ=d4;this[iJ(0x165)]=!0x0,this['array']=a4,this['stride']=a5,this['count']=a4===void 0x0?0x0:a4[iJ(0x27a)]/a5,this['usage']=ct,this['updateRanges']=[],this['version']=0x0,this[iJ(0x2ca)]=Et();}[d4(0x578)](){}set['needsUpdate'](a4){a4===!0x0&&this['version']++;}['setUsage'](a4){const iK=d4;return this[iK(0x37a)]=a4,this;}[d4(0x3b7)](a4,a5){this['updateRanges']['push']({'start':a4,'count':a5});}['clearUpdateRanges'](){const iL=d4;this['updateRanges'][iL(0x27a)]=0x0;}['copy'](a4){const iM=d4;return this['array']=new a4['array']['constructor'](a4[iM(0x15e)]),this['count']=a4['count'],this['stride']=a4['stride'],this['usage']=a4['usage'],this;}['copyAt'](a4,a5,a6){const iN=d4;a4*=this[iN(0x2ee)],a6*=a5['stride'];for(let a7=0x0,a8=this[iN(0x2ee)];a7<a8;a7++)this['array'][a4+a7]=a5['array'][a6+a7];return this;}[d4(0x479)](a4,a5=0x0){return this['array']['set'](a4,a5),this;}['clone'](a4){const iO=d4;a4[iO(0x129)]===void 0x0&&(a4['arrayBuffers']={}),this['array']['buffer'][iO(0x1f5)]===void 0x0&&(this['array'][iO(0x154)]['_uuid']=Et()),a4['arrayBuffers'][this['array']['buffer']['_uuid']]===void 0x0&&(a4['arrayBuffers'][this['array']['buffer'][iO(0x1f5)]]=this[iO(0x15e)]['slice'](0x0)['buffer']);let a5=new this['array']['constructor'](a4['arrayBuffers'][this[iO(0x15e)]['buffer']['_uuid']]),a6=new this[(iO(0x27b))](a5,this['stride']);return a6['setUsage'](this['usage']),a6;}['onUpload'](a4){return this['onUploadCallback']=a4,this;}[d4(0x599)](a4){const iP=d4;return a4['arrayBuffers']===void 0x0&&(a4['arrayBuffers']={}),this['array']['buffer']['_uuid']===void 0x0&&(this[iP(0x15e)][iP(0x154)][iP(0x1f5)]=Et()),a4['arrayBuffers'][this['array']['buffer'][iP(0x1f5)]]===void 0x0&&(a4[iP(0x129)][this[iP(0x15e)]['buffer']['_uuid']]=Array['from'](new Uint32Array(this['array'][iP(0x154)]))),{'uuid':this['uuid'],'buffer':this['array']['buffer']['_uuid'],'type':this['array']['constructor'][iP(0x3a8)],'stride':this['stride']};}},Kr=new W(),qr=class e{constructor(a4,a5,a6,a7=!0x1){const iQ=d4;this['isInterleavedBufferAttribute']=!0x0,this['name']='',this['data']=a4,this['itemSize']=a5,this['offset']=a6,this[iQ(0x1ed)]=a7;}get['count'](){return this['data']['count'];}get['array'](){return this['data']['array'];}set['needsUpdate'](a4){const iR=d4;this['data'][iR(0x3f1)]=a4;}[d4(0x510)](a4){for(let a5=0x0,a6=this['data']['count'];a5<a6;a5++)Kr['fromBufferAttribute'](this,a5),Kr['applyMatrix4'](a4),this['setXYZ'](a5,Kr['x'],Kr['y'],Kr['z']);return this;}['applyNormalMatrix'](a4){const iS=d4;for(let a5=0x0,a6=this[iS(0x58d)];a5<a6;a5++)Kr['fromBufferAttribute'](this,a5),Kr['applyNormalMatrix'](a4),this['setXYZ'](a5,Kr['x'],Kr['y'],Kr['z']);return this;}['transformDirection'](a4){const iT=d4;for(let a5=0x0,a6=this['count'];a5<a6;a5++)Kr['fromBufferAttribute'](this,a5),Kr[iT(0x526)](a4),this['setXYZ'](a5,Kr['x'],Kr['y'],Kr['z']);return this;}['getComponent'](a4,a5){let a6=this['array'][a4*this['data']['stride']+this['offset']+a5];return this['normalized']&&(a6=Gt(a6,this['array'])),a6;}['setComponent'](a4,a5,a6){return this['normalized']&&(a6=H(a6,this['array'])),this['data']['array'][a4*this['data']['stride']+this['offset']+a5]=a6,this;}['setX'](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['data']['array'][a4*this['data']['stride']+this['offset']]=a5,this;}['setY'](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['data']['array'][a4*this['data']['stride']+this['offset']+0x1]=a5,this;}['setZ'](a4,a5){const iU=d4;return this['normalized']&&(a5=H(a5,this['array'])),this['data']['array'][a4*this['data'][iU(0x2ee)]+this['offset']+0x2]=a5,this;}['setW'](a4,a5){const iV=d4;return this['normalized']&&(a5=H(a5,this['array'])),this['data'][iV(0x15e)][a4*this[iV(0x26c)]['stride']+this['offset']+0x3]=a5,this;}['getX'](a4){const iW=d4;let a5=this['data']['array'][a4*this['data']['stride']+this['offset']];return this[iW(0x1ed)]&&(a5=Gt(a5,this['array'])),a5;}['getY'](a4){let a5=this['data']['array'][a4*this['data']['stride']+this['offset']+0x1];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}['getZ'](a4){let a5=this['data']['array'][a4*this['data']['stride']+this['offset']+0x2];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}['getW'](a4){const iX=d4;let a5=this['data'][iX(0x15e)][a4*this['data']['stride']+this['offset']+0x3];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}['setXY'](a4,a5,a6){const iY=d4;return a4=a4*this[iY(0x26c)]['stride']+this['offset'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this[iY(0x15e)])),this['data'][iY(0x15e)][a4+0x0]=a5,this['data']['array'][a4+0x1]=a6,this;}['setXYZ'](a4,a5,a6,a7){const iZ=d4;return a4=a4*this['data']['stride']+this['offset'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this['array']),a7=H(a7,this[iZ(0x15e)])),this['data']['array'][a4+0x0]=a5,this[iZ(0x26c)]['array'][a4+0x1]=a6,this['data']['array'][a4+0x2]=a7,this;}['setXYZW'](a4,a5,a6,a7,a8){const j0=d4;return a4=a4*this['data']['stride']+this['offset'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this[j0(0x15e)]),a7=H(a7,this['array']),a8=H(a8,this['array'])),this['data']['array'][a4+0x0]=a5,this['data']['array'][a4+0x1]=a6,this['data']['array'][a4+0x2]=a7,this['data']['array'][a4+0x3]=a8,this;}['clone'](a4){const j1=d4;if(a4===void 0x0){gt('InterleavedBufferAttribute.clone():\x20Cloning\x20an\x20interleaved\x20buffer\x20attribute\x20will\x20de-interleave\x20buffer\x20data.');let a5=[];for(let a6=0x0;a6<this[j1(0x58d)];a6++){let a7=a6*this['data']['stride']+this['offset'];for(let a8=0x0;a8<this[j1(0xc2)];a8++)a5[j1(0x403)](this['data']['array'][a7+a8]);}return new kr(new this['array']['constructor'](a5),this['itemSize'],this[j1(0x1ed)]);}else return a4[j1(0x2a8)]===void 0x0&&(a4[j1(0x2a8)]={}),a4['interleavedBuffers'][this['data']['uuid']]===void 0x0&&(a4['interleavedBuffers'][this['data']['uuid']]=this['data']['clone'](a4)),new e(a4['interleavedBuffers'][this['data']['uuid']],this['itemSize'],this['offset'],this['normalized']);}['toJSON'](a4){const j2=d4;if(a4===void 0x0){gt('InterleavedBufferAttribute.toJSON():\x20Serializing\x20an\x20interleaved\x20buffer\x20attribute\x20will\x20de-interleave\x20buffer\x20data.');let a5=[];for(let a6=0x0;a6<this['count'];a6++){let a7=a6*this['data'][j2(0x2ee)]+this['offset'];for(let a8=0x0;a8<this['itemSize'];a8++)a5['push'](this[j2(0x26c)]['array'][a7+a8]);}return{'itemSize':this['itemSize'],'type':this['array']['constructor']['name'],'array':a5,'normalized':this['normalized']};}else return a4['interleavedBuffers']===void 0x0&&(a4['interleavedBuffers']={}),a4['interleavedBuffers'][this[j2(0x26c)]['uuid']]===void 0x0&&(a4[j2(0x2a8)][this['data']['uuid']]=this['data']['toJSON'](a4)),{'isInterleavedBufferAttribute':!0x0,'itemSize':this['itemSize'],'data':this['data']['uuid'],'offset':this['offset'],'normalized':this['normalized']};}},Jr=0x0,Yr=class extends xt{constructor(){const j3=d4;super(),this['isMaterial']=!0x0,Object['defineProperty'](this,'id',{'value':Jr++}),this['uuid']=Et(),this['name']='',this['type']='Material',this[j3(0x311)]=0x1,this[j3(0x2e3)]=0x0,this['vertexColors']=!0x1,this['opacity']=0x1,this['transparent']=!0x1,this['alphaHash']=!0x1,this[j3(0x265)]=0xcc,this['blendDst']=0xcd,this['blendEquation']=0x64,this['blendSrcAlpha']=null,this['blendDstAlpha']=null,this[j3(0x517)]=null,this['blendColor']=new Y(0x0,0x0,0x0),this['blendAlpha']=0x0,this['depthFunc']=0x3,this[j3(0x430)]=!0x0,this['depthWrite']=!0x0,this['stencilWriteMask']=0xff,this[j3(0x3c1)]=0x207,this['stencilRef']=0x0,this['stencilFuncMask']=0xff,this[j3(0x348)]=st,this['stencilZFail']=st,this[j3(0xb2)]=st,this['stencilWrite']=!0x1,this['clippingPlanes']=null,this[j3(0x81)]=!0x1,this[j3(0x586)]=!0x1,this['shadowSide']=null,this['colorWrite']=!0x0,this['precision']=null,this['polygonOffset']=!0x1,this['polygonOffsetFactor']=0x0,this['polygonOffsetUnits']=0x0,this['dithering']=!0x1,this['alphaToCoverage']=!0x1,this['premultipliedAlpha']=!0x1,this['forceSinglePass']=!0x1,this['allowOverride']=!0x0,this['visible']=!0x0,this['toneMapped']=!0x0,this['userData']={},this['version']=0x0,this['_alphaTest']=0x0;}get['alphaTest'](){return this['_alphaTest'];}set['alphaTest'](a4){const j4=d4;this['_alphaTest']>0x0!=a4>0x0&&this['version']++,this[j4(0x142)]=a4;}[d4(0x457)](){}['onBeforeCompile'](){}['customProgramCacheKey'](){const j5=d4;return this[j5(0x382)]['toString']();}['setValues'](a4){const j6=d4;if(a4!==void 0x0)for(let a5 in a4){let a6=a4[a5];if(a6===void 0x0){z('Material:\x20parameter\x20\x27'+a5+'\x27\x20has\x20value\x20of\x20undefined.');continue;}let a7=this[a5];if(a7===void 0x0){z(j6(0xbf)+a5+'\x27\x20is\x20not\x20a\x20property\x20of\x20THREE.'+this[j6(0x40b)]+'.');continue;}a7&&a7['isColor']?a7['set'](a6):a7&&a7['isVector3']&&a6&&a6['isVector3']?a7['copy'](a6):this[a5]=a6;}}['toJSON'](a4){const j7=d4;let a5=a4===void 0x0||typeof a4=='string';a5&&(a4={'textures':{},'images':{}});let a6={'metadata':{'version':4.7,'type':'Material','generator':'Material.toJSON'}};a6['uuid']=this['uuid'],a6['type']=this['type'],this['name']!==''&&(a6['name']=this['name']),this['color']&&this['color']['isColor']&&(a6['color']=this['color'][j7(0x4ee)]()),this['roughness']!==void 0x0&&(a6['roughness']=this['roughness']),this['metalness']!==void 0x0&&(a6['metalness']=this['metalness']),this['sheen']!==void 0x0&&(a6['sheen']=this['sheen']),this[j7(0x1cc)]&&this['sheenColor'][j7(0x44e)]&&(a6['sheenColor']=this['sheenColor'][j7(0x4ee)]()),this['sheenRoughness']!==void 0x0&&(a6['sheenRoughness']=this['sheenRoughness']),this[j7(0x190)]&&this['emissive']['isColor']&&(a6['emissive']=this['emissive']['getHex']()),this['emissiveIntensity']!==void 0x0&&this[j7(0x1e3)]!==0x1&&(a6['emissiveIntensity']=this[j7(0x1e3)]),this[j7(0x46a)]&&this['specular']['isColor']&&(a6['specular']=this['specular']['getHex']()),this['specularIntensity']!==void 0x0&&(a6['specularIntensity']=this['specularIntensity']),this['specularColor']&&this['specularColor'][j7(0x44e)]&&(a6[j7(0x2e5)]=this[j7(0x2e5)]['getHex']()),this['shininess']!==void 0x0&&(a6['shininess']=this[j7(0x170)]),this[j7(0x2b9)]!==void 0x0&&(a6[j7(0x2b9)]=this['clearcoat']),this['clearcoatRoughness']!==void 0x0&&(a6['clearcoatRoughness']=this['clearcoatRoughness']),this['clearcoatMap']&&this['clearcoatMap'][j7(0x449)]&&(a6['clearcoatMap']=this['clearcoatMap']['toJSON'](a4)['uuid']),this['clearcoatRoughnessMap']&&this['clearcoatRoughnessMap']['isTexture']&&(a6['clearcoatRoughnessMap']=this[j7(0x1d2)]['toJSON'](a4)['uuid']),this['clearcoatNormalMap']&&this['clearcoatNormalMap']['isTexture']&&(a6[j7(0x467)]=this['clearcoatNormalMap']['toJSON'](a4)['uuid'],a6['clearcoatNormalScale']=this['clearcoatNormalScale']['toArray']()),this['sheenColorMap']&&this['sheenColorMap'][j7(0x449)]&&(a6['sheenColorMap']=this['sheenColorMap']['toJSON'](a4)['uuid']),this['sheenRoughnessMap']&&this[j7(0x119)]['isTexture']&&(a6[j7(0x119)]=this['sheenRoughnessMap']['toJSON'](a4)['uuid']),this['dispersion']!==void 0x0&&(a6[j7(0x46e)]=this['dispersion']),this['iridescence']!==void 0x0&&(a6['iridescence']=this['iridescence']),this['iridescenceIOR']!==void 0x0&&(a6[j7(0x4fa)]=this['iridescenceIOR']),this['iridescenceThicknessRange']!==void 0x0&&(a6['iridescenceThicknessRange']=this['iridescenceThicknessRange']),this['iridescenceMap']&&this[j7(0x4df)]['isTexture']&&(a6[j7(0x4df)]=this['iridescenceMap'][j7(0x599)](a4)['uuid']),this['iridescenceThicknessMap']&&this['iridescenceThicknessMap'][j7(0x449)]&&(a6[j7(0x55e)]=this['iridescenceThicknessMap']['toJSON'](a4)[j7(0x2ca)]),this[j7(0x238)]!==void 0x0&&(a6['anisotropy']=this[j7(0x238)]),this['anisotropyRotation']!==void 0x0&&(a6[j7(0x59b)]=this['anisotropyRotation']),this['anisotropyMap']&&this['anisotropyMap']['isTexture']&&(a6['anisotropyMap']=this['anisotropyMap']['toJSON'](a4)['uuid']),this['map']&&this['map']['isTexture']&&(a6['map']=this[j7(0x146)]['toJSON'](a4)['uuid']),this['matcap']&&this[j7(0x385)]['isTexture']&&(a6['matcap']=this['matcap']['toJSON'](a4)['uuid']),this['alphaMap']&&this['alphaMap']['isTexture']&&(a6[j7(0xed)]=this['alphaMap']['toJSON'](a4)['uuid']),this['lightMap']&&this['lightMap']['isTexture']&&(a6['lightMap']=this['lightMap']['toJSON'](a4)['uuid'],a6['lightMapIntensity']=this[j7(0x274)]),this['aoMap']&&this['aoMap'][j7(0x449)]&&(a6['aoMap']=this['aoMap']['toJSON'](a4)[j7(0x2ca)],a6[j7(0x2e0)]=this['aoMapIntensity']),this['bumpMap']&&this['bumpMap'][j7(0x449)]&&(a6[j7(0x3dc)]=this['bumpMap']['toJSON'](a4)[j7(0x2ca)],a6['bumpScale']=this['bumpScale']),this[j7(0x126)]&&this['normalMap'][j7(0x449)]&&(a6['normalMap']=this['normalMap'][j7(0x599)](a4)['uuid'],a6['normalMapType']=this['normalMapType'],a6['normalScale']=this[j7(0x9c)]['toArray']()),this['displacementMap']&&this['displacementMap'][j7(0x449)]&&(a6['displacementMap']=this['displacementMap']['toJSON'](a4)['uuid'],a6['displacementScale']=this[j7(0x4f6)],a6['displacementBias']=this['displacementBias']),this['roughnessMap']&&this['roughnessMap']['isTexture']&&(a6[j7(0x354)]=this[j7(0x354)]['toJSON'](a4)[j7(0x2ca)]),this[j7(0x241)]&&this['metalnessMap']['isTexture']&&(a6['metalnessMap']=this[j7(0x241)]['toJSON'](a4)['uuid']),this['emissiveMap']&&this['emissiveMap']['isTexture']&&(a6['emissiveMap']=this[j7(0x17e)][j7(0x599)](a4)['uuid']),this[j7(0x1b3)]&&this['specularMap']['isTexture']&&(a6['specularMap']=this['specularMap']['toJSON'](a4)['uuid']),this['specularIntensityMap']&&this['specularIntensityMap']['isTexture']&&(a6['specularIntensityMap']=this[j7(0x3eb)][j7(0x599)](a4)[j7(0x2ca)]),this['specularColorMap']&&this['specularColorMap'][j7(0x449)]&&(a6['specularColorMap']=this['specularColorMap']['toJSON'](a4)['uuid']),this['envMap']&&this['envMap']['isTexture']&&(a6['envMap']=this['envMap'][j7(0x599)](a4)['uuid'],this['combine']!==void 0x0&&(a6['combine']=this['combine'])),this['envMapRotation']!==void 0x0&&(a6[j7(0x4c1)]=this['envMapRotation']['toArray']()),this[j7(0x1e6)]!==void 0x0&&(a6['envMapIntensity']=this[j7(0x1e6)]),this['reflectivity']!==void 0x0&&(a6[j7(0xbc)]=this['reflectivity']),this[j7(0x41d)]!==void 0x0&&(a6[j7(0x41d)]=this['refractionRatio']),this['gradientMap']&&this['gradientMap'][j7(0x449)]&&(a6['gradientMap']=this['gradientMap'][j7(0x599)](a4)['uuid']),this['transmission']!==void 0x0&&(a6['transmission']=this['transmission']),this['transmissionMap']&&this['transmissionMap']['isTexture']&&(a6[j7(0x86)]=this['transmissionMap'][j7(0x599)](a4)['uuid']),this[j7(0x229)]!==void 0x0&&(a6['thickness']=this['thickness']),this[j7(0x3b0)]&&this['thicknessMap']['isTexture']&&(a6['thicknessMap']=this['thicknessMap']['toJSON'](a4)[j7(0x2ca)]),this['attenuationDistance']!==void 0x0&&this['attenuationDistance']!==Infinity&&(a6['attenuationDistance']=this['attenuationDistance']),this['attenuationColor']!==void 0x0&&(a6['attenuationColor']=this['attenuationColor'][j7(0x4ee)]()),this[j7(0x19f)]!==void 0x0&&(a6['size']=this['size']),this['shadowSide']!==null&&(a6['shadowSide']=this['shadowSide']),this['sizeAttenuation']!==void 0x0&&(a6['sizeAttenuation']=this['sizeAttenuation']),this['blending']!==0x1&&(a6['blending']=this['blending']),this['side']!==0x0&&(a6[j7(0x2e3)]=this['side']),this['vertexColors']===!0x0&&(a6['vertexColors']=!0x0),this[j7(0x1f3)]<0x1&&(a6['opacity']=this['opacity']),this['transparent']===!0x0&&(a6['transparent']=!0x0),this['blendSrc']!==0xcc&&(a6['blendSrc']=this[j7(0x265)]),this[j7(0x3fa)]!==0xcd&&(a6['blendDst']=this['blendDst']),this[j7(0x527)]!==0x64&&(a6['blendEquation']=this['blendEquation']),this['blendSrcAlpha']!==null&&(a6[j7(0x568)]=this[j7(0x568)]),this['blendDstAlpha']!==null&&(a6['blendDstAlpha']=this[j7(0x15d)]),this['blendEquationAlpha']!==null&&(a6[j7(0x517)]=this['blendEquationAlpha']),this['blendColor']&&this['blendColor']['isColor']&&(a6['blendColor']=this[j7(0x474)]['getHex']()),this['blendAlpha']!==0x0&&(a6['blendAlpha']=this['blendAlpha']),this['depthFunc']!==0x3&&(a6[j7(0xf5)]=this['depthFunc']),this['depthTest']===!0x1&&(a6['depthTest']=this['depthTest']),this['depthWrite']===!0x1&&(a6['depthWrite']=this['depthWrite']),this['colorWrite']===!0x1&&(a6[j7(0x2ef)]=this['colorWrite']),this['stencilWriteMask']!==0xff&&(a6['stencilWriteMask']=this['stencilWriteMask']),this['stencilFunc']!==0x207&&(a6['stencilFunc']=this['stencilFunc']),this['stencilRef']!==0x0&&(a6['stencilRef']=this['stencilRef']),this['stencilFuncMask']!==0xff&&(a6[j7(0x204)]=this['stencilFuncMask']),this['stencilFail']!==0x1e00&&(a6['stencilFail']=this[j7(0x348)]),this['stencilZFail']!==0x1e00&&(a6['stencilZFail']=this['stencilZFail']),this['stencilZPass']!==0x1e00&&(a6['stencilZPass']=this['stencilZPass']),this[j7(0x11b)]===!0x0&&(a6[j7(0x11b)]=this['stencilWrite']),this['rotation']!==void 0x0&&this['rotation']!==0x0&&(a6[j7(0x2d7)]=this['rotation']),this['polygonOffset']===!0x0&&(a6['polygonOffset']=!0x0),this[j7(0x499)]!==0x0&&(a6['polygonOffsetFactor']=this['polygonOffsetFactor']),this['polygonOffsetUnits']!==0x0&&(a6['polygonOffsetUnits']=this['polygonOffsetUnits']),this['linewidth']!==void 0x0&&this['linewidth']!==0x1&&(a6['linewidth']=this['linewidth']),this['dashSize']!==void 0x0&&(a6['dashSize']=this['dashSize']),this['gapSize']!==void 0x0&&(a6[j7(0x45b)]=this['gapSize']),this['scale']!==void 0x0&&(a6['scale']=this['scale']),this['dithering']===!0x0&&(a6['dithering']=!0x0),this['alphaTest']>0x0&&(a6['alphaTest']=this['alphaTest']),this[j7(0x32d)]===!0x0&&(a6['alphaHash']=!0x0),this[j7(0x195)]===!0x0&&(a6['alphaToCoverage']=!0x0),this['premultipliedAlpha']===!0x0&&(a6[j7(0x542)]=!0x0),this['forceSinglePass']===!0x0&&(a6['forceSinglePass']=!0x0),this['allowOverride']===!0x1&&(a6[j7(0x288)]=!0x1),this['wireframe']===!0x0&&(a6['wireframe']=!0x0),this['wireframeLinewidth']>0x1&&(a6[j7(0x141)]=this['wireframeLinewidth']),this['wireframeLinecap']!=='round'&&(a6['wireframeLinecap']=this['wireframeLinecap']),this['wireframeLinejoin']!=='round'&&(a6[j7(0xe5)]=this['wireframeLinejoin']),this['flatShading']===!0x0&&(a6[j7(0x153)]=!0x0),this['visible']===!0x1&&(a6['visible']=!0x1),this['toneMapped']===!0x1&&(a6[j7(0x458)]=!0x1),this['fog']===!0x1&&(a6['fog']=!0x1),Object['keys'](this['userData'])['length']>0x0&&(a6['userData']=this[j7(0x511)]);function a7(a8){const j8=j7;let a9=[];for(let ab in a8){let af=a8[ab];delete af['metadata'],a9[j8(0x403)](af);}return a9;}if(a5){let a8=a7(a4['textures']),a9=a7(a4['images']);a8[j7(0x27a)]>0x0&&(a6['textures']=a8),a9['length']>0x0&&(a6['images']=a9);}return a6;}['clone'](){const j9=d4;return new this['constructor']()[j9(0x32f)](this);}['copy'](a4){const jb=d4;this['name']=a4['name'],this['blending']=a4[jb(0x311)],this['side']=a4['side'],this[jb(0x233)]=a4['vertexColors'],this['opacity']=a4['opacity'],this['transparent']=a4[jb(0xac)],this['blendSrc']=a4['blendSrc'],this[jb(0x3fa)]=a4[jb(0x3fa)],this[jb(0x527)]=a4['blendEquation'],this[jb(0x568)]=a4[jb(0x568)],this['blendDstAlpha']=a4['blendDstAlpha'],this['blendEquationAlpha']=a4[jb(0x517)],this['blendColor']['copy'](a4['blendColor']),this[jb(0x484)]=a4['blendAlpha'],this['depthFunc']=a4[jb(0xf5)],this['depthTest']=a4['depthTest'],this['depthWrite']=a4['depthWrite'],this['stencilWriteMask']=a4['stencilWriteMask'],this[jb(0x3c1)]=a4[jb(0x3c1)],this[jb(0x1bd)]=a4[jb(0x1bd)],this['stencilFuncMask']=a4['stencilFuncMask'],this['stencilFail']=a4['stencilFail'],this['stencilZFail']=a4['stencilZFail'],this['stencilZPass']=a4['stencilZPass'],this['stencilWrite']=a4['stencilWrite'];let a5=a4['clippingPlanes'],a6=null;if(a5!==null){let a7=a5['length'];a6=Array(a7);for(let a8=0x0;a8!==a7;++a8)a6[a8]=a5[a8]['clone']();}return this['clippingPlanes']=a6,this['clipIntersection']=a4[jb(0x81)],this[jb(0x586)]=a4[jb(0x586)],this[jb(0x23f)]=a4['shadowSide'],this['colorWrite']=a4['colorWrite'],this['precision']=a4['precision'],this['polygonOffset']=a4['polygonOffset'],this['polygonOffsetFactor']=a4[jb(0x499)],this['polygonOffsetUnits']=a4['polygonOffsetUnits'],this['dithering']=a4['dithering'],this['alphaTest']=a4['alphaTest'],this['alphaHash']=a4[jb(0x32d)],this[jb(0x195)]=a4['alphaToCoverage'],this['premultipliedAlpha']=a4['premultipliedAlpha'],this['forceSinglePass']=a4[jb(0x4cb)],this['allowOverride']=a4['allowOverride'],this['visible']=a4['visible'],this['toneMapped']=a4['toneMapped'],this['userData']=JSON['parse'](JSON['stringify'](a4[jb(0x511)])),this;}['dispose'](){const jd=d4;this[jd(0x8c)]({'type':'dispose'});}set['needsUpdate'](a4){a4===!0x0&&this['version']++;}},Xr=new W(),Zr=new W(),Qr=new W(),$r=new W(),ei=new W(),ti=new W(),ni=new W(),ri=class{constructor(a4=new W(),a5=new W(0x0,0x0,-0x1)){this['origin']=a4,this['direction']=a5;}['set'](a4,a5){return this['origin']['copy'](a4),this['direction']['copy'](a5),this;}['copy'](a4){const jf=d4;return this['origin']['copy'](a4['origin']),this['direction']['copy'](a4[jf(0x176)]),this;}['at'](a4,a5){const jg=d4;return a5[jg(0x32f)](this['origin'])[jg(0x3df)](this['direction'],a4);}['lookAt'](a4){const jh=d4;return this['direction']['copy'](a4)['sub'](this['origin'])[jh(0x3ca)](),this;}['recast'](a4){const jj=d4;return this['origin'][jj(0x32f)](this['at'](a4,Xr)),this;}['closestPointToPoint'](a4,a5){const jk=d4;a5['subVectors'](a4,this['origin']);let a6=a5['dot'](this['direction']);return a6<0x0?a5['copy'](this['origin']):a5['copy'](this['origin'])[jk(0x3df)](this['direction'],a6);}[d4(0x2f5)](a4){const jm=d4;return Math['sqrt'](this[jm(0x3ec)](a4));}[d4(0x3ec)](a4){const jp=d4;let a5=Xr['subVectors'](a4,this['origin'])['dot'](this['direction']);return a5<0x0?this['origin'][jp(0x380)](a4):(Xr['copy'](this['origin'])['addScaledVector'](this['direction'],a5),Xr['distanceToSquared'](a4));}['distanceSqToSegment'](a4,a5,a6,a7){const jq=d4;Zr['copy'](a4)['add'](a5)[jq(0x175)](0.5),Qr['copy'](a5)['sub'](a4)['normalize'](),$r['copy'](this['origin'])['sub'](Zr);let a8=a4['distanceTo'](a5)*0.5,a9=-this['direction'][jq(0x465)](Qr),ab=$r[jq(0x465)](this['direction']),af=-$r['dot'](Qr),ag=$r['lengthSq'](),ah=Math['abs'](0x1-a9*a9),aj,ak,am,ap;if(ah>0x0){if(aj=a9*af-ab,ak=a9*ab-af,ap=a8*ah,aj>=0x0){if(ak>=-ap){if(ak<=ap){let aq=0x1/ah;aj*=aq,ak*=aq,am=aj*(aj+a9*ak+0x2*ab)+ak*(a9*aj+ak+0x2*af)+ag;}else ak=a8,aj=Math['max'](0x0,-(a9*ak+ab)),am=-aj*aj+ak*(ak+0x2*af)+ag;}else ak=-a8,aj=Math['max'](0x0,-(a9*ak+ab)),am=-aj*aj+ak*(ak+0x2*af)+ag;}else ak<=-ap?(aj=Math[jq(0x360)](0x0,-(-a9*a8+ab)),ak=aj>0x0?-a8:Math['min'](Math['max'](-a8,-af),a8),am=-aj*aj+ak*(ak+0x2*af)+ag):ak<=ap?(aj=0x0,ak=Math['min'](Math['max'](-a8,-af),a8),am=ak*(ak+0x2*af)+ag):(aj=Math[jq(0x360)](0x0,-(a9*a8+ab)),ak=aj>0x0?a8:Math['min'](Math['max'](-a8,-af),a8),am=-aj*aj+ak*(ak+0x2*af)+ag);}else ak=a9>0x0?-a8:a8,aj=Math['max'](0x0,-(a9*ak+ab)),am=-aj*aj+ak*(ak+0x2*af)+ag;return a6&&a6['copy'](this['origin'])['addScaledVector'](this[jq(0x176)],aj),a7&&a7[jq(0x32f)](Zr)['addScaledVector'](Qr,ak),am;}['intersectSphere'](a4,a5){const jv=d4;Xr['subVectors'](a4['center'],this['origin']);let a6=Xr['dot'](this['direction']),a7=Xr['dot'](Xr)-a6*a6,a8=a4['radius']*a4['radius'];if(a7>a8)return null;let a9=Math[jv(0x408)](a8-a7),ab=a6-a9,af=a6+a9;return af<0x0?null:ab<0x0?this['at'](af,a5):this['at'](ab,a5);}[d4(0xc6)](a4){const jw=d4;return a4['radius']<0x0?!0x1:this[jw(0x3ec)](a4['center'])<=a4['radius']*a4['radius'];}[d4(0x3c0)](a4){let a5=a4['normal']['dot'](this['direction']);if(a5===0x0)return a4['distanceToPoint'](this['origin'])===0x0?0x0:null;let a6=-(this['origin']['dot'](a4['normal'])+a4['constant'])/a5;return a6>=0x0?a6:null;}['intersectPlane'](a4,a5){let a6=this['distanceToPlane'](a4);return a6===null?null:this['at'](a6,a5);}['intersectsPlane'](a4){let a5=a4['distanceToPoint'](this['origin']);return a5===0x0||a4['normal']['dot'](this['direction'])*a5<0x0;}['intersectBox'](a4,a5){const jx=d4;let a6,a7,a8,a9,ab,af,ag=0x1/this['direction']['x'],ah=0x1/this['direction']['y'],aj=0x1/this['direction']['z'],ak=this['origin'];return ag>=0x0?(a6=(a4['min']['x']-ak['x'])*ag,a7=(a4[jx(0x360)]['x']-ak['x'])*ag):(a6=(a4[jx(0x360)]['x']-ak['x'])*ag,a7=(a4[jx(0xbb)]['x']-ak['x'])*ag),ah>=0x0?(a8=(a4[jx(0xbb)]['y']-ak['y'])*ah,a9=(a4['max']['y']-ak['y'])*ah):(a8=(a4['max']['y']-ak['y'])*ah,a9=(a4[jx(0xbb)]['y']-ak['y'])*ah),a6>a9||a8>a7||((a8>a6||isNaN(a6))&&(a6=a8),(a9<a7||isNaN(a7))&&(a7=a9),aj>=0x0?(ab=(a4['min']['z']-ak['z'])*aj,af=(a4['max']['z']-ak['z'])*aj):(ab=(a4['max']['z']-ak['z'])*aj,af=(a4[jx(0xbb)]['z']-ak['z'])*aj),a6>af||ab>a7)||((ab>a6||a6!==a6)&&(a6=ab),(af<a7||a7!==a7)&&(a7=af),a7<0x0)?null:this['at'](a6>=0x0?a6:a7,a5);}['intersectsBox'](a4){return this['intersectBox'](a4,Xr)!==null;}[d4(0x106)](a4,a5,a6,a7,a8){const jy=d4;ei['subVectors'](a5,a4),ti['subVectors'](a6,a4),ni['crossVectors'](ei,ti);let a9=this['direction']['dot'](ni),ab;if(a9>0x0){if(a7)return null;ab=0x1;}else{if(a9<0x0)ab=-0x1,a9=-a9;else return null;}$r['subVectors'](this['origin'],a4);let af=ab*this['direction']['dot'](ti['crossVectors']($r,ti));if(af<0x0)return null;let ag=ab*this['direction'][jy(0x465)](ei['cross']($r));if(ag<0x0||af+ag>a9)return null;let ah=-ab*$r['dot'](ni);return ah<0x0?null:this['at'](ah/a9,a8);}['applyMatrix4'](a4){return this['origin']['applyMatrix4'](a4),this['direction']['transformDirection'](a4),this;}['equals'](a4){const jz=d4;return a4['origin']['equals'](this['origin'])&&a4['direction'][jz(0x37e)](this[jz(0x176)]);}[d4(0x26d)](){return new this['constructor']()['copy'](this);}},ii=class extends Yr{constructor(a4){const jA=d4;super(),this[jA(0x2b2)]=!0x0,this['type']='MeshBasicMaterial',this[jA(0x379)]=new Y(0xffffff),this['map']=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this['aoMap']=null,this[jA(0x2e0)]=0x1,this['specularMap']=null,this[jA(0xed)]=null,this['envMap']=null,this['envMapRotation']=new wn(),this['combine']=0x0,this['reflectivity']=0x1,this['refractionRatio']=0.98,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['wireframeLinecap']='round',this['wireframeLinejoin']='round',this['fog']=!0x0,this['setValues'](a4);}[d4(0x32f)](a4){const jB=d4;return super['copy'](a4),this['color']['copy'](a4[jB(0x379)]),this[jB(0x146)]=a4['map'],this[jB(0x401)]=a4['lightMap'],this['lightMapIntensity']=a4['lightMapIntensity'],this[jB(0x219)]=a4['aoMap'],this['aoMapIntensity']=a4[jB(0x2e0)],this['specularMap']=a4['specularMap'],this['alphaMap']=a4['alphaMap'],this['envMap']=a4['envMap'],this['envMapRotation'][jB(0x32f)](a4['envMapRotation']),this['combine']=a4['combine'],this[jB(0xbc)]=a4[jB(0xbc)],this['refractionRatio']=a4['refractionRatio'],this['wireframe']=a4['wireframe'],this['wireframeLinewidth']=a4['wireframeLinewidth'],this['wireframeLinecap']=a4['wireframeLinecap'],this['wireframeLinejoin']=a4['wireframeLinejoin'],this[jB(0x4e3)]=a4['fog'],this;}},ai=new J(),oi=new ri(),si=new Ir(),ci=new W(),li=new W(),ui=new W(),di=new W(),fi=new W(),pi=new W(),mi=new W(),hi=new W(),gi=class extends Vn{constructor(a4=new Wr(),a5=new ii()){const jC=d4;super(),this['isMesh']=!0x0,this['type']='Mesh',this['geometry']=a4,this['material']=a5,this['morphTargetDictionary']=void 0x0,this['morphTargetInfluences']=void 0x0,this['count']=0x1,this[jC(0x45d)]();}['copy'](a4,a5){const jD=d4;return super['copy'](a4,a5),a4['morphTargetInfluences']!==void 0x0&&(this['morphTargetInfluences']=a4['morphTargetInfluences']['slice']()),a4['morphTargetDictionary']!==void 0x0&&(this['morphTargetDictionary']=Object['assign']({},a4['morphTargetDictionary'])),this['material']=Array['isArray'](a4['material'])?a4[jD(0xd7)]['slice']():a4['material'],this['geometry']=a4['geometry'],this;}['updateMorphTargets'](){const jE=d4;let a4=this['geometry']['morphAttributes'],a5=Object[jE(0x310)](a4);if(a5['length']>0x0){let a6=a4[a5[0x0]];if(a6!==void 0x0){this['morphTargetInfluences']=[],this['morphTargetDictionary']={};for(let a7=0x0,a8=a6[jE(0x27a)];a7<a8;a7++){let a9=a6[a7]['name']||String(a7);this['morphTargetInfluences']['push'](0x0),this['morphTargetDictionary'][a9]=a7;}}}}['getVertexPosition'](a4,a5){const jF=d4;let a6=this['geometry'],a7=a6['attributes']['position'],a8=a6['morphAttributes'][jF(0x478)],a9=a6['morphTargetsRelative'];a5['fromBufferAttribute'](a7,a4);let ab=this['morphTargetInfluences'];if(a8&&ab){pi['set'](0x0,0x0,0x0);for(let af=0x0,ag=a8['length'];af<ag;af++){let ah=ab[af],aj=a8[af];ah!==0x0&&(fi['fromBufferAttribute'](aj,a4),a9?pi['addScaledVector'](fi,ah):pi['addScaledVector'](fi['sub'](a5),ah));}a5[jF(0x14b)](pi);}return a5;}['raycast'](a4,a5){const jG=d4;let a6=this[jG(0x120)],a7=this['material'],a8=this['matrixWorld'];a7!==void 0x0&&(a6['boundingSphere']===null&&a6[jG(0x3a4)](),si['copy'](a6['boundingSphere']),si['applyMatrix4'](a8),oi['copy'](a4['ray'])['recast'](a4[jG(0x56b)]),!(si['containsPoint'](oi['origin'])===!0x1&&(oi[jG(0xe6)](si,ci)===null||oi[jG(0x3f2)][jG(0x380)](ci)>Math[jG(0x275)](a4[jG(0x512)]-a4['near'],0x2)))&&(ai['copy'](a8)['invert'](),oi['copy'](a4['ray'])['applyMatrix4'](ai),!(a6['boundingBox']!==null&&oi['intersectsBox'](a6['boundingBox'])===!0x1)&&this['_computeIntersections'](a4,a5,oi)));}['_computeIntersections'](a4,a5,a6){const jH=d4;let a7,a8=this['geometry'],a9=this[jH(0xd7)],ab=a8['index'],af=a8['attributes']['position'],ag=a8['attributes']['uv'],ah=a8['attributes']['uv1'],aj=a8['attributes']['normal'],ak=a8['groups'],am=a8[jH(0x168)];if(ab!==null){if(Array[jH(0x93)](a9))for(let ap=0x0,aq=ak['length'];ap<aq;ap++){let av=ak[ap],aw=a9[av['materialIndex']],ax=Math[jH(0x360)](av['start'],am['start']),ay=Math[jH(0xbb)](ab['count'],Math['min'](av['start']+av['count'],am['start']+am['count']));for(let az=ax,aA=ay;az<aA;az+=0x3){let aB=ab['getX'](az),aC=ab['getX'](az+0x1),aD=ab['getX'](az+0x2);a7=vi(this,aw,a4,a6,ag,ah,aj,aB,aC,aD),a7&&(a7['faceIndex']=Math['floor'](az/0x3),a7['face']['materialIndex']=av['materialIndex'],a5['push'](a7));}}else{let aE=Math[jH(0x360)](0x0,am['start']),aF=Math['min'](ab['count'],am['start']+am[jH(0x58d)]);for(let aG=aE,aH=aF;aG<aH;aG+=0x3){let aI=ab[jH(0x48b)](aG),aJ=ab['getX'](aG+0x1),aK=ab['getX'](aG+0x2);a7=vi(this,a9,a4,a6,ag,ah,aj,aI,aJ,aK),a7&&(a7['faceIndex']=Math['floor'](aG/0x3),a5[jH(0x403)](a7));}}}else{if(af!==void 0x0){if(Array['isArray'](a9))for(let aL=0x0,aM=ak['length'];aL<aM;aL++){let aN=ak[aL],aO=a9[aN['materialIndex']],aP=Math['max'](aN['start'],am['start']),aQ=Math[jH(0xbb)](af['count'],Math['min'](aN[jH(0x2f9)]+aN['count'],am['start']+am['count']));for(let aR=aP,aS=aQ;aR<aS;aR+=0x3){let aT=aR,aU=aR+0x1,aV=aR+0x2;a7=vi(this,aO,a4,a6,ag,ah,aj,aT,aU,aV),a7&&(a7['faceIndex']=Math['floor'](aR/0x3),a7['face']['materialIndex']=aN['materialIndex'],a5[jH(0x403)](a7));}}else{let aW=Math['max'](0x0,am[jH(0x2f9)]),aX=Math['min'](af[jH(0x58d)],am['start']+am['count']);for(let aY=aW,aZ=aX;aY<aZ;aY+=0x3){let b0=aY,b1=aY+0x1,b2=aY+0x2;a7=vi(this,a9,a4,a6,ag,ah,aj,b0,b1,b2),a7&&(a7['faceIndex']=Math['floor'](aY/0x3),a5['push'](a7));}}}}}};function _i(a4,a5,a6,a7,a8,a9,ab,af){const jI=d4;let ag;if(ag=a5['side']===0x1?a7[jI(0x106)](ab,a9,a8,!0x0,af):a7['intersectTriangle'](a8,a9,ab,a5['side']===0x0,af),ag===null)return null;hi['copy'](af),hi['applyMatrix4'](a4['matrixWorld']);let ah=a6[jI(0x7a)]['origin']['distanceTo'](hi);return ah<a6['near']||ah>a6['far']?null:{'distance':ah,'point':hi[jI(0x26d)](),'object':a4};}function vi(a4,a5,a6,a7,a8,a9,ab,af,ag,ah){const jJ=d4;a4['getVertexPosition'](af,li),a4['getVertexPosition'](ag,ui),a4['getVertexPosition'](ah,di);let aj=_i(a4,a5,a6,a7,li,ui,di,mi);if(aj){let ak=new W();ur['getBarycoord'](mi,li,ui,di,ak),a8&&(aj['uv']=ur['getInterpolatedAttribute'](a8,af,ag,ah,ak,new U())),a9&&(aj['uv1']=ur['getInterpolatedAttribute'](a9,af,ag,ah,ak,new U())),ab&&(aj['normal']=ur['getInterpolatedAttribute'](ab,af,ag,ah,ak,new W()),aj['normal']['dot'](a7['direction'])>0x0&&aj['normal'][jJ(0x175)](-0x1));let am={'a':af,'b':ag,'c':ah,'normal':new W(),'materialIndex':0x0};ur['getNormal'](li,ui,di,am['normal']),aj['face']=am,aj['barycoord']=ak;}return aj;}var yi=new q(),bi=new q(),xi=new q(),Si=new q(),Ci=new J(),wi=new W(),Ti=new Ir(),Ei=new J(),Di=new ri(),Oi=class extends gi{constructor(a4,a5){const jK=d4;super(a4,a5),this['isSkinnedMesh']=!0x0,this['type']='SkinnedMesh',this['bindMode']=h,this[jK(0x4d7)]=new J(),this['bindMatrixInverse']=new J(),this[jK(0xb4)]=null,this[jK(0x2f0)]=null;}[d4(0x579)](){const jL=d4;let a4=this['geometry'];this['boundingBox']===null&&(this['boundingBox']=new dr()),this['boundingBox'][jL(0x1fc)]();let a5=a4['getAttribute'](jL(0x478));for(let a6=0x0;a6<a5[jL(0x58d)];a6++)this['getVertexPosition'](a6,wi),this['boundingBox']['expandByPoint'](wi);}['computeBoundingSphere'](){const jM=d4;let a4=this['geometry'];this[jM(0x2f0)]===null&&(this[jM(0x2f0)]=new Ir()),this['boundingSphere'][jM(0x1fc)]();let a5=a4['getAttribute']('position');for(let a6=0x0;a6<a5[jM(0x58d)];a6++)this['getVertexPosition'](a6,wi),this['boundingSphere']['expandByPoint'](wi);}[d4(0x32f)](a4,a5){const jN=d4;return super[jN(0x32f)](a4,a5),this['bindMode']=a4['bindMode'],this['bindMatrix'][jN(0x32f)](a4['bindMatrix']),this['bindMatrixInverse']['copy'](a4[jN(0x3ac)]),this['skeleton']=a4['skeleton'],a4['boundingBox']!==null&&(this[jN(0xb4)]=a4[jN(0xb4)]['clone']()),a4['boundingSphere']!==null&&(this['boundingSphere']=a4['boundingSphere']['clone']()),this;}[d4(0x3e5)](a4,a5){const jO=d4;let a6=this['material'],a7=this['matrixWorld'];a6!==void 0x0&&(this[jO(0x2f0)]===null&&this['computeBoundingSphere'](),Ti[jO(0x32f)](this['boundingSphere']),Ti['applyMatrix4'](a7),a4['ray']['intersectsSphere'](Ti)!==!0x1&&(Ei[jO(0x32f)](a7)['invert'](),Di['copy'](a4['ray'])['applyMatrix4'](Ei),!(this['boundingBox']!==null&&Di['intersectsBox'](this['boundingBox'])===!0x1)&&this['_computeIntersections'](a4,a5,Di)));}['getVertexPosition'](a4,a5){return super['getVertexPosition'](a4,a5),this['applyBoneTransform'](a4,a5),a5;}[d4(0x441)](a4,a5){const jP=d4;this['skeleton']=a4,a5===void 0x0&&(this['updateMatrixWorld'](!0x0),this['skeleton']['calculateInverses'](),a5=this['matrixWorld']),this['bindMatrix']['copy'](a5),this['bindMatrixInverse'][jP(0x32f)](a5)['invert']();}[d4(0xa8)](){this['skeleton']['pose']();}['normalizeSkinWeights'](){const jQ=d4;let a4=new q(),a5=this[jQ(0x120)]['attributes']['skinWeight'];for(let a6=0x0,a7=a5['count'];a6<a7;a6++){a4['fromBufferAttribute'](a5,a6);let a8=0x1/a4['manhattanLength']();a8===Infinity?a4['set'](0x1,0x0,0x0,0x0):a4[jQ(0x175)](a8),a5['setXYZW'](a6,a4['x'],a4['y'],a4['z'],a4['w']);}}['updateMatrixWorld'](a4){const jR=d4;super[jR(0xb3)](a4),this['bindMode']==='attached'?this['bindMatrixInverse'][jR(0x32f)](this['matrixWorld'])['invert']():this[jR(0x2fb)]==='detached'?this['bindMatrixInverse']['copy'](this['bindMatrix'])['invert']():z('SkinnedMesh:\x20Unrecognized\x20bindMode:\x20'+this[jR(0x2fb)]);}['applyBoneTransform'](a4,a5){const jS=d4;let a6=this['skeleton'],a7=this['geometry'];bi['fromBufferAttribute'](a7['attributes']['skinIndex'],a4),xi['fromBufferAttribute'](a7['attributes']['skinWeight'],a4),a5['isVector4']?(yi['copy'](a5),a5['set'](0x0,0x0,0x0,0x0)):(yi[jS(0x479)](...a5,0x1),a5[jS(0x479)](0x0,0x0,0x0)),yi[jS(0x510)](this['bindMatrix']);for(let a8=0x0;a8<0x4;a8++){let a9=xi['getComponent'](a8);if(a9!==0x0){let ab=bi['getComponent'](a8);Ci['multiplyMatrices'](a6['bones'][ab]['matrixWorld'],a6['boneInverses'][ab]),a5[jS(0x3df)](Si['copy'](yi)['applyMatrix4'](Ci),a9);}}return a5[jS(0x318)]&&(a5['w']=yi['w']),a5['applyMatrix4'](this[jS(0x3ac)]);}},ki=class extends Vn{constructor(){const jT=d4;super(),this['isBone']=!0x0,this['type']=jT(0x443);}},Ai=class extends un{constructor(a4=null,a5=0x1,a6=0x1,a7,a8,a9,ab,af,ag=y,ah=y,aj,ak){super(null,a9,ab,af,ag,ah,a7,a8,aj,ak),this['isDataTexture']=!0x0,this['image']={'data':a4,'width':a5,'height':a6},this['generateMipmaps']=!0x1,this['flipY']=!0x1,this['unpackAlignment']=0x1;}},ji=new J(),Mi=new J(),Ni=class e{constructor(a4=[],a5=[]){const jU=d4;this['uuid']=Et(),this['bones']=a4['slice'](0x0),this['boneInverses']=a5,this[jU(0x424)]=null,this['previousBoneMatrices']=null,this['boneTexture']=null,this['init']();}['init'](){const jV=d4;let a4=this['bones'],a5=this['boneInverses'];if(this[jV(0x424)]=new Float32Array(a4['length']*0x10),a5['length']===0x0)this['calculateInverses']();else{if(a4['length']!==a5['length']){z('Skeleton:\x20Number\x20of\x20inverse\x20bone\x20matrices\x20does\x20not\x20match\x20amount\x20of\x20bones.'),this['boneInverses']=[];for(let a6=0x0,a7=this['bones'][jV(0x27a)];a6<a7;a6++)this['boneInverses']['push'](new J());}}}['calculateInverses'](){const jW=d4;this[jW(0x488)]['length']=0x0;for(let a4=0x0,a5=this['bones']['length'];a4<a5;a4++){let a6=new J();this['bones'][a4]&&a6['copy'](this['bones'][a4]['matrixWorld'])['invert'](),this[jW(0x488)]['push'](a6);}}['pose'](){const jX=d4;for(let a4=0x0,a5=this['bones'][jX(0x27a)];a4<a5;a4++){let a6=this['bones'][a4];a6&&a6['matrixWorld']['copy'](this['boneInverses'][a4])['invert']();}for(let a7=0x0,a8=this['bones']['length'];a7<a8;a7++){let a9=this['bones'][a7];a9&&(a9['parent']&&a9['parent']['isBone']?(a9[jX(0x57a)][jX(0x32f)](a9['parent']['matrixWorld'])['invert'](),a9['matrix']['multiply'](a9['matrixWorld'])):a9['matrix']['copy'](a9[jX(0x3b8)]),a9['matrix'][jX(0xe8)](a9['position'],a9['quaternion'],a9['scale']));}}['update'](){const jY=d4;let a4=this['bones'],a5=this['boneInverses'],a6=this[jY(0x424)],a7=this['boneTexture'];for(let a8=0x0,a9=a4['length'];a8<a9;a8++){let ab=a4[a8]?a4[a8]['matrixWorld']:Mi;ji['multiplyMatrices'](ab,a5[a8]),ji['toArray'](a6,a8*0x10);}a7!==null&&(a7[jY(0x3f1)]=!0x0);}['clone'](){return new e(this['bones'],this['boneInverses']);}[d4(0x177)](){const jZ=d4;let a4=Math[jZ(0x408)](this['bones'][jZ(0x27a)]*0x4);a4=Math['ceil'](a4/0x4)*0x4,a4=Math[jZ(0x360)](a4,0x4);let a5=new Float32Array(a4*a4*0x4);a5['set'](this[jZ(0x424)]);let a6=new Ai(a5,a4,a4,oe,A);return a6['needsUpdate']=!0x0,this['boneMatrices']=a5,this['boneTexture']=a6,this;}['getBoneByName'](a4){const k0=d4;for(let a5=0x0,a6=this[k0(0x56a)]['length'];a5<a6;a5++){let a7=this['bones'][a5];if(a7['name']===a4)return a7;}}['dispose'](){const k1=d4;this['boneTexture']!==null&&(this['boneTexture'][k1(0x365)](),this[k1(0x507)]=null);}['fromJSON'](a4,a5){const k2=d4;this['uuid']=a4['uuid'];for(let a6=0x0,a7=a4['bones']['length'];a6<a7;a6++){let a8=a4['bones'][a6],a9=a5[a8];a9===void 0x0&&(z('Skeleton:\x20No\x20bone\x20found\x20with\x20UUID:',a8),a9=new ki()),this['bones']['push'](a9),this[k2(0x488)]['push'](new J()[k2(0x3c4)](a4[k2(0x488)][a6]));}return this[k2(0x2fd)](),this;}['toJSON'](){const k3=d4;let a4={'metadata':{'version':4.7,'type':'Skeleton','generator':'Skeleton.toJSON'},'bones':[],'boneInverses':[]};a4['uuid']=this['uuid'];let a5=this['bones'],a6=this['boneInverses'];for(let a7=0x0,a8=a5['length'];a7<a8;a7++){let a9=a5[a7];a4[k3(0x56a)][k3(0x403)](a9['uuid']);let ab=a6[a7];a4[k3(0x488)]['push'](ab['toArray']());}return a4;}},Pi=class extends kr{constructor(a4,a5,a6,a7=0x1){super(a4,a5,a6),this['isInstancedBufferAttribute']=!0x0,this['meshPerAttribute']=a7;}[d4(0x32f)](a4){const k4=d4;return super[k4(0x32f)](a4),this['meshPerAttribute']=a4['meshPerAttribute'],this;}['toJSON'](){let a4=super['toJSON']();return a4['meshPerAttribute']=this['meshPerAttribute'],a4['isInstancedBufferAttribute']=!0x0,a4;}},Fi=new J(),Ii=new J(),Li=[],Ri=new dr(),zi=new J(),Bi=new gi(),Vi=new Ir(),Hi=class extends gi{constructor(a4,a5,a6){const k5=d4;super(a4,a5),this[k5(0x560)]=!0x0,this['instanceMatrix']=new Pi(new Float32Array(a6*0x10),0x10),this[k5(0x559)]=null,this['instanceColor']=null,this['morphTexture']=null,this['count']=a6,this['boundingBox']=null,this['boundingSphere']=null;for(let a7=0x0;a7<a6;a7++)this['setMatrixAt'](a7,zi);}[d4(0x579)](){const k6=d4;let a4=this['geometry'],a5=this[k6(0x58d)];this['boundingBox']===null&&(this[k6(0xb4)]=new dr()),a4['boundingBox']===null&&a4['computeBoundingBox'](),this['boundingBox']['makeEmpty']();for(let a6=0x0;a6<a5;a6++)this['getMatrixAt'](a6,Fi),Ri[k6(0x32f)](a4[k6(0xb4)])['applyMatrix4'](Fi),this['boundingBox'][k6(0x4dc)](Ri);}['computeBoundingSphere'](){const k7=d4;let a4=this['geometry'],a5=this['count'];this['boundingSphere']===null&&(this['boundingSphere']=new Ir()),a4[k7(0x2f0)]===null&&a4['computeBoundingSphere'](),this['boundingSphere']['makeEmpty']();for(let a6=0x0;a6<a5;a6++)this['getMatrixAt'](a6,Fi),Vi['copy'](a4['boundingSphere'])['applyMatrix4'](Fi),this['boundingSphere']['union'](Vi);}['copy'](a4,a5){const k8=d4;return super['copy'](a4,a5),this['instanceMatrix']['copy'](a4['instanceMatrix']),a4['previousInstanceMatrix']!==null&&(this['previousInstanceMatrix']=a4['previousInstanceMatrix']['clone']()),a4['morphTexture']!==null&&(this[k8(0x328)]=a4['morphTexture'][k8(0x26d)]()),a4['instanceColor']!==null&&(this[k8(0x384)]=a4['instanceColor']['clone']()),this['count']=a4['count'],a4['boundingBox']!==null&&(this['boundingBox']=a4[k8(0xb4)]['clone']()),a4['boundingSphere']!==null&&(this[k8(0x2f0)]=a4['boundingSphere'][k8(0x26d)]()),this;}['getColorAt'](a4,a5){const k9=d4;return this['instanceColor']===null?a5[k9(0x101)](0x1,0x1,0x1):a5['fromArray'](this['instanceColor']['array'],a4*0x3);}[d4(0x446)](a4,a5){return a5['fromArray'](this['instanceMatrix']['array'],a4*0x10);}['getMorphAt'](a4,a5){let a6=a5['morphTargetInfluences'],a7=this['morphTexture']['source']['data']['data'],a8=a4*(a6['length']+0x1)+0x1;for(let a9=0x0;a9<a6['length'];a9++)a6[a9]=a7[a8+a9];}['raycast'](a4,a5){const kb=d4;let a6=this['matrixWorld'],a7=this['count'];if(Bi['geometry']=this['geometry'],Bi['material']=this['material'],Bi['material']!==void 0x0&&(this['boundingSphere']===null&&this['computeBoundingSphere'](),Vi['copy'](this['boundingSphere']),Vi['applyMatrix4'](a6),a4[kb(0x7a)]['intersectsSphere'](Vi)!==!0x1))for(let a8=0x0;a8<a7;a8++){this[kb(0x446)](a8,Fi),Ii['multiplyMatrices'](a6,Fi),Bi['matrixWorld']=Ii,Bi['raycast'](a4,Li);for(let a9=0x0,ab=Li['length'];a9<ab;a9++){let af=Li[a9];af['instanceId']=a8,af['object']=this,a5['push'](af);}Li['length']=0x0;}}[d4(0x1a5)](a4,a5){return this['instanceColor']===null&&(this['instanceColor']=new Pi(new Float32Array(this['instanceMatrix']['count']*0x3)['fill'](0x1),0x3)),a5['toArray'](this['instanceColor']['array'],a4*0x3),this;}['setMatrixAt'](a4,a5){const kd=d4;return a5[kd(0x442)](this['instanceMatrix'][kd(0x15e)],a4*0x10),this;}[d4(0x405)](a4,a5){const kf=d4;let a6=a5['morphTargetInfluences'],a7=a6['length']+0x1;this['morphTexture']===null&&(this['morphTexture']=new Ai(new Float32Array(a7*this['count']),a7,this['count'],le,A));let a8=this['morphTexture']['source']['data'][kf(0x26c)],a9=0x0;for(let ag=0x0;ag<a6['length'];ag++)a9+=a6[ag];let ab=this[kf(0x120)][kf(0x99)]?0x1:0x1-a9,af=a7*a4;return a8[af]=ab,a8[kf(0x479)](a6,af+0x1),this;}['updateMorphTargets'](){}['dispose'](){const kg=d4;this['dispatchEvent']({'type':kg(0x365)}),this['morphTexture']!==null&&(this['morphTexture']['dispose'](),this[kg(0x328)]=null);}},Ui=new W(),Wi=new W(),Gi=new G(),Ki=class{constructor(a4=new W(0x1,0x0,0x0),a5=0x0){this['isPlane']=!0x0,this['normal']=a4,this['constant']=a5;}['set'](a4,a5){return this['normal']['copy'](a4),this['constant']=a5,this;}['setComponents'](a4,a5,a6,a7){return this['normal']['set'](a4,a5,a6),this['constant']=a7,this;}['setFromNormalAndCoplanarPoint'](a4,a5){const kh=d4;return this['normal']['copy'](a4),this[kh(0x35b)]=-a5['dot'](this[kh(0x264)]),this;}[d4(0x51b)](a4,a5,a6){const kj=d4;let a7=Ui['subVectors'](a6,a5)['cross'](Wi[kj(0x52f)](a4,a5))['normalize']();return this['setFromNormalAndCoplanarPoint'](a7,a4),this;}['copy'](a4){const kk=d4;return this[kk(0x264)][kk(0x32f)](a4['normal']),this['constant']=a4['constant'],this;}[d4(0x3ca)](){let a4=0x1/this['normal']['length']();return this['normal']['multiplyScalar'](a4),this['constant']*=a4,this;}[d4(0x344)](){const km=d4;return this['constant']*=-0x1,this['normal'][km(0x344)](),this;}['distanceToPoint'](a4){const kp=d4;return this[kp(0x264)]['dot'](a4)+this[kp(0x35b)];}['distanceToSphere'](a4){return this['distanceToPoint'](a4['center'])-a4['radius'];}['projectPoint'](a4,a5){const kq=d4;return a5[kq(0x32f)](a4)['addScaledVector'](this['normal'],-this['distanceToPoint'](a4));}['intersectLine'](a4,a5,a6=!0x0){const kv=d4;let a7=a4[kv(0x1c4)](Ui),a8=this['normal'][kv(0x465)](a7);if(a8===0x0)return this['distanceToPoint'](a4['start'])===0x0?a5['copy'](a4['start']):null;let a9=-(a4['start']['dot'](this['normal'])+this['constant'])/a8;return a6===!0x0&&(a9<0x0||a9>0x1)?null:a5['copy'](a4[kv(0x2f9)])['addScaledVector'](a7,a9);}[d4(0x21e)](a4){const kw=d4;let a5=this['distanceToPoint'](a4['start']),a6=this[kw(0x2f5)](a4[kw(0x4d4)]);return a5<0x0&&a6>0x0||a6<0x0&&a5>0x0;}['intersectsBox'](a4){const kx=d4;return a4[kx(0x319)](this);}['intersectsSphere'](a4){return a4['intersectsPlane'](this);}['coplanarPoint'](a4){return a4['copy'](this['normal'])['multiplyScalar'](-this['constant']);}['applyMatrix4'](a4,a5){const ky=d4;let a6=a5||Gi['getNormalMatrix'](a4),a7=this['coplanarPoint'](Ui)['applyMatrix4'](a4),a8=this[ky(0x264)]['applyMatrix3'](a6)['normalize']();return this['constant']=-a7['dot'](a8),this;}['translate'](a4){return this['constant']-=a4['dot'](this['normal']),this;}['equals'](a4){const kz=d4;return a4['normal'][kz(0x37e)](this['normal'])&&a4[kz(0x35b)]===this['constant'];}['clone'](){const kA=d4;return new this[(kA(0x27b))]()['copy'](this);}},qi=new Ir(),Ji=new U(0.5,0.5),Yi=new W(),Xi=class{constructor(a4=new Ki(),a5=new Ki(),a6=new Ki(),a7=new Ki(),a8=new Ki(),a9=new Ki()){this['planes']=[a4,a5,a6,a7,a8,a9];}['set'](a4,a5,a6,a7,a8,a9){const kB=d4;let ab=this[kB(0x47f)];return ab[0x0]['copy'](a4),ab[0x1]['copy'](a5),ab[0x2]['copy'](a6),ab[0x3]['copy'](a7),ab[0x4]['copy'](a8),ab[0x5]['copy'](a9),this;}[d4(0x32f)](a4){const kC=d4;let a5=this[kC(0x47f)];for(let a6=0x0;a6<0x6;a6++)a5[a6]['copy'](a4[kC(0x47f)][a6]);return this;}['setFromProjectionMatrix'](a4,a5=lt,a6=!0x1){const kD=d4;let a7=this['planes'],a8=a4['elements'],a9=a8[0x0],ab=a8[0x1],af=a8[0x2],ag=a8[0x3],ah=a8[0x4],aj=a8[0x5],ak=a8[0x6],am=a8[0x7],ap=a8[0x8],aq=a8[0x9],av=a8[0xa],aw=a8[0xb],ax=a8[0xc],ay=a8[0xd],az=a8[0xe],aA=a8[0xf];if(a7[0x0]['setComponents'](ag-a9,am-ah,aw-ap,aA-ax)['normalize'](),a7[0x1]['setComponents'](ag+a9,am+ah,aw+ap,aA+ax)['normalize'](),a7[0x2]['setComponents'](ag+ab,am+aj,aw+aq,aA+ay)['normalize'](),a7[0x3]['setComponents'](ag-ab,am-aj,aw-aq,aA-ay)['normalize'](),a6)a7[0x4][kD(0x56d)](af,ak,av,az)['normalize'](),a7[0x5]['setComponents'](ag-af,am-ak,aw-av,aA-az)['normalize']();else{if(a7[0x4]['setComponents'](ag-af,am-ak,aw-av,aA-az)['normalize'](),a5===0x7d0)a7[0x5]['setComponents'](ag+af,am+ak,aw+av,aA+az)['normalize']();else{if(a5===0x7d1)a7[0x5]['setComponents'](af,ak,av,az)['normalize']();else throw Error(kD(0x554)+a5);}}return this;}['intersectsObject'](a4){const kE=d4;if(a4['boundingSphere']!==void 0x0)a4['boundingSphere']===null&&a4['computeBoundingSphere'](),qi['copy'](a4[kE(0x2f0)])['applyMatrix4'](a4['matrixWorld']);else{let a5=a4['geometry'];a5['boundingSphere']===null&&a5['computeBoundingSphere'](),qi[kE(0x32f)](a5['boundingSphere'])['applyMatrix4'](a4['matrixWorld']);}return this['intersectsSphere'](qi);}['intersectsSprite'](a4){const kF=d4;return qi['center']['set'](0x0,0x0,0x0),qi[kF(0x42d)]=0.7071067811865476+Ji['distanceTo'](a4[kF(0x230)]),qi['applyMatrix4'](a4['matrixWorld']),this['intersectsSphere'](qi);}[d4(0xc6)](a4){let a5=this['planes'],a6=a4['center'],a7=-a4['radius'];for(let a8=0x0;a8<0x6;a8++)if(a5[a8]['distanceToPoint'](a6)<a7)return!0x1;return!0x0;}['intersectsBox'](a4){const kG=d4;let a5=this[kG(0x47f)];for(let a6=0x0;a6<0x6;a6++){let a7=a5[a6];if(Yi['x']=a7['normal']['x']>0x0?a4['max']['x']:a4['min']['x'],Yi['y']=a7['normal']['y']>0x0?a4['max']['y']:a4['min']['y'],Yi['z']=a7['normal']['z']>0x0?a4['max']['z']:a4['min']['z'],a7['distanceToPoint'](Yi)<0x0)return!0x1;}return!0x0;}['containsPoint'](a4){const kH=d4;let a5=this[kH(0x47f)];for(let a6=0x0;a6<0x6;a6++)if(a5[a6]['distanceToPoint'](a4)<0x0)return!0x1;return!0x0;}['clone'](){const kI=d4;return new this[(kI(0x27b))]()['copy'](this);}},Zi=class extends Yr{constructor(a4){const kJ=d4;super(),this['isLineBasicMaterial']=!0x0,this['type']='LineBasicMaterial',this[kJ(0x379)]=new Y(0xffffff),this['map']=null,this['linewidth']=0x1,this['linecap']='round',this['linejoin']='round',this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const kK=d4;return super[kK(0x32f)](a4),this['color'][kK(0x32f)](a4['color']),this[kK(0x146)]=a4[kK(0x146)],this['linewidth']=a4['linewidth'],this['linecap']=a4['linecap'],this['linejoin']=a4[kK(0x4e5)],this['fog']=a4['fog'],this;}},Qi=new W(),$i=new W(),ea=new J(),ta=new ri(),na=new Ir(),ra=new W(),ia=new W(),aa=class extends Vn{constructor(a4=new Wr(),a5=new Zi()){const kL=d4;super(),this['isLine']=!0x0,this['type']='Line',this[kL(0x120)]=a4,this['material']=a5,this['morphTargetDictionary']=void 0x0,this['morphTargetInfluences']=void 0x0,this['updateMorphTargets']();}['copy'](a4,a5){const kM=d4;return super['copy'](a4,a5),this['material']=Array['isArray'](a4['material'])?a4[kM(0xd7)][kM(0xfd)]():a4['material'],this['geometry']=a4['geometry'],this;}[d4(0x10b)](){let a4=this['geometry'];if(a4['index']===null){let a5=a4['attributes']['position'],a6=[0x0];for(let a7=0x1,a8=a5['count'];a7<a8;a7++)Qi['fromBufferAttribute'](a5,a7-0x1),$i['fromBufferAttribute'](a5,a7),a6[a7]=a6[a7-0x1],a6[a7]+=Qi['distanceTo']($i);a4['setAttribute']('lineDistance',new X(a6,0x1));}else z('Line.computeLineDistances():\x20Computation\x20only\x20possible\x20with\x20non-indexed\x20BufferGeometry.');return this;}['raycast'](a4,a5){const kN=d4;let a6=this['geometry'],a7=this['matrixWorld'],a8=a4[kN(0x400)]['Line']['threshold'],a9=a6['drawRange'];if(a6['boundingSphere']===null&&a6['computeBoundingSphere'](),na['copy'](a6['boundingSphere']),na['applyMatrix4'](a7),na['radius']+=a8,a4['ray']['intersectsSphere'](na)===!0x1)return;ea['copy'](a7)['invert'](),ta[kN(0x32f)](a4['ray'])['applyMatrix4'](ea);let ab=a8/((this['scale']['x']+this['scale']['y']+this['scale']['z'])/0x3),af=ab*ab,ag=this['isLineSegments']?0x2:0x1,ah=a6['index'],aj=a6['attributes'][kN(0x478)];if(ah!==null){let ak=Math['max'](0x0,a9['start']),am=Math['min'](ah[kN(0x58d)],a9['start']+a9['count']);for(let ap=ak,aq=am-0x1;ap<aq;ap+=ag){let av=ah['getX'](ap),aw=ah['getX'](ap+0x1),ax=oa(this,a4,ta,af,av,aw,ap);ax&&a5['push'](ax);}if(this['isLineLoop']){let ay=ah['getX'](am-0x1),az=ah['getX'](ak),aA=oa(this,a4,ta,af,ay,az,am-0x1);aA&&a5[kN(0x403)](aA);}}else{let aB=Math['max'](0x0,a9['start']),aC=Math['min'](aj['count'],a9['start']+a9['count']);for(let aD=aB,aE=aC-0x1;aD<aE;aD+=ag){let aF=oa(this,a4,ta,af,aD,aD+0x1,aD);aF&&a5['push'](aF);}if(this['isLineLoop']){let aG=oa(this,a4,ta,af,aC-0x1,aB,aC-0x1);aG&&a5['push'](aG);}}}[d4(0x45d)](){const kO=d4;let a4=this[kO(0x120)]['morphAttributes'],a5=Object['keys'](a4);if(a5['length']>0x0){let a6=a4[a5[0x0]];if(a6!==void 0x0){this['morphTargetInfluences']=[],this[kO(0x545)]={};for(let a7=0x0,a8=a6[kO(0x27a)];a7<a8;a7++){let a9=a6[a7]['name']||String(a7);this['morphTargetInfluences']['push'](0x0),this['morphTargetDictionary'][a9]=a7;}}}}};function oa(a4,a5,a6,a7,a8,a9,ab){const kP=d4;let af=a4['geometry']['attributes']['position'];if(Qi[kP(0x2bb)](af,a8),$i['fromBufferAttribute'](af,a9),a6['distanceSqToSegment'](Qi,$i,ra,ia)>a7)return;ra['applyMatrix4'](a4['matrixWorld']);let ag=a5['ray']['origin']['distanceTo'](ra);if(!(ag<a5['near']||ag>a5[kP(0x512)]))return{'distance':ag,'point':ia['clone']()['applyMatrix4'](a4['matrixWorld']),'index':ab,'face':null,'faceIndex':null,'barycoord':null,'object':a4};}var sa=new W(),ca=new W(),la=class extends aa{constructor(a4,a5){const kQ=d4;super(a4,a5),this['isLineSegments']=!0x0,this['type']=kQ(0x33e);}['computeLineDistances'](){const kR=d4;let a4=this[kR(0x120)];if(a4['index']===null){let a5=a4['attributes']['position'],a6=[];for(let a7=0x0,a8=a5['count'];a7<a8;a7+=0x2)sa[kR(0x2bb)](a5,a7),ca['fromBufferAttribute'](a5,a7+0x1),a6[a7]=a7===0x0?0x0:a6[a7-0x1],a6[a7+0x1]=a6[a7]+sa['distanceTo'](ca);a4['setAttribute'](kR(0x532),new X(a6,0x1));}else z(kR(0x2f2));return this;}},ua=class extends aa{constructor(a4,a5){const kS=d4;super(a4,a5),this['isLineLoop']=!0x0,this[kS(0x40b)]=kS(0x27d);}},da=class extends Yr{constructor(a4){super(),this['isPointsMaterial']=!0x0,this['type']='PointsMaterial',this['color']=new Y(0xffffff),this['map']=null,this['alphaMap']=null,this['size']=0x1,this['sizeAttenuation']=!0x0,this['fog']=!0x0,this['setValues'](a4);}[d4(0x32f)](a4){const kT=d4;return super['copy'](a4),this['color']['copy'](a4['color']),this[kT(0x146)]=a4[kT(0x146)],this['alphaMap']=a4['alphaMap'],this['size']=a4[kT(0x19f)],this['sizeAttenuation']=a4['sizeAttenuation'],this['fog']=a4['fog'],this;}},fa=new J(),pa=new ri(),ma=new Ir(),ha=new W(),ga=class extends Vn{constructor(a4=new Wr(),a5=new da()){const kU=d4;super(),this[kU(0x4fd)]=!0x0,this['type']='Points',this['geometry']=a4,this['material']=a5,this[kU(0x545)]=void 0x0,this[kU(0x197)]=void 0x0,this['updateMorphTargets']();}['copy'](a4,a5){const kV=d4;return super['copy'](a4,a5),this['material']=Array['isArray'](a4[kV(0xd7)])?a4['material']['slice']():a4['material'],this['geometry']=a4[kV(0x120)],this;}['raycast'](a4,a5){const kW=d4;let a6=this['geometry'],a7=this['matrixWorld'],a8=a4['params']['Points']['threshold'],a9=a6['drawRange'];if(a6['boundingSphere']===null&&a6['computeBoundingSphere'](),ma['copy'](a6['boundingSphere']),ma['applyMatrix4'](a7),ma['radius']+=a8,a4['ray']['intersectsSphere'](ma)===!0x1)return;fa['copy'](a7)['invert'](),pa['copy'](a4[kW(0x7a)])[kW(0x510)](fa);let ab=a8/((this['scale']['x']+this['scale']['y']+this['scale']['z'])/0x3),af=ab*ab,ag=a6['index'],ah=a6['attributes']['position'];if(ag!==null){let aj=Math['max'](0x0,a9['start']),ak=Math['min'](ag['count'],a9['start']+a9['count']);for(let am=aj,ap=ak;am<ap;am++){let aq=ag['getX'](am);ha['fromBufferAttribute'](ah,aq),_a(ha,aq,af,a7,a4,a5,this);}}else{let av=Math['max'](0x0,a9['start']),aw=Math[kW(0xbb)](ah['count'],a9['start']+a9['count']);for(let ax=av,ay=aw;ax<ay;ax++)ha[kW(0x2bb)](ah,ax),_a(ha,ax,af,a7,a4,a5,this);}}[d4(0x45d)](){const kX=d4;let a4=this['geometry']['morphAttributes'],a5=Object[kX(0x310)](a4);if(a5['length']>0x0){let a6=a4[a5[0x0]];if(a6!==void 0x0){this[kX(0x197)]=[],this[kX(0x545)]={};for(let a7=0x0,a8=a6['length'];a7<a8;a7++){let a9=a6[a7]['name']||String(a7);this['morphTargetInfluences']['push'](0x0),this['morphTargetDictionary'][a9]=a7;}}}}};function _a(a4,a5,a6,a7,a8,a9,ab){const kY=d4;let af=pa['distanceSqToPoint'](a4);if(af<a6){let ag=new W();pa['closestPointToPoint'](a4,ag),ag['applyMatrix4'](a7);let ah=a8[kY(0x7a)]['origin'][kY(0xe2)](ag);if(ah<a8[kY(0x56b)]||ah>a8['far'])return;a9['push']({'distance':ah,'distanceToRay':Math['sqrt'](af),'point':ag,'index':a5,'face':null,'faceIndex':null,'barycoord':null,'object':ab});}}var va=class extends un{constructor(a4=[],a5=0x12d,a6,a7,a8,a9,ab,af,ag,ah){super(a4,a5,a6,a7,a8,a9,ab,af,ag,ah),this['isCubeTexture']=!0x0,this['flipY']=!0x1;}get['images'](){const kZ=d4;return this[kZ(0x251)];}set['images'](a4){this['image']=a4;}},ya=class extends un{constructor(a4,a5,a6=k,a7,a8,a9,ab=y,af=y,ag,ah=se,aj=0x1){const l0=d4;if(ah!==0x402&&ah!==0x403)throw Error('DepthTexture\x20format\x20must\x20be\x20either\x20THREE.DepthFormat\x20or\x20THREE.DepthStencilFormat');super({'width':a4,'height':a5,'depth':aj},a7,a8,a9,ab,af,ah,a6,ag),this[l0(0x42e)]=!0x0,this['flipY']=!0x1,this['generateMipmaps']=!0x1,this['compareFunction']=null;}['copy'](a4){const l1=d4;return super[l1(0x32f)](a4),this[l1(0xb8)]=new on(Object['assign']({},a4['image'])),this['compareFunction']=a4['compareFunction'],this;}['toJSON'](a4){const l2=d4;let a5=super['toJSON'](a4);return this['compareFunction']!==null&&(a5[l2(0x1dc)]=this['compareFunction']),a5;}},ba=class extends ya{constructor(a4,a5=k,a6=0x12d,a7,a8,a9=y,ab=y,af,ag=se){const l3=d4;let ah={'width':a4,'height':a4,'depth':0x1},aj=[ah,ah,ah,ah,ah,ah];super(a4,a4,a5,a6,a7,a8,a9,ab,af,ag),this[l3(0x251)]=aj,this['isCubeDepthTexture']=!0x0,this[l3(0x476)]=!0x0;}get['images'](){return this['image'];}set['images'](a4){this['image']=a4;}},xa=class extends un{constructor(a4=null){super(),this['sourceTexture']=a4,this['isExternalTexture']=!0x0;}['copy'](a4){return super['copy'](a4),this['sourceTexture']=a4['sourceTexture'],this;}},Sa=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x1,a7=0x1,a8=0x1,a9=0x1){const l4=d4;super(),this['type']='BoxGeometry',this['parameters']={'width':a4,'height':a5,'depth':a6,'widthSegments':a7,'heightSegments':a8,'depthSegments':a9};let ab=this;a7=Math['floor'](a7),a8=Math['floor'](a8),a9=Math['floor'](a9);let af=[],ag=[],ah=[],aj=[],ak=0x0,am=0x0;ap('z','y','x',-0x1,-0x1,a6,a5,a4,a9,a8,0x0),ap('z','y','x',0x1,-0x1,a6,a5,-a4,a9,a8,0x1),ap('x','z','y',0x1,0x1,a4,a6,a5,a7,a9,0x2),ap('x','z','y',0x1,-0x1,a4,a6,-a5,a7,a9,0x3),ap('x','y','z',0x1,-0x1,a4,a5,a6,a7,a8,0x4),ap('x','y','z',-0x1,-0x1,a4,a5,-a6,a7,a8,0x5),this[l4(0x4f2)](af),this['setAttribute'](l4(0x478),new X(ag,0x3)),this['setAttribute'](l4(0x264),new X(ah,0x3)),this['setAttribute']('uv',new X(aj,0x2));function ap(aq,av,aw,ax,ay,az,aA,aB,aC,aD,aE){const l5=l4;let aF=az/aC,aG=aA/aD,aH=az/0x2,aI=aA/0x2,aJ=aB/0x2,aK=aC+0x1,aL=aD+0x1,aM=0x0,aN=0x0,aO=new W();for(let aP=0x0;aP<aL;aP++){let aQ=aP*aG-aI;for(let aR=0x0;aR<aK;aR++)aO[aq]=(aR*aF-aH)*ax,aO[av]=aQ*ay,aO[aw]=aJ,ag['push'](aO['x'],aO['y'],aO['z']),aO[aq]=0x0,aO[av]=0x0,aO[aw]=aB>0x0?0x1:-0x1,ah[l5(0x403)](aO['x'],aO['y'],aO['z']),aj[l5(0x403)](aR/aC),aj[l5(0x403)](0x1-aP/aD),aM+=0x1;}for(let aS=0x0;aS<aD;aS++)for(let aT=0x0;aT<aC;aT++){let aU=ak+aT+aK*aS,aV=ak+aT+aK*(aS+0x1),aW=ak+(aT+0x1)+aK*(aS+0x1),aX=ak+(aT+0x1)+aK*aS;af['push'](aU,aV,aX),af['push'](aV,aW,aX),aN+=0x6;}ab[l5(0x3ba)](am,aN,aE),am+=aN,ak+=aM;}}['copy'](a4){return super['copy'](a4),this['parameters']=Object['assign']({},a4['parameters']),this;}static['fromJSON'](a4){const l6=d4;return new e(a4[l6(0x426)],a4['height'],a4['depth'],a4['widthSegments'],a4['heightSegments'],a4[l6(0x47b)]);}},Ca=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x4,a7=0x8,a8=0x1){const l7=d4;super(),this[l7(0x40b)]='CapsuleGeometry',this['parameters']={'radius':a4,'height':a5,'capSegments':a6,'radialSegments':a7,'heightSegments':a8},a5=Math['max'](0x0,a5),a6=Math['max'](0x1,Math['floor'](a6)),a7=Math['max'](0x3,Math['floor'](a7)),a8=Math['max'](0x1,Math[l7(0x4ec)](a8));let a9=[],ab=[],af=[],ag=[],ah=a5/0x2,aj=Math['PI']/0x2*a4,ak=a5,am=0x2*aj+ak,ap=a6*0x2+a8,aq=a7+0x1,av=new W(),aw=new W();for(let ax=0x0;ax<=ap;ax++){let ay=0x0,az=0x0,aA=0x0,aB=0x0;if(ax<=a6){let aE=ax/a6,aF=aE*Math['PI']/0x2;az=-ah-a4*Math[l7(0x4ea)](aF),aA=a4*Math['sin'](aF),aB=-a4*Math['cos'](aF),ay=aE*aj;}else{if(ax<=a6+a8){let aG=(ax-a6)/a8;az=-ah+aG*a5,aA=a4,aB=0x0,ay=aj+aG*ak;}else{let aH=(ax-a6-a8)/a6,aI=aH*Math['PI']/0x2;az=ah+a4*Math['sin'](aI),aA=a4*Math[l7(0x4ea)](aI),aB=a4*Math['sin'](aI),ay=aj+ak+aH*aj;}}let aC=Math['max'](0x0,Math['min'](0x1,ay/am)),aD=0x0;ax===0x0?aD=0.5/a7:ax===ap&&(aD=-0.5/a7);for(let aJ=0x0;aJ<=a7;aJ++){let aK=aJ/a7,aL=aK*Math['PI']*0x2,aM=Math['sin'](aL),aN=Math[l7(0x4ea)](aL);aw['x']=-aA*aN,aw['y']=az,aw['z']=aA*aM,ab['push'](aw['x'],aw['y'],aw['z']),av['set'](-aA*aN,aB,aA*aM),av['normalize'](),af['push'](av['x'],av['y'],av['z']),ag['push'](aK+aD,aC);}if(ax>0x0){let aO=(ax-0x1)*aq;for(let aP=0x0;aP<a7;aP++){let aQ=aO+aP,aR=aO+aP+0x1,aS=ax*aq+aP,aT=ax*aq+aP+0x1;a9[l7(0x403)](aQ,aR,aS),a9[l7(0x403)](aR,aT,aS);}}}this['setIndex'](a9),this['setAttribute']('position',new X(ab,0x3)),this['setAttribute']('normal',new X(af,0x3)),this['setAttribute']('uv',new X(ag,0x2));}['copy'](a4){return super['copy'](a4),this['parameters']=Object['assign']({},a4['parameters']),this;}static['fromJSON'](a4){const l8=d4;return new e(a4['radius'],a4['height'],a4['capSegments'],a4['radialSegments'],a4[l8(0x183)]);}},wa=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x1,a7=0x20,a8=0x1,a9=!0x1,ab=0x0,af=Math['PI']*0x2){super(),this['type']='CylinderGeometry',this['parameters']={'radiusTop':a4,'radiusBottom':a5,'height':a6,'radialSegments':a7,'heightSegments':a8,'openEnded':a9,'thetaStart':ab,'thetaLength':af};let ag=this;a7=Math['floor'](a7),a8=Math['floor'](a8);let ah=[],aj=[],ak=[],am=[],ap=0x0,aq=[],av=a6/0x2,aw=0x0;ax(),a9===!0x1&&(a4>0x0&&ay(!0x0),a5>0x0&&ay(!0x1)),this['setIndex'](ah),this['setAttribute']('position',new X(aj,0x3)),this['setAttribute']('normal',new X(ak,0x3)),this['setAttribute']('uv',new X(am,0x2));function ax(){const l9=a1;let az=new W(),aA=new W(),aB=0x0,aC=(a5-a4)/a6;for(let aD=0x0;aD<=a8;aD++){let aE=[],aF=aD/a8,aG=aF*(a5-a4)+a4;for(let aH=0x0;aH<=a7;aH++){let aI=aH/a7,aJ=aI*af+ab,aK=Math['sin'](aJ),aL=Math[l9(0x4ea)](aJ);aA['x']=aG*aK,aA['y']=-aF*a6+av,aA['z']=aG*aL,aj['push'](aA['x'],aA['y'],aA['z']),az[l9(0x479)](aK,aC,aL)['normalize'](),ak['push'](az['x'],az['y'],az['z']),am['push'](aI,0x1-aF),aE['push'](ap++);}aq['push'](aE);}for(let aM=0x0;aM<a7;aM++)for(let aN=0x0;aN<a8;aN++){let aO=aq[aN][aM],aP=aq[aN+0x1][aM],aQ=aq[aN+0x1][aM+0x1],aR=aq[aN][aM+0x1];(a4>0x0||aN!==0x0)&&(ah['push'](aO,aP,aR),aB+=0x3),(a5>0x0||aN!==a8-0x1)&&(ah['push'](aP,aQ,aR),aB+=0x3);}ag[l9(0x3ba)](aw,aB,0x0),aw+=aB;}function ay(az){const lb=a1;let aA=ap,aB=new U(),aC=new W(),aD=0x0,aE=az===!0x0?a4:a5,aF=az===!0x0?0x1:-0x1;for(let aH=0x1;aH<=a7;aH++)aj['push'](0x0,av*aF,0x0),ak['push'](0x0,aF,0x0),am['push'](0.5,0.5),ap++;let aG=ap;for(let aI=0x0;aI<=a7;aI++){let aJ=aI/a7*af+ab,aK=Math['cos'](aJ),aL=Math['sin'](aJ);aC['x']=aE*aL,aC['y']=av*aF,aC['z']=aE*aK,aj[lb(0x403)](aC['x'],aC['y'],aC['z']),ak['push'](0x0,aF,0x0),aB['x']=aK*0.5+0.5,aB['y']=aL*0.5*aF+0.5,am['push'](aB['x'],aB['y']),ap++;}for(let aM=0x0;aM<a7;aM++){let aN=aA+aM,aO=aG+aM;az===!0x0?ah['push'](aO,aO+0x1,aN):ah[lb(0x403)](aO+0x1,aO,aN),aD+=0x3;}ag['addGroup'](aw,aD,az===!0x0?0x1:0x2),aw+=aD;}}[d4(0x32f)](a4){const lf=d4;return super[lf(0x32f)](a4),this[lf(0x27e)]=Object['assign']({},a4['parameters']),this;}static['fromJSON'](a4){const lg=d4;return new e(a4['radiusTop'],a4['radiusBottom'],a4['height'],a4['radialSegments'],a4['heightSegments'],a4[lg(0x107)],a4['thetaStart'],a4['thetaLength']);}},Ta=class e extends wa{constructor(a4=0x1,a5=0x1,a6=0x20,a7=0x1,a8=!0x1,a9=0x0,ab=Math['PI']*0x2){const lh=d4;super(0x0,a4,a5,a6,a7,a8,a9,ab),this[lh(0x40b)]='ConeGeometry',this['parameters']={'radius':a4,'height':a5,'radialSegments':a6,'heightSegments':a7,'openEnded':a8,'thetaStart':a9,'thetaLength':ab};}static[d4(0x4d3)](a4){const lj=d4;return new e(a4['radius'],a4['height'],a4['radialSegments'],a4['heightSegments'],a4[lj(0x107)],a4[lj(0x18a)],a4['thetaLength']);}},Ea=class{constructor(){const lk=d4;this['type']=lk(0x2a7),this['arcLengthDivisions']=0xc8,this['needsUpdate']=!0x1,this['cacheArcLengths']=null;}[d4(0x367)](){const lm=d4;z(lm(0x514));}['getPointAt'](a4,a5){const lp=d4;let a6=this[lp(0x435)](a4);return this['getPoint'](a6,a5);}['getPoints'](a4=0x5){let a5=[];for(let a6=0x0;a6<=a4;a6++)a5['push'](this['getPoint'](a6/a4));return a5;}[d4(0x3a9)](a4=0x5){let a5=[];for(let a6=0x0;a6<=a4;a6++)a5['push'](this['getPointAt'](a6/a4));return a5;}['getLength'](){let a4=this['getLengths']();return a4[a4['length']-0x1];}['getLengths'](a4=this['arcLengthDivisions']){const lq=d4;if(this['cacheArcLengths']&&this['cacheArcLengths']['length']===a4+0x1&&!this['needsUpdate'])return this['cacheArcLengths'];this[lq(0x3f1)]=!0x1;let a5=[],a6,a7=this['getPoint'](0x0),a8=0x0;a5['push'](0x0);for(let a9=0x1;a9<=a4;a9++)a6=this[lq(0x367)](a9/a4),a8+=a6['distanceTo'](a7),a5[lq(0x403)](a8),a7=a6;return this['cacheArcLengths']=a5,a5;}['updateArcLengths'](){const lv=d4;this[lv(0x3f1)]=!0x0,this['getLengths']();}[d4(0x435)](a4,a5=null){const lw=d4;let a6=this[lw(0x1bc)](),a7=0x0,a8=a6['length'],a9;a9=a5||a4*a6[a8-0x1];let ab=0x0,af=a8-0x1,ag;for(;ab<=af;)if(a7=Math['floor'](ab+(af-ab)/0x2),ag=a6[a7]-a9,ag<0x0)ab=a7+0x1;else{if(ag>0x0)af=a7-0x1;else{af=a7;break;}}if(a7=af,a6[a7]===a9)return a7/(a8-0x1);let ah=a6[a7],aj=a6[a7+0x1]-ah,ak=(a9-ah)/aj;return(a7+ak)/(a8-0x1);}['getTangent'](a4,a5){const lx=d4;let a6=0.0001,a7=a4-a6,a8=a4+a6;a7<0x0&&(a7=0x0),a8>0x1&&(a8=0x1);let a9=this['getPoint'](a7),ab=this[lx(0x367)](a8),af=a5||(a9['isVector2']?new U():new W());return af['copy'](ab)[lx(0x2b7)](a9)['normalize'](),af;}[d4(0x509)](a4,a5){const ly=d4;let a6=this[ly(0x435)](a4);return this['getTangent'](a6,a5);}['computeFrenetFrames'](a4,a5=!0x1){const lz=d4;let a6=new W(),a7=[],a8=[],a9=[],ab=new W(),af=new J();for(let am=0x0;am<=a4;am++){let ap=am/a4;a7[am]=this['getTangentAt'](ap,new W());}a8[0x0]=new W(),a9[0x0]=new W();let ag=Number['MAX_VALUE'],ah=Math['abs'](a7[0x0]['x']),aj=Math['abs'](a7[0x0]['y']),ak=Math['abs'](a7[0x0]['z']);ah<=ag&&(ag=ah,a6['set'](0x1,0x0,0x0)),aj<=ag&&(ag=aj,a6['set'](0x0,0x1,0x0)),ak<=ag&&a6['set'](0x0,0x0,0x1),ab['crossVectors'](a7[0x0],a6)['normalize'](),a8[0x0]['crossVectors'](a7[0x0],ab),a9[0x0]['crossVectors'](a7[0x0],a8[0x0]);for(let aq=0x1;aq<=a4;aq++){if(a8[aq]=a8[aq-0x1]['clone'](),a9[aq]=a9[aq-0x1]['clone'](),ab['crossVectors'](a7[aq-0x1],a7[aq]),ab['length']()>Number['EPSILON']){ab['normalize']();let av=Math['acos'](V(a7[aq-0x1]['dot'](a7[aq]),-0x1,0x1));a8[aq]['applyMatrix4'](af['makeRotationAxis'](ab,av));}a9[aq]['crossVectors'](a7[aq],a8[aq]);}if(a5===!0x0){let aw=Math['acos'](V(a8[0x0]['dot'](a8[a4]),-0x1,0x1));aw/=a4,a7[0x0]['dot'](ab[lz(0x122)](a8[0x0],a8[a4]))>0x0&&(aw=-aw);for(let ax=0x1;ax<=a4;ax++)a8[ax]['applyMatrix4'](af['makeRotationAxis'](a7[ax],aw*ax)),a9[ax]['crossVectors'](a7[ax],a8[ax]);}return{'tangents':a7,'normals':a8,'binormals':a9};}['clone'](){return new this['constructor']()['copy'](this);}['copy'](a4){const lA=d4;return this['arcLengthDivisions']=a4[lA(0xf2)],this;}[d4(0x599)](){const lB=d4;let a4={'metadata':{'version':4.7,'type':'Curve','generator':lB(0x91)}};return a4[lB(0xf2)]=this[lB(0xf2)],a4[lB(0x40b)]=this['type'],a4;}['fromJSON'](a4){return this['arcLengthDivisions']=a4['arcLengthDivisions'],this;}};function Da(a4,a5,a6=0x2){const lC=d4;let a7=a5&&a5['length'],a8=a7?a5[0x0]*a6:a4['length'],a9=Oa(a4,0x0,a8,a6,!0x0),ab=[];if(!a9||a9['next']===a9['prev'])return ab;let af,ag,ah;if(a7&&(a9=Fa(a4,a5,a9,a6)),a4[lC(0x27a)]>0x50*a6){af=a4[0x0],ag=a4[0x1];let aj=af,ak=ag;for(let am=a6;am<a8;am+=a6){let ap=a4[am],aq=a4[am+0x1];ap<af&&(af=ap),aq<ag&&(ag=aq),ap>aj&&(aj=ap),aq>ak&&(ak=aq);}ah=Math['max'](aj-af,ak-ag),ah=ah===0x0?0x0:0x7fff/ah;}return Aa(a9,ab,a6,af,ag,ah,0x0),ab;}function Oa(a4,a5,a6,a7,a8){let a9;if(a8===ao(a4,a5,a6,a7)>0x0){for(let ab=a5;ab<a6;ab+=a7)a9=no(ab/a7|0x0,a4[ab],a4[ab+0x1],a9);}else{for(let af=a6-a7;af>=a5;af-=a7)a9=no(af/a7|0x0,a4[af],a4[af+0x1],a9);}return a9&&Ja(a9,a9['next'])&&(ro(a9),a9=a9['next']),a9;}function ka(a4,a5){const lD=d4;if(!a4)return a4;a5||(a5=a4);let a6=a4,a7;do if(a7=!0x1,!a6[lD(0x3cc)]&&(Ja(a6,a6['next'])||qa(a6['prev'],a6,a6[lD(0x180)])===0x0)){if(ro(a6),a6=a5=a6[lD(0x45c)],a6===a6['next'])break;a7=!0x0;}else a6=a6[lD(0x180)];while(a7||a6!==a5);return a5;}function Aa(a4,a5,a6,a7,a8,a9,ab){const lE=d4;if(!a4)return;!ab&&a9&&Ba(a4,a7,a8,a9);let af=a4;for(;a4['prev']!==a4['next'];){let ag=a4['prev'],ah=a4['next'];if(a9?Ma(a4,a7,a8,a9):ja(a4)){a5[lE(0x403)](ag['i'],a4['i'],ah['i']),ro(a4),a4=ah['next'],af=ah[lE(0x180)];continue;}if(a4=ah,a4===af){ab?ab===0x1?(a4=Na(ka(a4),a5),Aa(a4,a5,a6,a7,a8,a9,0x2)):ab===0x2&&Pa(a4,a5,a6,a7,a8,a9):Aa(ka(a4),a5,a6,a7,a8,a9,0x1);break;}}}function ja(a4){const lF=d4;let a5=a4['prev'],a6=a4,a7=a4[lF(0x180)];if(qa(a5,a6,a7)>=0x0)return!0x1;let a8=a5['x'],a9=a6['x'],ab=a7['x'],af=a5['y'],ag=a6['y'],ah=a7['y'],aj=Math['min'](a8,a9,ab),ak=Math['min'](af,ag,ah),am=Math['max'](a8,a9,ab),ap=Math[lF(0x360)](af,ag,ah),aq=a7['next'];for(;aq!==a5;){if(aq['x']>=aj&&aq['x']<=am&&aq['y']>=ak&&aq['y']<=ap&&Ga(a8,af,a9,ag,ab,ah,aq['x'],aq['y'])&&qa(aq['prev'],aq,aq['next'])>=0x0)return!0x1;aq=aq['next'];}return!0x0;}function Ma(a4,a5,a6,a7){const lG=d4;let a8=a4['prev'],a9=a4,ab=a4['next'];if(qa(a8,a9,ab)>=0x0)return!0x1;let af=a8['x'],ag=a9['x'],ah=ab['x'],aj=a8['y'],ak=a9['y'],am=ab['y'],ap=Math['min'](af,ag,ah),aq=Math['min'](aj,ak,am),av=Math['max'](af,ag,ah),aw=Math['max'](aj,ak,am),ax=Ha(ap,aq,a5,a6,a7),ay=Ha(av,aw,a5,a6,a7),az=a4['prevZ'],aA=a4['nextZ'];for(;az&&az['z']>=ax&&aA&&aA['z']<=ay;){if(az['x']>=ap&&az['x']<=av&&az['y']>=aq&&az['y']<=aw&&az!==a8&&az!==ab&&Ga(af,aj,ag,ak,ah,am,az['x'],az['y'])&&qa(az['prev'],az,az['next'])>=0x0||(az=az['prevZ'],aA['x']>=ap&&aA['x']<=av&&aA['y']>=aq&&aA['y']<=aw&&aA!==a8&&aA!==ab&&Ga(af,aj,ag,ak,ah,am,aA['x'],aA['y'])&&qa(aA['prev'],aA,aA['next'])>=0x0))return!0x1;aA=aA['nextZ'];}for(;az&&az['z']>=ax;){if(az['x']>=ap&&az['x']<=av&&az['y']>=aq&&az['y']<=aw&&az!==a8&&az!==ab&&Ga(af,aj,ag,ak,ah,am,az['x'],az['y'])&&qa(az[lG(0x45c)],az,az['next'])>=0x0)return!0x1;az=az['prevZ'];}for(;aA&&aA['z']<=ay;){if(aA['x']>=ap&&aA['x']<=av&&aA['y']>=aq&&aA['y']<=aw&&aA!==a8&&aA!==ab&&Ga(af,aj,ag,ak,ah,am,aA['x'],aA['y'])&&qa(aA[lG(0x45c)],aA,aA['next'])>=0x0)return!0x1;aA=aA[lG(0x38b)];}return!0x0;}function Na(a4,a5){let a6=a4;do{let a7=a6['prev'],a8=a6['next']['next'];!Ja(a7,a8)&&Ya(a7,a6,a6['next'],a8)&&$a(a7,a8)&&$a(a8,a7)&&(a5['push'](a7['i'],a6['i'],a8['i']),ro(a6),ro(a6['next']),a6=a4=a8),a6=a6['next'];}while(a6!==a4);return ka(a6);}function Pa(a4,a5,a6,a7,a8,a9){const lH=d4;let ab=a4;do{let af=ab['next']['next'];for(;af!==ab['prev'];){if(ab['i']!==af['i']&&Ka(ab,af)){let ag=to(ab,af);ab=ka(ab,ab['next']),ag=ka(ag,ag['next']),Aa(ab,a5,a6,a7,a8,a9,0x0),Aa(ag,a5,a6,a7,a8,a9,0x0);return;}af=af[lH(0x180)];}ab=ab['next'];}while(ab!==a4);}function Fa(a4,a5,a6,a7){const lI=d4;let a8=[];for(let a9=0x0,ab=a5['length'];a9<ab;a9++){let af=Oa(a4,a5[a9]*a7,a9<ab-0x1?a5[a9+0x1]*a7:a4['length'],a7,!0x1);af===af[lI(0x180)]&&(af['steiner']=!0x0),a8['push'](Ua(af));}a8[lI(0x543)](Ia);for(let ag=0x0;ag<a8['length'];ag++)a6=La(a8[ag],a6);return a6;}function Ia(a4,a5){const lJ=d4;let a6=a4['x']-a5['x'];return a6===0x0&&(a6=a4['y']-a5['y'],a6===0x0&&(a6=(a4[lJ(0x180)]['y']-a4['y'])/(a4['next']['x']-a4['x'])-(a5['next']['y']-a5['y'])/(a5['next']['x']-a5['x']))),a6;}function La(a4,a5){let a6=Ra(a4,a5);if(!a6)return a5;let a7=to(a6,a4);return ka(a7,a7['next']),ka(a6,a6['next']);}function Ra(a4,a5){const lK=d4;let a6=a5,a7=a4['x'],a8=a4['y'],a9=-Infinity,ab;if(Ja(a4,a6))return a6;do{if(Ja(a4,a6[lK(0x180)]))return a6['next'];if(a8<=a6['y']&&a8>=a6['next']['y']&&a6[lK(0x180)]['y']!==a6['y']){let ak=a6['x']+(a8-a6['y'])*(a6[lK(0x180)]['x']-a6['x'])/(a6['next']['y']-a6['y']);if(ak<=a7&&ak>a9&&(a9=ak,ab=a6['x']<a6[lK(0x180)]['x']?a6:a6['next'],ak===a7))return ab;}a6=a6['next'];}while(a6!==a5);if(!ab)return null;let af=ab,ag=ab['x'],ah=ab['y'],aj=Infinity;a6=ab;do{if(a7>=a6['x']&&a6['x']>=ag&&a7!==a6['x']&&Wa(a8<ah?a7:a9,a8,ag,ah,a8<ah?a9:a7,a8,a6['x'],a6['y'])){let am=Math['abs'](a8-a6['y'])/(a7-a6['x']);$a(a6,a4)&&(am<aj||am===aj&&(a6['x']>ab['x']||a6['x']===ab['x']&&za(ab,a6)))&&(ab=a6,aj=am);}a6=a6['next'];}while(a6!==af);return ab;}function za(a4,a5){const lL=d4;return qa(a4['prev'],a4,a5['prev'])<0x0&&qa(a5[lL(0x180)],a4,a4['next'])<0x0;}function Ba(a4,a5,a6,a7){let a8=a4;do a8['z']===0x0&&(a8['z']=Ha(a8['x'],a8['y'],a5,a6,a7)),a8['prevZ']=a8['prev'],a8['nextZ']=a8['next'],a8=a8['next'];while(a8!==a4);a8['prevZ']['nextZ']=null,a8['prevZ']=null,Va(a8);}function Va(a4){const lM=d4;let a5,a6=0x1;do{let a7=a4,a8;a4=null;let a9=null;for(a5=0x0;a7;){a5++;let ab=a7,af=0x0;for(let ah=0x0;ah<a6&&(af++,ab=ab['nextZ'],ab);ah++);let ag=a6;for(;af>0x0||ag>0x0&&ab;)af!==0x0&&(ag===0x0||!ab||a7['z']<=ab['z'])?(a8=a7,a7=a7['nextZ'],af--):(a8=ab,ab=ab['nextZ'],ag--),a9?a9[lM(0x38b)]=a8:a4=a8,a8['prevZ']=a9,a9=a8;a7=ab;}a9['nextZ']=null,a6*=0x2;}while(a5>0x1);return a4;}function Ha(a4,a5,a6,a7,a8){return a4=(a4-a6)*a8|0x0,a5=(a5-a7)*a8|0x0,a4=(a4|a4<<0x8)&0xff00ff,a4=(a4|a4<<0x4)&0xf0f0f0f,a4=(a4|a4<<0x2)&0x33333333,a4=(a4|a4<<0x1)&0x55555555,a5=(a5|a5<<0x8)&0xff00ff,a5=(a5|a5<<0x4)&0xf0f0f0f,a5=(a5|a5<<0x2)&0x33333333,a5=(a5|a5<<0x1)&0x55555555,a4|a5<<0x1;}function Ua(a4){let a5=a4,a6=a4;do(a5['x']<a6['x']||a5['x']===a6['x']&&a5['y']<a6['y'])&&(a6=a5),a5=a5['next'];while(a5!==a4);return a6;}function Wa(a4,a5,a6,a7,a8,a9,ab,af){return(a8-ab)*(a5-af)>=(a4-ab)*(a9-af)&&(a4-ab)*(a7-af)>=(a6-ab)*(a5-af)&&(a6-ab)*(a9-af)>=(a8-ab)*(a7-af);}function Ga(a4,a5,a6,a7,a8,a9,ab,af){return!(a4===ab&&a5===af)&&Wa(a4,a5,a6,a7,a8,a9,ab,af);}function Ka(a4,a5){const lN=d4;return a4['next']['i']!==a5['i']&&a4[lN(0x45c)]['i']!==a5['i']&&!Qa(a4,a5)&&($a(a4,a5)&&$a(a5,a4)&&eo(a4,a5)&&(qa(a4['prev'],a4,a5['prev'])||qa(a4,a5['prev'],a5))||Ja(a4,a5)&&qa(a4[lN(0x45c)],a4,a4['next'])>0x0&&qa(a5[lN(0x45c)],a5,a5['next'])>0x0);}function qa(a4,a5,a6){return(a5['y']-a4['y'])*(a6['x']-a5['x'])-(a5['x']-a4['x'])*(a6['y']-a5['y']);}function Ja(a4,a5){return a4['x']===a5['x']&&a4['y']===a5['y'];}function Ya(a4,a5,a6,a7){let a8=Za(qa(a4,a5,a6)),a9=Za(qa(a4,a5,a7)),ab=Za(qa(a6,a7,a4)),af=Za(qa(a6,a7,a5));return!!(a8!==a9&&ab!==af||a8===0x0&&Xa(a4,a6,a5)||a9===0x0&&Xa(a4,a7,a5)||ab===0x0&&Xa(a6,a4,a7)||af===0x0&&Xa(a6,a5,a7));}function Xa(a4,a5,a6){return a5['x']<=Math['max'](a4['x'],a6['x'])&&a5['x']>=Math['min'](a4['x'],a6['x'])&&a5['y']<=Math['max'](a4['y'],a6['y'])&&a5['y']>=Math['min'](a4['y'],a6['y']);}function Za(a4){return a4>0x0?0x1:a4<0x0?-0x1:0x0;}function Qa(a4,a5){const lO=d4;let a6=a4;do{if(a6['i']!==a4['i']&&a6['next']['i']!==a4['i']&&a6['i']!==a5['i']&&a6['next']['i']!==a5['i']&&Ya(a6,a6['next'],a4,a5))return!0x0;a6=a6[lO(0x180)];}while(a6!==a4);return!0x1;}function $a(a4,a5){const lP=d4;return qa(a4[lP(0x45c)],a4,a4['next'])<0x0?qa(a4,a5,a4['next'])>=0x0&&qa(a4,a4['prev'],a5)>=0x0:qa(a4,a5,a4['prev'])<0x0||qa(a4,a4['next'],a5)<0x0;}function eo(a4,a5){const lQ=d4;let a6=a4,a7=!0x1,a8=(a4['x']+a5['x'])/0x2,a9=(a4['y']+a5['y'])/0x2;do a6['y']>a9!=a6['next']['y']>a9&&a6[lQ(0x180)]['y']!==a6['y']&&a8<(a6[lQ(0x180)]['x']-a6['x'])*(a9-a6['y'])/(a6['next']['y']-a6['y'])+a6['x']&&(a7=!a7),a6=a6['next'];while(a6!==a4);return a7;}function to(a4,a5){const lR=d4;let a6=io(a4['i'],a4['x'],a4['y']),a7=io(a5['i'],a5['x'],a5['y']),a8=a4['next'],a9=a5['prev'];return a4['next']=a5,a5[lR(0x45c)]=a4,a6['next']=a8,a8['prev']=a6,a7['next']=a6,a6['prev']=a7,a9['next']=a7,a7['prev']=a9,a7;}function no(a4,a5,a6,a7){const lS=d4;let a8=io(a4,a5,a6);return a7?(a8[lS(0x180)]=a7['next'],a8['prev']=a7,a7[lS(0x180)]['prev']=a8,a7['next']=a8):(a8['prev']=a8,a8['next']=a8),a8;}function ro(a4){const lT=d4;a4['next']['prev']=a4[lT(0x45c)],a4['prev']['next']=a4['next'],a4['prevZ']&&(a4['prevZ'][lT(0x38b)]=a4['nextZ']),a4['nextZ']&&(a4['nextZ']['prevZ']=a4['prevZ']);}function io(a4,a5,a6){return{'i':a4,'x':a5,'y':a6,'prev':null,'next':null,'z':0x0,'prevZ':null,'nextZ':null,'steiner':!0x1};}function ao(a4,a5,a6,a7){let a8=0x0;for(let a9=a5,ab=a6-a7;a9<a6;a9+=a7)a8+=(a4[ab]-a4[a9])*(a4[a9+0x1]+a4[ab+0x1]),ab=a9;return a8;}var oo=class{static['triangulate'](a4,a5,a6=0x2){return Da(a4,a5,a6);}},so=class e{static['area'](a4){let a5=a4['length'],a6=0x0;for(let a7=a5-0x1,a8=0x0;a8<a5;a7=a8++)a6+=a4[a7]['x']*a4[a8]['y']-a4[a8]['x']*a4[a7]['y'];return a6*0.5;}static['isClockWise'](a4){return e['area'](a4)<0x0;}static['triangulateShape'](a4,a5){const lU=d4;let a6=[],a7=[],a8=[];co(a4),lo(a6,a4);let a9=a4['length'];a5[lU(0x27f)](co);for(let af=0x0;af<a5['length'];af++)a7['push'](a9),a9+=a5[af][lU(0x27a)],lo(a6,a5[af]);let ab=oo[lU(0x18f)](a6,a7);for(let ag=0x0;ag<ab['length'];ag+=0x3)a8['push'](ab[lU(0xfd)](ag,ag+0x3));return a8;}};function co(a4){const lV=d4;let a5=a4['length'];a5>0x2&&a4[a5-0x1][lV(0x37e)](a4[0x0])&&a4['pop']();}function lo(a4,a5){const lW=d4;for(let a6=0x0;a6<a5['length'];a6++)a4[lW(0x403)](a5[a6]['x']),a4['push'](a5[a6]['y']);}var uo=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x1,a7=0x1){const lX=d4;super(),this[lX(0x40b)]=lX(0x549),this['parameters']={'width':a4,'height':a5,'widthSegments':a6,'heightSegments':a7};let a8=a4/0x2,a9=a5/0x2,ab=Math['floor'](a6),af=Math['floor'](a7),ag=ab+0x1,ah=af+0x1,aj=a4/ab,ak=a5/af,am=[],ap=[],aq=[],av=[];for(let aw=0x0;aw<ah;aw++){let ax=aw*ak-a9;for(let ay=0x0;ay<ag;ay++){let az=ay*aj-a8;ap['push'](az,-ax,0x0),aq['push'](0x0,0x0,0x1),av[lX(0x403)](ay/ab),av['push'](0x1-aw/af);}}for(let aA=0x0;aA<af;aA++)for(let aB=0x0;aB<ab;aB++){let aC=aB+ag*aA,aD=aB+ag*(aA+0x1),aE=aB+0x1+ag*(aA+0x1),aF=aB+0x1+ag*aA;am[lX(0x403)](aC,aD,aF),am['push'](aD,aE,aF);}this['setIndex'](am),this['setAttribute'](lX(0x478),new X(ap,0x3)),this['setAttribute']('normal',new X(aq,0x3)),this['setAttribute']('uv',new X(av,0x2));}['copy'](a4){const lY=d4;return super[lY(0x32f)](a4),this['parameters']=Object[lY(0x130)]({},a4[lY(0x27e)]),this;}static[d4(0x4d3)](a4){const lZ=d4;return new e(a4['width'],a4['height'],a4['widthSegments'],a4[lZ(0x183)]);}},fo=class e extends Wr{constructor(a4=0x1,a5=0x20,a6=0x10,a7=0x0,a8=Math['PI']*0x2,a9=0x0,ab=Math['PI']){const m0=d4;super(),this['type']='SphereGeometry',this['parameters']={'radius':a4,'widthSegments':a5,'heightSegments':a6,'phiStart':a7,'phiLength':a8,'thetaStart':a9,'thetaLength':ab},a5=Math['max'](0x3,Math['floor'](a5)),a6=Math['max'](0x2,Math['floor'](a6));let af=Math[m0(0xbb)](a9+ab,Math['PI']),ag=0x0,ah=[],aj=new W(),ak=new W(),am=[],ap=[],aq=[],av=[];for(let aw=0x0;aw<=a6;aw++){let ax=[],ay=aw/a6,az=0x0;aw===0x0&&a9===0x0?az=0.5/a5:aw===a6&&af===Math['PI']&&(az=-0.5/a5);for(let aA=0x0;aA<=a5;aA++){let aB=aA/a5;aj['x']=-a4*Math[m0(0x4ea)](a7+aB*a8)*Math['sin'](a9+ay*ab),aj['y']=a4*Math['cos'](a9+ay*ab),aj['z']=a4*Math[m0(0x8a)](a7+aB*a8)*Math['sin'](a9+ay*ab),ap['push'](aj['x'],aj['y'],aj['z']),ak['copy'](aj)['normalize'](),aq['push'](ak['x'],ak['y'],ak['z']),av['push'](aB+az,0x1-ay),ax[m0(0x403)](ag++);}ah['push'](ax);}for(let aC=0x0;aC<a6;aC++)for(let aD=0x0;aD<a5;aD++){let aE=ah[aC][aD+0x1],aF=ah[aC][aD],aG=ah[aC+0x1][aD],aH=ah[aC+0x1][aD+0x1];(aC!==0x0||a9>0x0)&&am['push'](aE,aF,aH),(aC!==a6-0x1||af<Math['PI'])&&am['push'](aF,aG,aH);}this['setIndex'](am),this[m0(0x3a6)]('position',new X(ap,0x3)),this['setAttribute']('normal',new X(aq,0x3)),this['setAttribute']('uv',new X(av,0x2));}['copy'](a4){const m1=d4;return super['copy'](a4),this['parameters']=Object[m1(0x130)]({},a4['parameters']),this;}static['fromJSON'](a4){const m2=d4;return new e(a4[m2(0x42d)],a4['widthSegments'],a4['heightSegments'],a4['phiStart'],a4['phiLength'],a4['thetaStart'],a4['thetaLength']);}};function po(a4){const m3=d4;let a5={};for(let a6 in a4){a5[a6]={};for(let a7 in a4[a6]){let a8=a4[a6][a7];if(ho(a8))a8[m3(0x588)]?(z('UniformsUtils:\x20Textures\x20of\x20render\x20targets\x20cannot\x20be\x20cloned\x20via\x20cloneUniforms()\x20or\x20mergeUniforms().'),a5[a6][a7]=null):a5[a6][a7]=a8[m3(0x26d)]();else{if(Array['isArray'](a8)){if(ho(a8[0x0])){let a9=[];for(let ab=0x0,af=a8['length'];ab<af;ab++)a9[ab]=a8[ab]['clone']();a5[a6][a7]=a9;}else a5[a6][a7]=a8['slice']();}else a5[a6][a7]=a8;}}}return a5;}function mo(a4){let a5={};for(let a6=0x0;a6<a4['length'];a6++){let a7=po(a4[a6]);for(let a8 in a7)a5[a8]=a7[a8];}return a5;}function ho(a4){const m4=d4;return a4&&(a4['isColor']||a4['isMatrix3']||a4['isMatrix4']||a4['isVector2']||a4[m4(0x2ec)]||a4['isVector4']||a4[m4(0x449)]||a4['isQuaternion']);}function go(a4){let a5=[];for(let a6=0x0;a6<a4['length'];a6++)a5['push'](a4[a6]['clone']());return a5;}function _o(a4){const m5=d4;let a5=a4[m5(0x100)]();return a5===null?a4['outputColorSpace']:a5['isXRRenderTarget']===!0x0?a5['texture'][m5(0x30e)]:K['workingColorSpace'];}var vo={'clone':po,'merge':mo},yo='void\x20main()\x20{\x0a\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a}',bo='void\x20main()\x20{\x0a\x09gl_FragColor\x20=\x20vec4(\x201.0,\x200.0,\x200.0,\x201.0\x20);\x0a}',xo=class extends Yr{constructor(a4){const m6=d4;super(),this[m6(0x44b)]=!0x0,this['type']='ShaderMaterial',this['defines']={},this['uniforms']={},this['uniformsGroups']=[],this['vertexShader']=yo,this['fragmentShader']=bo,this['linewidth']=0x1,this['wireframe']=!0x1,this[m6(0x141)]=0x1,this['fog']=!0x1,this['lights']=!0x1,this['clipping']=!0x1,this['forceSinglePass']=!0x0,this['extensions']={'clipCullDistance':!0x1,'multiDraw':!0x1},this['defaultAttributeValues']={'color':[0x1,0x1,0x1],'uv':[0x0,0x0],'uv1':[0x0,0x0]},this[m6(0x10e)]=void 0x0,this['uniformsNeedUpdate']=!0x1,this['glslVersion']=null,a4!==void 0x0&&this['setValues'](a4);}['copy'](a4){const m7=d4;return super['copy'](a4),this[m7(0xaf)]=a4['fragmentShader'],this[m7(0x111)]=a4['vertexShader'],this['uniforms']=po(a4['uniforms']),this['uniformsGroups']=go(a4[m7(0x85)]),this['defines']=Object['assign']({},a4['defines']),this['wireframe']=a4['wireframe'],this['wireframeLinewidth']=a4['wireframeLinewidth'],this['fog']=a4['fog'],this['lights']=a4['lights'],this['clipping']=a4[m7(0x20b)],this['extensions']=Object['assign']({},a4['extensions']),this['glslVersion']=a4['glslVersion'],this['defaultAttributeValues']=Object['assign']({},a4['defaultAttributeValues']),this[m7(0x10e)]=a4['index0AttributeName'],this['uniformsNeedUpdate']=a4['uniformsNeedUpdate'],this;}['toJSON'](a4){const m8=d4;let a5=super['toJSON'](a4);a5['glslVersion']=this[m8(0x36b)],a5[m8(0x21c)]={};for(let a7 in this[m8(0x21c)]){let a8=this[m8(0x21c)][a7][m8(0x529)];a8&&a8[m8(0x449)]?a5['uniforms'][a7]={'type':'t','value':a8['toJSON'](a4)['uuid']}:a8&&a8['isColor']?a5['uniforms'][a7]={'type':'c','value':a8[m8(0x4ee)]()}:a8&&a8['isVector2']?a5['uniforms'][a7]={'type':'v2','value':a8['toArray']()}:a8&&a8['isVector3']?a5['uniforms'][a7]={'type':'v3','value':a8['toArray']()}:a8&&a8['isVector4']?a5['uniforms'][a7]={'type':'v4','value':a8['toArray']()}:a8&&a8['isMatrix3']?a5['uniforms'][a7]={'type':'m3','value':a8['toArray']()}:a8&&a8['isMatrix4']?a5['uniforms'][a7]={'type':'m4','value':a8[m8(0x442)]()}:a5['uniforms'][a7]={'value':a8};}Object['keys'](this['defines'])['length']>0x0&&(a5['defines']=this['defines']),a5['vertexShader']=this['vertexShader'],a5['fragmentShader']=this['fragmentShader'],a5['lights']=this[m8(0x124)],a5['clipping']=this['clipping'];let a6={};for(let a9 in this['extensions'])this[m8(0x455)][a9]===!0x0&&(a6[a9]=!0x0);return Object['keys'](a6)['length']>0x0&&(a5['extensions']=a6),a5;}},So=class extends xo{constructor(a4){super(a4),this['isRawShaderMaterial']=!0x0,this['type']='RawShaderMaterial';}},Co=class extends Yr{constructor(a4){const m9=d4;super(),this[m9(0x317)]=!0x0,this['type']='MeshStandardMaterial',this['defines']={'STANDARD':''},this['color']=new Y(0xffffff),this[m9(0x250)]=0x1,this[m9(0x2a1)]=0x0,this['map']=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this['aoMap']=null,this['aoMapIntensity']=0x1,this['emissive']=new Y(0x0),this['emissiveIntensity']=0x1,this['emissiveMap']=null,this[m9(0x3dc)]=null,this[m9(0x487)]=0x1,this['normalMap']=null,this[m9(0x43c)]=0x0,this['normalScale']=new U(0x1,0x1),this['displacementMap']=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this['roughnessMap']=null,this['metalnessMap']=null,this['alphaMap']=null,this['envMap']=null,this['envMapRotation']=new wn(),this['envMapIntensity']=0x1,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['wireframeLinecap']='round',this[m9(0xe5)]='round',this['flatShading']=!0x1,this[m9(0x4e3)]=!0x0,this['setValues'](a4);}['copy'](a4){const mb=d4;return super[mb(0x32f)](a4),this[mb(0x54b)]={'STANDARD':''},this['color'][mb(0x32f)](a4[mb(0x379)]),this['roughness']=a4[mb(0x250)],this[mb(0x2a1)]=a4['metalness'],this['map']=a4['map'],this['lightMap']=a4['lightMap'],this[mb(0x274)]=a4['lightMapIntensity'],this[mb(0x219)]=a4['aoMap'],this['aoMapIntensity']=a4[mb(0x2e0)],this['emissive']['copy'](a4['emissive']),this['emissiveMap']=a4['emissiveMap'],this['emissiveIntensity']=a4['emissiveIntensity'],this['bumpMap']=a4['bumpMap'],this[mb(0x487)]=a4['bumpScale'],this['normalMap']=a4['normalMap'],this['normalMapType']=a4[mb(0x43c)],this['normalScale']['copy'](a4['normalScale']),this[mb(0x9e)]=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this['displacementBias']=a4['displacementBias'],this['roughnessMap']=a4['roughnessMap'],this['metalnessMap']=a4['metalnessMap'],this[mb(0xed)]=a4['alphaMap'],this['envMap']=a4['envMap'],this[mb(0x4c1)]['copy'](a4[mb(0x4c1)]),this[mb(0x1e6)]=a4['envMapIntensity'],this['wireframe']=a4['wireframe'],this['wireframeLinewidth']=a4['wireframeLinewidth'],this[mb(0x290)]=a4['wireframeLinecap'],this['wireframeLinejoin']=a4['wireframeLinejoin'],this['flatShading']=a4['flatShading'],this['fog']=a4[mb(0x4e3)],this;}},wo=class extends Co{constructor(a4){const mf=d4;super(),this['isMeshPhysicalMaterial']=!0x0,this[mf(0x54b)]={'STANDARD':'','PHYSICAL':''},this[mf(0x40b)]='MeshPhysicalMaterial',this['anisotropyRotation']=0x0,this[mf(0x32e)]=null,this[mf(0x557)]=null,this['clearcoatRoughness']=0x0,this['clearcoatRoughnessMap']=null,this[mf(0x22e)]=new U(0x1,0x1),this['clearcoatNormalMap']=null,this[mf(0x19e)]=1.5,Object['defineProperty'](this,mf(0xbc),{'get':function(){return V(2.5*(this['ior']-0x1)/(this['ior']+0x1),0x0,0x1);},'set':function(a5){this['ior']=(0x1+0.4*a5)/(0x1-0.4*a5);}}),this['iridescenceMap']=null,this['iridescenceIOR']=1.3,this['iridescenceThicknessRange']=[0x64,0x190],this[mf(0x55e)]=null,this['sheenColor']=new Y(0x0),this['sheenColorMap']=null,this[mf(0x52d)]=0x1,this['sheenRoughnessMap']=null,this['transmissionMap']=null,this['thickness']=0x0,this['thicknessMap']=null,this[mf(0xe3)]=Infinity,this[mf(0x4bf)]=new Y(0x1,0x1,0x1),this[mf(0x2d9)]=0x1,this['specularIntensityMap']=null,this['specularColor']=new Y(0x1,0x1,0x1),this[mf(0xff)]=null,this['_anisotropy']=0x0,this['_clearcoat']=0x0,this['_dispersion']=0x0,this['_iridescence']=0x0,this['_sheen']=0x0,this['_transmission']=0x0,this['setValues'](a4);}get[d4(0x238)](){return this['_anisotropy'];}set['anisotropy'](a4){const mg=d4;this['_anisotropy']>0x0!=a4>0x0&&this[mg(0x2d1)]++,this['_anisotropy']=a4;}get['clearcoat'](){return this['_clearcoat'];}set[d4(0x2b9)](a4){this['_clearcoat']>0x0!=a4>0x0&&this['version']++,this['_clearcoat']=a4;}get['iridescence'](){return this['_iridescence'];}set[d4(0x539)](a4){this['_iridescence']>0x0!=a4>0x0&&this['version']++,this['_iridescence']=a4;}get['dispersion'](){return this['_dispersion'];}set[d4(0x46e)](a4){const mh=d4;this[mh(0x391)]>0x0!=a4>0x0&&this['version']++,this['_dispersion']=a4;}get['sheen'](){return this['_sheen'];}set['sheen'](a4){this['_sheen']>0x0!=a4>0x0&&this['version']++,this['_sheen']=a4;}get[d4(0xc3)](){const mj=d4;return this[mj(0x23c)];}set[d4(0xc3)](a4){const mk=d4;this['_transmission']>0x0!=a4>0x0&&this['version']++,this[mk(0x23c)]=a4;}['copy'](a4){const mm=d4;return super['copy'](a4),this['defines']={'STANDARD':'','PHYSICAL':''},this['anisotropy']=a4['anisotropy'],this['anisotropyRotation']=a4['anisotropyRotation'],this['anisotropyMap']=a4['anisotropyMap'],this['clearcoat']=a4['clearcoat'],this['clearcoatMap']=a4['clearcoatMap'],this['clearcoatRoughness']=a4['clearcoatRoughness'],this['clearcoatRoughnessMap']=a4['clearcoatRoughnessMap'],this['clearcoatNormalMap']=a4[mm(0x467)],this['clearcoatNormalScale'][mm(0x32f)](a4['clearcoatNormalScale']),this['dispersion']=a4['dispersion'],this['ior']=a4['ior'],this[mm(0x539)]=a4['iridescence'],this['iridescenceMap']=a4[mm(0x4df)],this[mm(0x4fa)]=a4['iridescenceIOR'],this['iridescenceThicknessRange']=[...a4['iridescenceThicknessRange']],this['iridescenceThicknessMap']=a4['iridescenceThicknessMap'],this['sheen']=a4['sheen'],this[mm(0x1cc)]['copy'](a4['sheenColor']),this['sheenColorMap']=a4[mm(0x329)],this['sheenRoughness']=a4['sheenRoughness'],this['sheenRoughnessMap']=a4[mm(0x119)],this['transmission']=a4['transmission'],this['transmissionMap']=a4['transmissionMap'],this['thickness']=a4['thickness'],this['thicknessMap']=a4[mm(0x3b0)],this[mm(0xe3)]=a4['attenuationDistance'],this['attenuationColor']['copy'](a4['attenuationColor']),this[mm(0x2d9)]=a4[mm(0x2d9)],this['specularIntensityMap']=a4['specularIntensityMap'],this['specularColor'][mm(0x32f)](a4[mm(0x2e5)]),this['specularColorMap']=a4['specularColorMap'],this;}},To=class extends Yr{constructor(a4){const mp=d4;super(),this['isMeshPhongMaterial']=!0x0,this['type']='MeshPhongMaterial',this['color']=new Y(0xffffff),this['specular']=new Y(0x111111),this[mp(0x170)]=0x1e,this['map']=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this[mp(0x219)]=null,this['aoMapIntensity']=0x1,this['emissive']=new Y(0x0),this['emissiveIntensity']=0x1,this[mp(0x17e)]=null,this['bumpMap']=null,this['bumpScale']=0x1,this['normalMap']=null,this['normalMapType']=0x0,this['normalScale']=new U(0x1,0x1),this[mp(0x9e)]=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this['specularMap']=null,this[mp(0xed)]=null,this[mp(0x492)]=null,this[mp(0x4c1)]=new wn(),this[mp(0x339)]=0x0,this['reflectivity']=0x1,this[mp(0x1e6)]=0x1,this['refractionRatio']=0.98,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['wireframeLinecap']='round',this['wireframeLinejoin']='round',this['flatShading']=!0x1,this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const mq=d4;return super['copy'](a4),this['color'][mq(0x32f)](a4['color']),this['specular']['copy'](a4[mq(0x46a)]),this['shininess']=a4['shininess'],this['map']=a4[mq(0x146)],this['lightMap']=a4['lightMap'],this['lightMapIntensity']=a4['lightMapIntensity'],this['aoMap']=a4['aoMap'],this['aoMapIntensity']=a4['aoMapIntensity'],this['emissive']['copy'](a4['emissive']),this['emissiveMap']=a4['emissiveMap'],this['emissiveIntensity']=a4[mq(0x1e3)],this['bumpMap']=a4['bumpMap'],this['bumpScale']=a4['bumpScale'],this['normalMap']=a4['normalMap'],this['normalMapType']=a4['normalMapType'],this['normalScale']['copy'](a4['normalScale']),this[mq(0x9e)]=a4['displacementMap'],this[mq(0x4f6)]=a4[mq(0x4f6)],this['displacementBias']=a4[mq(0x577)],this['specularMap']=a4['specularMap'],this['alphaMap']=a4['alphaMap'],this['envMap']=a4['envMap'],this['envMapRotation']['copy'](a4['envMapRotation']),this['combine']=a4['combine'],this['reflectivity']=a4[mq(0xbc)],this[mq(0x1e6)]=a4['envMapIntensity'],this['refractionRatio']=a4['refractionRatio'],this['wireframe']=a4[mq(0x2ac)],this[mq(0x141)]=a4['wireframeLinewidth'],this[mq(0x290)]=a4['wireframeLinecap'],this['wireframeLinejoin']=a4['wireframeLinejoin'],this['flatShading']=a4[mq(0x153)],this['fog']=a4['fog'],this;}},Eo=class extends Yr{constructor(a4){const mv=d4;super(),this['isMeshLambertMaterial']=!0x0,this['type']='MeshLambertMaterial',this[mv(0x379)]=new Y(0xffffff),this['map']=null,this['lightMap']=null,this[mv(0x274)]=0x1,this['aoMap']=null,this['aoMapIntensity']=0x1,this['emissive']=new Y(0x0),this[mv(0x1e3)]=0x1,this['emissiveMap']=null,this['bumpMap']=null,this['bumpScale']=0x1,this['normalMap']=null,this['normalMapType']=0x0,this['normalScale']=new U(0x1,0x1),this['displacementMap']=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this['specularMap']=null,this['alphaMap']=null,this['envMap']=null,this['envMapRotation']=new wn(),this['combine']=0x0,this[mv(0xbc)]=0x1,this[mv(0x1e6)]=0x1,this['refractionRatio']=0.98,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this[mv(0x290)]='round',this['wireframeLinejoin']=mv(0x43b),this['flatShading']=!0x1,this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const mw=d4;return super[mw(0x32f)](a4),this['color']['copy'](a4['color']),this['map']=a4[mw(0x146)],this['lightMap']=a4['lightMap'],this['lightMapIntensity']=a4['lightMapIntensity'],this['aoMap']=a4['aoMap'],this['aoMapIntensity']=a4[mw(0x2e0)],this['emissive']['copy'](a4['emissive']),this[mw(0x17e)]=a4['emissiveMap'],this['emissiveIntensity']=a4['emissiveIntensity'],this['bumpMap']=a4[mw(0x3dc)],this['bumpScale']=a4[mw(0x487)],this['normalMap']=a4['normalMap'],this['normalMapType']=a4[mw(0x43c)],this[mw(0x9c)]['copy'](a4['normalScale']),this['displacementMap']=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this['displacementBias']=a4[mw(0x577)],this['specularMap']=a4['specularMap'],this['alphaMap']=a4['alphaMap'],this['envMap']=a4['envMap'],this['envMapRotation'][mw(0x32f)](a4['envMapRotation']),this['combine']=a4[mw(0x339)],this['reflectivity']=a4['reflectivity'],this['envMapIntensity']=a4['envMapIntensity'],this[mw(0x41d)]=a4['refractionRatio'],this[mw(0x2ac)]=a4[mw(0x2ac)],this['wireframeLinewidth']=a4['wireframeLinewidth'],this['wireframeLinecap']=a4['wireframeLinecap'],this['wireframeLinejoin']=a4['wireframeLinejoin'],this[mw(0x153)]=a4['flatShading'],this['fog']=a4['fog'],this;}},Do=class extends Yr{constructor(a4){const mx=d4;super(),this['isMeshDepthMaterial']=!0x0,this['type']=mx(0x254),this['depthPacking']=nt,this['map']=null,this[mx(0xed)]=null,this['displacementMap']=null,this['displacementScale']=0x1,this[mx(0x577)]=0x0,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['setValues'](a4);}[d4(0x32f)](a4){const my=d4;return super['copy'](a4),this['depthPacking']=a4['depthPacking'],this['map']=a4['map'],this['alphaMap']=a4['alphaMap'],this['displacementMap']=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this['displacementBias']=a4['displacementBias'],this[my(0x2ac)]=a4['wireframe'],this['wireframeLinewidth']=a4['wireframeLinewidth'],this;}},Oo=class extends Yr{constructor(a4){const mz=d4;super(),this['isMeshDistanceMaterial']=!0x0,this['type']='MeshDistanceMaterial',this['map']=null,this[mz(0xed)]=null,this['displacementMap']=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this['setValues'](a4);}['copy'](a4){const mA=d4;return super['copy'](a4),this['map']=a4['map'],this[mA(0xed)]=a4['alphaMap'],this['displacementMap']=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this[mA(0x577)]=a4['displacementBias'],this;}};function ko(a4,a5){const mB=d4;return!a4||a4['constructor']===a5?a4:typeof a5['BYTES_PER_ELEMENT']==mB(0x29c)?new a5(a4):Array['prototype']['slice']['call'](a4);}function Ao(a4){function a5(a8,a9){return a4[a8]-a4[a9];}let a6=a4['length'],a7=Array(a6);for(let a8=0x0;a8!==a6;++a8)a7[a8]=a8;return a7['sort'](a5),a7;}function jo(a4,a5,a6){const mC=d4;let a7=a4['length'],a8=new a4[(mC(0x27b))](a7);for(let a9=0x0,ab=0x0;ab!==a7;++a9){let af=a6[a9]*a5;for(let ag=0x0;ag!==a5;++ag)a8[ab++]=a4[af+ag];}return a8;}function Mo(a4,a5,a6,a7){const mD=d4;let a8=0x1,a9=a4[0x0];for(;a9!==void 0x0&&a9[a7]===void 0x0;)a9=a4[a8++];if(a9===void 0x0)return;let ab=a9[a7];if(ab!==void 0x0){if(Array['isArray'](ab)){do ab=a9[a7],ab!==void 0x0&&(a5['push'](a9[mD(0x361)]),a6['push'](...ab)),a9=a4[a8++];while(a9!==void 0x0);}else{if(ab['toArray']!==void 0x0){do ab=a9[a7],ab!==void 0x0&&(a5['push'](a9['time']),ab['toArray'](a6,a6['length'])),a9=a4[a8++];while(a9!==void 0x0);}else{do ab=a9[a7],ab!==void 0x0&&(a5['push'](a9['time']),a6['push'](ab)),a9=a4[a8++];while(a9!==void 0x0);}}}}var No=class{constructor(a4,a5,a6,a7){const mE=d4;this['parameterPositions']=a4,this[mE(0x4c4)]=0x0,this['resultBuffer']=a7===void 0x0?new a5['constructor'](a6):a7,this['sampleValues']=a5,this[mE(0x369)]=a6,this['settings']=null,this['DefaultSettings_']={};}['evaluate'](a4){const mF=d4;let a5=this['parameterPositions'],a6=this['_cachedIndex'],a7=a5[a6],a8=a5[a6-0x1];aj:{ak:{let a9;am:{ap:if(!(a4<a7)){for(let ab=a6+0x2;;){if(a7===void 0x0){if(a4<a8)break ap;return a6=a5[mF(0x27a)],this['_cachedIndex']=a6,this['copySampleValue_'](a6-0x1);}if(a6===ab)break;if(a8=a7,a7=a5[++a6],a4<a7)break ak;}a9=a5['length'];break am;}if(!(a4>=a8)){let af=a5[0x1];a4<af&&(a6=0x2,a8=af);for(let ag=a6-0x2;;){if(a8===void 0x0)return this['_cachedIndex']=0x0,this['copySampleValue_'](0x0);if(a6===ag)break;if(a7=a8,a8=a5[--a6-0x1],a4>=a8)break ak;}a9=a6,a6=0x0;break am;}break aj;}for(;a6<a9;){let ah=a6+a9>>>0x1;a4<a5[ah]?a9=ah:a6=ah+0x1;}if(a7=a5[a6],a8=a5[a6-0x1],a8===void 0x0)return this['_cachedIndex']=0x0,this['copySampleValue_'](0x0);if(a7===void 0x0)return a6=a5['length'],this['_cachedIndex']=a6,this[mF(0x4ac)](a6-0x1);}this['_cachedIndex']=a6,this['intervalChanged_'](a6,a8,a7);}return this['interpolate_'](a6,a8,a4,a7);}['getSettings_'](){return this['settings']||this['DefaultSettings_'];}['copySampleValue_'](a4){const mG=d4;let a5=this['resultBuffer'],a6=this[mG(0x277)],a7=this['valueSize'],a8=a4*a7;for(let a9=0x0;a9!==a7;++a9)a5[a9]=a6[a8+a9];return a5;}['interpolate_'](){throw Error('call\x20to\x20abstract\x20method');}['intervalChanged_'](){}},Po=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7),this['_weightPrev']=-0x0,this['_offsetPrev']=-0x0,this['_weightNext']=-0x0,this['_offsetNext']=-0x0,this['DefaultSettings_']={'endingStart':Ze,'endingEnd':Ze};}['intervalChanged_'](a4,a5,a6){const mH=d4;let a7=this[mH(0x1ce)],a8=a4-0x2,a9=a4+0x1,ab=a7[a8],af=a7[a9];if(ab===void 0x0)switch(this['getSettings_']()['endingStart']){case Qe:a8=a4,ab=0x2*a5-a6;break;case $e:a8=a7['length']-0x2,ab=a5+a7[a8]-a7[a8+0x1];break;default:a8=a4,ab=a6;}if(af===void 0x0)switch(this[mH(0x1fb)]()['endingEnd']){case Qe:a9=a4,af=0x2*a6-a5;break;case $e:a9=0x1,af=a6+a7[0x1]-a7[0x0];break;default:a9=a4-0x1,af=a5;}let ag=(a6-a5)*0.5,ah=this['valueSize'];this['_weightPrev']=ag/(a5-ab),this['_weightNext']=ag/(af-a6),this['_offsetPrev']=a8*ah,this['_offsetNext']=a9*ah;}['interpolate_'](a4,a5,a6,a7){const mI=d4;let a8=this['resultBuffer'],a9=this['sampleValues'],ab=this['valueSize'],af=a4*ab,ag=af-ab,ah=this[mI(0x3d7)],aj=this['_offsetNext'],ak=this['_weightPrev'],am=this['_weightNext'],ap=(a6-a5)/(a7-a5),aq=ap*ap,av=aq*ap,aw=-ak*av+0x2*ak*aq-ak*ap,ax=(0x1+ak)*av+(-1.5-0x2*ak)*aq+(-0.5+ak)*ap+0x1,ay=(-0x1-am)*av+(1.5+am)*aq+0.5*ap,az=am*av-am*aq;for(let aA=0x0;aA!==ab;++aA)a8[aA]=aw*a9[ah+aA]+ax*a9[ag+aA]+ay*a9[af+aA]+az*a9[aj+aA];return a8;}},Fo=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}['interpolate_'](a4,a5,a6,a7){const mJ=d4;let a8=this['resultBuffer'],a9=this[mJ(0x277)],ab=this['valueSize'],af=a4*ab,ag=af-ab,ah=(a6-a5)/(a7-a5),aj=0x1-ah;for(let ak=0x0;ak!==ab;++ak)a8[ak]=a9[ag+ak]*aj+a9[af+ak]*ah;return a8;}},Io=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}['interpolate_'](a4){return this['copySampleValue_'](a4-0x1);}},Lo=class extends No{['interpolate_'](a4,a5,a6,a7){const mK=d4;let a8=this['resultBuffer'],a9=this[mK(0x277)],ab=this['valueSize'],af=a4*ab,ag=af-ab,ah=this['settings']||this['DefaultSettings_'],aj=ah['inTangents'],ak=ah['outTangents'];if(!aj||!ak){let aq=(a6-a5)/(a7-a5),av=0x1-aq;for(let aw=0x0;aw!==ab;++aw)a8[aw]=a9[ag+aw]*av+a9[af+aw]*aq;return a8;}let am=ab*0x2,ap=a4-0x1;for(let ax=0x0;ax!==ab;++ax){let ay=a9[ag+ax],az=a9[af+ax],aA=ap*am+ax*0x2,aB=ak[aA],aC=ak[aA+0x1],aD=a4*am+ax*0x2,aE=aj[aD],aF=aj[aD+0x1],aG=(a6-a5)/(a7-a5),aH,aI,aJ,aK,aL;for(let aM=0x0;aM<0x8;aM++){aH=aG*aG,aI=aH*aG,aJ=0x1-aG,aK=aJ*aJ,aL=aK*aJ;let aN=aL*a5+0x3*aK*aG*aB+0x3*aJ*aH*aE+aI*a7-a6;if(Math['abs'](aN)<1e-10)break;let aO=0x3*aK*(aB-a5)+0x6*aJ*aG*(aE-aB)+0x3*aH*(a7-aE);if(Math['abs'](aO)<1e-10)break;aG-=aN/aO,aG=Math['max'](0x0,Math[mK(0xbb)](0x1,aG));}a8[ax]=aL*ay+0x3*aK*aG*aC+0x3*aJ*aH*aF+aI*az;}return a8;}},Ro=class{constructor(a4,a5,a6,a7){const mL=d4;if(a4===void 0x0)throw Error('THREE.KeyframeTrack:\x20track\x20name\x20is\x20undefined');if(a5===void 0x0||a5[mL(0x27a)]===0x0)throw Error(mL(0x489)+a4);this[mL(0x3a8)]=a4,this['times']=ko(a5,this['TimeBufferType']),this['values']=ko(a6,this['ValueBufferType']),this['setInterpolation'](a7||this['DefaultInterpolation']);}static['toJSON'](a4){let a5=a4['constructor'],a6;if(a5['toJSON']!==this['toJSON'])a6=a5['toJSON'](a4);else{a6={'name':a4['name'],'times':ko(a4['times'],Array),'values':ko(a4['values'],Array)};let a7=a4['getInterpolation']();a7!==a4['DefaultInterpolation']&&(a6['interpolation']=a7);}return a6['type']=a4['ValueTypeName'],a6;}['InterpolantFactoryMethodDiscrete'](a4){const mM=d4;return new Io(this[mM(0x54d)],this['values'],this['getValueSize'](),a4);}['InterpolantFactoryMethodLinear'](a4){const mN=d4;return new Fo(this[mN(0x54d)],this['values'],this['getValueSize'](),a4);}['InterpolantFactoryMethodSmooth'](a4){return new Po(this['times'],this['values'],this['getValueSize'](),a4);}[d4(0x4be)](a4){const mO=d4;let a5=new Lo(this['times'],this[mO(0x2df)],this['getValueSize'](),a4);return this['settings']&&(a5['settings']=this['settings']),a5;}['setInterpolation'](a4){const mP=d4;let a5;switch(a4){case qe:a5=this['InterpolantFactoryMethodDiscrete'];break;case Je:a5=this[mP(0x587)];break;case Ye:a5=this['InterpolantFactoryMethodSmooth'];break;case Xe:a5=this['InterpolantFactoryMethodBezier'];break;}if(a5===void 0x0){let a6='unsupported\x20interpolation\x20for\x20'+this['ValueTypeName']+mP(0x44d)+this[mP(0x3a8)];if(this['createInterpolant']===void 0x0){if(a4!==this['DefaultInterpolation'])this['setInterpolation'](this['DefaultInterpolation']);else throw Error(a6);}return z('KeyframeTrack:',a6),this;}return this['createInterpolant']=a5,this;}['getInterpolation'](){const mQ=d4;switch(this['createInterpolant']){case this['InterpolantFactoryMethodDiscrete']:return qe;case this[mQ(0x587)]:return Je;case this['InterpolantFactoryMethodSmooth']:return Ye;case this['InterpolantFactoryMethodBezier']:return Xe;}}[d4(0x12a)](){return this['values']['length']/this['times']['length'];}['shift'](a4){if(a4!==0x0){let a5=this['times'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6)a5[a6]+=a4;}return this;}['scale'](a4){const mR=d4;if(a4!==0x1){let a5=this['times'];for(let a6=0x0,a7=a5[mR(0x27a)];a6!==a7;++a6)a5[a6]*=a4;}return this;}['trim'](a4,a5){const mS=d4;let a6=this['times'],a7=a6['length'],a8=0x0,a9=a7-0x1;for(;a8!==a7&&a6[a8]<a4;)++a8;for(;a9!==-0x1&&a6[a9]>a5;)--a9;if(++a9,a8!==0x0||a9!==a7){a8>=a9&&(a9=Math['max'](a9,0x1),a8=a9-0x1);let ab=this['getValueSize']();this['times']=a6['slice'](a8,a9),this['values']=this['values'][mS(0xfd)](a8*ab,a9*ab);}return this;}['validate'](){const mT=d4;let a4=!0x0,a5=this[mT(0x12a)]();a5-Math['floor'](a5)!==0x0&&(B('KeyframeTrack:\x20Invalid\x20value\x20size\x20in\x20track.',this),a4=!0x1);let a6=this['times'],a7=this['values'],a8=a6['length'];a8===0x0&&(B('KeyframeTrack:\x20Track\x20is\x20empty.',this),a4=!0x1);let a9=null;for(let ab=0x0;ab!==a8;ab++){let af=a6[ab];if(typeof af=='number'&&isNaN(af)){B('KeyframeTrack:\x20Time\x20is\x20not\x20a\x20valid\x20number.',this,ab,af),a4=!0x1;break;}if(a9!==null&&a9>af){B('KeyframeTrack:\x20Out\x20of\x20order\x20keys.',this,ab,af,a9),a4=!0x1;break;}a9=af;}if(a7!==void 0x0&&dt(a7))for(let ag=0x0,ah=a7['length'];ag!==ah;++ag){let aj=a7[ag];if(isNaN(aj)){B('KeyframeTrack:\x20Value\x20is\x20not\x20a\x20valid\x20number.',this,ag,aj),a4=!0x1;break;}}return a4;}[d4(0x444)](){const mU=d4;let a4=this[mU(0x54d)]['slice'](),a5=this['values']['slice'](),a6=this['getValueSize'](),a7=this['getInterpolation']()===Ye,a8=a4[mU(0x27a)]-0x1,a9=0x1;for(let ab=0x1;ab<a8;++ab){let af=!0x1,ag=a4[ab];if(ag!==a4[ab+0x1]&&(ab!==0x1||ag!==a4[0x0])){if(a7)af=!0x0;else{let ah=ab*a6,aj=ah-a6,ak=ah+a6;for(let am=0x0;am!==a6;++am){let ap=a5[ah+am];if(ap!==a5[aj+am]||ap!==a5[ak+am]){af=!0x0;break;}}}}if(af){if(ab!==a9){a4[a9]=a4[ab];let aq=ab*a6,av=a9*a6;for(let aw=0x0;aw!==a6;++aw)a5[av+aw]=a5[aq+aw];}++a9;}}if(a8>0x0){a4[a9]=a4[a8];for(let ax=a8*a6,ay=a9*a6,az=0x0;az!==a6;++az)a5[ay+az]=a5[ax+az];++a9;}return a9===a4['length']?(this['times']=a4,this[mU(0x2df)]=a5):(this['times']=a4['slice'](0x0,a9),this[mU(0x2df)]=a5['slice'](0x0,a9*a6)),this;}[d4(0x26d)](){const mV=d4;let a4=this[mV(0x54d)]['slice'](),a5=this['values']['slice'](),a6=this['constructor'],a7=new a6(this['name'],a4,a5);return a7[mV(0x3ee)]=this['createInterpolant'],a7;}};Ro[d4(0xcb)][d4(0x3e3)]='',Ro['prototype']['TimeBufferType']=Float32Array,Ro[d4(0xcb)]['ValueBufferType']=Float32Array,Ro['prototype'][d4(0x4f5)]=Je;var zo=class extends Ro{constructor(a4,a5,a6){super(a4,a5,a6);}};zo['prototype']['ValueTypeName']='bool',zo['prototype']['ValueBufferType']=Array,zo['prototype']['DefaultInterpolation']=qe,zo['prototype']['InterpolantFactoryMethodLinear']=void 0x0,zo['prototype']['InterpolantFactoryMethodSmooth']=void 0x0;var Bo=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}};Bo['prototype']['ValueTypeName']='color';var Vo=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}};Vo['prototype']['ValueTypeName']='number';var Ho=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}[d4(0x161)](a4,a5,a6,a7){const mW=d4;let a8=this[mW(0x4a0)],a9=this['sampleValues'],ab=this['valueSize'],af=(a6-a5)/(a7-a5),ag=a4*ab;for(let ah=ag+ab;ag!==ah;ag+=0x4)qt['slerpFlat'](a8,0x0,a9,ag-ab,a9,ag,af);return a8;}},Uo=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}['InterpolantFactoryMethodLinear'](a4){const mX=d4;return new Ho(this[mX(0x54d)],this['values'],this[mX(0x12a)](),a4);}};Uo['prototype'][d4(0x3e3)]=d4(0x3fd),Uo['prototype'][d4(0x162)]=void 0x0;var Wo=class extends Ro{constructor(a4,a5,a6){super(a4,a5,a6);}};Wo['prototype']['ValueTypeName']='string',Wo['prototype']['ValueBufferType']=Array,Wo['prototype']['DefaultInterpolation']=qe,Wo['prototype']['InterpolantFactoryMethodLinear']=void 0x0,Wo['prototype']['InterpolantFactoryMethodSmooth']=void 0x0;var Go=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}};Go[d4(0xcb)]['ValueTypeName']='vector';var Ko=class{constructor(a4='',a5=-0x1,a6=[],a7=et){const mY=d4;this['name']=a4,this['tracks']=a6,this['duration']=a5,this['blendMode']=a7,this[mY(0x2ca)]=Et(),this['userData']={},this['duration']<0x0&&this['resetDuration']();}static[d4(0x2c2)](a4){const mZ=d4;let a5=[],a6=a4['tracks'],a7=0x1/(a4['fps']||0x1);for(let a9=0x0,ab=a6['length'];a9!==ab;++a9)a5['push'](Jo(a6[a9])['scale'](a7));let a8=new this(a4['name'],a4[mZ(0x164)],a5,a4['blendMode']);return a8['uuid']=a4['uuid'],a8['userData']=JSON['parse'](a4['userData']||'{}'),a8;}static[d4(0x599)](a4){const n0=d4;let a5=[],a6=a4['tracks'],a7={'name':a4['name'],'duration':a4['duration'],'tracks':a5,'uuid':a4['uuid'],'blendMode':a4['blendMode'],'userData':JSON[n0(0x278)](a4[n0(0x511)])};for(let a8=0x0,a9=a6['length'];a8!==a9;++a8)a5['push'](Ro['toJSON'](a6[a8]));return a7;}static[d4(0x148)](a4,a5,a6,a7){const n1=d4;let a8=a5['length'],a9=[];for(let ab=0x0;ab<a8;ab++){let af=[],ag=[];af['push']((ab+a8-0x1)%a8,ab,(ab+0x1)%a8),ag['push'](0x0,0x1,0x0);let ah=Ao(af);af=jo(af,0x1,ah),ag=jo(ag,0x1,ah),!a7&&af[0x0]===0x0&&(af['push'](a8),ag['push'](ag[0x0])),a9['push'](new Vo(n1(0x1b7)+a5[ab]['name']+']',af,ag)['scale'](0x1/a6));}return new this(a4,-0x1,a9);}static['findByName'](a4,a5){let a6=a4;if(!Array['isArray'](a4)){let a7=a4;a6=a7['geometry']&&a7['geometry']['animations']||a7['animations'];}for(let a8=0x0;a8<a6['length'];a8++)if(a6[a8]['name']===a5)return a6[a8];return null;}static[d4(0x14a)](a4,a5,a6){const n2=d4;let a7={},a8=/^([\w-]*?)([\d]+)$/;for(let ab=0x0,af=a4['length'];ab<af;ab++){let ag=a4[ab],ah=ag['name']['match'](a8);if(ah&&ah['length']>0x1){let aj=ah[0x1],ak=a7[aj];ak||(a7[aj]=ak=[]),ak['push'](ag);}}let a9=[];for(let am in a7)a9['push'](this[n2(0x148)](am,a7[am],a5,a6));return a9;}static['parseAnimation'](a4,a5){const n3=d4;if(z(n3(0x287)),!a4)return B('AnimationClip:\x20No\x20animation\x20in\x20JSONLoader\x20data.'),null;let a6=function(ah,aj,ak,am,ap){if(ak['length']!==0x0){let aq=[],av=[];Mo(ak,aq,av,am),aq['length']!==0x0&&ap['push'](new ah(aj,aq,av));}},a7=[],a8=a4['name']||'default',a9=a4['fps']||0x1e,ab=a4[n3(0xaa)],af=a4[n3(0x27a)]||-0x1,ag=a4['hierarchy']||[];for(let ah=0x0;ah<ag['length'];ah++){let aj=ag[ah][n3(0x310)];if(!(!aj||aj['length']===0x0)){if(aj[0x0][n3(0x580)]){let ak={},am;for(am=0x0;am<aj[n3(0x27a)];am++)if(aj[am]['morphTargets']){for(let ap=0x0;ap<aj[am]['morphTargets'][n3(0x27a)];ap++)ak[aj[am]['morphTargets'][ap]]=-0x1;}for(let aq in ak){let av=[],aw=[];for(let ax=0x0;ax!==aj[am][n3(0x580)][n3(0x27a)];++ax){let ay=aj[am];av[n3(0x403)](ay['time']),aw['push'](+(ay['morphTarget']===aq));}a7[n3(0x403)](new Vo(n3(0x4ff)+aq+']',av,aw));}af=ak['length']*a9;}else{let az='.bones['+a5[ah]['name']+']';a6(Go,az+'.position',aj,n3(0x4d0),a7),a6(Uo,az+'.quaternion',aj,'rot',a7),a6(Go,az+'.scale',aj,'scl',a7);}}}return a7['length']===0x0?null:new this(a8,af,a7,ab);}['resetDuration'](){const n4=d4;let a4=this['tracks'],a5=0x0;for(let a6=0x0,a7=a4[n4(0x27a)];a6!==a7;++a6){let a8=this['tracks'][a6];a5=Math['max'](a5,a8['times'][a8[n4(0x54d)]['length']-0x1]);}return this['duration']=a5,this;}['trim'](){for(let a4=0x0;a4<this['tracks']['length'];a4++)this['tracks'][a4]['trim'](0x0,this['duration']);return this;}['validate'](){const n5=d4;let a4=!0x0;for(let a5=0x0;a5<this[n5(0x118)]['length'];a5++)a4=a4&&this[n5(0x118)][a5]['validate']();return a4;}['optimize'](){const n6=d4;for(let a4=0x0;a4<this[n6(0x118)][n6(0x27a)];a4++)this[n6(0x118)][a4]['optimize']();return this;}['clone'](){const n7=d4;let a4=[];for(let a6=0x0;a6<this['tracks'][n7(0x27a)];a6++)a4['push'](this['tracks'][a6]['clone']());let a5=new this['constructor'](this['name'],this['duration'],a4,this['blendMode']);return a5[n7(0x511)]=JSON[n7(0x2c2)](JSON['stringify'](this['userData'])),a5;}['toJSON'](){return this['constructor']['toJSON'](this);}};function qo(a4){const n8=d4;switch(a4[n8(0x4cd)]()){case'scalar':case'double':case n8(0x3a3):case'number':case'integer':return Vo;case'vector':case'vector2':case'vector3':case'vector4':return Go;case'color':return Bo;case'quaternion':return Uo;case'bool':case'boolean':return zo;case n8(0x34d):return Wo;}throw Error('THREE.KeyframeTrack:\x20Unsupported\x20typeName:\x20'+a4);}function Jo(a4){const n9=d4;if(a4['type']===void 0x0)throw Error('THREE.KeyframeTrack:\x20track\x20type\x20undefined,\x20can\x20not\x20parse');let a5=qo(a4['type']);if(a4['times']===void 0x0){let a6=[],a7=[];Mo(a4['keys'],a6,a7,n9(0x529)),a4['times']=a6,a4['values']=a7;}return a5['parse']===void 0x0?new a5(a4['name'],a4['times'],a4['values'],a4['interpolation']):a5['parse'](a4);}var Yo={'enabled':!0x1,'files':{},'add':function(a4,a5){const nb=d4;this[nb(0x4d6)]!==!0x1&&(Xo(a4)||(this['files'][a4]=a5));},'get':function(a4){const nf=d4;if(this[nf(0x4d6)]!==!0x1&&!Xo(a4))return this['files'][a4];},'remove':function(a4){const ng=d4;delete this[ng(0x34f)][a4];},'clear':function(){this['files']={};}};function Xo(a4){try{let a5=a4['slice'](a4['indexOf'](':')+0x1);return new URL(a5)['protocol']==='blob:';}catch(a6){return!0x1;}}var Zo=class{constructor(a4,a5,a6){const nh=d4;let a7=this,a8=!0x1,a9=0x0,ab=0x0,af,ag=[];this[nh(0x40c)]=void 0x0,this['onLoad']=a4,this['onProgress']=a5,this['onError']=a6,this['_abortController']=null,this[nh(0x234)]=function(ah){const nj=nh;ab++,a8===!0x1&&a7['onStart']!==void 0x0&&a7[nj(0x40c)](ah,a9,ab),a8=!0x0;},this[nh(0x11a)]=function(ah){const nk=nh;a9++,a7[nk(0x145)]!==void 0x0&&a7[nk(0x145)](ah,a9,ab),a9===ab&&(a8=!0x1,a7['onLoad']!==void 0x0&&a7[nk(0x39b)]());},this['itemError']=function(ah){const nm=nh;a7[nm(0x31e)]!==void 0x0&&a7['onError'](ah);},this['resolveURL']=function(ah){return af?af(ah):ah;},this['setURLModifier']=function(ah){return af=ah,this;},this[nh(0x3f5)]=function(ah,aj){return ag['push'](ah,aj),this;},this['removeHandler']=function(ah){let aj=ag['indexOf'](ah);return aj!==-0x1&&ag['splice'](aj,0x2),this;},this['getHandler']=function(ah){for(let aj=0x0,ak=ag['length'];aj<ak;aj+=0x2){let am=ag[aj],ap=ag[aj+0x1];if(am['global']&&(am['lastIndex']=0x0),am['test'](ah))return ap;}return null;},this['abort']=function(){const np=nh;return this[np(0x201)]['abort'](),this['_abortController']=null,this;};}get['abortController'](){const nq=d4;return this['_abortController']||(this[nq(0x362)]=new AbortController()),this['_abortController'];}},Qo=new Zo(),$o=class{constructor(a4){const nv=d4;this['manager']=a4===void 0x0?Qo:a4,this['crossOrigin']='anonymous',this['withCredentials']=!0x1,this['path']='',this[nv(0x16c)]='',this['requestHeader']={},typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent('observe',{'detail':this}));}[d4(0x24a)](){}['loadAsync'](a4,a5){let a6=this;return new Promise(function(a7,a8){a6['load'](a4,a7,a5,a8);});}[d4(0x2c2)](){}[d4(0x144)](a4){return this['crossOrigin']=a4,this;}['setWithCredentials'](a4){return this['withCredentials']=a4,this;}[d4(0x76)](a4){return this['path']=a4,this;}['setResourcePath'](a4){return this['resourcePath']=a4,this;}['setRequestHeader'](a4){return this['requestHeader']=a4,this;}['abort'](){return this;}};$o['DEFAULT_MATERIAL_NAME']='__DEFAULT';var es={},ts=class extends Error{constructor(a4,a5){super(a4),this['response']=a5;}},ns=class extends $o{constructor(a4){super(a4),this['mimeType']='',this['responseType']='',this['_abortController']=new AbortController();}['load'](a4,a5,a6,a7){const nw=d4;a4===void 0x0&&(a4=''),this[nw(0x59c)]!==void 0x0&&(a4=this['path']+a4),a4=this['manager']['resolveURL'](a4);let a8=Yo['get']('file:'+a4);if(a8!==void 0x0){this['manager']['itemStart'](a4),setTimeout(()=>{a5&&a5(a8),this['manager']['itemEnd'](a4);},0x0);return;}if(es[a4]!==void 0x0){es[a4][nw(0x403)]({'onLoad':a5,'onProgress':a6,'onError':a7});return;}es[a4]=[],es[a4]['push']({'onLoad':a5,'onProgress':a6,'onError':a7});let a9=new Request(a4,{'headers':new Headers(this['requestHeader']),'credentials':this['withCredentials']?'include':'same-origin','signal':typeof AbortSignal[nw(0x420)]=='function'?AbortSignal['any']([this['_abortController']['signal'],this['manager']['abortController']['signal']]):this['_abortController']['signal']}),ab=this['mimeType'],af=this['responseType'];fetch(a9)['then'](ag=>{const nx=nw;if(ag['status']===0xc8||ag['status']===0x0){if(ag['status']===0x0&&z('FileLoader:\x20HTTP\x20Status\x200\x20received.'),typeof ReadableStream>'u'||ag['body']===void 0x0||ag['body']['getReader']===void 0x0)return ag;let ah=es[a4],aj=ag['body']['getReader'](),ak=ag['headers']['get'](nx(0x2ad))||ag[nx(0x92)]['get'](nx(0x3ae)),am=ak?parseInt(ak):0x0,ap=am!==0x0,aq=0x0,av=new ReadableStream({'start'(aw){ax();function ax(){aj['read']()['then'](({done:ay,value:az})=>{const ny=a1;if(ay)aw['close']();else{aq+=az[ny(0x3f8)];let aA=new ProgressEvent('progress',{'lengthComputable':ap,'loaded':aq,'total':am});for(let aB=0x0,aC=ah['length'];aB<aC;aB++){let aD=ah[aB];aD[ny(0x145)]&&aD[ny(0x145)](aA);}aw['enqueue'](az),ax();}},ay=>{aw['error'](ay);});}}});return new Response(av);}else throw new ts('fetch\x20for\x20\x22'+ag['url']+'\x22\x20responded\x20with\x20'+ag['status']+':\x20'+ag['statusText'],ag);})[nw(0x3d3)](ag=>{const nz=nw;switch(af){case'arraybuffer':return ag['arrayBuffer']();case'blob':return ag['blob']();case'document':return ag['text']()[nz(0x3d3)](ah=>new DOMParser()[nz(0x202)](ah,ab));case'json':return ag['json']();default:if(ab==='')return ag['text']();{let ah=/charset="?([^;"\s]*)"?/i['exec'](ab),aj=ah&&ah[0x1]?ah[0x1]['toLowerCase']():void 0x0,ak=new TextDecoder(aj);return ag[nz(0xa3)]()['then'](am=>ak[nz(0x483)](am));}}})['then'](ag=>{const nA=nw;Yo['add'](nA(0xce)+a4,ag);let ah=es[a4];delete es[a4];for(let aj=0x0,ak=ah['length'];aj<ak;aj++){let am=ah[aj];am['onLoad']&&am['onLoad'](ag);}})['catch'](ag=>{const nB=nw;let ah=es[a4];if(ah===void 0x0)throw this['manager'][nB(0x110)](a4),ag;delete es[a4];for(let aj=0x0,ak=ah['length'];aj<ak;aj++){let am=ah[aj];am['onError']&&am['onError'](ag);}this['manager']['itemError'](a4);})['finally'](()=>{const nC=nw;this[nC(0x3e9)]['itemEnd'](a4);}),this['manager']['itemStart'](a4);}['setResponseType'](a4){return this['responseType']=a4,this;}['setMimeType'](a4){const nD=d4;return this[nD(0x169)]=a4,this;}['abort'](){const nE=d4;return this[nE(0x362)]['abort'](),this['_abortController']=new AbortController(),this;}},rs=new WeakMap(),is=class extends $o{constructor(a4){super(a4);}['load'](a4,a5,a6,a7){const nF=d4;this['path']!==void 0x0&&(a4=this['path']+a4),a4=this['manager']['resolveURL'](a4);let a8=this,a9=Yo['get']('image:'+a4);if(a9!==void 0x0){if(a9['complete']===!0x0)a8['manager'][nF(0x234)](a4),setTimeout(function(){a5&&a5(a9),a8['manager']['itemEnd'](a4);},0x0);else{let aj=rs[nF(0x2f1)](a9);aj===void 0x0&&(aj=[],rs['set'](a9,aj)),aj['push']({'onLoad':a5,'onError':a7});}return a9;}let ab=ft(nF(0x508));function af(){const nG=nF;ah(),a5&&a5(this);let ak=rs['get'](this)||[];for(let am=0x0;am<ak['length'];am++){let ap=ak[am];ap['onLoad']&&ap['onLoad'](this);}rs[nG(0xa1)](this),a8['manager'][nG(0x11a)](a4);}function ag(ak){const nH=nF;ah(),a7&&a7(ak),Yo[nH(0x160)]('image:'+a4);let am=rs['get'](this)||[];for(let ap=0x0;ap<am[nH(0x27a)];ap++){let aq=am[ap];aq[nH(0x31e)]&&aq['onError'](ak);}rs['delete'](this),a8['manager']['itemError'](a4),a8['manager']['itemEnd'](a4);}function ah(){ab['removeEventListener']('load',af,!0x1),ab['removeEventListener']('error',ag,!0x1);}return ab['addEventListener'](nF(0x24a),af,!0x1),ab['addEventListener']('error',ag,!0x1),a4['slice'](0x0,0x5)!=='data:'&&this['crossOrigin']!==void 0x0&&(ab['crossOrigin']=this['crossOrigin']),Yo[nF(0x14b)]('image:'+a4,ab),a8['manager'][nF(0x234)](a4),ab['src']=a4,ab;}},as=class extends $o{constructor(a4){super(a4);}['load'](a4,a5,a6,a7){const nI=d4;let a8=this,a9=new Ai(),ab=new ns(this['manager']);return ab['setResponseType']('arraybuffer'),ab['setRequestHeader'](this['requestHeader']),ab['setPath'](this['path']),ab[nI(0x2f7)](a8['withCredentials']),ab['load'](a4,function(af){const nJ=nI;let ag;try{ag=a8['parse'](af);}catch(ah){a7===void 0x0?B(ah):a7(ah);return;}ag[nJ(0x251)]===void 0x0?ag['data']!==void 0x0&&(a9['image']['width']=ag['width'],a9['image']['height']=ag['height'],a9['image'][nJ(0x26c)]=ag['data']):a9['image']=ag['image'],a9['wrapS']=ag['wrapS']===void 0x0?_:ag['wrapS'],a9['wrapT']=ag[nJ(0x103)]===void 0x0?_:ag[nJ(0x103)],a9[nJ(0x2b8)]=ag[nJ(0x2b8)]===void 0x0?S:ag['magFilter'],a9['minFilter']=ag['minFilter']===void 0x0?S:ag['minFilter'],a9['anisotropy']=ag['anisotropy']===void 0x0?0x1:ag['anisotropy'],ag['colorSpace']!==void 0x0&&(a9['colorSpace']=ag['colorSpace']),ag['flipY']!==void 0x0&&(a9['flipY']=ag['flipY']),ag['format']!==void 0x0&&(a9['format']=ag[nJ(0x196)]),ag['type']!==void 0x0&&(a9['type']=ag[nJ(0x40b)]),ag['mipmaps']!==void 0x0&&(a9[nJ(0x1b8)]=ag[nJ(0x1b8)],a9['minFilter']=w),ag[nJ(0x1d5)]===0x1&&(a9[nJ(0x2f6)]=S),ag[nJ(0x4aa)]!==void 0x0&&(a9[nJ(0x4aa)]=ag[nJ(0x4aa)]),a9[nJ(0x3f1)]=!0x0,a5&&a5(a9,ag);},a6,a7),a9;}},os=class extends $o{constructor(a4){super(a4);}['load'](a4,a5,a6,a7){const nK=d4;let a8=new un(),a9=new is(this['manager']);return a9['setCrossOrigin'](this['crossOrigin']),a9['setPath'](this['path']),a9[nK(0x24a)](a4,function(ab){a8['image']=ab,a8['needsUpdate']=!0x0,a5!==void 0x0&&a5(a8);},a6,a7),a8;}},ss=class extends Vn{constructor(a4,a5=0x1){const nL=d4;super(),this[nL(0x495)]=!0x0,this['type']=nL(0x4b3),this[nL(0x379)]=new Y(a4),this['intensity']=a5;}['dispose'](){const nM=d4;this['dispatchEvent']({'type':nM(0x365)});}['copy'](a4,a5){const nN=d4;return super['copy'](a4,a5),this['color']['copy'](a4[nN(0x379)]),this['intensity']=a4['intensity'],this;}[d4(0x599)](a4){let a5=super['toJSON'](a4);return a5['object']['color']=this['color']['getHex'](),a5['object']['intensity']=this['intensity'],a5;}},cs=class extends ss{constructor(a4,a5,a6){super(a4,a6),this['isHemisphereLight']=!0x0,this['type']='HemisphereLight',this['position']['copy'](Vn['DEFAULT_UP']),this['updateMatrix'](),this['groundColor']=new Y(a5);}['copy'](a4,a5){const nO=d4;return super['copy'](a4,a5),this[nO(0x2c8)]['copy'](a4['groundColor']),this;}['toJSON'](a4){const nP=d4;let a5=super['toJSON'](a4);return a5[nP(0x54f)][nP(0x2c8)]=this['groundColor'][nP(0x4ee)](),a5;}},ls=new J(),us=new W(),ds=new W(),fs=class{constructor(a4){const nQ=d4;this['camera']=a4,this['intensity']=0x1,this['bias']=0x0,this['biasNode']=null,this['normalBias']=0x0,this['radius']=0x1,this['blurSamples']=0x8,this['mapSize']=new U(0x200,0x200),this[nQ(0x35c)]=T,this['map']=null,this['mapPass']=null,this['matrix']=new J(),this['autoUpdate']=!0x0,this['needsUpdate']=!0x1,this[nQ(0x51f)]=new Xi(),this['_frameExtents']=new U(0x1,0x1),this['_viewportCount']=0x1,this['_viewports']=[new q(0x0,0x0,0x1,0x1)];}['getViewportCount'](){return this['_viewportCount'];}[d4(0x2d4)](){const nR=d4;return this[nR(0x51f)];}['updateMatrices'](a4){const nS=d4;let a5=this['camera'],a6=this['matrix'];us['setFromMatrixPosition'](a4['matrixWorld']),a5['position'][nS(0x32f)](us),ds['setFromMatrixPosition'](a4['target']['matrixWorld']),a5['lookAt'](ds),a5['updateMatrixWorld'](),ls['multiplyMatrices'](a5['projectionMatrix'],a5['matrixWorldInverse']),this['_frustum']['setFromProjectionMatrix'](ls,a5['coordinateSystem'],a5['reversedDepth']),a5['coordinateSystem']===0x7d1||a5['reversedDepth']?a6['set'](0.5,0x0,0x0,0.5,0x0,0.5,0x0,0.5,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1):a6['set'](0.5,0x0,0x0,0.5,0x0,0.5,0x0,0.5,0x0,0x0,0.5,0.5,0x0,0x0,0x0,0x1),a6['multiply'](ls);}[d4(0x2e2)](a4){return this['_viewports'][a4];}['getFrameExtents'](){return this['_frameExtents'];}['dispose'](){const nT=d4;this['map']&&this['map'][nT(0x365)](),this['mapPass']&&this['mapPass']['dispose']();}['copy'](a4){const nU=d4;return this['camera']=a4[nU(0x448)][nU(0x26d)](),this['intensity']=a4['intensity'],this['bias']=a4['bias'],this['radius']=a4['radius'],this['autoUpdate']=a4['autoUpdate'],this['needsUpdate']=a4['needsUpdate'],this['normalBias']=a4['normalBias'],this['blurSamples']=a4['blurSamples'],this['mapSize']['copy'](a4['mapSize']),this['biasNode']=a4[nU(0x4a7)],this;}['clone'](){return new this['constructor']()['copy'](this);}['toJSON'](){const nV=d4;let a4={};return this['intensity']!==0x1&&(a4[nV(0x351)]=this['intensity']),this['bias']!==0x0&&(a4['bias']=this['bias']),this[nV(0x3bc)]!==0x0&&(a4['normalBias']=this[nV(0x3bc)]),this['radius']!==0x1&&(a4['radius']=this['radius']),(this['mapSize']['x']!==0x200||this[nV(0x98)]['y']!==0x200)&&(a4['mapSize']=this['mapSize']['toArray']()),a4['camera']=this['camera']['toJSON'](!0x1)['object'],delete a4['camera']['matrix'],a4;}},ps=new W(),ms=new qt(),hs=new W(),gs=class extends Vn{constructor(){const nW=d4;super(),this['isCamera']=!0x0,this[nW(0x40b)]='Camera',this[nW(0x36d)]=new J(),this['projectionMatrix']=new J(),this['projectionMatrixInverse']=new J(),this['coordinateSystem']=lt,this['_reversedDepth']=!0x1;}get['reversedDepth'](){return this['_reversedDepth'];}[d4(0x32f)](a4,a5){const nX=d4;return super['copy'](a4,a5),this['matrixWorldInverse']['copy'](a4['matrixWorldInverse']),this['projectionMatrix']['copy'](a4['projectionMatrix']),this[nX(0x1d0)][nX(0x32f)](a4['projectionMatrixInverse']),this['coordinateSystem']=a4[nX(0x7d)],this;}[d4(0x216)](a4){const nY=d4;return super['getWorldDirection'](a4)[nY(0x344)]();}[d4(0xb3)](a4){const nZ=d4;super['updateMatrixWorld'](a4),this['matrixWorld']['decompose'](ps,ms,hs),hs['x']===0x1&&hs['y']===0x1&&hs['z']===0x1?this['matrixWorldInverse'][nZ(0x32f)](this['matrixWorld'])['invert']():this[nZ(0x36d)]['compose'](ps,ms,hs['set'](0x1,0x1,0x1))['invert']();}[d4(0x20e)](a4,a5){const o0=d4;super['updateWorldMatrix'](a4,a5),this['matrixWorld'][o0(0xe8)](ps,ms,hs),hs['x']===0x1&&hs['y']===0x1&&hs['z']===0x1?this['matrixWorldInverse']['copy'](this['matrixWorld'])['invert']():this['matrixWorldInverse']['compose'](ps,ms,hs['set'](0x1,0x1,0x1))['invert']();}['clone'](){return new this['constructor']()['copy'](this);}},_s=new W(),vs=new U(),ys=new U(),bs=class extends gs{constructor(a4=0x32,a5=0x1,a6=0.1,a7=0x7d0){const o1=d4;super(),this[o1(0xc0)]=!0x0,this['type']='PerspectiveCamera',this['fov']=a4,this[o1(0x173)]=0x1,this['near']=a6,this['far']=a7,this[o1(0x4bb)]=0xa,this[o1(0x79)]=a5,this[o1(0x4b4)]=null,this['filmGauge']=0x23,this['filmOffset']=0x0,this['updateProjectionMatrix']();}['copy'](a4,a5){const o2=d4;return super['copy'](a4,a5),this['fov']=a4['fov'],this['zoom']=a4['zoom'],this['near']=a4['near'],this['far']=a4['far'],this['focus']=a4['focus'],this['aspect']=a4['aspect'],this[o2(0x4b4)]=a4[o2(0x4b4)]===null?null:Object['assign']({},a4['view']),this['filmGauge']=a4['filmGauge'],this['filmOffset']=a4['filmOffset'],this;}['setFocalLength'](a4){let a5=0.5*this['getFilmHeight']()/a4;this['fov']=Tt*0x2*Math['atan'](a5),this['updateProjectionMatrix']();}['getFocalLength'](){let a4=Math['tan'](wt*0.5*this['fov']);return 0.5*this['getFilmHeight']()/a4;}['getEffectiveFOV'](){return Tt*0x2*Math['atan'](Math['tan'](wt*0.5*this['fov'])/this['zoom']);}[d4(0x58c)](){const o3=d4;return this[o3(0x59d)]*Math['min'](this['aspect'],0x1);}['getFilmHeight'](){const o4=d4;return this['filmGauge']/Math[o4(0x360)](this['aspect'],0x1);}['getViewBounds'](a4,a5,a6){const o5=d4;_s['set'](-0x1,-0x1,0.5)[o5(0x510)](this['projectionMatrixInverse']),a5['set'](_s['x'],_s['y'])['multiplyScalar'](-a4/_s['z']),_s['set'](0x1,0x1,0.5)['applyMatrix4'](this[o5(0x1d0)]),a6[o5(0x479)](_s['x'],_s['y'])['multiplyScalar'](-a4/_s['z']);}['getViewSize'](a4,a5){return this['getViewBounds'](a4,vs,ys),a5['subVectors'](ys,vs);}['setViewOffset'](a4,a5,a6,a7,a8,a9){const o6=d4;this['aspect']=a4/a5,this['view']===null&&(this['view']={'enabled':!0x0,'fullWidth':0x1,'fullHeight':0x1,'offsetX':0x0,'offsetY':0x0,'width':0x1,'height':0x1}),this['view']['enabled']=!0x0,this['view'][o6(0x2c9)]=a4,this['view']['fullHeight']=a5,this['view']['offsetX']=a6,this['view']['offsetY']=a7,this['view']['width']=a8,this['view']['height']=a9,this['updateProjectionMatrix']();}['clearViewOffset'](){this['view']!==null&&(this['view']['enabled']=!0x1),this['updateProjectionMatrix']();}['updateProjectionMatrix'](){const o7=d4;let a4=this['near'],a5=a4*Math['tan'](wt*0.5*this[o7(0x4c0)])/this[o7(0x173)],a6=0x2*a5,a7=this[o7(0x79)]*a6,a8=-0.5*a7,a9=this['view'];if(this['view']!==null&&this['view']['enabled']){let af=a9['fullWidth'],ag=a9['fullHeight'];a8+=a9['offsetX']*a7/af,a5-=a9[o7(0x17d)]*a6/ag,a7*=a9['width']/af,a6*=a9['height']/ag;}let ab=this['filmOffset'];ab!==0x0&&(a8+=a4*ab/this['getFilmWidth']()),this['projectionMatrix'][o7(0x49f)](a8,a8+a7,a5,a5-a6,a4,this['far'],this['coordinateSystem'],this['reversedDepth']),this['projectionMatrixInverse'][o7(0x32f)](this['projectionMatrix'])[o7(0x1e9)]();}['toJSON'](a4){const o8=d4;let a5=super['toJSON'](a4);return a5['object']['fov']=this[o8(0x4c0)],a5['object'][o8(0x173)]=this['zoom'],a5['object']['near']=this['near'],a5['object']['far']=this[o8(0x512)],a5['object']['focus']=this['focus'],a5['object']['aspect']=this['aspect'],this['view']!==null&&(a5['object']['view']=Object['assign']({},this['view'])),a5['object'][o8(0x59d)]=this['filmGauge'],a5['object'][o8(0x17b)]=this['filmOffset'],a5;}},xs=class extends fs{constructor(){const o9=d4;super(new bs(0x32,0x1,0.5,0x1f4)),this[o9(0x13e)]=!0x0,this['focus']=0x1,this['aspect']=0x1;}['updateMatrices'](a4){const ob=d4;let a5=this[ob(0x448)],a6=Tt*0x2*a4['angle']*this['focus'],a7=this['mapSize']['width']/this[ob(0x98)]['height']*this[ob(0x79)],a8=a4['distance']||a5['far'];(a6!==a5[ob(0x4c0)]||a7!==a5['aspect']||a8!==a5['far'])&&(a5['fov']=a6,a5['aspect']=a7,a5['far']=a8,a5['updateProjectionMatrix']()),super['updateMatrices'](a4);}['copy'](a4){const of=d4;return super[of(0x32f)](a4),this['focus']=a4['focus'],this;}},Ss=class extends ss{constructor(a4,a5,a6=0x0,a7=Math['PI']/0x3,a8=0x0,a9=0x2){const og=d4;super(a4,a5),this[og(0x407)]=!0x0,this[og(0x40b)]=og(0x18e),this['position'][og(0x32f)](Vn['DEFAULT_UP']),this['updateMatrix'](),this['target']=new Vn(),this[og(0x1e8)]=a6,this['angle']=a7,this['penumbra']=a8,this[og(0x35e)]=a9,this[og(0x146)]=null,this[og(0x43a)]=new xs();}get['power'](){return this['intensity']*Math['PI'];}set['power'](a4){this['intensity']=a4/Math['PI'];}['dispose'](){const oh=d4;super['dispose'](),this['shadow'][oh(0x365)]();}['copy'](a4,a5){const oj=d4;return super['copy'](a4,a5),this[oj(0x1e8)]=a4['distance'],this['angle']=a4['angle'],this[oj(0x95)]=a4['penumbra'],this['decay']=a4[oj(0x35e)],this['target']=a4['target']['clone'](),this['map']=a4['map'],this['shadow']=a4['shadow']['clone'](),this;}['toJSON'](a4){const ok=d4;let a5=super[ok(0x599)](a4);return a5[ok(0x54f)]['distance']=this['distance'],a5['object']['angle']=this['angle'],a5['object'][ok(0x35e)]=this['decay'],a5['object']['penumbra']=this['penumbra'],a5['object']['target']=this['target']['uuid'],this[ok(0x146)]&&this[ok(0x146)][ok(0x449)]&&(a5['object']['map']=this['map']['toJSON'](a4)['uuid']),a5['object'][ok(0x43a)]=this['shadow']['toJSON'](),a5;}},Cs=class extends fs{constructor(){super(new bs(0x5a,0x1,0.5,0x1f4)),this['isPointLightShadow']=!0x0;}},ws=class extends ss{constructor(a4,a5,a6=0x0,a7=0x2){super(a4,a5),this['isPointLight']=!0x0,this['type']='PointLight',this['distance']=a6,this['decay']=a7,this['shadow']=new Cs();}get['power'](){const om=d4;return this[om(0x351)]*0x4*Math['PI'];}set['power'](a4){this['intensity']=a4/(0x4*Math['PI']);}[d4(0x365)](){super['dispose'](),this['shadow']['dispose']();}['copy'](a4,a5){const op=d4;return super['copy'](a4,a5),this[op(0x1e8)]=a4['distance'],this['decay']=a4['decay'],this['shadow']=a4['shadow']['clone'](),this;}['toJSON'](a4){let a5=super['toJSON'](a4);return a5['object']['distance']=this['distance'],a5['object']['decay']=this['decay'],a5['object']['shadow']=this['shadow']['toJSON'](),a5;}},Ts=class extends gs{constructor(a4=-0x1,a5=0x1,a6=0x1,a7=-0x1,a8=0.1,a9=0x7d0){const oq=d4;super(),this['isOrthographicCamera']=!0x0,this['type']='OrthographicCamera',this['zoom']=0x1,this[oq(0x4b4)]=null,this['left']=a4,this['right']=a5,this['top']=a6,this['bottom']=a7,this[oq(0x56b)]=a8,this['far']=a9,this['updateProjectionMatrix']();}['copy'](a4,a5){const ov=d4;return super['copy'](a4,a5),this['left']=a4['left'],this['right']=a4['right'],this['top']=a4[ov(0x4e2)],this['bottom']=a4[ov(0x377)],this[ov(0x56b)]=a4[ov(0x56b)],this['far']=a4['far'],this[ov(0x173)]=a4['zoom'],this['view']=a4['view']===null?null:Object[ov(0x130)]({},a4[ov(0x4b4)]),this;}[d4(0x10d)](a4,a5,a6,a7,a8,a9){const ow=d4;this['view']===null&&(this['view']={'enabled':!0x0,'fullWidth':0x1,'fullHeight':0x1,'offsetX':0x0,'offsetY':0x0,'width':0x1,'height':0x1}),this[ow(0x4b4)]['enabled']=!0x0,this['view'][ow(0x2c9)]=a4,this[ow(0x4b4)]['fullHeight']=a5,this['view'][ow(0x2f3)]=a6,this['view']['offsetY']=a7,this['view']['width']=a8,this['view'][ow(0x45f)]=a9,this['updateProjectionMatrix']();}['clearViewOffset'](){const ox=d4;this[ox(0x4b4)]!==null&&(this[ox(0x4b4)]['enabled']=!0x1),this['updateProjectionMatrix']();}['updateProjectionMatrix'](){const oy=d4;let a4=(this[oy(0x316)]-this['left'])/(0x2*this['zoom']),a5=(this[oy(0x4e2)]-this['bottom'])/(0x2*this['zoom']),a6=(this['right']+this[oy(0x171)])/0x2,a7=(this['top']+this[oy(0x377)])/0x2,a8=a6-a4,a9=a6+a4,ab=a7+a5,af=a7-a5;if(this['view']!==null&&this['view']['enabled']){let ag=(this['right']-this['left'])/this['view']['fullWidth']/this['zoom'],ah=(this['top']-this['bottom'])/this['view']['fullHeight']/this['zoom'];a8+=ag*this[oy(0x4b4)][oy(0x2f3)],a9=a8+ag*this['view']['width'],ab-=ah*this['view']['offsetY'],af=ab-ah*this['view'][oy(0x45f)];}this['projectionMatrix']['makeOrthographic'](a8,a9,ab,af,this['near'],this['far'],this['coordinateSystem'],this['reversedDepth']),this['projectionMatrixInverse']['copy'](this['projectionMatrix'])['invert']();}[d4(0x599)](a4){const oz=d4;let a5=super['toJSON'](a4);return a5['object'][oz(0x173)]=this['zoom'],a5['object']['left']=this['left'],a5['object'][oz(0x316)]=this['right'],a5['object']['top']=this['top'],a5[oz(0x54f)]['bottom']=this['bottom'],a5[oz(0x54f)]['near']=this['near'],a5[oz(0x54f)]['far']=this['far'],this[oz(0x4b4)]!==null&&(a5['object']['view']=Object['assign']({},this['view'])),a5;}},Es=class extends fs{constructor(){const oA=d4;super(new Ts(-0x5,0x5,0x5,-0x5,0.5,0x1f4)),this[oA(0x1a0)]=!0x0;}},Ds=class extends ss{constructor(a4,a5){const oB=d4;super(a4,a5),this['isDirectionalLight']=!0x0,this['type']='DirectionalLight',this[oB(0x478)]['copy'](Vn['DEFAULT_UP']),this['updateMatrix'](),this['target']=new Vn(),this['shadow']=new Es();}[d4(0x365)](){super['dispose'](),this['shadow']['dispose']();}['copy'](a4){const oC=d4;return super['copy'](a4),this[oC(0x33b)]=a4[oC(0x33b)]['clone'](),this['shadow']=a4['shadow'][oC(0x26d)](),this;}[d4(0x599)](a4){const oD=d4;let a5=super[oD(0x599)](a4);return a5['object']['shadow']=this['shadow']['toJSON'](),a5['object']['target']=this[oD(0x33b)]['uuid'],a5;}},Os=class extends ss{constructor(a4,a5){super(a4,a5),this['isAmbientLight']=!0x0,this['type']='AmbientLight';}},ks=class extends ss{constructor(a4,a5,a6=0xa,a7=0xa){super(a4,a5),this['isRectAreaLight']=!0x0,this['type']='RectAreaLight',this['width']=a6,this['height']=a7;}get['power'](){const oE=d4;return this[oE(0x351)]*this['width']*this['height']*Math['PI'];}set[d4(0x213)](a4){const oF=d4;this[oF(0x351)]=a4/(this['width']*this['height']*Math['PI']);}[d4(0x32f)](a4){return super['copy'](a4),this['width']=a4['width'],this['height']=a4['height'],this;}['toJSON'](a4){const oG=d4;let a5=super[oG(0x599)](a4);return a5[oG(0x54f)][oG(0x426)]=this[oG(0x426)],a5['object']['height']=this[oG(0x45f)],a5;}},As=class{static['extractUrlBase'](a4){const oH=d4;let a5=a4[oH(0x421)]('/');return a5===-0x1?'./':a4['slice'](0x0,a5+0x1);}static['resolveURL'](a4,a5){const oI=d4;return typeof a4!='string'||a4===''?'':(/^https?:\/\//i['test'](a5)&&/^\//['test'](a4)&&(a5=a5[oI(0x440)](/(^https?:\/\/[^\/]+).*/i,'$1')),/^(https?:)?\/\//i['test'](a4)||/^data:.*,.*$/i['test'](a4)||/^blob:.*$/i[oI(0x227)](a4)?a4:a5+a4);}},js=new WeakMap(),Ms=class extends $o{constructor(a4){const oJ=d4;super(a4),this[oJ(0x267)]=!0x0,typeof createImageBitmap>'u'&&z('ImageBitmapLoader:\x20createImageBitmap()\x20not\x20supported.'),typeof fetch>'u'&&z('ImageBitmapLoader:\x20fetch()\x20not\x20supported.'),this['options']={'premultiplyAlpha':'none'},this['_abortController']=new AbortController();}['setOptions'](a4){return this['options']=a4,this;}['load'](a4,a5,a6,a7){const oL=d4;a4===void 0x0&&(a4=''),this['path']!==void 0x0&&(a4=this['path']+a4),a4=this['manager']['resolveURL'](a4);let a8=this,a9=Yo['get']('image-bitmap:'+a4);if(a9!==void 0x0){if(a8['manager']['itemStart'](a4),a9['then']){a9['then'](ag=>{const oK=a1;js['has'](a9)===!0x0?(a7&&a7(js['get'](a9)),a8['manager']['itemError'](a4),a8[oK(0x3e9)]['itemEnd'](a4)):(a5&&a5(ag),a8['manager']['itemEnd'](a4));});return;}setTimeout(function(){a5&&a5(a9),a8['manager']['itemEnd'](a4);},0x0);return;}let ab={};ab['credentials']=this['crossOrigin']===oL(0x2ba)?'same-origin':'include',ab['headers']=this[oL(0xa4)],ab['signal']=typeof AbortSignal['any']=='function'?AbortSignal['any']([this['_abortController']['signal'],this['manager']['abortController'][oL(0x261)]]):this['_abortController']['signal'];let af=fetch(a4,ab)['then'](function(ag){return ag['blob']();})['then'](function(ag){const oM=oL;return createImageBitmap(ag,Object[oM(0x130)](a8['options'],{'colorSpaceConversion':'none'}));})['then'](function(ag){const oN=oL;Yo['add']('image-bitmap:'+a4,ag),a5&&a5(ag),a8[oN(0x3e9)]['itemEnd'](a4);})['catch'](function(ag){const oO=oL;a7&&a7(ag),js['set'](af,ag),Yo['remove'](oO(0x4f9)+a4),a8['manager']['itemError'](a4),a8['manager']['itemEnd'](a4);});Yo[oL(0x14b)]('image-bitmap:'+a4,af),a8['manager']['itemStart'](a4);}['abort'](){return this['_abortController']['abort'](),this['_abortController']=new AbortController(),this;}},Ns=-0x5a,Ps=0x1,Fs=class extends Vn{constructor(a4,a5,a6){const oP=d4;super(),this['type']=oP(0x22c),this['renderTarget']=a6,this[oP(0x7d)]=null,this['activeMipmapLevel']=0x0;let a7=new bs(Ns,Ps,a4,a5);a7['layers']=this['layers'],this[oP(0x14b)](a7);let a8=new bs(Ns,Ps,a4,a5);a8['layers']=this['layers'],this['add'](a8);let a9=new bs(Ns,Ps,a4,a5);a9['layers']=this['layers'],this[oP(0x14b)](a9);let ab=new bs(Ns,Ps,a4,a5);ab[oP(0x9d)]=this['layers'],this['add'](ab);let af=new bs(Ns,Ps,a4,a5);af['layers']=this['layers'],this['add'](af);let ag=new bs(Ns,Ps,a4,a5);ag['layers']=this['layers'],this[oP(0x14b)](ag);}['updateCoordinateSystem'](){const oQ=d4;let a4=this['coordinateSystem'],a5=this[oQ(0x314)]['concat'](),[a6,a7,a8,a9,ab,af]=a5;for(let ag of a5)this[oQ(0x160)](ag);if(a4===0x7d0)a6['up']['set'](0x0,0x1,0x0),a6['lookAt'](0x1,0x0,0x0),a7['up']['set'](0x0,0x1,0x0),a7[oQ(0x4d8)](-0x1,0x0,0x0),a8['up']['set'](0x0,0x0,-0x1),a8['lookAt'](0x0,0x1,0x0),a9['up']['set'](0x0,0x0,0x1),a9['lookAt'](0x0,-0x1,0x0),ab['up'][oQ(0x479)](0x0,0x1,0x0),ab['lookAt'](0x0,0x0,0x1),af['up'][oQ(0x479)](0x0,0x1,0x0),af['lookAt'](0x0,0x0,-0x1);else{if(a4===0x7d1)a6['up']['set'](0x0,-0x1,0x0),a6['lookAt'](-0x1,0x0,0x0),a7['up']['set'](0x0,-0x1,0x0),a7['lookAt'](0x1,0x0,0x0),a8['up'][oQ(0x479)](0x0,0x0,0x1),a8[oQ(0x4d8)](0x0,0x1,0x0),a9['up']['set'](0x0,0x0,-0x1),a9['lookAt'](0x0,-0x1,0x0),ab['up']['set'](0x0,-0x1,0x0),ab['lookAt'](0x0,0x0,0x1),af['up']['set'](0x0,-0x1,0x0),af['lookAt'](0x0,0x0,-0x1);else throw Error(oQ(0xcc)+a4);}for(let ah of a5)this['add'](ah),ah['updateMatrixWorld']();}['update'](a4,a5){const oR=d4;this['parent']===null&&this['updateMatrixWorld']();let {renderTarget:a6,activeMipmapLevel:a7}=this;this['coordinateSystem']!==a4['coordinateSystem']&&(this['coordinateSystem']=a4['coordinateSystem'],this['updateCoordinateSystem']());let [a8,a9,ab,af,ag,ah]=this['children'],aj=a4[oR(0x100)](),ak=a4['getActiveCubeFace'](),am=a4['getActiveMipmapLevel'](),ap=a4['xr']['enabled'];a4['xr']['enabled']=!0x1;let aq=a6['texture']['generateMipmaps'];a6['texture'][oR(0x4aa)]=!0x1;let av=!0x1;av=a4['isWebGLRenderer']===!0x0?a4['state']['buffers'][oR(0x11c)]['getReversed']():a4['reversedDepthBuffer'],a4[oR(0x112)](a6,0x0,a7),av&&a4['autoClear']===!0x1&&a4[oR(0x40d)](),a4['render'](a5,a8),a4['setRenderTarget'](a6,0x1,a7),av&&a4[oR(0x3ed)]===!0x1&&a4['clearDepth'](),a4['render'](a5,a9),a4[oR(0x112)](a6,0x2,a7),av&&a4['autoClear']===!0x1&&a4['clearDepth'](),a4['render'](a5,ab),a4['setRenderTarget'](a6,0x3,a7),av&&a4['autoClear']===!0x1&&a4[oR(0x40d)](),a4['render'](a5,af),a4['setRenderTarget'](a6,0x4,a7),av&&a4['autoClear']===!0x1&&a4['clearDepth'](),a4['render'](a5,ag),a6['texture']['generateMipmaps']=aq,a4['setRenderTarget'](a6,0x5,a7),av&&a4['autoClear']===!0x1&&a4['clearDepth'](),a4['render'](a5,ah),a4[oR(0x112)](aj,ak,am),a4['xr']['enabled']=ap,a6['texture']['needsPMREMUpdate']=!0x0;}},Is=class extends bs{constructor(a4=[]){super(),this['isArrayCamera']=!0x0,this['isMultiViewCamera']=!0x1,this['cameras']=a4;}},Ls=class{constructor(){const oS=d4;this['_previousTime']=0x0,this['_currentTime']=0x0,this[oS(0x4e0)]=performance['now'](),this['_delta']=0x0,this['_elapsed']=0x0,this['_timescale']=0x1,this['_document']=null,this['_pageVisibilityHandler']=null;}['connect'](a4){const oT=d4;this[oT(0x324)]=a4,a4['hidden']!==void 0x0&&(this[oT(0x3d5)]=Rs[oT(0x441)](this),a4['addEventListener']('visibilitychange',this['_pageVisibilityHandler'],!0x1));}[d4(0x336)](){const oU=d4;this['_pageVisibilityHandler']!==null&&(this['_document'][oU(0x40e)]('visibilitychange',this['_pageVisibilityHandler']),this[oU(0x3d5)]=null),this['_document']=null;}['getDelta'](){const oV=d4;return this[oV(0x3b5)]/0x3e8;}['getElapsed'](){return this['_elapsed']/0x3e8;}['getTimescale'](){const oW=d4;return this[oW(0x1bf)];}['setTimescale'](a4){return this['_timescale']=a4,this;}['reset'](){const oX=d4;return this[oX(0x50f)]=performance['now']()-this['_startTime'],this;}['dispose'](){const oY=d4;this[oY(0x336)]();}['update'](a4){const oZ=d4;return this['_pageVisibilityHandler']!==null&&this[oZ(0x324)]['hidden']===!0x0?this['_delta']=0x0:(this['_previousTime']=this['_currentTime'],this['_currentTime']=(a4===void 0x0?performance['now']():a4)-this['_startTime'],this[oZ(0x3b5)]=(this['_currentTime']-this['_previousTime'])*this['_timescale'],this[oZ(0x1ec)]+=this['_delta']),this;}};function Rs(){this['_document']['hidden']===!0x1&&this['reset']();}var zs=class{constructor(a4,a5,a6){const p0=d4;this[p0(0x481)]=a4,this[p0(0x369)]=a6;let a7,a8,a9;switch(a5){case'quaternion':a7=this['_slerp'],a8=this['_slerpAdditive'],a9=this['_setAdditiveIdentityQuaternion'],this['buffer']=new Float64Array(a6*0x6),this['_workIndex']=0x5;break;case'string':case'bool':a7=this['_select'],a8=this['_select'],a9=this['_setAdditiveIdentityOther'],this['buffer']=Array(a6*0x5);break;default:a7=this[p0(0x500)],a8=this['_lerpAdditive'],a9=this['_setAdditiveIdentityNumeric'],this['buffer']=new Float64Array(a6*0x5);}this[p0(0x55d)]=a7,this['_mixBufferRegionAdditive']=a8,this['_setIdentity']=a9,this['_origIndex']=0x3,this['_addIndex']=0x4,this['cumulativeWeight']=0x0,this['cumulativeWeightAdditive']=0x0,this['useCount']=0x0,this['referenceCount']=0x0;}['accumulate'](a4,a5){const p1=d4;let a6=this[p1(0x154)],a7=this['valueSize'],a8=a4*a7+a7,a9=this['cumulativeWeight'];if(a9===0x0){for(let ab=0x0;ab!==a7;++ab)a6[a8+ab]=a6[ab];a9=a5;}else{a9+=a5;let af=a5/a9;this['_mixBufferRegion'](a6,a8,0x0,af,a7);}this['cumulativeWeight']=a9;}[d4(0x228)](a4){const p2=d4;let a5=this['buffer'],a6=this['valueSize'],a7=a6*this['_addIndex'];this['cumulativeWeightAdditive']===0x0&&this[p2(0x3b4)](),this['_mixBufferRegionAdditive'](a5,a7,0x0,a4,a6),this[p2(0x20d)]+=a4;}['apply'](a4){let a5=this['valueSize'],a6=this['buffer'],a7=a4*a5+a5,a8=this['cumulativeWeight'],a9=this['cumulativeWeightAdditive'],ab=this['binding'];if(this['cumulativeWeight']=0x0,this['cumulativeWeightAdditive']=0x0,a8<0x1){let af=a5*this['_origIndex'];this['_mixBufferRegion'](a6,a7,af,0x1-a8,a5);}a9>0x0&&this['_mixBufferRegionAdditive'](a6,a7,this['_addIndex']*a5,0x1,a5);for(let ag=a5,ah=a5+a5;ag!==ah;++ag)if(a6[ag]!==a6[ag+a5]){ab['setValue'](a6,a7);break;}}['saveOriginalState'](){const p3=d4;let a4=this['binding'],a5=this['buffer'],a6=this['valueSize'],a7=a6*this['_origIndex'];a4['getValue'](a5,a7);for(let a8=a6,a9=a7;a8!==a9;++a8)a5[a8]=a5[a7+a8%a6];this[p3(0x3b4)](),this['cumulativeWeight']=0x0,this['cumulativeWeightAdditive']=0x0;}['restoreOriginalState'](){let a4=this['valueSize']*0x3;this['binding']['setValue'](this['buffer'],a4);}[d4(0x3bd)](){let a4=this['_addIndex']*this['valueSize'],a5=a4+this['valueSize'];for(let a6=a4;a6<a5;a6++)this['buffer'][a6]=0x0;}['_setAdditiveIdentityQuaternion'](){this['_setAdditiveIdentityNumeric'](),this['buffer'][this['_addIndex']*this['valueSize']+0x3]=0x1;}['_setAdditiveIdentityOther'](){const p4=d4;let a4=this['_origIndex']*this['valueSize'],a5=this['_addIndex']*this['valueSize'];for(let a6=0x0;a6<this['valueSize'];a6++)this[p4(0x154)][a5+a6]=this[p4(0x154)][a4+a6];}['_select'](a4,a5,a6,a7,a8){if(a7>=0.5){for(let a9=0x0;a9!==a8;++a9)a4[a5+a9]=a4[a6+a9];}}[d4(0x445)](a4,a5,a6,a7){const p5=d4;qt[p5(0x3dd)](a4,a5,a4,a5,a4,a6,a7);}['_slerpAdditive'](a4,a5,a6,a7,a8){let a9=this['_workIndex']*a8;qt['multiplyQuaternionsFlat'](a4,a9,a4,a5,a4,a6),qt['slerpFlat'](a4,a5,a4,a5,a4,a9,a7);}['_lerp'](a4,a5,a6,a7,a8){let a9=0x1-a7;for(let ab=0x0;ab!==a8;++ab){let af=a5+ab;a4[af]=a4[af]*a9+a4[a6+ab]*a7;}}['_lerpAdditive'](a4,a5,a6,a7,a8){for(let a9=0x0;a9!==a8;++a9){let ab=a5+a9;a4[ab]=a4[ab]+a4[a6+a9]*a7;}}},Bs='\x5c[\x5c]\x5c.:\x5c/',Vs=RegExp('['+Bs+']','g'),Hs='[^'+Bs+']',Us='[^'+Bs['replace']('\x5c.','')+']',Ws='((?:WC+[\x5c/:])*)'['replace']('WC',Hs),Gs=d4(0x571)['replace']('WCOD',Us),Ks='(?:\x5c.(WC+)(?:\x5c[(.+)\x5c])?)?'['replace']('WC',Hs),qs='\x5c.(WC+)(?:\x5c[(.+)\x5c])?'['replace']('WC',Hs),Js=RegExp('^'+Ws+Gs+Ks+qs+'$'),Ys=['material','materials','bones','map'],Xs=class{constructor(a4,a5,a6){const p6=d4;let a7=a6||Z[p6(0x3c9)](a5);this['_targetGroup']=a4,this[p6(0x109)]=a4['subscribe_'](a5,a7);}['getValue'](a4,a5){const p7=d4;this['bind']();let a6=this[p7(0x15f)]['nCachedObjects_'],a7=this['_bindings'][a6];a7!==void 0x0&&a7['getValue'](a4,a5);}['setValue'](a4,a5){const p8=d4;let a6=this['_bindings'];for(let a7=this[p8(0x15f)][p8(0x44a)],a8=a6['length'];a7!==a8;++a7)a6[a7]['setValue'](a4,a5);}['bind'](){const p9=d4;let a4=this['_bindings'];for(let a5=this[p9(0x15f)]['nCachedObjects_'],a6=a4['length'];a5!==a6;++a5)a4[a5]['bind']();}['unbind'](){let a4=this['_bindings'];for(let a5=this['_targetGroup']['nCachedObjects_'],a6=a4['length'];a5!==a6;++a5)a4[a5]['unbind']();}},Z=class e{constructor(a4,a5,a6){this['path']=a5,this['parsedPath']=a6||e['parseTrackName'](a5),this['node']=e['findNode'](a4,this['parsedPath']['nodeName']),this['rootNode']=a4,this['getValue']=this['_getValue_unbound'],this['setValue']=this['_setValue_unbound'];}static['create'](a4,a5,a6){const pb=d4;return a4&&a4['isAnimationObjectGroup']?new e[(pb(0x4ae))](a4,a5,a6):new e(a4,a5,a6);}static['sanitizeNodeName'](a4){return a4['replace'](/\s/g,'_')['replace'](Vs,'');}static[d4(0x3c9)](a4){const pf=d4;let a5=Js[pf(0x16b)](a4);if(a5===null)throw Error('PropertyBinding:\x20Cannot\x20parse\x20trackName:\x20'+a4);let a6={'nodeName':a5[0x2],'objectName':a5[0x3],'objectIndex':a5[0x4],'propertyName':a5[0x5],'propertyIndex':a5[0x6]},a7=a6[pf(0x386)]&&a6['nodeName']['lastIndexOf']('.');if(a7!==void 0x0&&a7!==-0x1){let a8=a6[pf(0x386)]['substring'](a7+0x1);Ys['indexOf'](a8)!==-0x1&&(a6['nodeName']=a6['nodeName'][pf(0x257)](0x0,a7),a6[pf(0x3ab)]=a8);}if(a6['propertyName']===null||a6['propertyName']['length']===0x0)throw Error(pf(0x24f)+a4);return a6;}static[d4(0x482)](a4,a5){const pg=d4;if(a5===void 0x0||a5===''||a5==='.'||a5===-0x1||a5===a4['name']||a5===a4[pg(0x2ca)])return a4;if(a4[pg(0xd6)]){let a6=a4['skeleton']['getBoneByName'](a5);if(a6!==void 0x0)return a6;}if(a4['children']){let a7=function(a9){for(let ab=0x0;ab<a9['length'];ab++){let af=a9[ab];if(af['name']===a5||af['uuid']===a5)return af;let ag=a7(af['children']);if(ag)return ag;}return null;},a8=a7(a4['children']);if(a8)return a8;}return null;}['_getValue_unavailable'](){}['_setValue_unavailable'](){}['_getValue_direct'](a4,a5){const ph=d4;a4[a5]=this['targetObject'][this[ph(0x2c0)]];}['_getValue_array'](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a4[a5++]=a6[a7];}['_getValue_arrayElement'](a4,a5){const pj=d4;a4[a5]=this['resolvedProperty'][this[pj(0x4d5)]];}['_getValue_toArray'](a4,a5){this['resolvedProperty']['toArray'](a4,a5);}['_setValue_direct'](a4,a5){this['targetObject'][this['propertyName']]=a4[a5];}[d4(0x200)](a4,a5){const pk=d4;this['targetObject'][this[pk(0x2c0)]]=a4[a5],this['targetObject'][pk(0x3f1)]=!0x0;}['_setValue_direct_setMatrixWorldNeedsUpdate'](a4,a5){const pm=d4;this['targetObject'][this['propertyName']]=a4[a5],this[pm(0x2fe)]['matrixWorldNeedsUpdate']=!0x0;}[d4(0x1ff)](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a6[a7]=a4[a5++];}['_setValue_array_setNeedsUpdate'](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a6[a7]=a4[a5++];this['targetObject']['needsUpdate']=!0x0;}['_setValue_array_setMatrixWorldNeedsUpdate'](a4,a5){const pp=d4;let a6=this[pp(0x4e6)];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a6[a7]=a4[a5++];this['targetObject']['matrixWorldNeedsUpdate']=!0x0;}['_setValue_arrayElement'](a4,a5){this['resolvedProperty'][this['propertyIndex']]=a4[a5];}[d4(0x547)](a4,a5){const pq=d4;this['resolvedProperty'][this[pq(0x4d5)]]=a4[a5],this['targetObject']['needsUpdate']=!0x0;}['_setValue_arrayElement_setMatrixWorldNeedsUpdate'](a4,a5){const pv=d4;this['resolvedProperty'][this['propertyIndex']]=a4[a5],this[pv(0x2fe)][pv(0x47c)]=!0x0;}['_setValue_fromArray'](a4,a5){const pw=d4;this[pw(0x4e6)]['fromArray'](a4,a5);}['_setValue_fromArray_setNeedsUpdate'](a4,a5){const px=d4;this['resolvedProperty'][px(0x3c4)](a4,a5),this['targetObject']['needsUpdate']=!0x0;}['_setValue_fromArray_setMatrixWorldNeedsUpdate'](a4,a5){const py=d4;this['resolvedProperty']['fromArray'](a4,a5),this['targetObject'][py(0x47c)]=!0x0;}['_getValue_unbound'](a4,a5){const pz=d4;this[pz(0x441)](),this['getValue'](a4,a5);}[d4(0x50a)](a4,a5){const pA=d4;this[pA(0x441)](),this['setValue'](a4,a5);}['bind'](){const pB=d4;let a4=this['node'],a5=this['parsedPath'],a6=a5['objectName'],a7=a5['propertyName'],a8=a5['propertyIndex'];if(a4||(a4=e['findNode'](this['rootNode'],a5['nodeName']),this['node']=a4),this['getValue']=this['_getValue_unavailable'],this['setValue']=this['_setValue_unavailable'],!a4){z(pB(0x331)+this['path']+'.');return;}if(a6){let ag=a5['objectIndex'];switch(a6){case pB(0x415):if(!a4[pB(0xd7)]){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material\x20as\x20node\x20does\x20not\x20have\x20a\x20material.',this);return;}if(!a4['material']['materials']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material.materials\x20as\x20node.material\x20does\x20not\x20have\x20a\x20materials\x20array.',this);return;}a4=a4[pB(0xd7)]['materials'];break;case'bones':if(!a4['skeleton']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20bones\x20as\x20node\x20does\x20not\x20have\x20a\x20skeleton.',this);return;}a4=a4[pB(0xd6)][pB(0x56a)];for(let ah=0x0;ah<a4['length'];ah++)if(a4[ah]['name']===ag){ag=ah;break;}break;case'map':if('map'in a4){a4=a4['map'];break;}if(!a4['material']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material\x20as\x20node\x20does\x20not\x20have\x20a\x20material.',this);return;}if(!a4[pB(0xd7)]['map']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material.map\x20as\x20node.material\x20does\x20not\x20have\x20a\x20map.',this);return;}a4=a4[pB(0xd7)]['map'];break;default:if(a4[a6]===void 0x0){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20objectName\x20of\x20node\x20undefined.',this);return;}a4=a4[a6];}if(ag!==void 0x0){if(a4[ag]===void 0x0){B('PropertyBinding:\x20Trying\x20to\x20bind\x20to\x20objectIndex\x20of\x20objectName,\x20but\x20is\x20undefined.',this,a4);return;}a4=a4[ag];}}let a9=a4[a7];if(a9===void 0x0){let aj=a5['nodeName'];B('PropertyBinding:\x20Trying\x20to\x20update\x20property\x20for\x20track:\x20'+aj+'.'+a7+'\x20but\x20it\x20wasn\x27t\x20found.',a4);return;}let ab=this['Versioning']['None'];this[pB(0x2fe)]=a4,a4[pB(0x23b)]===!0x0?ab=this['Versioning']['NeedsUpdate']:a4['isObject3D']===!0x0&&(ab=this['Versioning'][pB(0x19a)]);let af=this['BindingType']['Direct'];if(a8!==void 0x0){if(a7==='morphTargetInfluences'){if(!a4['geometry']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20morphTargetInfluences\x20because\x20node\x20does\x20not\x20have\x20a\x20geometry.',this);return;}if(!a4['geometry']['morphAttributes']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20morphTargetInfluences\x20because\x20node\x20does\x20not\x20have\x20a\x20geometry.morphAttributes.',this);return;}a4['morphTargetDictionary'][a8]!==void 0x0&&(a8=a4['morphTargetDictionary'][a8]);}af=this['BindingType']['ArrayElement'],this['resolvedProperty']=a9,this['propertyIndex']=a8;}else a9['fromArray']!==void 0x0&&a9['toArray']!==void 0x0?(af=this['BindingType'][pB(0x2be)],this[pB(0x4e6)]=a9):Array['isArray'](a9)?(af=this['BindingType']['EntireArray'],this['resolvedProperty']=a9):this['propertyName']=a7;this['getValue']=this['GetterByBindingType'][af],this[pB(0x397)]=this[pB(0x567)][af][ab];}[d4(0x432)](){const pC=d4;this['node']=null,this['getValue']=this['_getValue_unbound'],this[pC(0x397)]=this['_setValue_unbound'];}};Z['Composite']=Xs,Z['prototype']['BindingType']={'Direct':0x0,'EntireArray':0x1,'ArrayElement':0x2,'HasFromToArray':0x3},Z['prototype']['Versioning']={'None':0x0,'NeedsUpdate':0x1,'MatrixWorldNeedsUpdate':0x2},Z['prototype'][d4(0x393)]=[Z[d4(0xcb)]['_getValue_direct'],Z['prototype'][d4(0x13d)],Z[d4(0xcb)]['_getValue_arrayElement'],Z[d4(0xcb)]['_getValue_toArray']],Z[d4(0xcb)]['SetterByBindingTypeAndVersioning']=[[Z['prototype']['_setValue_direct'],Z['prototype']['_setValue_direct_setNeedsUpdate'],Z['prototype']['_setValue_direct_setMatrixWorldNeedsUpdate']],[Z['prototype']['_setValue_array'],Z['prototype']['_setValue_array_setNeedsUpdate'],Z[d4(0xcb)]['_setValue_array_setMatrixWorldNeedsUpdate']],[Z['prototype']['_setValue_arrayElement'],Z['prototype']['_setValue_arrayElement_setNeedsUpdate'],Z['prototype']['_setValue_arrayElement_setMatrixWorldNeedsUpdate']],[Z['prototype']['_setValue_fromArray'],Z[d4(0xcb)]['_setValue_fromArray_setNeedsUpdate'],Z['prototype']['_setValue_fromArray_setMatrixWorldNeedsUpdate']]];var Zs=class{constructor(a4,a5,a6=null,a7=a5['blendMode']){const pD=d4;this['_mixer']=a4,this['_clip']=a5,this['_localRoot']=a6,this['blendMode']=a7;let a8=a5['tracks'],a9=a8['length'],ab=Array(a9),af={'endingStart':Ze,'endingEnd':Ze};for(let ag=0x0;ag!==a9;++ag){let ah=a8[ag]['createInterpolant'](null);ab[ag]=ah,ah['settings']&&Object['assign'](af,ah['settings']),ah['settings']=af;}this['_interpolantSettings']=af,this[pD(0x566)]=ab,this['_propertyBindings']=Array(a9),this[pD(0x3cb)]=null,this['_byClipCacheIndex']=null,this[pD(0x15a)]=null,this['_weightInterpolant']=null,this['loop']=Ge,this['_loopCount']=-0x1,this['_startTime']=null,this['time']=0x0,this['timeScale']=0x1,this['_effectiveTimeScale']=0x1,this['weight']=0x1,this['_effectiveWeight']=0x1,this['repetitions']=Infinity,this['paused']=!0x1,this['enabled']=!0x0,this['clampWhenFinished']=!0x1,this['zeroSlopeAtStart']=!0x0,this['zeroSlopeAtEnd']=!0x0;}['play'](){return this['_mixer']['_activateAction'](this),this;}['stop'](){const pE=d4;return this['_mixer'][pE(0x221)](this),this['reset']();}['reset'](){const pF=d4;return this[pF(0x179)]=!0x1,this['enabled']=!0x0,this['time']=0x0,this['_loopCount']=-0x1,this['_startTime']=null,this['stopFading']()['stopWarping']();}['isRunning'](){const pG=d4;return this[pG(0x4d6)]&&!this['paused']&&this['timeScale']!==0x0&&this['_startTime']===null&&this[pG(0x3a1)][pG(0x546)](this);}['isScheduled'](){return this['_mixer']['_isActiveAction'](this);}[d4(0x2d5)](a4){return this['_startTime']=a4,this;}[d4(0x45e)](a4,a5){return this['loop']=a4,this['repetitions']=a5,this;}[d4(0x505)](a4){const pH=d4;return this[pH(0x158)]=a4,this['_effectiveWeight']=this['enabled']?a4:0x0,this['stopFading']();}['getEffectiveWeight'](){return this['_effectiveWeight'];}['fadeIn'](a4){return this['_scheduleFading'](a4,0x0,0x1);}['fadeOut'](a4){const pI=d4;return this[pI(0x266)](a4,0x1,0x0);}['crossFadeFrom'](a4,a5,a6=!0x1){const pJ=d4;if(a4[pJ(0x22d)](a5),this[pJ(0xea)](a5),a6===!0x0){let a7=this[pJ(0x371)]['duration'],a8=a4['_clip']['duration'],a9=a8/a7,ab=a7/a8;a4['warp'](0x1,a9,a5),this['warp'](ab,0x1,a5);}return this;}['crossFadeTo'](a4,a5,a6=!0x1){const pK=d4;return a4[pK(0x564)](this,a5,a6);}[d4(0x25b)](){let a4=this['_weightInterpolant'];return a4!==null&&(this['_weightInterpolant']=null,this['_mixer']['_takeBackControlInterpolant'](a4)),this;}['setEffectiveTimeScale'](a4){const pL=d4;return this[pL(0xe9)]=a4,this['_effectiveTimeScale']=this['paused']?0x0:a4,this['stopWarping']();}['getEffectiveTimeScale'](){return this['_effectiveTimeScale'];}['setDuration'](a4){return this['timeScale']=this['_clip']['duration']/a4,this['stopWarping']();}['syncWith'](a4){return this['time']=a4['time'],this['timeScale']=a4['timeScale'],this['stopWarping']();}[d4(0x198)](a4){const pM=d4;return this[pM(0x412)](this[pM(0x205)],0x0,a4);}[d4(0x412)](a4,a5,a6){const pN=d4;let a7=this['_mixer'],a8=a7[pN(0x361)],a9=this['timeScale'],ab=this[pN(0x15a)];ab===null&&(ab=a7['_lendControlInterpolant'](),this['_timeScaleInterpolant']=ab);let af=ab[pN(0x1ce)],ag=ab[pN(0x277)];return af[0x0]=a8,af[0x1]=a8+a6,ag[0x0]=a4/a9,ag[0x1]=a5/a9,this;}[d4(0x548)](){const pO=d4;let a4=this['_timeScaleInterpolant'];return a4!==null&&(this['_timeScaleInterpolant']=null,this[pO(0x3a1)]['_takeBackControlInterpolant'](a4)),this;}['getMixer'](){return this['_mixer'];}['getClip'](){const pP=d4;return this[pP(0x371)];}['getRoot'](){const pQ=d4;return this['_localRoot']||this[pQ(0x3a1)]['_root'];}[d4(0x2c5)](a4,a5,a6,a7){const pR=d4;if(!this['enabled']){this['_updateWeight'](a4);return;}let a8=this['_startTime'];if(a8!==null){let af=(a4-a8)*a6;af<0x0||a6===0x0?a5=0x0:(this[pR(0x4e0)]=null,a5=a6*af);}a5*=this[pR(0x346)](a4);let a9=this['_updateTime'](a5),ab=this['_updateWeight'](a4);if(ab>0x0){let ag=this['_interpolants'],ah=this['_propertyBindings'];switch(this['blendMode']){case tt:for(let aj=0x0,ak=ag[pR(0x27a)];aj!==ak;++aj)ag[aj]['evaluate'](a9),ah[aj]['accumulateAdditive'](ab);break;case et:default:for(let am=0x0,ap=ag['length'];am!==ap;++am)ag[am]['evaluate'](a9),ah[am][pR(0x235)](a7,ab);}}}['_updateWeight'](a4){const pS=d4;let a5=0x0;if(this['enabled']){a5=this[pS(0x158)];let a6=this['_weightInterpolant'];if(a6!==null){let a7=a6['evaluate'](a4)[0x0];a5*=a7,a4>a6['parameterPositions'][0x1]&&(this['stopFading'](),a7===0x0&&(this['enabled']=!0x1));}}return this[pS(0x1eb)]=a5,a5;}['_updateTimeScale'](a4){const pT=d4;let a5=0x0;if(!this['paused']){a5=this['timeScale'];let a6=this['_timeScaleInterpolant'];if(a6!==null){let a7=a6['evaluate'](a4)[0x0];a5*=a7,a4>a6['parameterPositions'][0x1]&&(this['stopWarping'](),a5===0x0?this[pT(0x179)]=!0x0:this['timeScale']=a5);}}return this[pT(0x205)]=a5,a5;}['_updateTime'](a4){const pU=d4;let a5=this['_clip']['duration'],a6=this['loop'],a7=this[pU(0x361)]+a4,a8=this['_loopCount'],a9=a6===Ke;if(a4===0x0)return a8===-0x1?a7:a9&&(a8&0x1)==0x1?a5-a7:a7;if(a6===0x898){a8===-0x1&&(this['_loopCount']=0x0,this['_setEndings'](!0x0,!0x0,!0x1));ah:{if(a7>=a5)a7=a5;else{if(a7<0x0)a7=0x0;else{this[pU(0x361)]=a7;break ah;}}this[pU(0x15b)]?this[pU(0x179)]=!0x0:this['enabled']=!0x1,this['time']=a7,this['_mixer']['dispatchEvent']({'type':'finished','action':this,'direction':a4<0x0?-0x1:0x1});}}else{if(a8===-0x1&&(a4>=0x0?(a8=0x0,this['_setEndings'](!0x0,this['repetitions']===0x0,a9)):this[pU(0x259)](this['repetitions']===0x0,!0x0,a9)),a7>=a5||a7<0x0){let ab=Math['floor'](a7/a5);a7-=a5*ab,a8+=Math['abs'](ab);let af=this[pU(0x4a4)]-a8;if(af<=0x0)this['clampWhenFinished']?this['paused']=!0x0:this['enabled']=!0x1,a7=a4>0x0?a5:0x0,this['time']=a7,this['_mixer']['dispatchEvent']({'type':'finished','action':this,'direction':a4>0x0?0x1:-0x1});else{if(af===0x1){let ag=a4<0x0;this['_setEndings'](ag,!ag,a9);}else this[pU(0x259)](!0x1,!0x1,a9);this[pU(0x39a)]=a8,this[pU(0x361)]=a7,this['_mixer']['dispatchEvent']({'type':'loop','action':this,'loopDelta':ab});}}else this['_loopCount']=a8,this['time']=a7;if(a9&&(a8&0x1)==0x1)return a5-a7;}return a7;}[d4(0x259)](a4,a5,a6){const pV=d4;let a7=this['_interpolantSettings'];a6?(a7['endingStart']=Qe,a7[pV(0x4c2)]=Qe):(a4?a7[pV(0x279)]=this['zeroSlopeAtStart']?Qe:Ze:a7[pV(0x279)]=$e,a5?a7[pV(0x4c2)]=this[pV(0x14c)]?Qe:Ze:a7['endingEnd']=$e);}['_scheduleFading'](a4,a5,a6){let a7=this['_mixer'],a8=a7['time'],a9=this['_weightInterpolant'];a9===null&&(a9=a7['_lendControlInterpolant'](),this['_weightInterpolant']=a9);let ab=a9['parameterPositions'],af=a9['sampleValues'];return ab[0x0]=a8,af[0x0]=a5,ab[0x1]=a8+a4,af[0x1]=a6,this;}},Qs=new Float32Array(0x1),$s=class extends xt{constructor(a4){super(),this['_root']=a4,this['_initMemoryManager'](),this['_accuIndex']=0x0,this['time']=0x0,this['timeScale']=0x1,typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent('observe',{'detail':this}));}['_bindAction'](a4,a5){const pW=d4;let a6=a4['_localRoot']||this['_root'],a7=a4['_clip']['tracks'],a8=a7['length'],a9=a4[pW(0x136)],ab=a4[pW(0x566)],af=a6['uuid'],ag=this['_bindingsByRootAndName'],ah=ag[af];ah===void 0x0&&(ah={},ag[af]=ah);for(let aj=0x0;aj!==a8;++aj){let ak=a7[aj],am=ak[pW(0x3a8)],ap=ah[am];if(ap!==void 0x0)++ap['referenceCount'],a9[aj]=ap;else{if(ap=a9[aj],ap!==void 0x0){ap[pW(0x3cb)]===null&&(++ap['referenceCount'],this['_addInactiveBinding'](ap,af,am));continue;}let aq=a5&&a5['_propertyBindings'][aj]['binding']['parsedPath'];ap=new zs(Z['create'](a6,am,aq),ak['ValueTypeName'],ak['getValueSize']()),++ap['referenceCount'],this['_addInactiveBinding'](ap,af,am),a9[aj]=ap;}ab[aj]['resultBuffer']=ap[pW(0x154)];}}['_activateAction'](a4){const pX=d4;if(!this['_isActiveAction'](a4)){if(a4['_cacheIndex']===null){let a6=(a4['_localRoot']||this['_root'])['uuid'],a7=a4['_clip']['uuid'],a8=this['_actionsByClip'][a7];this['_bindAction'](a4,a8&&a8['knownActions'][0x0]),this['_addInactiveAction'](a4,a7,a6);}let a5=a4['_propertyBindings'];for(let a9=0x0,ab=a5['length'];a9!==ab;++a9){let af=a5[a9];af['useCount']++===0x0&&(this['_lendBinding'](af),af['saveOriginalState']());}this[pX(0xe1)](a4);}}['_deactivateAction'](a4){if(this['_isActiveAction'](a4)){let a5=a4['_propertyBindings'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6){let a8=a5[a6];--a8['useCount']===0x0&&(a8['restoreOriginalState'](),this['_takeBackBinding'](a8));}this['_takeBackAction'](a4);}}['_initMemoryManager'](){this['_actions']=[],this['_nActiveActions']=0x0,this['_actionsByClip']={},this['_bindings']=[],this['_nActiveBindings']=0x0,this['_bindingsByRootAndName']={},this['_controlInterpolants']=[],this['_nActiveControlInterpolants']=0x0;let a4=this;this['stats']={'actions':{get 'total'(){return a4['_actions']['length'];},get 'inUse'(){return a4['_nActiveActions'];}},'bindings':{get 'total'(){return a4['_bindings']['length'];},get 'inUse'(){return a4['_nActiveBindings'];}},'controlInterpolants':{get 'total'(){return a4['_controlInterpolants']['length'];},get 'inUse'(){return a4['_nActiveControlInterpolants'];}}};}['_isActiveAction'](a4){let a5=a4['_cacheIndex'];return a5!==null&&a5<this['_nActiveActions'];}['_addInactiveAction'](a4,a5,a6){const pY=d4;let a7=this[pY(0x4f0)],a8=this['_actionsByClip'],a9=a8[a5];if(a9===void 0x0)a9={'knownActions':[a4],'actionByRoot':{}},a4['_byClipCacheIndex']=0x0,a8[a5]=a9;else{let ab=a9['knownActions'];a4[pY(0x1aa)]=ab['length'],ab['push'](a4);}a4['_cacheIndex']=a7['length'],a7['push'](a4),a9['actionByRoot'][a6]=a4;}['_removeInactiveAction'](a4){const pZ=d4;let a5=this['_actions'],a6=a5[a5['length']-0x1],a7=a4['_cacheIndex'];a6['_cacheIndex']=a7,a5[a7]=a6,a5['pop'](),a4[pZ(0x3cb)]=null;let a8=a4['_clip'][pZ(0x2ca)],a9=this['_actionsByClip'],ab=a9[a8],af=ab['knownActions'],ag=af[af['length']-0x1],ah=a4['_byClipCacheIndex'];ag['_byClipCacheIndex']=ah,af[ah]=ag,af['pop'](),a4['_byClipCacheIndex']=null;let aj=ab['actionByRoot'],ak=(a4[pZ(0xf7)]||this['_root'])['uuid'];delete aj[ak],af[pZ(0x27a)]===0x0&&delete a9[a8],this['_removeInactiveBindingsForAction'](a4);}[d4(0x2e8)](a4){let a5=a4['_propertyBindings'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6){let a8=a5[a6];--a8['referenceCount']===0x0&&this['_removeInactiveBinding'](a8);}}['_lendAction'](a4){const q0=d4;let a5=this[q0(0x4f0)],a6=a4[q0(0x3cb)],a7=this['_nActiveActions']++,a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8[q0(0x3cb)]=a6,a5[a6]=a8;}['_takeBackAction'](a4){const q1=d4;let a5=this[q1(0x4f0)],a6=a4['_cacheIndex'],a7=--this['_nActiveActions'],a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}['_addInactiveBinding'](a4,a5,a6){const q2=d4;let a7=this['_bindingsByRootAndName'],a8=this['_bindings'],a9=a7[a5];a9===void 0x0&&(a9={},a7[a5]=a9),a9[a6]=a4,a4[q2(0x3cb)]=a8['length'],a8[q2(0x403)](a4);}['_removeInactiveBinding'](a4){const q3=d4;let a5=this[q3(0x109)],a6=a4['binding'],a7=a6[q3(0xb0)]['uuid'],a8=a6['path'],a9=this[q3(0x36c)],ab=a9[a7],af=a5[a5['length']-0x1],ag=a4[q3(0x3cb)];af['_cacheIndex']=ag,a5[ag]=af,a5[q3(0x501)](),delete ab[a8],Object['keys'](ab)['length']===0x0&&delete a9[a7];}['_lendBinding'](a4){let a5=this['_bindings'],a6=a4['_cacheIndex'],a7=this['_nActiveBindings']++,a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}[d4(0x504)](a4){let a5=this['_bindings'],a6=a4['_cacheIndex'],a7=--this['_nActiveBindings'],a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}['_lendControlInterpolant'](){let a4=this['_controlInterpolants'],a5=this['_nActiveControlInterpolants']++,a6=a4[a5];return a6===void 0x0&&(a6=new Fo(new Float32Array(0x2),new Float32Array(0x2),0x1,Qs),a6['__cacheIndex']=a5,a4[a5]=a6),a6;}['_takeBackControlInterpolant'](a4){const q4=d4;let a5=this['_controlInterpolants'],a6=a4['__cacheIndex'],a7=--this[q4(0x394)],a8=a5[a7];a4['__cacheIndex']=a7,a5[a7]=a4,a8['__cacheIndex']=a6,a5[a6]=a8;}['clipAction'](a4,a5,a6){const q5=d4;let a7=a5||this['_root'],a8=a7[q5(0x2ca)],a9=typeof a4=='string'?Ko['findByName'](a7,a4):a4,ab=a9===null?a4:a9['uuid'],af=this['_actionsByClip'][ab],ag=null;if(a6===void 0x0&&(a6=a9===null?et:a9['blendMode']),af!==void 0x0){let aj=af[q5(0xe7)][a8];if(aj!==void 0x0&&aj['blendMode']===a6)return aj;ag=af['knownActions'][0x0],a9===null&&(a9=ag['_clip']);}if(a9===null)return null;let ah=new Zs(this,a9,a5,a6);return this['_bindAction'](ah,ag),this['_addInactiveAction'](ah,ab,a8),ah;}['existingAction'](a4,a5){const q6=d4;let a6=a5||this['_root'],a7=a6['uuid'],a8=typeof a4=='string'?Ko['findByName'](a6,a4):a4,a9=a8?a8['uuid']:a4,ab=this[q6(0x302)][a9];return ab===void 0x0?null:ab['actionByRoot'][a7]||null;}[d4(0x522)](){let a4=this['_actions'],a5=this['_nActiveActions'];for(let a6=a5-0x1;a6>=0x0;--a6)a4[a6]['stop']();return this;}['update'](a4){const q7=d4;a4*=this['timeScale'];let a5=this['_actions'],a6=this['_nActiveActions'],a7=this['time']+=a4,a8=Math['sign'](a4),a9=this[q7(0x13b)]^=0x1;for(let ag=0x0;ag!==a6;++ag)a5[ag]['_update'](a7,a4,a8,a9);let ab=this[q7(0x109)],af=this['_nActiveBindings'];for(let ah=0x0;ah!==af;++ah)ab[ah]['apply'](a9);return this;}['setTime'](a4){this['time']=0x0;for(let a5=0x0;a5<this['_actions']['length'];a5++)this['_actions'][a5]['time']=0x0;return this['update'](a4);}['getRoot'](){return this['_root'];}['uncacheClip'](a4){const q8=d4;let a5=this['_actions'],a6=a4['uuid'],a7=this[q8(0x302)],a8=a7[a6];if(a8!==void 0x0){let a9=a8['knownActions'];for(let ab=0x0,af=a9['length'];ab!==af;++ab){let ag=a9[ab];this['_deactivateAction'](ag);let ah=ag[q8(0x3cb)],aj=a5[a5['length']-0x1];ag[q8(0x3cb)]=null,ag['_byClipCacheIndex']=null,aj['_cacheIndex']=ah,a5[ah]=aj,a5['pop'](),this['_removeInactiveBindingsForAction'](ag);}delete a7[a6];}}['uncacheRoot'](a4){const q9=d4;let a5=a4[q9(0x2ca)],a6=this['_actionsByClip'];for(let a8 in a6){let a9=a6[a8]['actionByRoot'][a5];a9!==void 0x0&&(this['_deactivateAction'](a9),this['_removeInactiveAction'](a9));}let a7=this['_bindingsByRootAndName'][a5];if(a7!==void 0x0)for(let ab in a7){let af=a7[ab];af['restoreOriginalState'](),this['_removeInactiveBinding'](af);}}[d4(0x520)](a4,a5){let a6=this['existingAction'](a4,a5);a6!==null&&(this['_deactivateAction'](a6),this['_removeInactiveAction'](a6));}},ec=class{constructor(a4=0x1,a5=0x0,a6=0x0){this['radius']=a4,this['phi']=a5,this['theta']=a6;}['set'](a4,a5,a6){return this['radius']=a4,this['phi']=a5,this['theta']=a6,this;}['copy'](a4){const qb=d4;return this['radius']=a4['radius'],this[qb(0x2fa)]=a4['phi'],this[qb(0x2db)]=a4['theta'],this;}['makeSafe'](){let a4=0.000001;return this['phi']=V(this['phi'],a4,Math['PI']-a4),this;}[d4(0x296)](a4){return this['setFromCartesianCoords'](a4['x'],a4['y'],a4['z']);}[d4(0x4fb)](a4,a5,a6){const qd=d4;return this['radius']=Math['sqrt'](a4*a4+a5*a5+a6*a6),this['radius']===0x0?(this['theta']=0x0,this[qd(0x2fa)]=0x0):(this['theta']=Math['atan2'](a4,a6),this['phi']=Math['acos'](V(a5/this['radius'],-0x1,0x1))),this;}['clone'](){const qf=d4;return new this['constructor']()[qf(0x32f)](this);}};l=class{constructor(a4,a5,a6,a7){this['elements']=[0x1,0x0,0x0,0x1],a4!==void 0x0&&this['set'](a4,a5,a6,a7);}['identity'](){return this['set'](0x1,0x0,0x0,0x1),this;}['fromArray'](a4,a5=0x0){for(let a6=0x0;a6<0x4;a6++)this['elements'][a6]=a4[a6+a5];return this;}['set'](a4,a5,a6,a7){const qg=d4;let a8=this[qg(0xdf)];return a8[0x0]=a4,a8[0x2]=a5,a8[0x1]=a6,a8[0x3]=a7,this;}},l['prototype']['isMatrix2']=!0x0;var tc=class extends la{constructor(a4=0xa,a5=0xa,a6=0x444444,a7=0x888888){const qh=d4;a6=new Y(a6),a7=new Y(a7);let a8=a5/0x2,a9=a4/a5,ab=a4/0x2,af=[],ag=[];for(let ak=0x0,am=0x0,ap=-ab;ak<=a5;ak++,ap+=a9){af['push'](-ab,0x0,ap,ab,0x0,ap),af[qh(0x403)](ap,0x0,-ab,ap,0x0,ab);let aq=ak===a8?a6:a7;aq['toArray'](ag,am),am+=0x3,aq['toArray'](ag,am),am+=0x3,aq['toArray'](ag,am),am+=0x3,aq[qh(0x442)](ag,am),am+=0x3;}let ah=new Wr();ah['setAttribute']('position',new X(af,0x3)),ah['setAttribute']('color',new X(ag,0x3));let aj=new Zi({'vertexColors':!0x0,'toneMapped':!0x1});super(ah,aj),this['type']='GridHelper';}['dispose'](){this['geometry']['dispose'](),this['material']['dispose']();}},nc=class extends la{constructor(a4=0x1){const qj=d4;let a5=[0x0,0x0,0x0,a4,0x0,0x0,0x0,0x0,0x0,0x0,a4,0x0,0x0,0x0,0x0,0x0,0x0,a4],a6=[0x1,0x0,0x0,0x1,0.6,0x0,0x0,0x1,0x0,0.6,0x1,0x0,0x0,0x0,0x1,0x0,0.6,0x1],a7=new Wr();a7['setAttribute']('position',new X(a5,0x3)),a7[qj(0x3a6)]('color',new X(a6,0x3));let a8=new Zi({'vertexColors':!0x0,'toneMapped':!0x1});super(a7,a8),this['type']='AxesHelper';}['setColors'](a4,a5,a6){const qk=d4;let a7=new Y(),a8=this['geometry']['attributes']['color']['array'];return a7[qk(0x479)](a4),a7['toArray'](a8,0x0),a7['toArray'](a8,0x3),a7['set'](a5),a7['toArray'](a8,0x6),a7['toArray'](a8,0x9),a7[qk(0x479)](a6),a7['toArray'](a8,0xc),a7[qk(0x442)](a8,0xf),this['geometry']['attributes'][qk(0x379)]['needsUpdate']=!0x0,this;}['dispose'](){const qm=d4;this['geometry'][qm(0x365)](),this['material']['dispose']();}},rc=class extends xt{constructor(a4,a5=null){const qp=d4;super(),this['object']=a4,this['domElement']=a5,this[qp(0x4d6)]=!0x0,this[qp(0x184)]=-0x1,this[qp(0x310)]={},this['mouseButtons']={'LEFT':null,'MIDDLE':null,'RIGHT':null},this['touches']={'ONE':null,'TWO':null};}['connect'](a4){if(a4===void 0x0){z('Controls:\x20connect()\x20now\x20requires\x20an\x20element.');return;}this['domElement']!==null&&this['disconnect'](),this['domElement']=a4;}[d4(0x336)](){}[d4(0x365)](){}[d4(0x246)](){}};function ic(a4,a5,a6,a7){const qq=d4;let a8=ac(a7);switch(a6){case ae:return a4*a5;case le:return a4*a5/a8[qq(0x24c)]*a8[qq(0x3f8)];case ue:return a4*a5/a8['components']*a8['byteLength'];case P:return a4*a5*0x2/a8['components']*a8['byteLength'];case de:return a4*a5*0x2/a8[qq(0x24c)]*a8['byteLength'];case N:return a4*a5*0x3/a8['components']*a8['byteLength'];case oe:return a4*a5*0x4/a8[qq(0x24c)]*a8['byteLength'];case fe:return a4*a5*0x4/a8['components']*a8['byteLength'];case pe:case me:return Math['floor']((a4+0x3)/0x4)*Math[qq(0x4ec)]((a5+0x3)/0x4)*0x8;case he:case ge:return Math['floor']((a4+0x3)/0x4)*Math[qq(0x4ec)]((a5+0x3)/0x4)*0x10;case ve:case be:return Math['max'](a4,0x10)*Math['max'](a5,0x8)/0x4;case _e:case ye:return Math['max'](a4,0x8)*Math['max'](a5,0x8)/0x2;case xe:case Se:case we:case Te:return Math['floor']((a4+0x3)/0x4)*Math['floor']((a5+0x3)/0x4)*0x8;case Ce:case Ee:case De:return Math['floor']((a4+0x3)/0x4)*Math[qq(0x4ec)]((a5+0x3)/0x4)*0x10;case Oe:return Math['floor']((a4+0x3)/0x4)*Math[qq(0x4ec)]((a5+0x3)/0x4)*0x10;case ke:return Math[qq(0x4ec)]((a4+0x4)/0x5)*Math[qq(0x4ec)]((a5+0x3)/0x4)*0x10;case Ae:return Math['floor']((a4+0x4)/0x5)*Math['floor']((a5+0x4)/0x5)*0x10;case je:return Math['floor']((a4+0x5)/0x6)*Math['floor']((a5+0x4)/0x5)*0x10;case F:return Math['floor']((a4+0x5)/0x6)*Math['floor']((a5+0x5)/0x6)*0x10;case Me:return Math['floor']((a4+0x7)/0x8)*Math['floor']((a5+0x4)/0x5)*0x10;case Ne:return Math['floor']((a4+0x7)/0x8)*Math['floor']((a5+0x5)/0x6)*0x10;case Pe:return Math['floor']((a4+0x7)/0x8)*Math['floor']((a5+0x7)/0x8)*0x10;case I:return Math['floor']((a4+0x9)/0xa)*Math[qq(0x4ec)]((a5+0x4)/0x5)*0x10;case Fe:return Math['floor']((a4+0x9)/0xa)*Math[qq(0x4ec)]((a5+0x5)/0x6)*0x10;case L:return Math['floor']((a4+0x9)/0xa)*Math['floor']((a5+0x7)/0x8)*0x10;case R:return Math['floor']((a4+0x9)/0xa)*Math['floor']((a5+0x9)/0xa)*0x10;case Ie:return Math['floor']((a4+0xb)/0xc)*Math['floor']((a5+0x9)/0xa)*0x10;case Le:return Math['floor']((a4+0xb)/0xc)*Math['floor']((a5+0xb)/0xc)*0x10;case Re:case ze:case Be:return Math[qq(0x456)](a4/0x4)*Math['ceil'](a5/0x4)*0x10;case Ve:case He:return Math['ceil'](a4/0x4)*Math['ceil'](a5/0x4)*0x8;case Ue:case We:return Math['ceil'](a4/0x4)*Math['ceil'](a5/0x4)*0x10;}throw Error('Unable\x20to\x20determine\x20texture\x20byte\x20length\x20for\x20'+a6+'\x20format.');}function ac(a4){switch(a4){case T:case E:return{'byteLength':0x1,'components':0x1};case ee:case D:case te:return{'byteLength':0x2,'components':0x1};case j:case ne:return{'byteLength':0x2,'components':0x4};case k:case O:case A:return{'byteLength':0x4,'components':0x1};case M:case ie:return{'byteLength':0x4,'components':0x3};}throw Error('Unknown\x20texture\x20type\x20'+a4+'.');}typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__[d4(0x8c)](new CustomEvent('register',{'detail':{'revision':d4(0x31c)}})),typeof window<'u'&&(window['__THREE__']?z('WARNING:\x20Multiple\x20instances\x20of\x20Three.js\x20being\x20imported.'):window['__THREE__']='184'),n();function oc(){let a4=null,a5=!0x1,a6=null,a7=null;function a8(a9,ab){a6(a9,ab),a7=a4['requestAnimationFrame'](a8);}return{'start':function(){a5!==!0x0&&a6!==null&&a4!==null&&(a7=a4['requestAnimationFrame'](a8),a5=!0x0);},'stop':function(){a4!==null&&a4['cancelAnimationFrame'](a7),a5=!0x1;},'setAnimationLoop':function(a9){a6=a9;},'setContext':function(a9){a4=a9;}};}function sc(a4){let a5=new WeakMap();function a6(af,ag){const qv=a1;let ah=af['array'],aj=af['usage'],ak=ah[qv(0x3f8)],am=a4['createBuffer']();a4['bindBuffer'](ag,am),a4[qv(0x375)](ag,ah,aj),af['onUploadCallback']();let ap;if(ah instanceof Float32Array)ap=a4['FLOAT'];else{if(typeof Float16Array<'u'&&ah instanceof Float16Array)ap=a4['HALF_FLOAT'];else{if(ah instanceof Uint16Array)ap=af['isFloat16BufferAttribute']?a4['HALF_FLOAT']:a4['UNSIGNED_SHORT'];else{if(ah instanceof Int16Array)ap=a4['SHORT'];else{if(ah instanceof Uint32Array)ap=a4['UNSIGNED_INT'];else{if(ah instanceof Int32Array)ap=a4['INT'];else{if(ah instanceof Int8Array)ap=a4['BYTE'];else{if(ah instanceof Uint8Array)ap=a4['UNSIGNED_BYTE'];else{if(ah instanceof Uint8ClampedArray)ap=a4[qv(0x191)];else throw Error(qv(0x23d)+ah);}}}}}}}}return{'buffer':am,'type':ap,'bytesPerElement':ah['BYTES_PER_ELEMENT'],'version':af['version'],'size':ak};}function a7(af,ag,ah){const qw=a1;let aj=ag['array'],ak=ag['updateRanges'];if(a4['bindBuffer'](ah,af),ak['length']===0x0)a4['bufferSubData'](ah,0x0,aj);else{ak['sort']((ap,aq)=>ap[qw(0x2f9)]-aq['start']);let am=0x0;for(let ap=0x1;ap<ak['length'];ap++){let aq=ak[am],av=ak[ap];av['start']<=aq['start']+aq['count']+0x1?aq['count']=Math['max'](aq[qw(0x58d)],av['start']+av['count']-aq['start']):(++am,ak[am]=av);}ak['length']=am+0x1;for(let aw=0x0,ax=ak[qw(0x27a)];aw<ax;aw++){let ay=ak[aw];a4[qw(0xe4)](ah,ay['start']*aj['BYTES_PER_ELEMENT'],aj,ay['start'],ay['count']);}ag['clearUpdateRanges']();}ag['onUploadCallback']();}function a8(af){return af['isInterleavedBufferAttribute']&&(af=af['data']),a5['get'](af);}function a9(af){const qx=a1;af['isInterleavedBufferAttribute']&&(af=af['data']);let ag=a5[qx(0x2f1)](af);ag&&(a4['deleteBuffer'](ag['buffer']),a5['delete'](af));}function ab(af,ag){const qy=a1;if(af['isInterleavedBufferAttribute']&&(af=af['data']),af['isGLBufferAttribute']){let aj=a5['get'](af);(!aj||aj['version']<af['version'])&&a5['set'](af,{'buffer':af[qy(0x154)],'type':af['type'],'bytesPerElement':af['elementSize'],'version':af[qy(0x2d1)]});return;}let ah=a5[qy(0x2f1)](af);if(ah===void 0x0)a5['set'](af,a6(af,ag));else{if(ah[qy(0x2d1)]<af[qy(0x2d1)]){if(ah['size']!==af['array'][qy(0x3f8)])throw Error('THREE.WebGLAttributes:\x20The\x20size\x20of\x20the\x20buffer\x20attribute\x27s\x20array\x20buffer\x20does\x20not\x20match\x20the\x20original\x20size.\x20Resizing\x20buffer\x20attributes\x20is\x20not\x20supported.');a7(ah[qy(0x154)],af,ag),ah['version']=af[qy(0x2d1)];}}}return{'get':a8,'remove':a9,'update':ab};}var Q={'alphahash_fragment':'#ifdef\x20USE_ALPHAHASH\x0a\x09if\x20(\x20diffuseColor.a\x20<\x20getAlphaHashThreshold(\x20vPosition\x20)\x20)\x20discard;\x0a#endif','alphahash_pars_fragment':d4(0xd9),'alphamap_fragment':d4(0x556),'alphamap_pars_fragment':'#ifdef\x20USE_ALPHAMAP\x0a\x09uniform\x20sampler2D\x20alphaMap;\x0a#endif','alphatest_fragment':'#ifdef\x20USE_ALPHATEST\x0a\x09#ifdef\x20ALPHA_TO_COVERAGE\x0a\x09diffuseColor.a\x20=\x20smoothstep(\x20alphaTest,\x20alphaTest\x20+\x20fwidth(\x20diffuseColor.a\x20),\x20diffuseColor.a\x20);\x0a\x09if\x20(\x20diffuseColor.a\x20==\x200.0\x20)\x20discard;\x0a\x09#else\x0a\x09if\x20(\x20diffuseColor.a\x20<\x20alphaTest\x20)\x20discard;\x0a\x09#endif\x0a#endif','alphatest_pars_fragment':'#ifdef\x20USE_ALPHATEST\x0a\x09uniform\x20float\x20alphaTest;\x0a#endif','aomap_fragment':d4(0x516),'aomap_pars_fragment':'#ifdef\x20USE_AOMAP\x0a\x09uniform\x20sampler2D\x20aoMap;\x0a\x09uniform\x20float\x20aoMapIntensity;\x0a#endif','batching_pars_vertex':'#ifdef\x20USE_BATCHING\x0a\x09#if\x20!\x20defined(\x20GL_ANGLE_multi_draw\x20)\x0a\x09#define\x20gl_DrawID\x20_gl_DrawID\x0a\x09uniform\x20int\x20_gl_DrawID;\x0a\x09#endif\x0a\x09uniform\x20highp\x20sampler2D\x20batchingTexture;\x0a\x09uniform\x20highp\x20usampler2D\x20batchingIdTexture;\x0a\x09mat4\x20getBatchingMatrix(\x20const\x20in\x20float\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20batchingTexture,\x200\x20).x;\x0a\x09\x09int\x20j\x20=\x20int(\x20i\x20)\x20*\x204;\x0a\x09\x09int\x20x\x20=\x20j\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20j\x20/\x20size;\x0a\x09\x09vec4\x20v1\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v2\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x\x20+\x201,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v3\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x\x20+\x202,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v4\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x\x20+\x203,\x20y\x20),\x200\x20);\x0a\x09\x09return\x20mat4(\x20v1,\x20v2,\x20v3,\x20v4\x20);\x0a\x09}\x0a\x09float\x20getIndirectIndex(\x20const\x20in\x20int\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20batchingIdTexture,\x200\x20).x;\x0a\x09\x09int\x20x\x20=\x20i\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20i\x20/\x20size;\x0a\x09\x09return\x20float(\x20texelFetch(\x20batchingIdTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20).r\x20);\x0a\x09}\x0a#endif\x0a#ifdef\x20USE_BATCHING_COLOR\x0a\x09uniform\x20sampler2D\x20batchingColorTexture;\x0a\x09vec4\x20getBatchingColor(\x20const\x20in\x20float\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20batchingColorTexture,\x200\x20).x;\x0a\x09\x09int\x20j\x20=\x20int(\x20i\x20);\x0a\x09\x09int\x20x\x20=\x20j\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20j\x20/\x20size;\x0a\x09\x09return\x20texelFetch(\x20batchingColorTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20);\x0a\x09}\x0a#endif','batching_vertex':d4(0x77),'begin_vertex':'vec3\x20transformed\x20=\x20vec3(\x20position\x20);\x0a#ifdef\x20USE_ALPHAHASH\x0a\x09vPosition\x20=\x20vec3(\x20position\x20);\x0a#endif','beginnormal_vertex':'vec3\x20objectNormal\x20=\x20vec3(\x20normal\x20);\x0a#ifdef\x20USE_TANGENT\x0a\x09vec3\x20objectTangent\x20=\x20vec3(\x20tangent.xyz\x20);\x0a#endif','bsdfs':'float\x20G_BlinnPhong_Implicit(\x20)\x20{\x0a\x09return\x200.25;\x0a}\x0afloat\x20D_BlinnPhong(\x20const\x20in\x20float\x20shininess,\x20const\x20in\x20float\x20dotNH\x20)\x20{\x0a\x09return\x20RECIPROCAL_PI\x20*\x20(\x20shininess\x20*\x200.5\x20+\x201.0\x20)\x20*\x20pow(\x20dotNH,\x20shininess\x20);\x0a}\x0avec3\x20BRDF_BlinnPhong(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20shininess\x20)\x20{\x0a\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09float\x20dotVH\x20=\x20saturate(\x20dot(\x20viewDir,\x20halfDir\x20)\x20);\x0a\x09vec3\x20F\x20=\x20F_Schlick(\x20specularColor,\x201.0,\x20dotVH\x20);\x0a\x09float\x20G\x20=\x20G_BlinnPhong_Implicit(\x20);\x0a\x09float\x20D\x20=\x20D_BlinnPhong(\x20shininess,\x20dotNH\x20);\x0a\x09return\x20F\x20*\x20(\x20G\x20*\x20D\x20);\x0a}\x20//\x20validated','iridescence_fragment':'#ifdef\x20USE_IRIDESCENCE\x0a\x09const\x20mat3\x20XYZ_TO_REC709\x20=\x20mat3(\x0a\x09\x09\x203.2404542,\x20-0.9692660,\x20\x200.0556434,\x0a\x09\x09-1.5371385,\x20\x201.8760108,\x20-0.2040259,\x0a\x09\x09-0.4985314,\x20\x200.0415560,\x20\x201.0572252\x0a\x09);\x0a\x09vec3\x20Fresnel0ToIor(\x20vec3\x20fresnel0\x20)\x20{\x0a\x09\x09vec3\x20sqrtF0\x20=\x20sqrt(\x20fresnel0\x20);\x0a\x09\x09return\x20(\x20vec3(\x201.0\x20)\x20+\x20sqrtF0\x20)\x20/\x20(\x20vec3(\x201.0\x20)\x20-\x20sqrtF0\x20);\x0a\x09}\x0a\x09vec3\x20IorToFresnel0(\x20vec3\x20transmittedIor,\x20float\x20incidentIor\x20)\x20{\x0a\x09\x09return\x20pow2(\x20(\x20transmittedIor\x20-\x20vec3(\x20incidentIor\x20)\x20)\x20/\x20(\x20transmittedIor\x20+\x20vec3(\x20incidentIor\x20)\x20)\x20);\x0a\x09}\x0a\x09float\x20IorToFresnel0(\x20float\x20transmittedIor,\x20float\x20incidentIor\x20)\x20{\x0a\x09\x09return\x20pow2(\x20(\x20transmittedIor\x20-\x20incidentIor\x20)\x20/\x20(\x20transmittedIor\x20+\x20incidentIor\x20));\x0a\x09}\x0a\x09vec3\x20evalSensitivity(\x20float\x20OPD,\x20vec3\x20shift\x20)\x20{\x0a\x09\x09float\x20phase\x20=\x202.0\x20*\x20PI\x20*\x20OPD\x20*\x201.0e-9;\x0a\x09\x09vec3\x20val\x20=\x20vec3(\x205.4856e-13,\x204.4201e-13,\x205.2481e-13\x20);\x0a\x09\x09vec3\x20pos\x20=\x20vec3(\x201.6810e+06,\x201.7953e+06,\x202.2084e+06\x20);\x0a\x09\x09vec3\x20var\x20=\x20vec3(\x204.3278e+09,\x209.3046e+09,\x206.6121e+09\x20);\x0a\x09\x09vec3\x20xyz\x20=\x20val\x20*\x20sqrt(\x202.0\x20*\x20PI\x20*\x20var\x20)\x20*\x20cos(\x20pos\x20*\x20phase\x20+\x20shift\x20)\x20*\x20exp(\x20-\x20pow2(\x20phase\x20)\x20*\x20var\x20);\x0a\x09\x09xyz.x\x20+=\x209.7470e-14\x20*\x20sqrt(\x202.0\x20*\x20PI\x20*\x204.5282e+09\x20)\x20*\x20cos(\x202.2399e+06\x20*\x20phase\x20+\x20shift[\x200\x20]\x20)\x20*\x20exp(\x20-\x204.5282e+09\x20*\x20pow2(\x20phase\x20)\x20);\x0a\x09\x09xyz\x20/=\x201.0685e-7;\x0a\x09\x09vec3\x20rgb\x20=\x20XYZ_TO_REC709\x20*\x20xyz;\x0a\x09\x09return\x20rgb;\x0a\x09}\x0a\x09vec3\x20evalIridescence(\x20float\x20outsideIOR,\x20float\x20eta2,\x20float\x20cosTheta1,\x20float\x20thinFilmThickness,\x20vec3\x20baseF0\x20)\x20{\x0a\x09\x09vec3\x20I;\x0a\x09\x09float\x20iridescenceIOR\x20=\x20mix(\x20outsideIOR,\x20eta2,\x20smoothstep(\x200.0,\x200.03,\x20thinFilmThickness\x20)\x20);\x0a\x09\x09float\x20sinTheta2Sq\x20=\x20pow2(\x20outsideIOR\x20/\x20iridescenceIOR\x20)\x20*\x20(\x201.0\x20-\x20pow2(\x20cosTheta1\x20)\x20);\x0a\x09\x09float\x20cosTheta2Sq\x20=\x201.0\x20-\x20sinTheta2Sq;\x0a\x09\x09if\x20(\x20cosTheta2Sq\x20<\x200.0\x20)\x20{\x0a\x09\x09\x09return\x20vec3(\x201.0\x20);\x0a\x09\x09}\x0a\x09\x09float\x20cosTheta2\x20=\x20sqrt(\x20cosTheta2Sq\x20);\x0a\x09\x09float\x20R0\x20=\x20IorToFresnel0(\x20iridescenceIOR,\x20outsideIOR\x20);\x0a\x09\x09float\x20R12\x20=\x20F_Schlick(\x20R0,\x201.0,\x20cosTheta1\x20);\x0a\x09\x09float\x20T121\x20=\x201.0\x20-\x20R12;\x0a\x09\x09float\x20phi12\x20=\x200.0;\x0a\x09\x09if\x20(\x20iridescenceIOR\x20<\x20outsideIOR\x20)\x20phi12\x20=\x20PI;\x0a\x09\x09float\x20phi21\x20=\x20PI\x20-\x20phi12;\x0a\x09\x09vec3\x20baseIOR\x20=\x20Fresnel0ToIor(\x20clamp(\x20baseF0,\x200.0,\x200.9999\x20)\x20);\x09\x09vec3\x20R1\x20=\x20IorToFresnel0(\x20baseIOR,\x20iridescenceIOR\x20);\x0a\x09\x09vec3\x20R23\x20=\x20F_Schlick(\x20R1,\x201.0,\x20cosTheta2\x20);\x0a\x09\x09vec3\x20phi23\x20=\x20vec3(\x200.0\x20);\x0a\x09\x09if\x20(\x20baseIOR[\x200\x20]\x20<\x20iridescenceIOR\x20)\x20phi23[\x200\x20]\x20=\x20PI;\x0a\x09\x09if\x20(\x20baseIOR[\x201\x20]\x20<\x20iridescenceIOR\x20)\x20phi23[\x201\x20]\x20=\x20PI;\x0a\x09\x09if\x20(\x20baseIOR[\x202\x20]\x20<\x20iridescenceIOR\x20)\x20phi23[\x202\x20]\x20=\x20PI;\x0a\x09\x09float\x20OPD\x20=\x202.0\x20*\x20iridescenceIOR\x20*\x20thinFilmThickness\x20*\x20cosTheta2;\x0a\x09\x09vec3\x20phi\x20=\x20vec3(\x20phi21\x20)\x20+\x20phi23;\x0a\x09\x09vec3\x20R123\x20=\x20clamp(\x20R12\x20*\x20R23,\x201e-5,\x200.9999\x20);\x0a\x09\x09vec3\x20r123\x20=\x20sqrt(\x20R123\x20);\x0a\x09\x09vec3\x20Rs\x20=\x20pow2(\x20T121\x20)\x20*\x20R23\x20/\x20(\x20vec3(\x201.0\x20)\x20-\x20R123\x20);\x0a\x09\x09vec3\x20C0\x20=\x20R12\x20+\x20Rs;\x0a\x09\x09I\x20=\x20C0;\x0a\x09\x09vec3\x20Cm\x20=\x20Rs\x20-\x20T121;\x0a\x09\x09for\x20(\x20int\x20m\x20=\x201;\x20m\x20<=\x202;\x20++\x20m\x20)\x20{\x0a\x09\x09\x09Cm\x20*=\x20r123;\x0a\x09\x09\x09vec3\x20Sm\x20=\x202.0\x20*\x20evalSensitivity(\x20float(\x20m\x20)\x20*\x20OPD,\x20float(\x20m\x20)\x20*\x20phi\x20);\x0a\x09\x09\x09I\x20+=\x20Cm\x20*\x20Sm;\x0a\x09\x09}\x0a\x09\x09return\x20max(\x20I,\x20vec3(\x200.0\x20)\x20);\x0a\x09}\x0a#endif','bumpmap_pars_fragment':'#ifdef\x20USE_BUMPMAP\x0a\x09uniform\x20sampler2D\x20bumpMap;\x0a\x09uniform\x20float\x20bumpScale;\x0a\x09vec2\x20dHdxy_fwd()\x20{\x0a\x09\x09vec2\x20dSTdx\x20=\x20dFdx(\x20vBumpMapUv\x20);\x0a\x09\x09vec2\x20dSTdy\x20=\x20dFdy(\x20vBumpMapUv\x20);\x0a\x09\x09float\x20Hll\x20=\x20bumpScale\x20*\x20texture2D(\x20bumpMap,\x20vBumpMapUv\x20).x;\x0a\x09\x09float\x20dBx\x20=\x20bumpScale\x20*\x20texture2D(\x20bumpMap,\x20vBumpMapUv\x20+\x20dSTdx\x20).x\x20-\x20Hll;\x0a\x09\x09float\x20dBy\x20=\x20bumpScale\x20*\x20texture2D(\x20bumpMap,\x20vBumpMapUv\x20+\x20dSTdy\x20).x\x20-\x20Hll;\x0a\x09\x09return\x20vec2(\x20dBx,\x20dBy\x20);\x0a\x09}\x0a\x09vec3\x20perturbNormalArb(\x20vec3\x20surf_pos,\x20vec3\x20surf_norm,\x20vec2\x20dHdxy,\x20float\x20faceDirection\x20)\x20{\x0a\x09\x09vec3\x20vSigmaX\x20=\x20normalize(\x20dFdx(\x20surf_pos.xyz\x20)\x20);\x0a\x09\x09vec3\x20vSigmaY\x20=\x20normalize(\x20dFdy(\x20surf_pos.xyz\x20)\x20);\x0a\x09\x09vec3\x20vN\x20=\x20surf_norm;\x0a\x09\x09vec3\x20R1\x20=\x20cross(\x20vSigmaY,\x20vN\x20);\x0a\x09\x09vec3\x20R2\x20=\x20cross(\x20vN,\x20vSigmaX\x20);\x0a\x09\x09float\x20fDet\x20=\x20dot(\x20vSigmaX,\x20R1\x20)\x20*\x20faceDirection;\x0a\x09\x09vec3\x20vGrad\x20=\x20sign(\x20fDet\x20)\x20*\x20(\x20dHdxy.x\x20*\x20R1\x20+\x20dHdxy.y\x20*\x20R2\x20);\x0a\x09\x09return\x20normalize(\x20abs(\x20fDet\x20)\x20*\x20surf_norm\x20-\x20vGrad\x20);\x0a\x09}\x0a#endif','clipping_planes_fragment':d4(0x565),'clipping_planes_pars_fragment':'#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09varying\x20vec3\x20vClipPosition;\x0a\x09uniform\x20vec4\x20clippingPlanes[\x20NUM_CLIPPING_PLANES\x20];\x0a#endif','clipping_planes_pars_vertex':'#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09varying\x20vec3\x20vClipPosition;\x0a#endif','clipping_planes_vertex':'#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09vClipPosition\x20=\x20-\x20mvPosition.xyz;\x0a#endif','color_fragment':d4(0x23e),'color_pars_fragment':d4(0x3da),'color_pars_vertex':'#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x20||\x20defined(\x20USE_INSTANCING_COLOR\x20)\x20||\x20defined(\x20USE_BATCHING_COLOR\x20)\x0a\x09varying\x20vec4\x20vColor;\x0a#endif','color_vertex':'#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x20||\x20defined(\x20USE_INSTANCING_COLOR\x20)\x20||\x20defined(\x20USE_BATCHING_COLOR\x20)\x0a\x09vColor\x20=\x20vec4(\x201.0\x20);\x0a#endif\x0a#ifdef\x20USE_COLOR_ALPHA\x0a\x09vColor\x20*=\x20color;\x0a#elif\x20defined(\x20USE_COLOR\x20)\x0a\x09vColor.rgb\x20*=\x20color;\x0a#endif\x0a#ifdef\x20USE_INSTANCING_COLOR\x0a\x09vColor.rgb\x20*=\x20instanceColor.rgb;\x0a#endif\x0a#ifdef\x20USE_BATCHING_COLOR\x0a\x09vColor\x20*=\x20getBatchingColor(\x20getIndirectIndex(\x20gl_DrawID\x20)\x20);\x0a#endif','common':'#define\x20PI\x203.141592653589793\x0a#define\x20PI2\x206.283185307179586\x0a#define\x20PI_HALF\x201.5707963267948966\x0a#define\x20RECIPROCAL_PI\x200.3183098861837907\x0a#define\x20RECIPROCAL_PI2\x200.15915494309189535\x0a#define\x20EPSILON\x201e-6\x0a#ifndef\x20saturate\x0a#define\x20saturate(\x20a\x20)\x20clamp(\x20a,\x200.0,\x201.0\x20)\x0a#endif\x0a#define\x20whiteComplement(\x20a\x20)\x20(\x201.0\x20-\x20saturate(\x20a\x20)\x20)\x0afloat\x20pow2(\x20const\x20in\x20float\x20x\x20)\x20{\x20return\x20x*x;\x20}\x0avec3\x20pow2(\x20const\x20in\x20vec3\x20x\x20)\x20{\x20return\x20x*x;\x20}\x0afloat\x20pow3(\x20const\x20in\x20float\x20x\x20)\x20{\x20return\x20x*x*x;\x20}\x0afloat\x20pow4(\x20const\x20in\x20float\x20x\x20)\x20{\x20float\x20x2\x20=\x20x*x;\x20return\x20x2*x2;\x20}\x0afloat\x20max3(\x20const\x20in\x20vec3\x20v\x20)\x20{\x20return\x20max(\x20max(\x20v.x,\x20v.y\x20),\x20v.z\x20);\x20}\x0afloat\x20average(\x20const\x20in\x20vec3\x20v\x20)\x20{\x20return\x20dot(\x20v,\x20vec3(\x200.3333333\x20)\x20);\x20}\x0ahighp\x20float\x20rand(\x20const\x20in\x20vec2\x20uv\x20)\x20{\x0a\x09const\x20highp\x20float\x20a\x20=\x2012.9898,\x20b\x20=\x2078.233,\x20c\x20=\x2043758.5453;\x0a\x09highp\x20float\x20dt\x20=\x20dot(\x20uv.xy,\x20vec2(\x20a,b\x20)\x20),\x20sn\x20=\x20mod(\x20dt,\x20PI\x20);\x0a\x09return\x20fract(\x20sin(\x20sn\x20)\x20*\x20c\x20);\x0a}\x0a#ifdef\x20HIGH_PRECISION\x0a\x09float\x20precisionSafeLength(\x20vec3\x20v\x20)\x20{\x20return\x20length(\x20v\x20);\x20}\x0a#else\x0a\x09float\x20precisionSafeLength(\x20vec3\x20v\x20)\x20{\x0a\x09\x09float\x20maxComponent\x20=\x20max3(\x20abs(\x20v\x20)\x20);\x0a\x09\x09return\x20length(\x20v\x20/\x20maxComponent\x20)\x20*\x20maxComponent;\x0a\x09}\x0a#endif\x0astruct\x20IncidentLight\x20{\x0a\x09vec3\x20color;\x0a\x09vec3\x20direction;\x0a\x09bool\x20visible;\x0a};\x0astruct\x20ReflectedLight\x20{\x0a\x09vec3\x20directDiffuse;\x0a\x09vec3\x20directSpecular;\x0a\x09vec3\x20indirectDiffuse;\x0a\x09vec3\x20indirectSpecular;\x0a};\x0a#ifdef\x20USE_ALPHAHASH\x0a\x09varying\x20vec3\x20vPosition;\x0a#endif\x0avec3\x20transformDirection(\x20in\x20vec3\x20dir,\x20in\x20mat4\x20matrix\x20)\x20{\x0a\x09return\x20normalize(\x20(\x20matrix\x20*\x20vec4(\x20dir,\x200.0\x20)\x20).xyz\x20);\x0a}\x0avec3\x20inverseTransformDirection(\x20in\x20vec3\x20dir,\x20in\x20mat4\x20matrix\x20)\x20{\x0a\x09return\x20normalize(\x20(\x20vec4(\x20dir,\x200.0\x20)\x20*\x20matrix\x20).xyz\x20);\x0a}\x0abool\x20isPerspectiveMatrix(\x20mat4\x20m\x20)\x20{\x0a\x09return\x20m[\x202\x20][\x203\x20]\x20==\x20-\x201.0;\x0a}\x0avec2\x20equirectUv(\x20in\x20vec3\x20dir\x20)\x20{\x0a\x09float\x20u\x20=\x20atan(\x20dir.z,\x20dir.x\x20)\x20*\x20RECIPROCAL_PI2\x20+\x200.5;\x0a\x09float\x20v\x20=\x20asin(\x20clamp(\x20dir.y,\x20-\x201.0,\x201.0\x20)\x20)\x20*\x20RECIPROCAL_PI\x20+\x200.5;\x0a\x09return\x20vec2(\x20u,\x20v\x20);\x0a}\x0avec3\x20BRDF_Lambert(\x20const\x20in\x20vec3\x20diffuseColor\x20)\x20{\x0a\x09return\x20RECIPROCAL_PI\x20*\x20diffuseColor;\x0a}\x0avec3\x20F_Schlick(\x20const\x20in\x20vec3\x20f0,\x20const\x20in\x20float\x20f90,\x20const\x20in\x20float\x20dotVH\x20)\x20{\x0a\x09float\x20fresnel\x20=\x20exp2(\x20(\x20-\x205.55473\x20*\x20dotVH\x20-\x206.98316\x20)\x20*\x20dotVH\x20);\x0a\x09return\x20f0\x20*\x20(\x201.0\x20-\x20fresnel\x20)\x20+\x20(\x20f90\x20*\x20fresnel\x20);\x0a}\x0afloat\x20F_Schlick(\x20const\x20in\x20float\x20f0,\x20const\x20in\x20float\x20f90,\x20const\x20in\x20float\x20dotVH\x20)\x20{\x0a\x09float\x20fresnel\x20=\x20exp2(\x20(\x20-\x205.55473\x20*\x20dotVH\x20-\x206.98316\x20)\x20*\x20dotVH\x20);\x0a\x09return\x20f0\x20*\x20(\x201.0\x20-\x20fresnel\x20)\x20+\x20(\x20f90\x20*\x20fresnel\x20);\x0a}\x20//\x20validated','cube_uv_reflection_fragment':'#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09#define\x20cubeUV_minMipLevel\x204.0\x0a\x09#define\x20cubeUV_minTileSize\x2016.0\x0a\x09float\x20getFace(\x20vec3\x20direction\x20)\x20{\x0a\x09\x09vec3\x20absDirection\x20=\x20abs(\x20direction\x20);\x0a\x09\x09float\x20face\x20=\x20-\x201.0;\x0a\x09\x09if\x20(\x20absDirection.x\x20>\x20absDirection.z\x20)\x20{\x0a\x09\x09\x09if\x20(\x20absDirection.x\x20>\x20absDirection.y\x20)\x0a\x09\x09\x09\x09face\x20=\x20direction.x\x20>\x200.0\x20?\x200.0\x20:\x203.0;\x0a\x09\x09\x09else\x0a\x09\x09\x09\x09face\x20=\x20direction.y\x20>\x200.0\x20?\x201.0\x20:\x204.0;\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09if\x20(\x20absDirection.z\x20>\x20absDirection.y\x20)\x0a\x09\x09\x09\x09face\x20=\x20direction.z\x20>\x200.0\x20?\x202.0\x20:\x205.0;\x0a\x09\x09\x09else\x0a\x09\x09\x09\x09face\x20=\x20direction.y\x20>\x200.0\x20?\x201.0\x20:\x204.0;\x0a\x09\x09}\x0a\x09\x09return\x20face;\x0a\x09}\x0a\x09vec2\x20getUV(\x20vec3\x20direction,\x20float\x20face\x20)\x20{\x0a\x09\x09vec2\x20uv;\x0a\x09\x09if\x20(\x20face\x20==\x200.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20direction.z,\x20direction.y\x20)\x20/\x20abs(\x20direction.x\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x201.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.x,\x20-\x20direction.z\x20)\x20/\x20abs(\x20direction.y\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x202.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.x,\x20direction.y\x20)\x20/\x20abs(\x20direction.z\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x203.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.z,\x20direction.y\x20)\x20/\x20abs(\x20direction.x\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x204.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.x,\x20direction.z\x20)\x20/\x20abs(\x20direction.y\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20direction.x,\x20direction.y\x20)\x20/\x20abs(\x20direction.z\x20);\x0a\x09\x09}\x0a\x09\x09return\x200.5\x20*\x20(\x20uv\x20+\x201.0\x20);\x0a\x09}\x0a\x09vec3\x20bilinearCubeUV(\x20sampler2D\x20envMap,\x20vec3\x20direction,\x20float\x20mipInt\x20)\x20{\x0a\x09\x09float\x20face\x20=\x20getFace(\x20direction\x20);\x0a\x09\x09float\x20filterInt\x20=\x20max(\x20cubeUV_minMipLevel\x20-\x20mipInt,\x200.0\x20);\x0a\x09\x09mipInt\x20=\x20max(\x20mipInt,\x20cubeUV_minMipLevel\x20);\x0a\x09\x09float\x20faceSize\x20=\x20exp2(\x20mipInt\x20);\x0a\x09\x09highp\x20vec2\x20uv\x20=\x20getUV(\x20direction,\x20face\x20)\x20*\x20(\x20faceSize\x20-\x202.0\x20)\x20+\x201.0;\x0a\x09\x09if\x20(\x20face\x20>\x202.0\x20)\x20{\x0a\x09\x09\x09uv.y\x20+=\x20faceSize;\x0a\x09\x09\x09face\x20-=\x203.0;\x0a\x09\x09}\x0a\x09\x09uv.x\x20+=\x20face\x20*\x20faceSize;\x0a\x09\x09uv.x\x20+=\x20filterInt\x20*\x203.0\x20*\x20cubeUV_minTileSize;\x0a\x09\x09uv.y\x20+=\x204.0\x20*\x20(\x20exp2(\x20CUBEUV_MAX_MIP\x20)\x20-\x20faceSize\x20);\x0a\x09\x09uv.x\x20*=\x20CUBEUV_TEXEL_WIDTH;\x0a\x09\x09uv.y\x20*=\x20CUBEUV_TEXEL_HEIGHT;\x0a\x09\x09#ifdef\x20texture2DGradEXT\x0a\x09\x09\x09return\x20texture2DGradEXT(\x20envMap,\x20uv,\x20vec2(\x200.0\x20),\x20vec2(\x200.0\x20)\x20).rgb;\x0a\x09\x09#else\x0a\x09\x09\x09return\x20texture2D(\x20envMap,\x20uv\x20).rgb;\x0a\x09\x09#endif\x0a\x09}\x0a\x09#define\x20cubeUV_r0\x201.0\x0a\x09#define\x20cubeUV_m0\x20-\x202.0\x0a\x09#define\x20cubeUV_r1\x200.8\x0a\x09#define\x20cubeUV_m1\x20-\x201.0\x0a\x09#define\x20cubeUV_r4\x200.4\x0a\x09#define\x20cubeUV_m4\x202.0\x0a\x09#define\x20cubeUV_r5\x200.305\x0a\x09#define\x20cubeUV_m5\x203.0\x0a\x09#define\x20cubeUV_r6\x200.21\x0a\x09#define\x20cubeUV_m6\x204.0\x0a\x09float\x20roughnessToMip(\x20float\x20roughness\x20)\x20{\x0a\x09\x09float\x20mip\x20=\x200.0;\x0a\x09\x09if\x20(\x20roughness\x20>=\x20cubeUV_r1\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r0\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m1\x20-\x20cubeUV_m0\x20)\x20/\x20(\x20cubeUV_r0\x20-\x20cubeUV_r1\x20)\x20+\x20cubeUV_m0;\x0a\x09\x09}\x20else\x20if\x20(\x20roughness\x20>=\x20cubeUV_r4\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r1\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m4\x20-\x20cubeUV_m1\x20)\x20/\x20(\x20cubeUV_r1\x20-\x20cubeUV_r4\x20)\x20+\x20cubeUV_m1;\x0a\x09\x09}\x20else\x20if\x20(\x20roughness\x20>=\x20cubeUV_r5\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r4\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m5\x20-\x20cubeUV_m4\x20)\x20/\x20(\x20cubeUV_r4\x20-\x20cubeUV_r5\x20)\x20+\x20cubeUV_m4;\x0a\x09\x09}\x20else\x20if\x20(\x20roughness\x20>=\x20cubeUV_r6\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r5\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m6\x20-\x20cubeUV_m5\x20)\x20/\x20(\x20cubeUV_r5\x20-\x20cubeUV_r6\x20)\x20+\x20cubeUV_m5;\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09mip\x20=\x20-\x202.0\x20*\x20log2(\x201.16\x20*\x20roughness\x20);\x09\x09}\x0a\x09\x09return\x20mip;\x0a\x09}\x0a\x09vec4\x20textureCubeUV(\x20sampler2D\x20envMap,\x20vec3\x20sampleDir,\x20float\x20roughness\x20)\x20{\x0a\x09\x09float\x20mip\x20=\x20clamp(\x20roughnessToMip(\x20roughness\x20),\x20cubeUV_m0,\x20CUBEUV_MAX_MIP\x20);\x0a\x09\x09float\x20mipF\x20=\x20fract(\x20mip\x20);\x0a\x09\x09float\x20mipInt\x20=\x20floor(\x20mip\x20);\x0a\x09\x09vec3\x20color0\x20=\x20bilinearCubeUV(\x20envMap,\x20sampleDir,\x20mipInt\x20);\x0a\x09\x09if\x20(\x20mipF\x20==\x200.0\x20)\x20{\x0a\x09\x09\x09return\x20vec4(\x20color0,\x201.0\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09vec3\x20color1\x20=\x20bilinearCubeUV(\x20envMap,\x20sampleDir,\x20mipInt\x20+\x201.0\x20);\x0a\x09\x09\x09return\x20vec4(\x20mix(\x20color0,\x20color1,\x20mipF\x20),\x201.0\x20);\x0a\x09\x09}\x0a\x09}\x0a#endif','defaultnormal_vertex':'vec3\x20transformedNormal\x20=\x20objectNormal;\x0a#ifdef\x20USE_TANGENT\x0a\x09vec3\x20transformedTangent\x20=\x20objectTangent;\x0a#endif\x0a#ifdef\x20USE_BATCHING\x0a\x09mat3\x20bm\x20=\x20mat3(\x20batchingMatrix\x20);\x0a\x09transformedNormal\x20/=\x20vec3(\x20dot(\x20bm[\x200\x20],\x20bm[\x200\x20]\x20),\x20dot(\x20bm[\x201\x20],\x20bm[\x201\x20]\x20),\x20dot(\x20bm[\x202\x20],\x20bm[\x202\x20]\x20)\x20);\x0a\x09transformedNormal\x20=\x20bm\x20*\x20transformedNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09transformedTangent\x20=\x20bm\x20*\x20transformedTangent;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_INSTANCING\x0a\x09mat3\x20im\x20=\x20mat3(\x20instanceMatrix\x20);\x0a\x09transformedNormal\x20/=\x20vec3(\x20dot(\x20im[\x200\x20],\x20im[\x200\x20]\x20),\x20dot(\x20im[\x201\x20],\x20im[\x201\x20]\x20),\x20dot(\x20im[\x202\x20],\x20im[\x202\x20]\x20)\x20);\x0a\x09transformedNormal\x20=\x20im\x20*\x20transformedNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09transformedTangent\x20=\x20im\x20*\x20transformedTangent;\x0a\x09#endif\x0a#endif\x0atransformedNormal\x20=\x20normalMatrix\x20*\x20transformedNormal;\x0a#ifdef\x20FLIP_SIDED\x0a\x09transformedNormal\x20=\x20-\x20transformedNormal;\x0a#endif\x0a#ifdef\x20USE_TANGENT\x0a\x09transformedTangent\x20=\x20(\x20modelViewMatrix\x20*\x20vec4(\x20transformedTangent,\x200.0\x20)\x20).xyz;\x0a\x09#ifdef\x20FLIP_SIDED\x0a\x09\x09transformedTangent\x20=\x20-\x20transformedTangent;\x0a\x09#endif\x0a#endif','displacementmap_pars_vertex':'#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09uniform\x20sampler2D\x20displacementMap;\x0a\x09uniform\x20float\x20displacementScale;\x0a\x09uniform\x20float\x20displacementBias;\x0a#endif','displacementmap_vertex':'#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09transformed\x20+=\x20normalize(\x20objectNormal\x20)\x20*\x20(\x20texture2D(\x20displacementMap,\x20vDisplacementMapUv\x20).x\x20*\x20displacementScale\x20+\x20displacementBias\x20);\x0a#endif','emissivemap_fragment':'#ifdef\x20USE_EMISSIVEMAP\x0a\x09vec4\x20emissiveColor\x20=\x20texture2D(\x20emissiveMap,\x20vEmissiveMapUv\x20);\x0a\x09#ifdef\x20DECODE_VIDEO_TEXTURE_EMISSIVE\x0a\x09\x09emissiveColor\x20=\x20sRGBTransferEOTF(\x20emissiveColor\x20);\x0a\x09#endif\x0a\x09totalEmissiveRadiance\x20*=\x20emissiveColor.rgb;\x0a#endif','emissivemap_pars_fragment':'#ifdef\x20USE_EMISSIVEMAP\x0a\x09uniform\x20sampler2D\x20emissiveMap;\x0a#endif','colorspace_fragment':'gl_FragColor\x20=\x20linearToOutputTexel(\x20gl_FragColor\x20);','colorspace_pars_fragment':'vec4\x20LinearTransferOETF(\x20in\x20vec4\x20value\x20)\x20{\x0a\x09return\x20value;\x0a}\x0avec4\x20sRGBTransferEOTF(\x20in\x20vec4\x20value\x20)\x20{\x0a\x09return\x20vec4(\x20mix(\x20pow(\x20value.rgb\x20*\x200.9478672986\x20+\x20vec3(\x200.0521327014\x20),\x20vec3(\x202.4\x20)\x20),\x20value.rgb\x20*\x200.0773993808,\x20vec3(\x20lessThanEqual(\x20value.rgb,\x20vec3(\x200.04045\x20)\x20)\x20)\x20),\x20value.a\x20);\x0a}\x0avec4\x20sRGBTransferOETF(\x20in\x20vec4\x20value\x20)\x20{\x0a\x09return\x20vec4(\x20mix(\x20pow(\x20value.rgb,\x20vec3(\x200.41666\x20)\x20)\x20*\x201.055\x20-\x20vec3(\x200.055\x20),\x20value.rgb\x20*\x2012.92,\x20vec3(\x20lessThanEqual(\x20value.rgb,\x20vec3(\x200.0031308\x20)\x20)\x20)\x20),\x20value.a\x20);\x0a}','envmap_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09vec3\x20cameraToFrag;\x0a\x09\x09if\x20(\x20isOrthographic\x20)\x20{\x0a\x09\x09\x09cameraToFrag\x20=\x20normalize(\x20vec3(\x20-\x20viewMatrix[\x200\x20][\x202\x20],\x20-\x20viewMatrix[\x201\x20][\x202\x20],\x20-\x20viewMatrix[\x202\x20][\x202\x20]\x20)\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09cameraToFrag\x20=\x20normalize(\x20vWorldPosition\x20-\x20cameraPosition\x20);\x0a\x09\x09}\x0a\x09\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09\x09#ifdef\x20ENVMAP_MODE_REFLECTION\x0a\x09\x09\x09vec3\x20reflectVec\x20=\x20reflect(\x20cameraToFrag,\x20worldNormal\x20);\x0a\x09\x09#else\x0a\x09\x09\x09vec3\x20reflectVec\x20=\x20refract(\x20cameraToFrag,\x20worldNormal,\x20refractionRatio\x20);\x0a\x09\x09#endif\x0a\x09#else\x0a\x09\x09vec3\x20reflectVec\x20=\x20vReflect;\x0a\x09#endif\x0a\x09#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09\x09vec4\x20envColor\x20=\x20textureCube(\x20envMap,\x20envMapRotation\x20*\x20reflectVec\x20);\x0a\x09\x09#ifdef\x20ENVMAP_BLENDING_MULTIPLY\x0a\x09\x09\x09outgoingLight\x20=\x20mix(\x20outgoingLight,\x20outgoingLight\x20*\x20envColor.xyz,\x20specularStrength\x20*\x20reflectivity\x20);\x0a\x09\x09#elif\x20defined(\x20ENVMAP_BLENDING_MIX\x20)\x0a\x09\x09\x09outgoingLight\x20=\x20mix(\x20outgoingLight,\x20envColor.xyz,\x20specularStrength\x20*\x20reflectivity\x20);\x0a\x09\x09#elif\x20defined(\x20ENVMAP_BLENDING_ADD\x20)\x0a\x09\x09\x09outgoingLight\x20+=\x20envColor.xyz\x20*\x20specularStrength\x20*\x20reflectivity;\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif','envmap_common_pars_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09uniform\x20float\x20envMapIntensity;\x0a\x09uniform\x20mat3\x20envMapRotation;\x0a\x09#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09\x09uniform\x20samplerCube\x20envMap;\x0a\x09#else\x0a\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x09#endif\x0a#endif','envmap_pars_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09uniform\x20float\x20reflectivity;\x0a\x09#if\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP\x20)\x20||\x20defined(\x20PHONG\x20)\x20||\x20defined(\x20LAMBERT\x20)\x0a\x09\x09#define\x20ENV_WORLDPOS\x0a\x09#endif\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09varying\x20vec3\x20vWorldPosition;\x0a\x09\x09uniform\x20float\x20refractionRatio;\x0a\x09#else\x0a\x09\x09varying\x20vec3\x20vReflect;\x0a\x09#endif\x0a#endif','envmap_pars_vertex':'#ifdef\x20USE_ENVMAP\x0a\x09#if\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP\x20)\x20||\x20defined(\x20PHONG\x20)\x20||\x20defined(\x20LAMBERT\x20)\x0a\x09\x09#define\x20ENV_WORLDPOS\x0a\x09#endif\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09\x0a\x09\x09varying\x20vec3\x20vWorldPosition;\x0a\x09#else\x0a\x09\x09varying\x20vec3\x20vReflect;\x0a\x09\x09uniform\x20float\x20refractionRatio;\x0a\x09#endif\x0a#endif','envmap_physical_pars_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09vec3\x20getIBLIrradiance(\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09\x09#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09\x09\x09vec4\x20envMapColor\x20=\x20textureCubeUV(\x20envMap,\x20envMapRotation\x20*\x20worldNormal,\x201.0\x20);\x0a\x09\x09\x09return\x20PI\x20*\x20envMapColor.rgb\x20*\x20envMapIntensity;\x0a\x09\x09#else\x0a\x09\x09\x09return\x20vec3(\x200.0\x20);\x0a\x09\x09#endif\x0a\x09}\x0a\x09vec3\x20getIBLRadiance(\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09\x09#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09vec3\x20reflectVec\x20=\x20reflect(\x20-\x20viewDir,\x20normal\x20);\x0a\x09\x09\x09reflectVec\x20=\x20normalize(\x20mix(\x20reflectVec,\x20normal,\x20pow4(\x20roughness\x20)\x20)\x20);\x0a\x09\x09\x09reflectVec\x20=\x20inverseTransformDirection(\x20reflectVec,\x20viewMatrix\x20);\x0a\x09\x09\x09vec4\x20envMapColor\x20=\x20textureCubeUV(\x20envMap,\x20envMapRotation\x20*\x20reflectVec,\x20roughness\x20);\x0a\x09\x09\x09return\x20envMapColor.rgb\x20*\x20envMapIntensity;\x0a\x09\x09#else\x0a\x09\x09\x09return\x20vec3(\x200.0\x20);\x0a\x09\x09#endif\x0a\x09}\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09vec3\x20getIBLAnisotropyRadiance(\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20vec3\x20bitangent,\x20const\x20in\x20float\x20anisotropy\x20)\x20{\x0a\x09\x09\x09#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09\x09vec3\x20bentNormal\x20=\x20cross(\x20bitangent,\x20viewDir\x20);\x0a\x09\x09\x09\x09bentNormal\x20=\x20normalize(\x20cross(\x20bentNormal,\x20bitangent\x20)\x20);\x0a\x09\x09\x09\x09bentNormal\x20=\x20normalize(\x20mix(\x20bentNormal,\x20normal,\x20pow2(\x20pow2(\x201.0\x20-\x20anisotropy\x20*\x20(\x201.0\x20-\x20roughness\x20)\x20)\x20)\x20)\x20);\x0a\x09\x09\x09\x09return\x20getIBLRadiance(\x20viewDir,\x20bentNormal,\x20roughness\x20);\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09return\x20vec3(\x200.0\x20);\x0a\x09\x09\x09#endif\x0a\x09\x09}\x0a\x09#endif\x0a#endif','envmap_vertex':'#ifdef\x20USE_ENVMAP\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09vWorldPosition\x20=\x20worldPosition.xyz;\x0a\x09#else\x0a\x09\x09vec3\x20cameraToVertex;\x0a\x09\x09if\x20(\x20isOrthographic\x20)\x20{\x0a\x09\x09\x09cameraToVertex\x20=\x20normalize(\x20vec3(\x20-\x20viewMatrix[\x200\x20][\x202\x20],\x20-\x20viewMatrix[\x201\x20][\x202\x20],\x20-\x20viewMatrix[\x202\x20][\x202\x20]\x20)\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09cameraToVertex\x20=\x20normalize(\x20worldPosition.xyz\x20-\x20cameraPosition\x20);\x0a\x09\x09}\x0a\x09\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20transformedNormal,\x20viewMatrix\x20);\x0a\x09\x09#ifdef\x20ENVMAP_MODE_REFLECTION\x0a\x09\x09\x09vReflect\x20=\x20reflect(\x20cameraToVertex,\x20worldNormal\x20);\x0a\x09\x09#else\x0a\x09\x09\x09vReflect\x20=\x20refract(\x20cameraToVertex,\x20worldNormal,\x20refractionRatio\x20);\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif','fog_vertex':'#ifdef\x20USE_FOG\x0a\x09vFogDepth\x20=\x20-\x20mvPosition.z;\x0a#endif','fog_pars_vertex':'#ifdef\x20USE_FOG\x0a\x09varying\x20float\x20vFogDepth;\x0a#endif','fog_fragment':'#ifdef\x20USE_FOG\x0a\x09#ifdef\x20FOG_EXP2\x0a\x09\x09float\x20fogFactor\x20=\x201.0\x20-\x20exp(\x20-\x20fogDensity\x20*\x20fogDensity\x20*\x20vFogDepth\x20*\x20vFogDepth\x20);\x0a\x09#else\x0a\x09\x09float\x20fogFactor\x20=\x20smoothstep(\x20fogNear,\x20fogFar,\x20vFogDepth\x20);\x0a\x09#endif\x0a\x09gl_FragColor.rgb\x20=\x20mix(\x20gl_FragColor.rgb,\x20fogColor,\x20fogFactor\x20);\x0a#endif','fog_pars_fragment':d4(0x2c3),'gradientmap_pars_fragment':'#ifdef\x20USE_GRADIENTMAP\x0a\x09uniform\x20sampler2D\x20gradientMap;\x0a#endif\x0avec3\x20getGradientIrradiance(\x20vec3\x20normal,\x20vec3\x20lightDirection\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20dot(\x20normal,\x20lightDirection\x20);\x0a\x09vec2\x20coord\x20=\x20vec2(\x20dotNL\x20*\x200.5\x20+\x200.5,\x200.0\x20);\x0a\x09#ifdef\x20USE_GRADIENTMAP\x0a\x09\x09return\x20vec3(\x20texture2D(\x20gradientMap,\x20coord\x20).r\x20);\x0a\x09#else\x0a\x09\x09vec2\x20fw\x20=\x20fwidth(\x20coord\x20)\x20*\x200.5;\x0a\x09\x09return\x20mix(\x20vec3(\x200.7\x20),\x20vec3(\x201.0\x20),\x20smoothstep(\x200.7\x20-\x20fw.x,\x200.7\x20+\x20fw.x,\x20coord.x\x20)\x20);\x0a\x09#endif\x0a}','lightmap_pars_fragment':'#ifdef\x20USE_LIGHTMAP\x0a\x09uniform\x20sampler2D\x20lightMap;\x0a\x09uniform\x20float\x20lightMapIntensity;\x0a#endif','lights_lambert_fragment':d4(0x327),'lights_lambert_pars_fragment':'varying\x20vec3\x20vViewPosition;\x0astruct\x20LambertMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a\x09float\x20specularStrength;\x0a};\x0avoid\x20RE_Direct_Lambert(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20LambertMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20directLight.direction\x20)\x20);\x0a\x09vec3\x20irradiance\x20=\x20dotNL\x20*\x20directLight.color;\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0avoid\x20RE_IndirectDiffuse_Lambert(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20LambertMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_Lambert\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_Lambert','lights_pars_begin':'uniform\x20bool\x20receiveShadow;\x0auniform\x20vec3\x20ambientLightColor;\x0a#if\x20defined(\x20USE_LIGHT_PROBES\x20)\x0a\x09uniform\x20vec3\x20lightProbe[\x209\x20];\x0a#endif\x0avec3\x20shGetIrradianceAt(\x20in\x20vec3\x20normal,\x20in\x20vec3\x20shCoefficients[\x209\x20]\x20)\x20{\x0a\x09float\x20x\x20=\x20normal.x,\x20y\x20=\x20normal.y,\x20z\x20=\x20normal.z;\x0a\x09vec3\x20result\x20=\x20shCoefficients[\x200\x20]\x20*\x200.886227;\x0a\x09result\x20+=\x20shCoefficients[\x201\x20]\x20*\x202.0\x20*\x200.511664\x20*\x20y;\x0a\x09result\x20+=\x20shCoefficients[\x202\x20]\x20*\x202.0\x20*\x200.511664\x20*\x20z;\x0a\x09result\x20+=\x20shCoefficients[\x203\x20]\x20*\x202.0\x20*\x200.511664\x20*\x20x;\x0a\x09result\x20+=\x20shCoefficients[\x204\x20]\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20y;\x0a\x09result\x20+=\x20shCoefficients[\x205\x20]\x20*\x202.0\x20*\x200.429043\x20*\x20y\x20*\x20z;\x0a\x09result\x20+=\x20shCoefficients[\x206\x20]\x20*\x20(\x200.743125\x20*\x20z\x20*\x20z\x20-\x200.247708\x20);\x0a\x09result\x20+=\x20shCoefficients[\x207\x20]\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20z;\x0a\x09result\x20+=\x20shCoefficients[\x208\x20]\x20*\x200.429043\x20*\x20(\x20x\x20*\x20x\x20-\x20y\x20*\x20y\x20);\x0a\x09return\x20result;\x0a}\x0avec3\x20getLightProbeIrradiance(\x20const\x20in\x20vec3\x20lightProbe[\x209\x20],\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09vec3\x20irradiance\x20=\x20shGetIrradianceAt(\x20worldNormal,\x20lightProbe\x20);\x0a\x09return\x20irradiance;\x0a}\x0avec3\x20getAmbientLightIrradiance(\x20const\x20in\x20vec3\x20ambientLightColor\x20)\x20{\x0a\x09vec3\x20irradiance\x20=\x20ambientLightColor;\x0a\x09return\x20irradiance;\x0a}\x0afloat\x20getDistanceAttenuation(\x20const\x20in\x20float\x20lightDistance,\x20const\x20in\x20float\x20cutoffDistance,\x20const\x20in\x20float\x20decayExponent\x20)\x20{\x0a\x09float\x20distanceFalloff\x20=\x201.0\x20/\x20max(\x20pow(\x20lightDistance,\x20decayExponent\x20),\x200.01\x20);\x0a\x09if\x20(\x20cutoffDistance\x20>\x200.0\x20)\x20{\x0a\x09\x09distanceFalloff\x20*=\x20pow2(\x20saturate(\x201.0\x20-\x20pow4(\x20lightDistance\x20/\x20cutoffDistance\x20)\x20)\x20);\x0a\x09}\x0a\x09return\x20distanceFalloff;\x0a}\x0afloat\x20getSpotAttenuation(\x20const\x20in\x20float\x20coneCosine,\x20const\x20in\x20float\x20penumbraCosine,\x20const\x20in\x20float\x20angleCosine\x20)\x20{\x0a\x09return\x20smoothstep(\x20coneCosine,\x20penumbraCosine,\x20angleCosine\x20);\x0a}\x0a#if\x20NUM_DIR_LIGHTS\x20>\x200\x0a\x09struct\x20DirectionalLight\x20{\x0a\x09\x09vec3\x20direction;\x0a\x09\x09vec3\x20color;\x0a\x09};\x0a\x09uniform\x20DirectionalLight\x20directionalLights[\x20NUM_DIR_LIGHTS\x20];\x0a\x09void\x20getDirectionalLightInfo(\x20const\x20in\x20DirectionalLight\x20directionalLight,\x20out\x20IncidentLight\x20light\x20)\x20{\x0a\x09\x09light.color\x20=\x20directionalLight.color;\x0a\x09\x09light.direction\x20=\x20directionalLight.direction;\x0a\x09\x09light.visible\x20=\x20true;\x0a\x09}\x0a#endif\x0a#if\x20NUM_POINT_LIGHTS\x20>\x200\x0a\x09struct\x20PointLight\x20{\x0a\x09\x09vec3\x20position;\x0a\x09\x09vec3\x20color;\x0a\x09\x09float\x20distance;\x0a\x09\x09float\x20decay;\x0a\x09};\x0a\x09uniform\x20PointLight\x20pointLights[\x20NUM_POINT_LIGHTS\x20];\x0a\x09void\x20getPointLightInfo(\x20const\x20in\x20PointLight\x20pointLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20out\x20IncidentLight\x20light\x20)\x20{\x0a\x09\x09vec3\x20lVector\x20=\x20pointLight.position\x20-\x20geometryPosition;\x0a\x09\x09light.direction\x20=\x20normalize(\x20lVector\x20);\x0a\x09\x09float\x20lightDistance\x20=\x20length(\x20lVector\x20);\x0a\x09\x09light.color\x20=\x20pointLight.color;\x0a\x09\x09light.color\x20*=\x20getDistanceAttenuation(\x20lightDistance,\x20pointLight.distance,\x20pointLight.decay\x20);\x0a\x09\x09light.visible\x20=\x20(\x20light.color\x20!=\x20vec3(\x200.0\x20)\x20);\x0a\x09}\x0a#endif\x0a#if\x20NUM_SPOT_LIGHTS\x20>\x200\x0a\x09struct\x20SpotLight\x20{\x0a\x09\x09vec3\x20position;\x0a\x09\x09vec3\x20direction;\x0a\x09\x09vec3\x20color;\x0a\x09\x09float\x20distance;\x0a\x09\x09float\x20decay;\x0a\x09\x09float\x20coneCos;\x0a\x09\x09float\x20penumbraCos;\x0a\x09};\x0a\x09uniform\x20SpotLight\x20spotLights[\x20NUM_SPOT_LIGHTS\x20];\x0a\x09void\x20getSpotLightInfo(\x20const\x20in\x20SpotLight\x20spotLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20out\x20IncidentLight\x20light\x20)\x20{\x0a\x09\x09vec3\x20lVector\x20=\x20spotLight.position\x20-\x20geometryPosition;\x0a\x09\x09light.direction\x20=\x20normalize(\x20lVector\x20);\x0a\x09\x09float\x20angleCos\x20=\x20dot(\x20light.direction,\x20spotLight.direction\x20);\x0a\x09\x09float\x20spotAttenuation\x20=\x20getSpotAttenuation(\x20spotLight.coneCos,\x20spotLight.penumbraCos,\x20angleCos\x20);\x0a\x09\x09if\x20(\x20spotAttenuation\x20>\x200.0\x20)\x20{\x0a\x09\x09\x09float\x20lightDistance\x20=\x20length(\x20lVector\x20);\x0a\x09\x09\x09light.color\x20=\x20spotLight.color\x20*\x20spotAttenuation;\x0a\x09\x09\x09light.color\x20*=\x20getDistanceAttenuation(\x20lightDistance,\x20spotLight.distance,\x20spotLight.decay\x20);\x0a\x09\x09\x09light.visible\x20=\x20(\x20light.color\x20!=\x20vec3(\x200.0\x20)\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09light.color\x20=\x20vec3(\x200.0\x20);\x0a\x09\x09\x09light.visible\x20=\x20false;\x0a\x09\x09}\x0a\x09}\x0a#endif\x0a#if\x20NUM_RECT_AREA_LIGHTS\x20>\x200\x0a\x09struct\x20RectAreaLight\x20{\x0a\x09\x09vec3\x20color;\x0a\x09\x09vec3\x20position;\x0a\x09\x09vec3\x20halfWidth;\x0a\x09\x09vec3\x20halfHeight;\x0a\x09};\x0a\x09uniform\x20sampler2D\x20ltc_1;\x09uniform\x20sampler2D\x20ltc_2;\x0a\x09uniform\x20RectAreaLight\x20rectAreaLights[\x20NUM_RECT_AREA_LIGHTS\x20];\x0a#endif\x0a#if\x20NUM_HEMI_LIGHTS\x20>\x200\x0a\x09struct\x20HemisphereLight\x20{\x0a\x09\x09vec3\x20direction;\x0a\x09\x09vec3\x20skyColor;\x0a\x09\x09vec3\x20groundColor;\x0a\x09};\x0a\x09uniform\x20HemisphereLight\x20hemisphereLights[\x20NUM_HEMI_LIGHTS\x20];\x0a\x09vec3\x20getHemisphereLightIrradiance(\x20const\x20in\x20HemisphereLight\x20hemiLight,\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09\x09float\x20dotNL\x20=\x20dot(\x20normal,\x20hemiLight.direction\x20);\x0a\x09\x09float\x20hemiDiffuseWeight\x20=\x200.5\x20*\x20dotNL\x20+\x200.5;\x0a\x09\x09vec3\x20irradiance\x20=\x20mix(\x20hemiLight.groundColor,\x20hemiLight.skyColor,\x20hemiDiffuseWeight\x20);\x0a\x09\x09return\x20irradiance;\x0a\x09}\x0a#endif\x0a#include\x20<lightprobes_pars_fragment>','lights_toon_fragment':'ToonMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;','lights_toon_pars_fragment':'varying\x20vec3\x20vViewPosition;\x0astruct\x20ToonMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a};\x0avoid\x20RE_Direct_Toon(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20ToonMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09vec3\x20irradiance\x20=\x20getGradientIrradiance(\x20geometryNormal,\x20directLight.direction\x20)\x20*\x20directLight.color;\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0avoid\x20RE_IndirectDiffuse_Toon(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20ToonMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_Toon\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_Toon','lights_phong_fragment':'BlinnPhongMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;\x0amaterial.specularColor\x20=\x20specular;\x0amaterial.specularShininess\x20=\x20shininess;\x0amaterial.specularStrength\x20=\x20specularStrength;','lights_phong_pars_fragment':'varying\x20vec3\x20vViewPosition;\x0astruct\x20BlinnPhongMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a\x09vec3\x20specularColor;\x0a\x09float\x20specularShininess;\x0a\x09float\x20specularStrength;\x0a};\x0avoid\x20RE_Direct_BlinnPhong(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20BlinnPhongMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20directLight.direction\x20)\x20);\x0a\x09vec3\x20irradiance\x20=\x20dotNL\x20*\x20directLight.color;\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a\x09reflectedLight.directSpecular\x20+=\x20irradiance\x20*\x20BRDF_BlinnPhong(\x20directLight.direction,\x20geometryViewDir,\x20geometryNormal,\x20material.specularColor,\x20material.specularShininess\x20)\x20*\x20material.specularStrength;\x0a}\x0avoid\x20RE_IndirectDiffuse_BlinnPhong(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20BlinnPhongMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_BlinnPhong\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_BlinnPhong','lights_physical_fragment':'PhysicalMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;\x0amaterial.diffuseContribution\x20=\x20diffuseColor.rgb\x20*\x20(\x201.0\x20-\x20metalnessFactor\x20);\x0amaterial.metalness\x20=\x20metalnessFactor;\x0avec3\x20dxy\x20=\x20max(\x20abs(\x20dFdx(\x20nonPerturbedNormal\x20)\x20),\x20abs(\x20dFdy(\x20nonPerturbedNormal\x20)\x20)\x20);\x0afloat\x20geometryRoughness\x20=\x20max(\x20max(\x20dxy.x,\x20dxy.y\x20),\x20dxy.z\x20);\x0amaterial.roughness\x20=\x20max(\x20roughnessFactor,\x200.0525\x20);material.roughness\x20+=\x20geometryRoughness;\x0amaterial.roughness\x20=\x20min(\x20material.roughness,\x201.0\x20);\x0a#ifdef\x20IOR\x0a\x09material.ior\x20=\x20ior;\x0a\x09#ifdef\x20USE_SPECULAR\x0a\x09\x09float\x20specularIntensityFactor\x20=\x20specularIntensity;\x0a\x09\x09vec3\x20specularColorFactor\x20=\x20specularColor;\x0a\x09\x09#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09\x09\x09specularColorFactor\x20*=\x20texture2D(\x20specularColorMap,\x20vSpecularColorMapUv\x20).rgb;\x0a\x09\x09#endif\x0a\x09\x09#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09\x09\x09specularIntensityFactor\x20*=\x20texture2D(\x20specularIntensityMap,\x20vSpecularIntensityMapUv\x20).a;\x0a\x09\x09#endif\x0a\x09\x09material.specularF90\x20=\x20mix(\x20specularIntensityFactor,\x201.0,\x20metalnessFactor\x20);\x0a\x09#else\x0a\x09\x09float\x20specularIntensityFactor\x20=\x201.0;\x0a\x09\x09vec3\x20specularColorFactor\x20=\x20vec3(\x201.0\x20);\x0a\x09\x09material.specularF90\x20=\x201.0;\x0a\x09#endif\x0a\x09material.specularColor\x20=\x20min(\x20pow2(\x20(\x20material.ior\x20-\x201.0\x20)\x20/\x20(\x20material.ior\x20+\x201.0\x20)\x20)\x20*\x20specularColorFactor,\x20vec3(\x201.0\x20)\x20)\x20*\x20specularIntensityFactor;\x0a\x09material.specularColorBlended\x20=\x20mix(\x20material.specularColor,\x20diffuseColor.rgb,\x20metalnessFactor\x20);\x0a#else\x0a\x09material.specularColor\x20=\x20vec3(\x200.04\x20);\x0a\x09material.specularColorBlended\x20=\x20mix(\x20material.specularColor,\x20diffuseColor.rgb,\x20metalnessFactor\x20);\x0a\x09material.specularF90\x20=\x201.0;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09material.clearcoat\x20=\x20clearcoat;\x0a\x09material.clearcoatRoughness\x20=\x20clearcoatRoughness;\x0a\x09material.clearcoatF0\x20=\x20vec3(\x200.04\x20);\x0a\x09material.clearcoatF90\x20=\x201.0;\x0a\x09#ifdef\x20USE_CLEARCOATMAP\x0a\x09\x09material.clearcoat\x20*=\x20texture2D(\x20clearcoatMap,\x20vClearcoatMapUv\x20).x;\x0a\x09#endif\x0a\x09#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09\x09material.clearcoatRoughness\x20*=\x20texture2D(\x20clearcoatRoughnessMap,\x20vClearcoatRoughnessMapUv\x20).y;\x0a\x09#endif\x0a\x09material.clearcoat\x20=\x20saturate(\x20material.clearcoat\x20);\x09material.clearcoatRoughness\x20=\x20max(\x20material.clearcoatRoughness,\x200.0525\x20);\x0a\x09material.clearcoatRoughness\x20+=\x20geometryRoughness;\x0a\x09material.clearcoatRoughness\x20=\x20min(\x20material.clearcoatRoughness,\x201.0\x20);\x0a#endif\x0a#ifdef\x20USE_DISPERSION\x0a\x09material.dispersion\x20=\x20dispersion;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE\x0a\x09material.iridescence\x20=\x20iridescence;\x0a\x09material.iridescenceIOR\x20=\x20iridescenceIOR;\x0a\x09#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09\x09material.iridescence\x20*=\x20texture2D(\x20iridescenceMap,\x20vIridescenceMapUv\x20).r;\x0a\x09#endif\x0a\x09#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09\x09material.iridescenceThickness\x20=\x20(iridescenceThicknessMaximum\x20-\x20iridescenceThicknessMinimum)\x20*\x20texture2D(\x20iridescenceThicknessMap,\x20vIridescenceThicknessMapUv\x20).g\x20+\x20iridescenceThicknessMinimum;\x0a\x09#else\x0a\x09\x09material.iridescenceThickness\x20=\x20iridescenceThicknessMaximum;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_SHEEN\x0a\x09material.sheenColor\x20=\x20sheenColor;\x0a\x09#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09\x09material.sheenColor\x20*=\x20texture2D(\x20sheenColorMap,\x20vSheenColorMapUv\x20).rgb;\x0a\x09#endif\x0a\x09material.sheenRoughness\x20=\x20clamp(\x20sheenRoughness,\x200.0001,\x201.0\x20);\x0a\x09#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09\x09material.sheenRoughness\x20*=\x20texture2D(\x20sheenRoughnessMap,\x20vSheenRoughnessMapUv\x20).a;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_ANISOTROPY\x0a\x09#ifdef\x20USE_ANISOTROPYMAP\x0a\x09\x09mat2\x20anisotropyMat\x20=\x20mat2(\x20anisotropyVector.x,\x20anisotropyVector.y,\x20-\x20anisotropyVector.y,\x20anisotropyVector.x\x20);\x0a\x09\x09vec3\x20anisotropyPolar\x20=\x20texture2D(\x20anisotropyMap,\x20vAnisotropyMapUv\x20).rgb;\x0a\x09\x09vec2\x20anisotropyV\x20=\x20anisotropyMat\x20*\x20normalize(\x202.0\x20*\x20anisotropyPolar.rg\x20-\x20vec2(\x201.0\x20)\x20)\x20*\x20anisotropyPolar.b;\x0a\x09#else\x0a\x09\x09vec2\x20anisotropyV\x20=\x20anisotropyVector;\x0a\x09#endif\x0a\x09material.anisotropy\x20=\x20length(\x20anisotropyV\x20);\x0a\x09if(\x20material.anisotropy\x20==\x200.0\x20)\x20{\x0a\x09\x09anisotropyV\x20=\x20vec2(\x201.0,\x200.0\x20);\x0a\x09}\x20else\x20{\x0a\x09\x09anisotropyV\x20/=\x20material.anisotropy;\x0a\x09\x09material.anisotropy\x20=\x20saturate(\x20material.anisotropy\x20);\x0a\x09}\x0a\x09material.alphaT\x20=\x20mix(\x20pow2(\x20material.roughness\x20),\x201.0,\x20pow2(\x20material.anisotropy\x20)\x20);\x0a\x09material.anisotropyT\x20=\x20tbn[\x200\x20]\x20*\x20anisotropyV.x\x20+\x20tbn[\x201\x20]\x20*\x20anisotropyV.y;\x0a\x09material.anisotropyB\x20=\x20tbn[\x201\x20]\x20*\x20anisotropyV.x\x20-\x20tbn[\x200\x20]\x20*\x20anisotropyV.y;\x0a#endif','lights_physical_pars_fragment':'uniform\x20sampler2D\x20dfgLUT;\x0astruct\x20PhysicalMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a\x09vec3\x20diffuseContribution;\x0a\x09vec3\x20specularColor;\x0a\x09vec3\x20specularColorBlended;\x0a\x09float\x20roughness;\x0a\x09float\x20metalness;\x0a\x09float\x20specularF90;\x0a\x09float\x20dispersion;\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09float\x20clearcoat;\x0a\x09\x09float\x20clearcoatRoughness;\x0a\x09\x09vec3\x20clearcoatF0;\x0a\x09\x09float\x20clearcoatF90;\x0a\x09#endif\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09float\x20iridescence;\x0a\x09\x09float\x20iridescenceIOR;\x0a\x09\x09float\x20iridescenceThickness;\x0a\x09\x09vec3\x20iridescenceFresnel;\x0a\x09\x09vec3\x20iridescenceF0;\x0a\x09\x09vec3\x20iridescenceFresnelDielectric;\x0a\x09\x09vec3\x20iridescenceFresnelMetallic;\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09vec3\x20sheenColor;\x0a\x09\x09float\x20sheenRoughness;\x0a\x09#endif\x0a\x09#ifdef\x20IOR\x0a\x09\x09float\x20ior;\x0a\x09#endif\x0a\x09#ifdef\x20USE_TRANSMISSION\x0a\x09\x09float\x20transmission;\x0a\x09\x09float\x20transmissionAlpha;\x0a\x09\x09float\x20thickness;\x0a\x09\x09float\x20attenuationDistance;\x0a\x09\x09vec3\x20attenuationColor;\x0a\x09#endif\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09float\x20anisotropy;\x0a\x09\x09float\x20alphaT;\x0a\x09\x09vec3\x20anisotropyT;\x0a\x09\x09vec3\x20anisotropyB;\x0a\x09#endif\x0a};\x0avec3\x20clearcoatSpecularDirect\x20=\x20vec3(\x200.0\x20);\x0avec3\x20clearcoatSpecularIndirect\x20=\x20vec3(\x200.0\x20);\x0avec3\x20sheenSpecularDirect\x20=\x20vec3(\x200.0\x20);\x0avec3\x20sheenSpecularIndirect\x20=\x20vec3(0.0\x20);\x0avec3\x20Schlick_to_F0(\x20const\x20in\x20vec3\x20f,\x20const\x20in\x20float\x20f90,\x20const\x20in\x20float\x20dotVH\x20)\x20{\x0a\x20\x20\x20\x20float\x20x\x20=\x20clamp(\x201.0\x20-\x20dotVH,\x200.0,\x201.0\x20);\x0a\x20\x20\x20\x20float\x20x2\x20=\x20x\x20*\x20x;\x0a\x20\x20\x20\x20float\x20x5\x20=\x20clamp(\x20x\x20*\x20x2\x20*\x20x2,\x200.0,\x200.9999\x20);\x0a\x20\x20\x20\x20return\x20(\x20f\x20-\x20vec3(\x20f90\x20)\x20*\x20x5\x20)\x20/\x20(\x201.0\x20-\x20x5\x20);\x0a}\x0afloat\x20V_GGX_SmithCorrelated(\x20const\x20in\x20float\x20alpha,\x20const\x20in\x20float\x20dotNL,\x20const\x20in\x20float\x20dotNV\x20)\x20{\x0a\x09float\x20a2\x20=\x20pow2(\x20alpha\x20);\x0a\x09float\x20gv\x20=\x20dotNL\x20*\x20sqrt(\x20a2\x20+\x20(\x201.0\x20-\x20a2\x20)\x20*\x20pow2(\x20dotNV\x20)\x20);\x0a\x09float\x20gl\x20=\x20dotNV\x20*\x20sqrt(\x20a2\x20+\x20(\x201.0\x20-\x20a2\x20)\x20*\x20pow2(\x20dotNL\x20)\x20);\x0a\x09return\x200.5\x20/\x20max(\x20gv\x20+\x20gl,\x20EPSILON\x20);\x0a}\x0afloat\x20D_GGX(\x20const\x20in\x20float\x20alpha,\x20const\x20in\x20float\x20dotNH\x20)\x20{\x0a\x09float\x20a2\x20=\x20pow2(\x20alpha\x20);\x0a\x09float\x20denom\x20=\x20pow2(\x20dotNH\x20)\x20*\x20(\x20a2\x20-\x201.0\x20)\x20+\x201.0;\x0a\x09return\x20RECIPROCAL_PI\x20*\x20a2\x20/\x20pow2(\x20denom\x20);\x0a}\x0a#ifdef\x20USE_ANISOTROPY\x0a\x09float\x20V_GGX_SmithCorrelated_Anisotropic(\x20const\x20in\x20float\x20alphaT,\x20const\x20in\x20float\x20alphaB,\x20const\x20in\x20float\x20dotTV,\x20const\x20in\x20float\x20dotBV,\x20const\x20in\x20float\x20dotTL,\x20const\x20in\x20float\x20dotBL,\x20const\x20in\x20float\x20dotNV,\x20const\x20in\x20float\x20dotNL\x20)\x20{\x0a\x09\x09float\x20gv\x20=\x20dotNL\x20*\x20length(\x20vec3(\x20alphaT\x20*\x20dotTV,\x20alphaB\x20*\x20dotBV,\x20dotNV\x20)\x20);\x0a\x09\x09float\x20gl\x20=\x20dotNV\x20*\x20length(\x20vec3(\x20alphaT\x20*\x20dotTL,\x20alphaB\x20*\x20dotBL,\x20dotNL\x20)\x20);\x0a\x09\x09return\x200.5\x20/\x20max(\x20gv\x20+\x20gl,\x20EPSILON\x20);\x0a\x09}\x0a\x09float\x20D_GGX_Anisotropic(\x20const\x20in\x20float\x20alphaT,\x20const\x20in\x20float\x20alphaB,\x20const\x20in\x20float\x20dotNH,\x20const\x20in\x20float\x20dotTH,\x20const\x20in\x20float\x20dotBH\x20)\x20{\x0a\x09\x09float\x20a2\x20=\x20alphaT\x20*\x20alphaB;\x0a\x09\x09highp\x20vec3\x20v\x20=\x20vec3(\x20alphaB\x20*\x20dotTH,\x20alphaT\x20*\x20dotBH,\x20a2\x20*\x20dotNH\x20);\x0a\x09\x09highp\x20float\x20v2\x20=\x20dot(\x20v,\x20v\x20);\x0a\x09\x09float\x20w2\x20=\x20a2\x20/\x20v2;\x0a\x09\x09return\x20RECIPROCAL_PI\x20*\x20a2\x20*\x20pow2\x20(\x20w2\x20);\x0a\x09}\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09vec3\x20BRDF_GGX_Clearcoat(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20PhysicalMaterial\x20material)\x20{\x0a\x09\x09vec3\x20f0\x20=\x20material.clearcoatF0;\x0a\x09\x09float\x20f90\x20=\x20material.clearcoatF90;\x0a\x09\x09float\x20roughness\x20=\x20material.clearcoatRoughness;\x0a\x09\x09float\x20alpha\x20=\x20pow2(\x20roughness\x20);\x0a\x09\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09\x09float\x20dotVH\x20=\x20saturate(\x20dot(\x20viewDir,\x20halfDir\x20)\x20);\x0a\x09\x09vec3\x20F\x20=\x20F_Schlick(\x20f0,\x20f90,\x20dotVH\x20);\x0a\x09\x09float\x20V\x20=\x20V_GGX_SmithCorrelated(\x20alpha,\x20dotNL,\x20dotNV\x20);\x0a\x09\x09float\x20D\x20=\x20D_GGX(\x20alpha,\x20dotNH\x20);\x0a\x09\x09return\x20F\x20*\x20(\x20V\x20*\x20D\x20);\x0a\x09}\x0a#endif\x0avec3\x20BRDF_GGX(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20PhysicalMaterial\x20material\x20)\x20{\x0a\x09vec3\x20f0\x20=\x20material.specularColorBlended;\x0a\x09float\x20f90\x20=\x20material.specularF90;\x0a\x09float\x20roughness\x20=\x20material.roughness;\x0a\x09float\x20alpha\x20=\x20pow2(\x20roughness\x20);\x0a\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09float\x20dotVH\x20=\x20saturate(\x20dot(\x20viewDir,\x20halfDir\x20)\x20);\x0a\x09vec3\x20F\x20=\x20F_Schlick(\x20f0,\x20f90,\x20dotVH\x20);\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09F\x20=\x20mix(\x20F,\x20material.iridescenceFresnel,\x20material.iridescence\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09float\x20dotTL\x20=\x20dot(\x20material.anisotropyT,\x20lightDir\x20);\x0a\x09\x09float\x20dotTV\x20=\x20dot(\x20material.anisotropyT,\x20viewDir\x20);\x0a\x09\x09float\x20dotTH\x20=\x20dot(\x20material.anisotropyT,\x20halfDir\x20);\x0a\x09\x09float\x20dotBL\x20=\x20dot(\x20material.anisotropyB,\x20lightDir\x20);\x0a\x09\x09float\x20dotBV\x20=\x20dot(\x20material.anisotropyB,\x20viewDir\x20);\x0a\x09\x09float\x20dotBH\x20=\x20dot(\x20material.anisotropyB,\x20halfDir\x20);\x0a\x09\x09float\x20V\x20=\x20V_GGX_SmithCorrelated_Anisotropic(\x20material.alphaT,\x20alpha,\x20dotTV,\x20dotBV,\x20dotTL,\x20dotBL,\x20dotNV,\x20dotNL\x20);\x0a\x09\x09float\x20D\x20=\x20D_GGX_Anisotropic(\x20material.alphaT,\x20alpha,\x20dotNH,\x20dotTH,\x20dotBH\x20);\x0a\x09#else\x0a\x09\x09float\x20V\x20=\x20V_GGX_SmithCorrelated(\x20alpha,\x20dotNL,\x20dotNV\x20);\x0a\x09\x09float\x20D\x20=\x20D_GGX(\x20alpha,\x20dotNH\x20);\x0a\x09#endif\x0a\x09return\x20F\x20*\x20(\x20V\x20*\x20D\x20);\x0a}\x0avec2\x20LTC_Uv(\x20const\x20in\x20vec3\x20N,\x20const\x20in\x20vec3\x20V,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09const\x20float\x20LUT_SIZE\x20=\x2064.0;\x0a\x09const\x20float\x20LUT_SCALE\x20=\x20(\x20LUT_SIZE\x20-\x201.0\x20)\x20/\x20LUT_SIZE;\x0a\x09const\x20float\x20LUT_BIAS\x20=\x200.5\x20/\x20LUT_SIZE;\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20N,\x20V\x20)\x20);\x0a\x09vec2\x20uv\x20=\x20vec2(\x20roughness,\x20sqrt(\x201.0\x20-\x20dotNV\x20)\x20);\x0a\x09uv\x20=\x20uv\x20*\x20LUT_SCALE\x20+\x20LUT_BIAS;\x0a\x09return\x20uv;\x0a}\x0afloat\x20LTC_ClippedSphereFormFactor(\x20const\x20in\x20vec3\x20f\x20)\x20{\x0a\x09float\x20l\x20=\x20length(\x20f\x20);\x0a\x09return\x20max(\x20(\x20l\x20*\x20l\x20+\x20f.z\x20)\x20/\x20(\x20l\x20+\x201.0\x20),\x200.0\x20);\x0a}\x0avec3\x20LTC_EdgeVectorFormFactor(\x20const\x20in\x20vec3\x20v1,\x20const\x20in\x20vec3\x20v2\x20)\x20{\x0a\x09float\x20x\x20=\x20dot(\x20v1,\x20v2\x20);\x0a\x09float\x20y\x20=\x20abs(\x20x\x20);\x0a\x09float\x20a\x20=\x200.8543985\x20+\x20(\x200.4965155\x20+\x200.0145206\x20*\x20y\x20)\x20*\x20y;\x0a\x09float\x20b\x20=\x203.4175940\x20+\x20(\x204.1616724\x20+\x20y\x20)\x20*\x20y;\x0a\x09float\x20v\x20=\x20a\x20/\x20b;\x0a\x09float\x20theta_sintheta\x20=\x20(\x20x\x20>\x200.0\x20)\x20?\x20v\x20:\x200.5\x20*\x20inversesqrt(\x20max(\x201.0\x20-\x20x\x20*\x20x,\x201e-7\x20)\x20)\x20-\x20v;\x0a\x09return\x20cross(\x20v1,\x20v2\x20)\x20*\x20theta_sintheta;\x0a}\x0avec3\x20LTC_Evaluate(\x20const\x20in\x20vec3\x20N,\x20const\x20in\x20vec3\x20V,\x20const\x20in\x20vec3\x20P,\x20const\x20in\x20mat3\x20mInv,\x20const\x20in\x20vec3\x20rectCoords[\x204\x20]\x20)\x20{\x0a\x09vec3\x20v1\x20=\x20rectCoords[\x201\x20]\x20-\x20rectCoords[\x200\x20];\x0a\x09vec3\x20v2\x20=\x20rectCoords[\x203\x20]\x20-\x20rectCoords[\x200\x20];\x0a\x09vec3\x20lightNormal\x20=\x20cross(\x20v1,\x20v2\x20);\x0a\x09if(\x20dot(\x20lightNormal,\x20P\x20-\x20rectCoords[\x200\x20]\x20)\x20<\x200.0\x20)\x20return\x20vec3(\x200.0\x20);\x0a\x09vec3\x20T1,\x20T2;\x0a\x09T1\x20=\x20normalize(\x20V\x20-\x20N\x20*\x20dot(\x20V,\x20N\x20)\x20);\x0a\x09T2\x20=\x20-\x20cross(\x20N,\x20T1\x20);\x0a\x09mat3\x20mat\x20=\x20mInv\x20*\x20transpose(\x20mat3(\x20T1,\x20T2,\x20N\x20)\x20);\x0a\x09vec3\x20coords[\x204\x20];\x0a\x09coords[\x200\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x200\x20]\x20-\x20P\x20);\x0a\x09coords[\x201\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x201\x20]\x20-\x20P\x20);\x0a\x09coords[\x202\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x202\x20]\x20-\x20P\x20);\x0a\x09coords[\x203\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x203\x20]\x20-\x20P\x20);\x0a\x09coords[\x200\x20]\x20=\x20normalize(\x20coords[\x200\x20]\x20);\x0a\x09coords[\x201\x20]\x20=\x20normalize(\x20coords[\x201\x20]\x20);\x0a\x09coords[\x202\x20]\x20=\x20normalize(\x20coords[\x202\x20]\x20);\x0a\x09coords[\x203\x20]\x20=\x20normalize(\x20coords[\x203\x20]\x20);\x0a\x09vec3\x20vectorFormFactor\x20=\x20vec3(\x200.0\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x200\x20],\x20coords[\x201\x20]\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x201\x20],\x20coords[\x202\x20]\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x202\x20],\x20coords[\x203\x20]\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x203\x20],\x20coords[\x200\x20]\x20);\x0a\x09float\x20result\x20=\x20LTC_ClippedSphereFormFactor(\x20vectorFormFactor\x20);\x0a\x09return\x20vec3(\x20result\x20);\x0a}\x0a#if\x20defined(\x20USE_SHEEN\x20)\x0afloat\x20D_Charlie(\x20float\x20roughness,\x20float\x20dotNH\x20)\x20{\x0a\x09float\x20alpha\x20=\x20pow2(\x20roughness\x20);\x0a\x09float\x20invAlpha\x20=\x201.0\x20/\x20alpha;\x0a\x09float\x20cos2h\x20=\x20dotNH\x20*\x20dotNH;\x0a\x09float\x20sin2h\x20=\x20max(\x201.0\x20-\x20cos2h,\x200.0078125\x20);\x0a\x09return\x20(\x202.0\x20+\x20invAlpha\x20)\x20*\x20pow(\x20sin2h,\x20invAlpha\x20*\x200.5\x20)\x20/\x20(\x202.0\x20*\x20PI\x20);\x0a}\x0afloat\x20V_Neubelt(\x20float\x20dotNV,\x20float\x20dotNL\x20)\x20{\x0a\x09return\x20saturate(\x201.0\x20/\x20(\x204.0\x20*\x20(\x20dotNL\x20+\x20dotNV\x20-\x20dotNL\x20*\x20dotNV\x20)\x20)\x20);\x0a}\x0avec3\x20BRDF_Sheen(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20vec3\x20sheenColor,\x20const\x20in\x20float\x20sheenRoughness\x20)\x20{\x0a\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09float\x20D\x20=\x20D_Charlie(\x20sheenRoughness,\x20dotNH\x20);\x0a\x09float\x20V\x20=\x20V_Neubelt(\x20dotNV,\x20dotNL\x20);\x0a\x09return\x20sheenColor\x20*\x20(\x20D\x20*\x20V\x20);\x0a}\x0a#endif\x0afloat\x20IBLSheenBRDF(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09float\x20r2\x20=\x20roughness\x20*\x20roughness;\x0a\x09float\x20rInv\x20=\x201.0\x20/\x20(\x20roughness\x20+\x200.1\x20);\x0a\x09float\x20a\x20=\x20-1.9362\x20+\x201.0678\x20*\x20roughness\x20+\x200.4573\x20*\x20r2\x20-\x200.8469\x20*\x20rInv;\x0a\x09float\x20b\x20=\x20-0.6014\x20+\x200.5538\x20*\x20roughness\x20-\x200.4670\x20*\x20r2\x20-\x200.1255\x20*\x20rInv;\x0a\x09float\x20DG\x20=\x20exp(\x20a\x20*\x20dotNV\x20+\x20b\x20);\x0a\x09return\x20saturate(\x20DG\x20);\x0a}\x0avec3\x20EnvironmentBRDF(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09vec2\x20fab\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20roughness,\x20dotNV\x20)\x20).rg;\x0a\x09return\x20specularColor\x20*\x20fab.x\x20+\x20specularF90\x20*\x20fab.y;\x0a}\x0a#ifdef\x20USE_IRIDESCENCE\x0avoid\x20computeMultiscatteringIridescence(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20float\x20iridescence,\x20const\x20in\x20vec3\x20iridescenceF0,\x20const\x20in\x20float\x20roughness,\x20inout\x20vec3\x20singleScatter,\x20inout\x20vec3\x20multiScatter\x20)\x20{\x0a#else\x0avoid\x20computeMultiscattering(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20float\x20roughness,\x20inout\x20vec3\x20singleScatter,\x20inout\x20vec3\x20multiScatter\x20)\x20{\x0a#endif\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09vec2\x20fab\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20roughness,\x20dotNV\x20)\x20).rg;\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09vec3\x20Fr\x20=\x20mix(\x20specularColor,\x20iridescenceF0,\x20iridescence\x20);\x0a\x09#else\x0a\x09\x09vec3\x20Fr\x20=\x20specularColor;\x0a\x09#endif\x0a\x09vec3\x20FssEss\x20=\x20Fr\x20*\x20fab.x\x20+\x20specularF90\x20*\x20fab.y;\x0a\x09float\x20Ess\x20=\x20fab.x\x20+\x20fab.y;\x0a\x09float\x20Ems\x20=\x201.0\x20-\x20Ess;\x0a\x09vec3\x20Favg\x20=\x20Fr\x20+\x20(\x201.0\x20-\x20Fr\x20)\x20*\x200.047619;\x09vec3\x20Fms\x20=\x20FssEss\x20*\x20Favg\x20/\x20(\x201.0\x20-\x20Ems\x20*\x20Favg\x20);\x0a\x09singleScatter\x20+=\x20FssEss;\x0a\x09multiScatter\x20+=\x20Fms\x20*\x20Ems;\x0a}\x0avec3\x20BRDF_GGX_Multiscatter(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20PhysicalMaterial\x20material\x20)\x20{\x0a\x09vec3\x20singleScatter\x20=\x20BRDF_GGX(\x20lightDir,\x20viewDir,\x20normal,\x20material\x20);\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09vec2\x20dfgV\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20material.roughness,\x20dotNV\x20)\x20).rg;\x0a\x09vec2\x20dfgL\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20material.roughness,\x20dotNL\x20)\x20).rg;\x0a\x09vec3\x20FssEss_V\x20=\x20material.specularColorBlended\x20*\x20dfgV.x\x20+\x20material.specularF90\x20*\x20dfgV.y;\x0a\x09vec3\x20FssEss_L\x20=\x20material.specularColorBlended\x20*\x20dfgL.x\x20+\x20material.specularF90\x20*\x20dfgL.y;\x0a\x09float\x20Ess_V\x20=\x20dfgV.x\x20+\x20dfgV.y;\x0a\x09float\x20Ess_L\x20=\x20dfgL.x\x20+\x20dfgL.y;\x0a\x09float\x20Ems_V\x20=\x201.0\x20-\x20Ess_V;\x0a\x09float\x20Ems_L\x20=\x201.0\x20-\x20Ess_L;\x0a\x09vec3\x20Favg\x20=\x20material.specularColorBlended\x20+\x20(\x201.0\x20-\x20material.specularColorBlended\x20)\x20*\x200.047619;\x0a\x09vec3\x20Fms\x20=\x20FssEss_V\x20*\x20FssEss_L\x20*\x20Favg\x20/\x20(\x201.0\x20-\x20Ems_V\x20*\x20Ems_L\x20*\x20Favg\x20+\x20EPSILON\x20);\x0a\x09float\x20compensationFactor\x20=\x20Ems_V\x20*\x20Ems_L;\x0a\x09vec3\x20multiScatter\x20=\x20Fms\x20*\x20compensationFactor;\x0a\x09return\x20singleScatter\x20+\x20multiScatter;\x0a}\x0a#if\x20NUM_RECT_AREA_LIGHTS\x20>\x200\x0a\x09void\x20RE_Direct_RectArea_Physical(\x20const\x20in\x20RectAreaLight\x20rectAreaLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09\x09vec3\x20normal\x20=\x20geometryNormal;\x0a\x09\x09vec3\x20viewDir\x20=\x20geometryViewDir;\x0a\x09\x09vec3\x20position\x20=\x20geometryPosition;\x0a\x09\x09vec3\x20lightPos\x20=\x20rectAreaLight.position;\x0a\x09\x09vec3\x20halfWidth\x20=\x20rectAreaLight.halfWidth;\x0a\x09\x09vec3\x20halfHeight\x20=\x20rectAreaLight.halfHeight;\x0a\x09\x09vec3\x20lightColor\x20=\x20rectAreaLight.color;\x0a\x09\x09float\x20roughness\x20=\x20material.roughness;\x0a\x09\x09vec3\x20rectCoords[\x204\x20];\x0a\x09\x09rectCoords[\x200\x20]\x20=\x20lightPos\x20+\x20halfWidth\x20-\x20halfHeight;\x09\x09rectCoords[\x201\x20]\x20=\x20lightPos\x20-\x20halfWidth\x20-\x20halfHeight;\x0a\x09\x09rectCoords[\x202\x20]\x20=\x20lightPos\x20-\x20halfWidth\x20+\x20halfHeight;\x0a\x09\x09rectCoords[\x203\x20]\x20=\x20lightPos\x20+\x20halfWidth\x20+\x20halfHeight;\x0a\x09\x09vec2\x20uv\x20=\x20LTC_Uv(\x20normal,\x20viewDir,\x20roughness\x20);\x0a\x09\x09vec4\x20t1\x20=\x20texture2D(\x20ltc_1,\x20uv\x20);\x0a\x09\x09vec4\x20t2\x20=\x20texture2D(\x20ltc_2,\x20uv\x20);\x0a\x09\x09mat3\x20mInv\x20=\x20mat3(\x0a\x09\x09\x09vec3(\x20t1.x,\x200,\x20t1.y\x20),\x0a\x09\x09\x09vec3(\x20\x20\x20\x200,\x201,\x20\x20\x20\x200\x20),\x0a\x09\x09\x09vec3(\x20t1.z,\x200,\x20t1.w\x20)\x0a\x09\x09);\x0a\x09\x09vec3\x20fresnel\x20=\x20(\x20material.specularColorBlended\x20*\x20t2.x\x20+\x20(\x20material.specularF90\x20-\x20material.specularColorBlended\x20)\x20*\x20t2.y\x20);\x0a\x09\x09reflectedLight.directSpecular\x20+=\x20lightColor\x20*\x20fresnel\x20*\x20LTC_Evaluate(\x20normal,\x20viewDir,\x20position,\x20mInv,\x20rectCoords\x20);\x0a\x09\x09reflectedLight.directDiffuse\x20+=\x20lightColor\x20*\x20material.diffuseContribution\x20*\x20LTC_Evaluate(\x20normal,\x20viewDir,\x20position,\x20mat3(\x201.0\x20),\x20rectCoords\x20);\x0a\x09\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09\x09vec3\x20Ncc\x20=\x20geometryClearcoatNormal;\x0a\x09\x09\x09vec2\x20uvClearcoat\x20=\x20LTC_Uv(\x20Ncc,\x20viewDir,\x20material.clearcoatRoughness\x20);\x0a\x09\x09\x09vec4\x20t1Clearcoat\x20=\x20texture2D(\x20ltc_1,\x20uvClearcoat\x20);\x0a\x09\x09\x09vec4\x20t2Clearcoat\x20=\x20texture2D(\x20ltc_2,\x20uvClearcoat\x20);\x0a\x09\x09\x09mat3\x20mInvClearcoat\x20=\x20mat3(\x0a\x09\x09\x09\x09vec3(\x20t1Clearcoat.x,\x200,\x20t1Clearcoat.y\x20),\x0a\x09\x09\x09\x09vec3(\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200,\x201,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200\x20),\x0a\x09\x09\x09\x09vec3(\x20t1Clearcoat.z,\x200,\x20t1Clearcoat.w\x20)\x0a\x09\x09\x09);\x0a\x09\x09\x09vec3\x20fresnelClearcoat\x20=\x20material.clearcoatF0\x20*\x20t2Clearcoat.x\x20+\x20(\x20material.clearcoatF90\x20-\x20material.clearcoatF0\x20)\x20*\x20t2Clearcoat.y;\x0a\x09\x09\x09clearcoatSpecularDirect\x20+=\x20lightColor\x20*\x20fresnelClearcoat\x20*\x20LTC_Evaluate(\x20Ncc,\x20viewDir,\x20position,\x20mInvClearcoat,\x20rectCoords\x20);\x0a\x09\x09#endif\x0a\x09}\x0a#endif\x0avoid\x20RE_Direct_Physical(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20directLight.direction\x20)\x20);\x0a\x09vec3\x20irradiance\x20=\x20dotNL\x20*\x20directLight.color;\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09float\x20dotNLcc\x20=\x20saturate(\x20dot(\x20geometryClearcoatNormal,\x20directLight.direction\x20)\x20);\x0a\x09\x09vec3\x20ccIrradiance\x20=\x20dotNLcc\x20*\x20directLight.color;\x0a\x09\x09clearcoatSpecularDirect\x20+=\x20ccIrradiance\x20*\x20BRDF_GGX_Clearcoat(\x20directLight.direction,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN\x0a\x20\x0a\x20\x09\x09sheenSpecularDirect\x20+=\x20irradiance\x20*\x20BRDF_Sheen(\x20directLight.direction,\x20geometryViewDir,\x20geometryNormal,\x20material.sheenColor,\x20material.sheenRoughness\x20);\x0a\x20\x0a\x20\x09\x09float\x20sheenAlbedoV\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20);\x0a\x20\x09\x09float\x20sheenAlbedoL\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20directLight.direction,\x20material.sheenRoughness\x20);\x0a\x20\x0a\x20\x09\x09float\x20sheenEnergyComp\x20=\x201.0\x20-\x20max3(\x20material.sheenColor\x20)\x20*\x20max(\x20sheenAlbedoV,\x20sheenAlbedoL\x20);\x0a\x20\x0a\x20\x09\x09irradiance\x20*=\x20sheenEnergyComp;\x0a\x20\x0a\x20\x09#endif\x0a\x09reflectedLight.directSpecular\x20+=\x20irradiance\x20*\x20BRDF_GGX_Multiscatter(\x20directLight.direction,\x20geometryViewDir,\x20geometryNormal,\x20material\x20);\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseContribution\x20);\x0a}\x0avoid\x20RE_IndirectDiffuse_Physical(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09vec3\x20diffuse\x20=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseContribution\x20);\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09float\x20sheenAlbedo\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20);\x0a\x09\x09float\x20sheenEnergyComp\x20=\x201.0\x20-\x20max3(\x20material.sheenColor\x20)\x20*\x20sheenAlbedo;\x0a\x09\x09diffuse\x20*=\x20sheenEnergyComp;\x0a\x09#endif\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20diffuse;\x0a}\x0avoid\x20RE_IndirectSpecular_Physical(\x20const\x20in\x20vec3\x20radiance,\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20clearcoatRadiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight)\x20{\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09clearcoatSpecularIndirect\x20+=\x20clearcoatRadiance\x20*\x20EnvironmentBRDF(\x20geometryClearcoatNormal,\x20geometryViewDir,\x20material.clearcoatF0,\x20material.clearcoatF90,\x20material.clearcoatRoughness\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09sheenSpecularIndirect\x20+=\x20irradiance\x20*\x20material.sheenColor\x20*\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20)\x20*\x20RECIPROCAL_PI;\x0a\x20\x09#endif\x0a\x09vec3\x20singleScatteringDielectric\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20multiScatteringDielectric\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20singleScatteringMetallic\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20multiScatteringMetallic\x20=\x20vec3(\x200.0\x20);\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09computeMultiscatteringIridescence(\x20geometryNormal,\x20geometryViewDir,\x20material.specularColor,\x20material.specularF90,\x20material.iridescence,\x20material.iridescenceFresnelDielectric,\x20material.roughness,\x20singleScatteringDielectric,\x20multiScatteringDielectric\x20);\x0a\x09\x09computeMultiscatteringIridescence(\x20geometryNormal,\x20geometryViewDir,\x20material.diffuseColor,\x20material.specularF90,\x20material.iridescence,\x20material.iridescenceFresnelMetallic,\x20material.roughness,\x20singleScatteringMetallic,\x20multiScatteringMetallic\x20);\x0a\x09#else\x0a\x09\x09computeMultiscattering(\x20geometryNormal,\x20geometryViewDir,\x20material.specularColor,\x20material.specularF90,\x20material.roughness,\x20singleScatteringDielectric,\x20multiScatteringDielectric\x20);\x0a\x09\x09computeMultiscattering(\x20geometryNormal,\x20geometryViewDir,\x20material.diffuseColor,\x20material.specularF90,\x20material.roughness,\x20singleScatteringMetallic,\x20multiScatteringMetallic\x20);\x0a\x09#endif\x0a\x09vec3\x20singleScattering\x20=\x20mix(\x20singleScatteringDielectric,\x20singleScatteringMetallic,\x20material.metalness\x20);\x0a\x09vec3\x20multiScattering\x20=\x20mix(\x20multiScatteringDielectric,\x20multiScatteringMetallic,\x20material.metalness\x20);\x0a\x09vec3\x20totalScatteringDielectric\x20=\x20singleScatteringDielectric\x20+\x20multiScatteringDielectric;\x0a\x09vec3\x20diffuse\x20=\x20material.diffuseContribution\x20*\x20(\x201.0\x20-\x20totalScatteringDielectric\x20);\x0a\x09vec3\x20cosineWeightedIrradiance\x20=\x20irradiance\x20*\x20RECIPROCAL_PI;\x0a\x09vec3\x20indirectSpecular\x20=\x20radiance\x20*\x20singleScattering;\x0a\x09indirectSpecular\x20+=\x20multiScattering\x20*\x20cosineWeightedIrradiance;\x0a\x09vec3\x20indirectDiffuse\x20=\x20diffuse\x20*\x20cosineWeightedIrradiance;\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09float\x20sheenAlbedo\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20);\x0a\x09\x09float\x20sheenEnergyComp\x20=\x201.0\x20-\x20max3(\x20material.sheenColor\x20)\x20*\x20sheenAlbedo;\x0a\x09\x09indirectSpecular\x20*=\x20sheenEnergyComp;\x0a\x09\x09indirectDiffuse\x20*=\x20sheenEnergyComp;\x0a\x09#endif\x0a\x09reflectedLight.indirectSpecular\x20+=\x20indirectSpecular;\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20indirectDiffuse;\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_Physical\x0a#define\x20RE_Direct_RectArea\x09\x09RE_Direct_RectArea_Physical\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_Physical\x0a#define\x20RE_IndirectSpecular\x09\x09RE_IndirectSpecular_Physical\x0afloat\x20computeSpecularOcclusion(\x20const\x20in\x20float\x20dotNV,\x20const\x20in\x20float\x20ambientOcclusion,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09return\x20saturate(\x20pow(\x20dotNV\x20+\x20ambientOcclusion,\x20exp2(\x20-\x2016.0\x20*\x20roughness\x20-\x201.0\x20)\x20)\x20-\x201.0\x20+\x20ambientOcclusion\x20);\x0a}','lights_fragment_begin':'\x0avec3\x20geometryPosition\x20=\x20-\x20vViewPosition;\x0avec3\x20geometryNormal\x20=\x20normal;\x0avec3\x20geometryViewDir\x20=\x20(\x20isOrthographic\x20)\x20?\x20vec3(\x200,\x200,\x201\x20)\x20:\x20normalize(\x20vViewPosition\x20);\x0avec3\x20geometryClearcoatNormal\x20=\x20vec3(\x200.0\x20);\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09geometryClearcoatNormal\x20=\x20clearcoatNormal;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE\x0a\x09float\x20dotNVi\x20=\x20saturate(\x20dot(\x20normal,\x20geometryViewDir\x20)\x20);\x0a\x09if\x20(\x20material.iridescenceThickness\x20==\x200.0\x20)\x20{\x0a\x09\x09material.iridescence\x20=\x200.0;\x0a\x09}\x20else\x20{\x0a\x09\x09material.iridescence\x20=\x20saturate(\x20material.iridescence\x20);\x0a\x09}\x0a\x09if\x20(\x20material.iridescence\x20>\x200.0\x20)\x20{\x0a\x09\x09material.iridescenceFresnelDielectric\x20=\x20evalIridescence(\x201.0,\x20material.iridescenceIOR,\x20dotNVi,\x20material.iridescenceThickness,\x20material.specularColor\x20);\x0a\x09\x09material.iridescenceFresnelMetallic\x20=\x20evalIridescence(\x201.0,\x20material.iridescenceIOR,\x20dotNVi,\x20material.iridescenceThickness,\x20material.diffuseColor\x20);\x0a\x09\x09material.iridescenceFresnel\x20=\x20mix(\x20material.iridescenceFresnelDielectric,\x20material.iridescenceFresnelMetallic,\x20material.metalness\x20);\x0a\x09\x09material.iridescenceF0\x20=\x20Schlick_to_F0(\x20material.iridescenceFresnel,\x201.0,\x20dotNVi\x20);\x0a\x09}\x0a#endif\x0aIncidentLight\x20directLight;\x0a#if\x20(\x20NUM_POINT_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct\x20)\x0a\x09PointLight\x20pointLight;\x0a\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09PointLightShadow\x20pointLightShadow;\x0a\x09#endif\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_POINT_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09pointLight\x20=\x20pointLights[\x20i\x20];\x0a\x09\x09getPointLightInfo(\x20pointLight,\x20geometryPosition,\x20directLight\x20);\x0a\x09\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_POINT_LIGHT_SHADOWS\x20)\x20&&\x20(\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x20||\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x20)\x0a\x09\x09pointLightShadow\x20=\x20pointLightShadows[\x20i\x20];\x0a\x09\x09directLight.color\x20*=\x20(\x20directLight.visible\x20&&\x20receiveShadow\x20)\x20?\x20getPointShadow(\x20pointShadowMap[\x20i\x20],\x20pointLightShadow.shadowMapSize,\x20pointLightShadow.shadowIntensity,\x20pointLightShadow.shadowBias,\x20pointLightShadow.shadowRadius,\x20vPointShadowCoord[\x20i\x20],\x20pointLightShadow.shadowCameraNear,\x20pointLightShadow.shadowCameraFar\x20)\x20:\x201.0;\x0a\x09\x09#endif\x0a\x09\x09RE_Direct(\x20directLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20(\x20NUM_SPOT_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct\x20)\x0a\x09SpotLight\x20spotLight;\x0a\x09vec4\x20spotColor;\x0a\x09vec3\x20spotLightCoord;\x0a\x09bool\x20inSpotLightMap;\x0a\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09SpotLightShadow\x20spotLightShadow;\x0a\x09#endif\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_SPOT_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09spotLight\x20=\x20spotLights[\x20i\x20];\x0a\x09\x09getSpotLightInfo(\x20spotLight,\x20geometryPosition,\x20directLight\x20);\x0a\x09\x09#if\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS\x20)\x0a\x09\x09#define\x20SPOT_LIGHT_MAP_INDEX\x20UNROLLED_LOOP_INDEX\x0a\x09\x09#elif\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS\x20)\x0a\x09\x09#define\x20SPOT_LIGHT_MAP_INDEX\x20NUM_SPOT_LIGHT_MAPS\x0a\x09\x09#else\x0a\x09\x09#define\x20SPOT_LIGHT_MAP_INDEX\x20(\x20UNROLLED_LOOP_INDEX\x20-\x20NUM_SPOT_LIGHT_SHADOWS\x20+\x20NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS\x20)\x0a\x09\x09#endif\x0a\x09\x09#if\x20(\x20SPOT_LIGHT_MAP_INDEX\x20<\x20NUM_SPOT_LIGHT_MAPS\x20)\x0a\x09\x09\x09spotLightCoord\x20=\x20vSpotLightCoord[\x20i\x20].xyz\x20/\x20vSpotLightCoord[\x20i\x20].w;\x0a\x09\x09\x09inSpotLightMap\x20=\x20all(\x20lessThan(\x20abs(\x20spotLightCoord\x20*\x202.\x20-\x201.\x20),\x20vec3(\x201.0\x20)\x20)\x20);\x0a\x09\x09\x09spotColor\x20=\x20texture2D(\x20spotLightMap[\x20SPOT_LIGHT_MAP_INDEX\x20],\x20spotLightCoord.xy\x20);\x0a\x09\x09\x09directLight.color\x20=\x20inSpotLightMap\x20?\x20directLight.color\x20*\x20spotColor.rgb\x20:\x20directLight.color;\x0a\x09\x09#endif\x0a\x09\x09#undef\x20SPOT_LIGHT_MAP_INDEX\x0a\x09\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS\x20)\x0a\x09\x09spotLightShadow\x20=\x20spotLightShadows[\x20i\x20];\x0a\x09\x09directLight.color\x20*=\x20(\x20directLight.visible\x20&&\x20receiveShadow\x20)\x20?\x20getShadow(\x20spotShadowMap[\x20i\x20],\x20spotLightShadow.shadowMapSize,\x20spotLightShadow.shadowIntensity,\x20spotLightShadow.shadowBias,\x20spotLightShadow.shadowRadius,\x20vSpotLightCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09\x09#endif\x0a\x09\x09RE_Direct(\x20directLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20(\x20NUM_DIR_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct\x20)\x0a\x09DirectionalLight\x20directionalLight;\x0a\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09DirectionalLightShadow\x20directionalLightShadow;\x0a\x09#endif\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_DIR_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09directionalLight\x20=\x20directionalLights[\x20i\x20];\x0a\x09\x09getDirectionalLightInfo(\x20directionalLight,\x20directLight\x20);\x0a\x09\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_DIR_LIGHT_SHADOWS\x20)\x0a\x09\x09directionalLightShadow\x20=\x20directionalLightShadows[\x20i\x20];\x0a\x09\x09directLight.color\x20*=\x20(\x20directLight.visible\x20&&\x20receiveShadow\x20)\x20?\x20getShadow(\x20directionalShadowMap[\x20i\x20],\x20directionalLightShadow.shadowMapSize,\x20directionalLightShadow.shadowIntensity,\x20directionalLightShadow.shadowBias,\x20directionalLightShadow.shadowRadius,\x20vDirectionalShadowCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09\x09#endif\x0a\x09\x09RE_Direct(\x20directLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20(\x20NUM_RECT_AREA_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct_RectArea\x20)\x0a\x09RectAreaLight\x20rectAreaLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_RECT_AREA_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09rectAreaLight\x20=\x20rectAreaLights[\x20i\x20];\x0a\x09\x09RE_Direct_RectArea(\x20rectAreaLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20defined(\x20RE_IndirectDiffuse\x20)\x0a\x09vec3\x20iblIrradiance\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20irradiance\x20=\x20getAmbientLightIrradiance(\x20ambientLightColor\x20);\x0a\x09#if\x20defined(\x20USE_LIGHT_PROBES\x20)\x0a\x09\x09irradiance\x20+=\x20getLightProbeIrradiance(\x20lightProbe,\x20geometryNormal\x20);\x0a\x09#endif\x0a\x09#if\x20(\x20NUM_HEMI_LIGHTS\x20>\x200\x20)\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_HEMI_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09irradiance\x20+=\x20getHemisphereLightIrradiance(\x20hemisphereLights[\x20i\x20],\x20geometryNormal\x20);\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#ifdef\x20USE_LIGHT_PROBES_GRID\x0a\x09\x09vec3\x20probeWorldPos\x20=\x20(\x20(\x20vec4(\x20geometryPosition,\x201.0\x20)\x20-\x20viewMatrix[\x203\x20]\x20)\x20*\x20viewMatrix\x20).xyz;\x0a\x09\x09vec3\x20probeWorldNormal\x20=\x20inverseTransformDirection(\x20geometryNormal,\x20viewMatrix\x20);\x0a\x09\x09irradiance\x20+=\x20getLightProbeGridIrradiance(\x20probeWorldPos,\x20probeWorldNormal\x20);\x0a\x09#endif\x0a#endif\x0a#if\x20defined(\x20RE_IndirectSpecular\x20)\x0a\x09vec3\x20radiance\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20clearcoatRadiance\x20=\x20vec3(\x200.0\x20);\x0a#endif','lights_fragment_maps':'#if\x20defined(\x20RE_IndirectDiffuse\x20)\x0a\x09#ifdef\x20USE_LIGHTMAP\x0a\x09\x09vec4\x20lightMapTexel\x20=\x20texture2D(\x20lightMap,\x20vLightMapUv\x20);\x0a\x09\x09vec3\x20lightMapIrradiance\x20=\x20lightMapTexel.rgb\x20*\x20lightMapIntensity;\x0a\x09\x09irradiance\x20+=\x20lightMapIrradiance;\x0a\x09#endif\x0a\x09#if\x20defined(\x20USE_ENVMAP\x20)\x20&&\x20defined(\x20ENVMAP_TYPE_CUBE_UV\x20)\x0a\x09\x09#if\x20defined(\x20STANDARD\x20)\x20||\x20defined(\x20LAMBERT\x20)\x20||\x20defined(\x20PHONG\x20)\x0a\x09\x09\x09iblIrradiance\x20+=\x20getIBLIrradiance(\x20geometryNormal\x20);\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif\x0a#if\x20defined(\x20USE_ENVMAP\x20)\x20&&\x20defined(\x20RE_IndirectSpecular\x20)\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09radiance\x20+=\x20getIBLAnisotropyRadiance(\x20geometryViewDir,\x20geometryNormal,\x20material.roughness,\x20material.anisotropyB,\x20material.anisotropy\x20);\x0a\x09#else\x0a\x09\x09radiance\x20+=\x20getIBLRadiance(\x20geometryViewDir,\x20geometryNormal,\x20material.roughness\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09clearcoatRadiance\x20+=\x20getIBLRadiance(\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material.clearcoatRoughness\x20);\x0a\x09#endif\x0a#endif','lights_fragment_end':'#if\x20defined(\x20RE_IndirectDiffuse\x20)\x0a\x09#if\x20defined(\x20LAMBERT\x20)\x20||\x20defined(\x20PHONG\x20)\x0a\x09\x09irradiance\x20+=\x20iblIrradiance;\x0a\x09#endif\x0a\x09RE_IndirectDiffuse(\x20irradiance,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a#endif\x0a#if\x20defined(\x20RE_IndirectSpecular\x20)\x0a\x09RE_IndirectSpecular(\x20radiance,\x20iblIrradiance,\x20clearcoatRadiance,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a#endif','lightprobes_pars_fragment':'#ifdef\x20USE_LIGHT_PROBES_GRID\x0auniform\x20highp\x20sampler3D\x20probesSH;\x0auniform\x20vec3\x20probesMin;\x0auniform\x20vec3\x20probesMax;\x0auniform\x20vec3\x20probesResolution;\x0avec3\x20getLightProbeGridIrradiance(\x20vec3\x20worldPos,\x20vec3\x20worldNormal\x20)\x20{\x0a\x09vec3\x20res\x20=\x20probesResolution;\x0a\x09vec3\x20gridRange\x20=\x20probesMax\x20-\x20probesMin;\x0a\x09vec3\x20resMinusOne\x20=\x20res\x20-\x201.0;\x0a\x09vec3\x20probeSpacing\x20=\x20gridRange\x20/\x20resMinusOne;\x0a\x09vec3\x20samplePos\x20=\x20worldPos\x20+\x20worldNormal\x20*\x20probeSpacing\x20*\x200.5;\x0a\x09vec3\x20uvw\x20=\x20clamp(\x20(\x20samplePos\x20-\x20probesMin\x20)\x20/\x20gridRange,\x200.0,\x201.0\x20);\x0a\x09uvw\x20=\x20uvw\x20*\x20resMinusOne\x20/\x20res\x20+\x200.5\x20/\x20res;\x0a\x09float\x20nz\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20=\x20res.z;\x0a\x09float\x20paddedSlices\x20=\x20nz\x20+\x202.0;\x0a\x09float\x20atlasDepth\x20\x20=\x207.0\x20*\x20paddedSlices;\x0a\x09float\x20uvZBase\x20\x20\x20\x20\x20=\x20uvw.z\x20*\x20nz\x20+\x201.0;\x0a\x09vec4\x20s0\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s1\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x20\x20\x20\x20\x20\x20\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s2\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x202.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s3\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x203.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s4\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x204.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s5\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x205.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s6\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x206.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec3\x20c0\x20=\x20s0.xyz;\x0a\x09vec3\x20c1\x20=\x20vec3(\x20s0.w,\x20s1.xy\x20);\x0a\x09vec3\x20c2\x20=\x20vec3(\x20s1.zw,\x20s2.x\x20);\x0a\x09vec3\x20c3\x20=\x20s2.yzw;\x0a\x09vec3\x20c4\x20=\x20s3.xyz;\x0a\x09vec3\x20c5\x20=\x20vec3(\x20s3.w,\x20s4.xy\x20);\x0a\x09vec3\x20c6\x20=\x20vec3(\x20s4.zw,\x20s5.x\x20);\x0a\x09vec3\x20c7\x20=\x20s5.yzw;\x0a\x09vec3\x20c8\x20=\x20s6.xyz;\x0a\x09float\x20x\x20=\x20worldNormal.x,\x20y\x20=\x20worldNormal.y,\x20z\x20=\x20worldNormal.z;\x0a\x09vec3\x20result\x20=\x20c0\x20*\x200.886227;\x0a\x09result\x20+=\x20c1\x20*\x202.0\x20*\x200.511664\x20*\x20y;\x0a\x09result\x20+=\x20c2\x20*\x202.0\x20*\x200.511664\x20*\x20z;\x0a\x09result\x20+=\x20c3\x20*\x202.0\x20*\x200.511664\x20*\x20x;\x0a\x09result\x20+=\x20c4\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20y;\x0a\x09result\x20+=\x20c5\x20*\x202.0\x20*\x200.429043\x20*\x20y\x20*\x20z;\x0a\x09result\x20+=\x20c6\x20*\x20(\x200.743125\x20*\x20z\x20*\x20z\x20-\x200.247708\x20);\x0a\x09result\x20+=\x20c7\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20z;\x0a\x09result\x20+=\x20c8\x20*\x200.429043\x20*\x20(\x20x\x20*\x20x\x20-\x20y\x20*\x20y\x20);\x0a\x09return\x20max(\x20result,\x20vec3(\x200.0\x20)\x20);\x0a}\x0a#endif','logdepthbuf_fragment':'#if\x20defined(\x20USE_LOGARITHMIC_DEPTH_BUFFER\x20)\x0a\x09gl_FragDepth\x20=\x20vIsPerspective\x20==\x200.0\x20?\x20gl_FragCoord.z\x20:\x20log2(\x20vFragDepth\x20)\x20*\x20logDepthBufFC\x20*\x200.5;\x0a#endif','logdepthbuf_pars_fragment':'#if\x20defined(\x20USE_LOGARITHMIC_DEPTH_BUFFER\x20)\x0a\x09uniform\x20float\x20logDepthBufFC;\x0a\x09varying\x20float\x20vFragDepth;\x0a\x09varying\x20float\x20vIsPerspective;\x0a#endif','logdepthbuf_pars_vertex':'#ifdef\x20USE_LOGARITHMIC_DEPTH_BUFFER\x0a\x09varying\x20float\x20vFragDepth;\x0a\x09varying\x20float\x20vIsPerspective;\x0a#endif','logdepthbuf_vertex':d4(0x43e),'map_fragment':'#ifdef\x20USE_MAP\x0a\x09vec4\x20sampledDiffuseColor\x20=\x20texture2D(\x20map,\x20vMapUv\x20);\x0a\x09#ifdef\x20DECODE_VIDEO_TEXTURE\x0a\x09\x09sampledDiffuseColor\x20=\x20sRGBTransferEOTF(\x20sampledDiffuseColor\x20);\x0a\x09#endif\x0a\x09diffuseColor\x20*=\x20sampledDiffuseColor;\x0a#endif','map_pars_fragment':'#ifdef\x20USE_MAP\x0a\x09uniform\x20sampler2D\x20map;\x0a#endif','map_particle_fragment':d4(0xfe),'map_particle_pars_fragment':d4(0x125),'metalnessmap_fragment':'float\x20metalnessFactor\x20=\x20metalness;\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09vec4\x20texelMetalness\x20=\x20texture2D(\x20metalnessMap,\x20vMetalnessMapUv\x20);\x0a\x09metalnessFactor\x20*=\x20texelMetalness.b;\x0a#endif','metalnessmap_pars_fragment':'#ifdef\x20USE_METALNESSMAP\x0a\x09uniform\x20sampler2D\x20metalnessMap;\x0a#endif','morphinstance_vertex':'#ifdef\x20USE_INSTANCING_MORPH\x0a\x09float\x20morphTargetInfluences[\x20MORPHTARGETS_COUNT\x20];\x0a\x09float\x20morphTargetBaseInfluence\x20=\x20texelFetch(\x20morphTexture,\x20ivec2(\x200,\x20gl_InstanceID\x20),\x200\x20).r;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09morphTargetInfluences[i]\x20=\x20\x20texelFetch(\x20morphTexture,\x20ivec2(\x20i\x20+\x201,\x20gl_InstanceID\x20),\x200\x20).r;\x0a\x09}\x0a#endif','morphcolor_vertex':'#if\x20defined(\x20USE_MORPHCOLORS\x20)\x0a\x09vColor\x20*=\x20morphTargetBaseInfluence;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09#if\x20defined(\x20USE_COLOR_ALPHA\x20)\x0a\x09\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20vColor\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x202\x20)\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09\x09#elif\x20defined(\x20USE_COLOR\x20)\x0a\x09\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20vColor\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x202\x20).rgb\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09\x09#endif\x0a\x09}\x0a#endif','morphnormal_vertex':'#ifdef\x20USE_MORPHNORMALS\x0a\x09objectNormal\x20*=\x20morphTargetBaseInfluence;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20objectNormal\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x201\x20).xyz\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09}\x0a#endif','morphtarget_pars_vertex':'#ifdef\x20USE_MORPHTARGETS\x0a\x09#ifndef\x20USE_INSTANCING_MORPH\x0a\x09\x09uniform\x20float\x20morphTargetBaseInfluence;\x0a\x09\x09uniform\x20float\x20morphTargetInfluences[\x20MORPHTARGETS_COUNT\x20];\x0a\x09#endif\x0a\x09uniform\x20sampler2DArray\x20morphTargetsTexture;\x0a\x09uniform\x20ivec2\x20morphTargetsTextureSize;\x0a\x09vec4\x20getMorph(\x20const\x20in\x20int\x20vertexIndex,\x20const\x20in\x20int\x20morphTargetIndex,\x20const\x20in\x20int\x20offset\x20)\x20{\x0a\x09\x09int\x20texelIndex\x20=\x20vertexIndex\x20*\x20MORPHTARGETS_TEXTURE_STRIDE\x20+\x20offset;\x0a\x09\x09int\x20y\x20=\x20texelIndex\x20/\x20morphTargetsTextureSize.x;\x0a\x09\x09int\x20x\x20=\x20texelIndex\x20-\x20y\x20*\x20morphTargetsTextureSize.x;\x0a\x09\x09ivec3\x20morphUV\x20=\x20ivec3(\x20x,\x20y,\x20morphTargetIndex\x20);\x0a\x09\x09return\x20texelFetch(\x20morphTargetsTexture,\x20morphUV,\x200\x20);\x0a\x09}\x0a#endif','morphtarget_vertex':'#ifdef\x20USE_MORPHTARGETS\x0a\x09transformed\x20*=\x20morphTargetBaseInfluence;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20transformed\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x200\x20).xyz\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09}\x0a#endif','normal_fragment_begin':'float\x20faceDirection\x20=\x20gl_FrontFacing\x20?\x201.0\x20:\x20-\x201.0;\x0a#ifdef\x20FLAT_SHADED\x0a\x09vec3\x20fdx\x20=\x20dFdx(\x20vViewPosition\x20);\x0a\x09vec3\x20fdy\x20=\x20dFdy(\x20vViewPosition\x20);\x0a\x09vec3\x20normal\x20=\x20normalize(\x20cross(\x20fdx,\x20fdy\x20)\x20);\x0a#else\x0a\x09vec3\x20normal\x20=\x20normalize(\x20vNormal\x20);\x0a\x09#ifdef\x20DOUBLE_SIDED\x0a\x09\x09normal\x20*=\x20faceDirection;\x0a\x09#endif\x0a#endif\x0a#if\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x20||\x20defined(\x20USE_CLEARCOAT_NORMALMAP\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09mat3\x20tbn\x20=\x20mat3(\x20normalize(\x20vTangent\x20),\x20normalize(\x20vBitangent\x20),\x20normal\x20);\x0a\x09#else\x0a\x09\x09mat3\x20tbn\x20=\x20getTangentFrame(\x20-\x20vViewPosition,\x20normal,\x0a\x09\x09#if\x20defined(\x20USE_NORMALMAP\x20)\x0a\x09\x09\x09vNormalMapUv\x0a\x09\x09#elif\x20defined(\x20USE_CLEARCOAT_NORMALMAP\x20)\x0a\x09\x09\x09vClearcoatNormalMapUv\x0a\x09\x09#else\x0a\x09\x09\x09vUv\x0a\x09\x09#endif\x0a\x09\x09);\x0a\x09#endif\x0a\x09#if\x20defined(\x20DOUBLE_SIDED\x20)\x20&&\x20!\x20defined(\x20FLAT_SHADED\x20)\x0a\x09\x09tbn[0]\x20*=\x20faceDirection;\x0a\x09\x09tbn[1]\x20*=\x20faceDirection;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09mat3\x20tbn2\x20=\x20mat3(\x20normalize(\x20vTangent\x20),\x20normalize(\x20vBitangent\x20),\x20normal\x20);\x0a\x09#else\x0a\x09\x09mat3\x20tbn2\x20=\x20getTangentFrame(\x20-\x20vViewPosition,\x20normal,\x20vClearcoatNormalMapUv\x20);\x0a\x09#endif\x0a\x09#if\x20defined(\x20DOUBLE_SIDED\x20)\x20&&\x20!\x20defined(\x20FLAT_SHADED\x20)\x0a\x09\x09tbn2[0]\x20*=\x20faceDirection;\x0a\x09\x09tbn2[1]\x20*=\x20faceDirection;\x0a\x09#endif\x0a#endif\x0avec3\x20nonPerturbedNormal\x20=\x20normal;','normal_fragment_maps':d4(0x1f1),'normal_pars_fragment':'#ifndef\x20FLAT_SHADED\x0a\x09varying\x20vec3\x20vNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09varying\x20vec3\x20vTangent;\x0a\x09\x09varying\x20vec3\x20vBitangent;\x0a\x09#endif\x0a#endif','normal_pars_vertex':'#ifndef\x20FLAT_SHADED\x0a\x09varying\x20vec3\x20vNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09varying\x20vec3\x20vTangent;\x0a\x09\x09varying\x20vec3\x20vBitangent;\x0a\x09#endif\x0a#endif','normal_vertex':'#ifndef\x20FLAT_SHADED\x0a\x09vNormal\x20=\x20normalize(\x20transformedNormal\x20);\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09vTangent\x20=\x20normalize(\x20transformedTangent\x20);\x0a\x09\x09vBitangent\x20=\x20normalize(\x20cross(\x20vNormal,\x20vTangent\x20)\x20*\x20tangent.w\x20);\x0a\x09#endif\x0a#endif','normalmap_pars_fragment':'#ifdef\x20USE_NORMALMAP\x0a\x09uniform\x20sampler2D\x20normalMap;\x0a\x09uniform\x20vec2\x20normalScale;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP_OBJECTSPACE\x0a\x09uniform\x20mat3\x20normalMatrix;\x0a#endif\x0a#if\x20!\x20defined\x20(\x20USE_TANGENT\x20)\x20&&\x20(\x20defined\x20(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x20||\x20defined\x20(\x20USE_CLEARCOAT_NORMALMAP\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x20)\x0a\x09mat3\x20getTangentFrame(\x20vec3\x20eye_pos,\x20vec3\x20surf_norm,\x20vec2\x20uv\x20)\x20{\x0a\x09\x09vec3\x20q0\x20=\x20dFdx(\x20eye_pos.xyz\x20);\x0a\x09\x09vec3\x20q1\x20=\x20dFdy(\x20eye_pos.xyz\x20);\x0a\x09\x09vec2\x20st0\x20=\x20dFdx(\x20uv.st\x20);\x0a\x09\x09vec2\x20st1\x20=\x20dFdy(\x20uv.st\x20);\x0a\x09\x09vec3\x20N\x20=\x20surf_norm;\x0a\x09\x09vec3\x20q1perp\x20=\x20cross(\x20q1,\x20N\x20);\x0a\x09\x09vec3\x20q0perp\x20=\x20cross(\x20N,\x20q0\x20);\x0a\x09\x09vec3\x20T\x20=\x20q1perp\x20*\x20st0.x\x20+\x20q0perp\x20*\x20st1.x;\x0a\x09\x09vec3\x20B\x20=\x20q1perp\x20*\x20st0.y\x20+\x20q0perp\x20*\x20st1.y;\x0a\x09\x09float\x20det\x20=\x20max(\x20dot(\x20T,\x20T\x20),\x20dot(\x20B,\x20B\x20)\x20);\x0a\x09\x09float\x20scale\x20=\x20(\x20det\x20==\x200.0\x20)\x20?\x200.0\x20:\x20inversesqrt(\x20det\x20);\x0a\x09\x09return\x20mat3(\x20T\x20*\x20scale,\x20B\x20*\x20scale,\x20N\x20);\x0a\x09}\x0a#endif','clearcoat_normal_fragment_begin':'#ifdef\x20USE_CLEARCOAT\x0a\x09vec3\x20clearcoatNormal\x20=\x20nonPerturbedNormal;\x0a#endif','clearcoat_normal_fragment_maps':'#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09vec3\x20clearcoatMapN\x20=\x20texture2D(\x20clearcoatNormalMap,\x20vClearcoatNormalMapUv\x20).xyz\x20*\x202.0\x20-\x201.0;\x0a\x09clearcoatMapN.xy\x20*=\x20clearcoatNormalScale;\x0a\x09clearcoatNormal\x20=\x20normalize(\x20tbn2\x20*\x20clearcoatMapN\x20);\x0a#endif','clearcoat_pars_fragment':'#ifdef\x20USE_CLEARCOATMAP\x0a\x09uniform\x20sampler2D\x20clearcoatMap;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09uniform\x20sampler2D\x20clearcoatNormalMap;\x0a\x09uniform\x20vec2\x20clearcoatNormalScale;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09uniform\x20sampler2D\x20clearcoatRoughnessMap;\x0a#endif','iridescence_pars_fragment':'#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09uniform\x20sampler2D\x20iridescenceMap;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09uniform\x20sampler2D\x20iridescenceThicknessMap;\x0a#endif','opaque_fragment':'#ifdef\x20OPAQUE\x0adiffuseColor.a\x20=\x201.0;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSION\x0adiffuseColor.a\x20*=\x20material.transmissionAlpha;\x0a#endif\x0agl_FragColor\x20=\x20vec4(\x20outgoingLight,\x20diffuseColor.a\x20);','packing':'vec3\x20packNormalToRGB(\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09return\x20normalize(\x20normal\x20)\x20*\x200.5\x20+\x200.5;\x0a}\x0avec3\x20unpackRGBToNormal(\x20const\x20in\x20vec3\x20rgb\x20)\x20{\x0a\x09return\x202.0\x20*\x20rgb.xyz\x20-\x201.0;\x0a}\x0aconst\x20float\x20PackUpscale\x20=\x20256.\x20/\x20255.;const\x20float\x20UnpackDownscale\x20=\x20255.\x20/\x20256.;const\x20float\x20ShiftRight8\x20=\x201.\x20/\x20256.;\x0aconst\x20float\x20Inv255\x20=\x201.\x20/\x20255.;\x0aconst\x20vec4\x20PackFactors\x20=\x20vec4(\x201.0,\x20256.0,\x20256.0\x20*\x20256.0,\x20256.0\x20*\x20256.0\x20*\x20256.0\x20);\x0aconst\x20vec2\x20UnpackFactors2\x20=\x20vec2(\x20UnpackDownscale,\x201.0\x20/\x20PackFactors.g\x20);\x0aconst\x20vec3\x20UnpackFactors3\x20=\x20vec3(\x20UnpackDownscale\x20/\x20PackFactors.rg,\x201.0\x20/\x20PackFactors.b\x20);\x0aconst\x20vec4\x20UnpackFactors4\x20=\x20vec4(\x20UnpackDownscale\x20/\x20PackFactors.rgb,\x201.0\x20/\x20PackFactors.a\x20);\x0avec4\x20packDepthToRGBA(\x20const\x20in\x20float\x20v\x20)\x20{\x0a\x09if(\x20v\x20<=\x200.0\x20)\x0a\x09\x09return\x20vec4(\x200.,\x200.,\x200.,\x200.\x20);\x0a\x09if(\x20v\x20>=\x201.0\x20)\x0a\x09\x09return\x20vec4(\x201.,\x201.,\x201.,\x201.\x20);\x0a\x09float\x20vuf;\x0a\x09float\x20af\x20=\x20modf(\x20v\x20*\x20PackFactors.a,\x20vuf\x20);\x0a\x09float\x20bf\x20=\x20modf(\x20vuf\x20*\x20ShiftRight8,\x20vuf\x20);\x0a\x09float\x20gf\x20=\x20modf(\x20vuf\x20*\x20ShiftRight8,\x20vuf\x20);\x0a\x09return\x20vec4(\x20vuf\x20*\x20Inv255,\x20gf\x20*\x20PackUpscale,\x20bf\x20*\x20PackUpscale,\x20af\x20);\x0a}\x0avec3\x20packDepthToRGB(\x20const\x20in\x20float\x20v\x20)\x20{\x0a\x09if(\x20v\x20<=\x200.0\x20)\x0a\x09\x09return\x20vec3(\x200.,\x200.,\x200.\x20);\x0a\x09if(\x20v\x20>=\x201.0\x20)\x0a\x09\x09return\x20vec3(\x201.,\x201.,\x201.\x20);\x0a\x09float\x20vuf;\x0a\x09float\x20bf\x20=\x20modf(\x20v\x20*\x20PackFactors.b,\x20vuf\x20);\x0a\x09float\x20gf\x20=\x20modf(\x20vuf\x20*\x20ShiftRight8,\x20vuf\x20);\x0a\x09return\x20vec3(\x20vuf\x20*\x20Inv255,\x20gf\x20*\x20PackUpscale,\x20bf\x20);\x0a}\x0avec2\x20packDepthToRG(\x20const\x20in\x20float\x20v\x20)\x20{\x0a\x09if(\x20v\x20<=\x200.0\x20)\x0a\x09\x09return\x20vec2(\x200.,\x200.\x20);\x0a\x09if(\x20v\x20>=\x201.0\x20)\x0a\x09\x09return\x20vec2(\x201.,\x201.\x20);\x0a\x09float\x20vuf;\x0a\x09float\x20gf\x20=\x20modf(\x20v\x20*\x20256.,\x20vuf\x20);\x0a\x09return\x20vec2(\x20vuf\x20*\x20Inv255,\x20gf\x20);\x0a}\x0afloat\x20unpackRGBAToDepth(\x20const\x20in\x20vec4\x20v\x20)\x20{\x0a\x09return\x20dot(\x20v,\x20UnpackFactors4\x20);\x0a}\x0afloat\x20unpackRGBToDepth(\x20const\x20in\x20vec3\x20v\x20)\x20{\x0a\x09return\x20dot(\x20v,\x20UnpackFactors3\x20);\x0a}\x0afloat\x20unpackRGToDepth(\x20const\x20in\x20vec2\x20v\x20)\x20{\x0a\x09return\x20v.r\x20*\x20UnpackFactors2.r\x20+\x20v.g\x20*\x20UnpackFactors2.g;\x0a}\x0avec4\x20pack2HalfToRGBA(\x20const\x20in\x20vec2\x20v\x20)\x20{\x0a\x09vec4\x20r\x20=\x20vec4(\x20v.x,\x20fract(\x20v.x\x20*\x20255.0\x20),\x20v.y,\x20fract(\x20v.y\x20*\x20255.0\x20)\x20);\x0a\x09return\x20vec4(\x20r.x\x20-\x20r.y\x20/\x20255.0,\x20r.y,\x20r.z\x20-\x20r.w\x20/\x20255.0,\x20r.w\x20);\x0a}\x0avec2\x20unpackRGBATo2Half(\x20const\x20in\x20vec4\x20v\x20)\x20{\x0a\x09return\x20vec2(\x20v.x\x20+\x20(\x20v.y\x20/\x20255.0\x20),\x20v.z\x20+\x20(\x20v.w\x20/\x20255.0\x20)\x20);\x0a}\x0afloat\x20viewZToOrthographicDepth(\x20const\x20in\x20float\x20viewZ,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09return\x20(\x20viewZ\x20+\x20near\x20)\x20/\x20(\x20near\x20-\x20far\x20);\x0a}\x0afloat\x20orthographicDepthToViewZ(\x20const\x20in\x20float\x20depth,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x0a\x09\x09return\x20depth\x20*\x20(\x20far\x20-\x20near\x20)\x20-\x20far;\x0a\x09#else\x0a\x09\x09return\x20depth\x20*\x20(\x20near\x20-\x20far\x20)\x20-\x20near;\x0a\x09#endif\x0a}\x0afloat\x20viewZToPerspectiveDepth(\x20const\x20in\x20float\x20viewZ,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09return\x20(\x20(\x20near\x20+\x20viewZ\x20)\x20*\x20far\x20)\x20/\x20(\x20(\x20far\x20-\x20near\x20)\x20*\x20viewZ\x20);\x0a}\x0afloat\x20perspectiveDepthToViewZ(\x20const\x20in\x20float\x20depth,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09\x0a\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09return\x20(\x20near\x20*\x20far\x20)\x20/\x20(\x20(\x20near\x20-\x20far\x20)\x20*\x20depth\x20-\x20near\x20);\x0a\x09#else\x0a\x09\x09return\x20(\x20near\x20*\x20far\x20)\x20/\x20(\x20(\x20far\x20-\x20near\x20)\x20*\x20depth\x20-\x20far\x20);\x0a\x09#endif\x0a}','premultiplied_alpha_fragment':'#ifdef\x20PREMULTIPLIED_ALPHA\x0a\x09gl_FragColor.rgb\x20*=\x20gl_FragColor.a;\x0a#endif','project_vertex':'vec4\x20mvPosition\x20=\x20vec4(\x20transformed,\x201.0\x20);\x0a#ifdef\x20USE_BATCHING\x0a\x09mvPosition\x20=\x20batchingMatrix\x20*\x20mvPosition;\x0a#endif\x0a#ifdef\x20USE_INSTANCING\x0a\x09mvPosition\x20=\x20instanceMatrix\x20*\x20mvPosition;\x0a#endif\x0amvPosition\x20=\x20modelViewMatrix\x20*\x20mvPosition;\x0agl_Position\x20=\x20projectionMatrix\x20*\x20mvPosition;','dithering_fragment':'#ifdef\x20DITHERING\x0a\x09gl_FragColor.rgb\x20=\x20dithering(\x20gl_FragColor.rgb\x20);\x0a#endif','dithering_pars_fragment':'#ifdef\x20DITHERING\x0a\x09vec3\x20dithering(\x20vec3\x20color\x20)\x20{\x0a\x09\x09float\x20grid_position\x20=\x20rand(\x20gl_FragCoord.xy\x20);\x0a\x09\x09vec3\x20dither_shift_RGB\x20=\x20vec3(\x200.25\x20/\x20255.0,\x20-0.25\x20/\x20255.0,\x200.25\x20/\x20255.0\x20);\x0a\x09\x09dither_shift_RGB\x20=\x20mix(\x202.0\x20*\x20dither_shift_RGB,\x20-2.0\x20*\x20dither_shift_RGB,\x20grid_position\x20);\x0a\x09\x09return\x20color\x20+\x20dither_shift_RGB;\x0a\x09}\x0a#endif','roughnessmap_fragment':d4(0x24e),'roughnessmap_pars_fragment':'#ifdef\x20USE_ROUGHNESSMAP\x0a\x09uniform\x20sampler2D\x20roughnessMap;\x0a#endif','shadowmap_pars_fragment':'#if\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09varying\x20vec4\x20vSpotLightCoord[\x20NUM_SPOT_LIGHT_COORDS\x20];\x0a#endif\x0a#if\x20NUM_SPOT_LIGHT_MAPS\x20>\x200\x0a\x09uniform\x20sampler2D\x20spotLightMap[\x20NUM_SPOT_LIGHT_MAPS\x20];\x0a#endif\x0a#ifdef\x20USE_SHADOWMAP\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09\x09uniform\x20sampler2DShadow\x20directionalShadowMap[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09#else\x0a\x09\x09\x09uniform\x20sampler2D\x20directionalShadowMap[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09#endif\x0a\x09\x09varying\x20vec4\x20vDirectionalShadowCoord[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20DirectionalLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20DirectionalLightShadow\x20directionalLightShadows[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09\x09uniform\x20sampler2DShadow\x20spotShadowMap[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09\x09#else\x0a\x09\x09\x09uniform\x20sampler2D\x20spotShadowMap[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09\x09#endif\x0a\x09\x09struct\x20SpotLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20SpotLightShadow\x20spotLightShadows[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09\x09uniform\x20samplerCubeShadow\x20pointShadowMap[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09#elif\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x0a\x09\x09\x09uniform\x20samplerCube\x20pointShadowMap[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09#endif\x0a\x09\x09varying\x20vec4\x20vPointShadowCoord[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20PointLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09\x09float\x20shadowCameraNear;\x0a\x09\x09\x09float\x20shadowCameraFar;\x0a\x09\x09};\x0a\x09\x09uniform\x20PointLightShadow\x20pointLightShadows[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09float\x20interleavedGradientNoise(\x20vec2\x20position\x20)\x20{\x0a\x09\x09\x09return\x20fract(\x2052.9829189\x20*\x20fract(\x20dot(\x20position,\x20vec2(\x200.06711056,\x200.00583715\x20)\x20)\x20)\x20);\x0a\x09\x09}\x0a\x09\x09vec2\x20vogelDiskSample(\x20int\x20sampleIndex,\x20int\x20samplesCount,\x20float\x20phi\x20)\x20{\x0a\x09\x09\x09const\x20float\x20goldenAngle\x20=\x202.399963229728653;\x0a\x09\x09\x09float\x20r\x20=\x20sqrt(\x20(\x20float(\x20sampleIndex\x20)\x20+\x200.5\x20)\x20/\x20float(\x20samplesCount\x20)\x20);\x0a\x09\x09\x09float\x20theta\x20=\x20float(\x20sampleIndex\x20)\x20*\x20goldenAngle\x20+\x20phi;\x0a\x09\x09\x09return\x20vec2(\x20cos(\x20theta\x20),\x20sin(\x20theta\x20)\x20)\x20*\x20r;\x0a\x09\x09}\x0a\x09#endif\x0a\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09float\x20getShadow(\x20sampler2DShadow\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord\x20)\x20{\x0a\x09\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09\x09shadowCoord.xyz\x20/=\x20shadowCoord.w;\x0a\x09\x09\x09shadowCoord.z\x20+=\x20shadowBias;\x0a\x09\x09\x09bool\x20inFrustum\x20=\x20shadowCoord.x\x20>=\x200.0\x20&&\x20shadowCoord.x\x20<=\x201.0\x20&&\x20shadowCoord.y\x20>=\x200.0\x20&&\x20shadowCoord.y\x20<=\x201.0;\x0a\x09\x09\x09bool\x20frustumTest\x20=\x20inFrustum\x20&&\x20shadowCoord.z\x20<=\x201.0;\x0a\x09\x09\x09if\x20(\x20frustumTest\x20)\x20{\x0a\x09\x09\x09\x09vec2\x20texelSize\x20=\x20vec2(\x201.0\x20)\x20/\x20shadowMapSize;\x0a\x09\x09\x09\x09float\x20radius\x20=\x20shadowRadius\x20*\x20texelSize.x;\x0a\x09\x09\x09\x09float\x20phi\x20=\x20interleavedGradientNoise(\x20gl_FragCoord.xy\x20)\x20*\x20PI2;\x0a\x09\x09\x09\x09shadow\x20=\x20(\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x200,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x201,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x202,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x203,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x204,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x0a\x09\x09\x09\x09)\x20*\x200.2;\x0a\x09\x09\x09}\x0a\x09\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09\x09}\x0a\x09#elif\x20defined(\x20SHADOWMAP_TYPE_VSM\x20)\x0a\x09\x09float\x20getShadow(\x20sampler2D\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord\x20)\x20{\x0a\x09\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09\x09shadowCoord.xyz\x20/=\x20shadowCoord.w;\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09shadowCoord.z\x20-=\x20shadowBias;\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09shadowCoord.z\x20+=\x20shadowBias;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09bool\x20inFrustum\x20=\x20shadowCoord.x\x20>=\x200.0\x20&&\x20shadowCoord.x\x20<=\x201.0\x20&&\x20shadowCoord.y\x20>=\x200.0\x20&&\x20shadowCoord.y\x20<=\x201.0;\x0a\x09\x09\x09bool\x20frustumTest\x20=\x20inFrustum\x20&&\x20shadowCoord.z\x20<=\x201.0;\x0a\x09\x09\x09if\x20(\x20frustumTest\x20)\x20{\x0a\x09\x09\x09\x09vec2\x20distribution\x20=\x20texture2D(\x20shadowMap,\x20shadowCoord.xy\x20).rg;\x0a\x09\x09\x09\x09float\x20mean\x20=\x20distribution.x;\x0a\x09\x09\x09\x09float\x20variance\x20=\x20distribution.y\x20*\x20distribution.y;\x0a\x09\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09\x09float\x20hard_shadow\x20=\x20step(\x20mean,\x20shadowCoord.z\x20);\x0a\x09\x09\x09\x09#else\x0a\x09\x09\x09\x09\x09float\x20hard_shadow\x20=\x20step(\x20shadowCoord.z,\x20mean\x20);\x0a\x09\x09\x09\x09#endif\x0a\x09\x09\x09\x09\x0a\x09\x09\x09\x09if\x20(\x20hard_shadow\x20==\x201.0\x20)\x20{\x0a\x09\x09\x09\x09\x09shadow\x20=\x201.0;\x0a\x09\x09\x09\x09}\x20else\x20{\x0a\x09\x09\x09\x09\x09variance\x20=\x20max(\x20variance,\x200.0000001\x20);\x0a\x09\x09\x09\x09\x09float\x20d\x20=\x20shadowCoord.z\x20-\x20mean;\x0a\x09\x09\x09\x09\x09float\x20p_max\x20=\x20variance\x20/\x20(\x20variance\x20+\x20d\x20*\x20d\x20);\x0a\x09\x09\x09\x09\x09p_max\x20=\x20clamp(\x20(\x20p_max\x20-\x200.3\x20)\x20/\x200.65,\x200.0,\x201.0\x20);\x0a\x09\x09\x09\x09\x09shadow\x20=\x20max(\x20hard_shadow,\x20p_max\x20);\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09}\x0a\x09\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09\x09}\x0a\x09#else\x0a\x09\x09float\x20getShadow(\x20sampler2D\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord\x20)\x20{\x0a\x09\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09\x09shadowCoord.xyz\x20/=\x20shadowCoord.w;\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09shadowCoord.z\x20-=\x20shadowBias;\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09shadowCoord.z\x20+=\x20shadowBias;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09bool\x20inFrustum\x20=\x20shadowCoord.x\x20>=\x200.0\x20&&\x20shadowCoord.x\x20<=\x201.0\x20&&\x20shadowCoord.y\x20>=\x200.0\x20&&\x20shadowCoord.y\x20<=\x201.0;\x0a\x09\x09\x09bool\x20frustumTest\x20=\x20inFrustum\x20&&\x20shadowCoord.z\x20<=\x201.0;\x0a\x09\x09\x09if\x20(\x20frustumTest\x20)\x20{\x0a\x09\x09\x09\x09float\x20depth\x20=\x20texture2D(\x20shadowMap,\x20shadowCoord.xy\x20).r;\x0a\x09\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09\x09shadow\x20=\x20step(\x20depth,\x20shadowCoord.z\x20);\x0a\x09\x09\x09\x09#else\x0a\x09\x09\x09\x09\x09shadow\x20=\x20step(\x20shadowCoord.z,\x20depth\x20);\x0a\x09\x09\x09\x09#endif\x0a\x09\x09\x09}\x0a\x09\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09\x09}\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09float\x20getPointShadow(\x20samplerCubeShadow\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord,\x20float\x20shadowCameraNear,\x20float\x20shadowCameraFar\x20)\x20{\x0a\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09vec3\x20lightToPosition\x20=\x20shadowCoord.xyz;\x0a\x09\x09vec3\x20bd3D\x20=\x20normalize(\x20lightToPosition\x20);\x0a\x09\x09vec3\x20absVec\x20=\x20abs(\x20lightToPosition\x20);\x0a\x09\x09float\x20viewSpaceZ\x20=\x20max(\x20max(\x20absVec.x,\x20absVec.y\x20),\x20absVec.z\x20);\x0a\x09\x09if\x20(\x20viewSpaceZ\x20-\x20shadowCameraFar\x20<=\x200.0\x20&&\x20viewSpaceZ\x20-\x20shadowCameraNear\x20>=\x200.0\x20)\x20{\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09float\x20dp\x20=\x20(\x20shadowCameraNear\x20*\x20(\x20shadowCameraFar\x20-\x20viewSpaceZ\x20)\x20)\x20/\x20(\x20viewSpaceZ\x20*\x20(\x20shadowCameraFar\x20-\x20shadowCameraNear\x20)\x20);\x0a\x09\x09\x09\x09dp\x20-=\x20shadowBias;\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09float\x20dp\x20=\x20(\x20shadowCameraFar\x20*\x20(\x20viewSpaceZ\x20-\x20shadowCameraNear\x20)\x20)\x20/\x20(\x20viewSpaceZ\x20*\x20(\x20shadowCameraFar\x20-\x20shadowCameraNear\x20)\x20);\x0a\x09\x09\x09\x09dp\x20+=\x20shadowBias;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09float\x20texelSize\x20=\x20shadowRadius\x20/\x20shadowMapSize.x;\x0a\x09\x09\x09vec3\x20absDir\x20=\x20abs(\x20bd3D\x20);\x0a\x09\x09\x09vec3\x20tangent\x20=\x20absDir.x\x20>\x20absDir.z\x20?\x20vec3(\x200.0,\x201.0,\x200.0\x20)\x20:\x20vec3(\x201.0,\x200.0,\x200.0\x20);\x0a\x09\x09\x09tangent\x20=\x20normalize(\x20cross(\x20bd3D,\x20tangent\x20)\x20);\x0a\x09\x09\x09vec3\x20bitangent\x20=\x20cross(\x20bd3D,\x20tangent\x20);\x0a\x09\x09\x09float\x20phi\x20=\x20interleavedGradientNoise(\x20gl_FragCoord.xy\x20)\x20*\x20PI2;\x0a\x09\x09\x09vec2\x20sample0\x20=\x20vogelDiskSample(\x200,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample1\x20=\x20vogelDiskSample(\x201,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample2\x20=\x20vogelDiskSample(\x202,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample3\x20=\x20vogelDiskSample(\x203,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample4\x20=\x20vogelDiskSample(\x204,\x205,\x20phi\x20);\x0a\x09\x09\x09shadow\x20=\x20(\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample0.x\x20+\x20bitangent\x20*\x20sample0.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample1.x\x20+\x20bitangent\x20*\x20sample1.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample2.x\x20+\x20bitangent\x20*\x20sample2.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample3.x\x20+\x20bitangent\x20*\x20sample3.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample4.x\x20+\x20bitangent\x20*\x20sample4.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x0a\x09\x09\x09)\x20*\x200.2;\x0a\x09\x09}\x0a\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09}\x0a\x09#elif\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x0a\x09float\x20getPointShadow(\x20samplerCube\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord,\x20float\x20shadowCameraNear,\x20float\x20shadowCameraFar\x20)\x20{\x0a\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09vec3\x20lightToPosition\x20=\x20shadowCoord.xyz;\x0a\x09\x09vec3\x20absVec\x20=\x20abs(\x20lightToPosition\x20);\x0a\x09\x09float\x20viewSpaceZ\x20=\x20max(\x20max(\x20absVec.x,\x20absVec.y\x20),\x20absVec.z\x20);\x0a\x09\x09if\x20(\x20viewSpaceZ\x20-\x20shadowCameraFar\x20<=\x200.0\x20&&\x20viewSpaceZ\x20-\x20shadowCameraNear\x20>=\x200.0\x20)\x20{\x0a\x09\x09\x09float\x20dp\x20=\x20(\x20shadowCameraFar\x20*\x20(\x20viewSpaceZ\x20-\x20shadowCameraNear\x20)\x20)\x20/\x20(\x20viewSpaceZ\x20*\x20(\x20shadowCameraFar\x20-\x20shadowCameraNear\x20)\x20);\x0a\x09\x09\x09dp\x20+=\x20shadowBias;\x0a\x09\x09\x09vec3\x20bd3D\x20=\x20normalize(\x20lightToPosition\x20);\x0a\x09\x09\x09float\x20depth\x20=\x20textureCube(\x20shadowMap,\x20bd3D\x20).r;\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09depth\x20=\x201.0\x20-\x20depth;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09shadow\x20=\x20step(\x20dp,\x20depth\x20);\x0a\x09\x09}\x0a\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09}\x0a\x09#endif\x0a\x09#endif\x0a#endif','shadowmap_pars_vertex':'#if\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09uniform\x20mat4\x20spotLightMatrix[\x20NUM_SPOT_LIGHT_COORDS\x20];\x0a\x09varying\x20vec4\x20vSpotLightCoord[\x20NUM_SPOT_LIGHT_COORDS\x20];\x0a#endif\x0a#ifdef\x20USE_SHADOWMAP\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09uniform\x20mat4\x20directionalShadowMatrix[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09varying\x20vec4\x20vDirectionalShadowCoord[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20DirectionalLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20DirectionalLightShadow\x20directionalLightShadows[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09struct\x20SpotLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20SpotLightShadow\x20spotLightShadows[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09uniform\x20mat4\x20pointShadowMatrix[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09varying\x20vec4\x20vPointShadowCoord[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20PointLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09\x09float\x20shadowCameraNear;\x0a\x09\x09\x09float\x20shadowCameraFar;\x0a\x09\x09};\x0a\x09\x09uniform\x20PointLightShadow\x20pointLightShadows[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a#endif','shadowmap_vertex':'#if\x20(\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x20||\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x20)\x20)\x20||\x20(\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x20)\x0a\x09#ifdef\x20HAS_NORMAL\x0a\x09\x09vec3\x20shadowWorldNormal\x20=\x20inverseTransformDirection(\x20transformedNormal,\x20viewMatrix\x20);\x0a\x09#else\x0a\x09\x09vec3\x20shadowWorldNormal\x20=\x20vec3(\x200.0\x20);\x0a\x09#endif\x0a\x09vec4\x20shadowWorldPosition;\x0a#endif\x0a#if\x20defined(\x20USE_SHADOWMAP\x20)\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_DIR_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09shadowWorldPosition\x20=\x20worldPosition\x20+\x20vec4(\x20shadowWorldNormal\x20*\x20directionalLightShadows[\x20i\x20].shadowNormalBias,\x200\x20);\x0a\x09\x09\x09vDirectionalShadowCoord[\x20i\x20]\x20=\x20directionalShadowMatrix[\x20i\x20]\x20*\x20shadowWorldPosition;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_POINT_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09shadowWorldPosition\x20=\x20worldPosition\x20+\x20vec4(\x20shadowWorldNormal\x20*\x20pointLightShadows[\x20i\x20].shadowNormalBias,\x200\x20);\x0a\x09\x09\x09vPointShadowCoord[\x20i\x20]\x20=\x20pointShadowMatrix[\x20i\x20]\x20*\x20shadowWorldPosition;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a#endif\x0a#if\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_SPOT_LIGHT_COORDS;\x20i\x20++\x20)\x20{\x0a\x09\x09shadowWorldPosition\x20=\x20worldPosition;\x0a\x09\x09#if\x20(\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS\x20)\x0a\x09\x09\x09shadowWorldPosition.xyz\x20+=\x20shadowWorldNormal\x20*\x20spotLightShadows[\x20i\x20].shadowNormalBias;\x0a\x09\x09#endif\x0a\x09\x09vSpotLightCoord[\x20i\x20]\x20=\x20spotLightMatrix[\x20i\x20]\x20*\x20shadowWorldPosition;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif','shadowmask_pars_fragment':'float\x20getShadowMask()\x20{\x0a\x09float\x20shadow\x20=\x201.0;\x0a\x09#ifdef\x20USE_SHADOWMAP\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09DirectionalLightShadow\x20directionalLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_DIR_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09directionalLight\x20=\x20directionalLightShadows[\x20i\x20];\x0a\x09\x09shadow\x20*=\x20receiveShadow\x20?\x20getShadow(\x20directionalShadowMap[\x20i\x20],\x20directionalLight.shadowMapSize,\x20directionalLight.shadowIntensity,\x20directionalLight.shadowBias,\x20directionalLight.shadowRadius,\x20vDirectionalShadowCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#if\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09SpotLightShadow\x20spotLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_SPOT_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09spotLight\x20=\x20spotLightShadows[\x20i\x20];\x0a\x09\x09shadow\x20*=\x20receiveShadow\x20?\x20getShadow(\x20spotShadowMap[\x20i\x20],\x20spotLight.shadowMapSize,\x20spotLight.shadowIntensity,\x20spotLight.shadowBias,\x20spotLight.shadowRadius,\x20vSpotLightCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x20&&\x20(\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x20||\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x20)\x0a\x09PointLightShadow\x20pointLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_POINT_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09pointLight\x20=\x20pointLightShadows[\x20i\x20];\x0a\x09\x09shadow\x20*=\x20receiveShadow\x20?\x20getPointShadow(\x20pointShadowMap[\x20i\x20],\x20pointLight.shadowMapSize,\x20pointLight.shadowIntensity,\x20pointLight.shadowBias,\x20pointLight.shadowRadius,\x20vPointShadowCoord[\x20i\x20],\x20pointLight.shadowCameraNear,\x20pointLight.shadowCameraFar\x20)\x20:\x201.0;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#endif\x0a\x09return\x20shadow;\x0a}','skinbase_vertex':'#ifdef\x20USE_SKINNING\x0a\x09mat4\x20boneMatX\x20=\x20getBoneMatrix(\x20skinIndex.x\x20);\x0a\x09mat4\x20boneMatY\x20=\x20getBoneMatrix(\x20skinIndex.y\x20);\x0a\x09mat4\x20boneMatZ\x20=\x20getBoneMatrix(\x20skinIndex.z\x20);\x0a\x09mat4\x20boneMatW\x20=\x20getBoneMatrix(\x20skinIndex.w\x20);\x0a#endif','skinning_pars_vertex':'#ifdef\x20USE_SKINNING\x0a\x09uniform\x20mat4\x20bindMatrix;\x0a\x09uniform\x20mat4\x20bindMatrixInverse;\x0a\x09uniform\x20highp\x20sampler2D\x20boneTexture;\x0a\x09mat4\x20getBoneMatrix(\x20const\x20in\x20float\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20boneTexture,\x200\x20).x;\x0a\x09\x09int\x20j\x20=\x20int(\x20i\x20)\x20*\x204;\x0a\x09\x09int\x20x\x20=\x20j\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20j\x20/\x20size;\x0a\x09\x09vec4\x20v1\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v2\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x\x20+\x201,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v3\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x\x20+\x202,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v4\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x\x20+\x203,\x20y\x20),\x200\x20);\x0a\x09\x09return\x20mat4(\x20v1,\x20v2,\x20v3,\x20v4\x20);\x0a\x09}\x0a#endif','skinning_vertex':'#ifdef\x20USE_SKINNING\x0a\x09vec4\x20skinVertex\x20=\x20bindMatrix\x20*\x20vec4(\x20transformed,\x201.0\x20);\x0a\x09vec4\x20skinned\x20=\x20vec4(\x200.0\x20);\x0a\x09skinned\x20+=\x20boneMatX\x20*\x20skinVertex\x20*\x20skinWeight.x;\x0a\x09skinned\x20+=\x20boneMatY\x20*\x20skinVertex\x20*\x20skinWeight.y;\x0a\x09skinned\x20+=\x20boneMatZ\x20*\x20skinVertex\x20*\x20skinWeight.z;\x0a\x09skinned\x20+=\x20boneMatW\x20*\x20skinVertex\x20*\x20skinWeight.w;\x0a\x09transformed\x20=\x20(\x20bindMatrixInverse\x20*\x20skinned\x20).xyz;\x0a#endif','skinnormal_vertex':'#ifdef\x20USE_SKINNING\x0a\x09mat4\x20skinMatrix\x20=\x20mat4(\x200.0\x20);\x0a\x09skinMatrix\x20+=\x20skinWeight.x\x20*\x20boneMatX;\x0a\x09skinMatrix\x20+=\x20skinWeight.y\x20*\x20boneMatY;\x0a\x09skinMatrix\x20+=\x20skinWeight.z\x20*\x20boneMatZ;\x0a\x09skinMatrix\x20+=\x20skinWeight.w\x20*\x20boneMatW;\x0a\x09skinMatrix\x20=\x20bindMatrixInverse\x20*\x20skinMatrix\x20*\x20bindMatrix;\x0a\x09objectNormal\x20=\x20vec4(\x20skinMatrix\x20*\x20vec4(\x20objectNormal,\x200.0\x20)\x20).xyz;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09objectTangent\x20=\x20vec4(\x20skinMatrix\x20*\x20vec4(\x20objectTangent,\x200.0\x20)\x20).xyz;\x0a\x09#endif\x0a#endif','specularmap_fragment':'float\x20specularStrength;\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09vec4\x20texelSpecular\x20=\x20texture2D(\x20specularMap,\x20vSpecularMapUv\x20);\x0a\x09specularStrength\x20=\x20texelSpecular.r;\x0a#else\x0a\x09specularStrength\x20=\x201.0;\x0a#endif','specularmap_pars_fragment':'#ifdef\x20USE_SPECULARMAP\x0a\x09uniform\x20sampler2D\x20specularMap;\x0a#endif','tonemapping_fragment':'#if\x20defined(\x20TONE_MAPPING\x20)\x0a\x09gl_FragColor.rgb\x20=\x20toneMapping(\x20gl_FragColor.rgb\x20);\x0a#endif','tonemapping_pars_fragment':'#ifndef\x20saturate\x0a#define\x20saturate(\x20a\x20)\x20clamp(\x20a,\x200.0,\x201.0\x20)\x0a#endif\x0auniform\x20float\x20toneMappingExposure;\x0avec3\x20LinearToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09return\x20saturate(\x20toneMappingExposure\x20*\x20color\x20);\x0a}\x0avec3\x20ReinhardToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09return\x20saturate(\x20color\x20/\x20(\x20vec3(\x201.0\x20)\x20+\x20color\x20)\x20);\x0a}\x0avec3\x20CineonToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09color\x20=\x20max(\x20vec3(\x200.0\x20),\x20color\x20-\x200.004\x20);\x0a\x09return\x20pow(\x20(\x20color\x20*\x20(\x206.2\x20*\x20color\x20+\x200.5\x20)\x20)\x20/\x20(\x20color\x20*\x20(\x206.2\x20*\x20color\x20+\x201.7\x20)\x20+\x200.06\x20),\x20vec3(\x202.2\x20)\x20);\x0a}\x0avec3\x20RRTAndODTFit(\x20vec3\x20v\x20)\x20{\x0a\x09vec3\x20a\x20=\x20v\x20*\x20(\x20v\x20+\x200.0245786\x20)\x20-\x200.000090537;\x0a\x09vec3\x20b\x20=\x20v\x20*\x20(\x200.983729\x20*\x20v\x20+\x200.4329510\x20)\x20+\x200.238081;\x0a\x09return\x20a\x20/\x20b;\x0a}\x0avec3\x20ACESFilmicToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09const\x20mat3\x20ACESInputMat\x20=\x20mat3(\x0a\x09\x09vec3(\x200.59719,\x200.07600,\x200.02840\x20),\x09\x09vec3(\x200.35458,\x200.90834,\x200.13383\x20),\x0a\x09\x09vec3(\x200.04823,\x200.01566,\x200.83777\x20)\x0a\x09);\x0a\x09const\x20mat3\x20ACESOutputMat\x20=\x20mat3(\x0a\x09\x09vec3(\x20\x201.60475,\x20-0.10208,\x20-0.00327\x20),\x09\x09vec3(\x20-0.53108,\x20\x201.10813,\x20-0.07276\x20),\x0a\x09\x09vec3(\x20-0.07367,\x20-0.00605,\x20\x201.07602\x20)\x0a\x09);\x0a\x09color\x20*=\x20toneMappingExposure\x20/\x200.6;\x0a\x09color\x20=\x20ACESInputMat\x20*\x20color;\x0a\x09color\x20=\x20RRTAndODTFit(\x20color\x20);\x0a\x09color\x20=\x20ACESOutputMat\x20*\x20color;\x0a\x09return\x20saturate(\x20color\x20);\x0a}\x0aconst\x20mat3\x20LINEAR_REC2020_TO_LINEAR_SRGB\x20=\x20mat3(\x0a\x09vec3(\x201.6605,\x20-\x200.1246,\x20-\x200.0182\x20),\x0a\x09vec3(\x20-\x200.5876,\x201.1329,\x20-\x200.1006\x20),\x0a\x09vec3(\x20-\x200.0728,\x20-\x200.0083,\x201.1187\x20)\x0a);\x0aconst\x20mat3\x20LINEAR_SRGB_TO_LINEAR_REC2020\x20=\x20mat3(\x0a\x09vec3(\x200.6274,\x200.0691,\x200.0164\x20),\x0a\x09vec3(\x200.3293,\x200.9195,\x200.0880\x20),\x0a\x09vec3(\x200.0433,\x200.0113,\x200.8956\x20)\x0a);\x0avec3\x20agxDefaultContrastApprox(\x20vec3\x20x\x20)\x20{\x0a\x09vec3\x20x2\x20=\x20x\x20*\x20x;\x0a\x09vec3\x20x4\x20=\x20x2\x20*\x20x2;\x0a\x09return\x20+\x2015.5\x20*\x20x4\x20*\x20x2\x0a\x09\x09-\x2040.14\x20*\x20x4\x20*\x20x\x0a\x09\x09+\x2031.96\x20*\x20x4\x0a\x09\x09-\x206.868\x20*\x20x2\x20*\x20x\x0a\x09\x09+\x200.4298\x20*\x20x2\x0a\x09\x09+\x200.1191\x20*\x20x\x0a\x09\x09-\x200.00232;\x0a}\x0avec3\x20AgXToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09const\x20mat3\x20AgXInsetMatrix\x20=\x20mat3(\x0a\x09\x09vec3(\x200.856627153315983,\x200.137318972929847,\x200.11189821299995\x20),\x0a\x09\x09vec3(\x200.0951212405381588,\x200.761241990602591,\x200.0767994186031903\x20),\x0a\x09\x09vec3(\x200.0482516061458583,\x200.101439036467562,\x200.811302368396859\x20)\x0a\x09);\x0a\x09const\x20mat3\x20AgXOutsetMatrix\x20=\x20mat3(\x0a\x09\x09vec3(\x201.1271005818144368,\x20-\x200.1413297634984383,\x20-\x200.14132976349843826\x20),\x0a\x09\x09vec3(\x20-\x200.11060664309660323,\x201.157823702216272,\x20-\x200.11060664309660294\x20),\x0a\x09\x09vec3(\x20-\x200.016493938717834573,\x20-\x200.016493938717834257,\x201.2519364065950405\x20)\x0a\x09);\x0a\x09const\x20float\x20AgxMinEv\x20=\x20-\x2012.47393;\x09const\x20float\x20AgxMaxEv\x20=\x204.026069;\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09color\x20=\x20LINEAR_SRGB_TO_LINEAR_REC2020\x20*\x20color;\x0a\x09color\x20=\x20AgXInsetMatrix\x20*\x20color;\x0a\x09color\x20=\x20max(\x20color,\x201e-10\x20);\x09color\x20=\x20log2(\x20color\x20);\x0a\x09color\x20=\x20(\x20color\x20-\x20AgxMinEv\x20)\x20/\x20(\x20AgxMaxEv\x20-\x20AgxMinEv\x20);\x0a\x09color\x20=\x20clamp(\x20color,\x200.0,\x201.0\x20);\x0a\x09color\x20=\x20agxDefaultContrastApprox(\x20color\x20);\x0a\x09color\x20=\x20AgXOutsetMatrix\x20*\x20color;\x0a\x09color\x20=\x20pow(\x20max(\x20vec3(\x200.0\x20),\x20color\x20),\x20vec3(\x202.2\x20)\x20);\x0a\x09color\x20=\x20LINEAR_REC2020_TO_LINEAR_SRGB\x20*\x20color;\x0a\x09color\x20=\x20clamp(\x20color,\x200.0,\x201.0\x20);\x0a\x09return\x20color;\x0a}\x0avec3\x20NeutralToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09const\x20float\x20StartCompression\x20=\x200.8\x20-\x200.04;\x0a\x09const\x20float\x20Desaturation\x20=\x200.15;\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09float\x20x\x20=\x20min(\x20color.r,\x20min(\x20color.g,\x20color.b\x20)\x20);\x0a\x09float\x20offset\x20=\x20x\x20<\x200.08\x20?\x20x\x20-\x206.25\x20*\x20x\x20*\x20x\x20:\x200.04;\x0a\x09color\x20-=\x20offset;\x0a\x09float\x20peak\x20=\x20max(\x20color.r,\x20max(\x20color.g,\x20color.b\x20)\x20);\x0a\x09if\x20(\x20peak\x20<\x20StartCompression\x20)\x20return\x20color;\x0a\x09float\x20d\x20=\x201.\x20-\x20StartCompression;\x0a\x09float\x20newPeak\x20=\x201.\x20-\x20d\x20*\x20d\x20/\x20(\x20peak\x20+\x20d\x20-\x20StartCompression\x20);\x0a\x09color\x20*=\x20newPeak\x20/\x20peak;\x0a\x09float\x20g\x20=\x201.\x20-\x201.\x20/\x20(\x20Desaturation\x20*\x20(\x20peak\x20-\x20newPeak\x20)\x20+\x201.\x20);\x0a\x09return\x20mix(\x20color,\x20vec3(\x20newPeak\x20),\x20g\x20);\x0a}\x0avec3\x20CustomToneMapping(\x20vec3\x20color\x20)\x20{\x20return\x20color;\x20}','transmission_fragment':d4(0x4e8),'transmission_pars_fragment':d4(0x1b2),'uv_pars_fragment':'#if\x20defined(\x20USE_UV\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09varying\x20vec2\x20vUv;\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09varying\x20vec2\x20vMapUv;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09varying\x20vec2\x20vAlphaMapUv;\x0a#endif\x0a#ifdef\x20USE_LIGHTMAP\x0a\x09varying\x20vec2\x20vLightMapUv;\x0a#endif\x0a#ifdef\x20USE_AOMAP\x0a\x09varying\x20vec2\x20vAoMapUv;\x0a#endif\x0a#ifdef\x20USE_BUMPMAP\x0a\x09varying\x20vec2\x20vBumpMapUv;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP\x0a\x09varying\x20vec2\x20vNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_EMISSIVEMAP\x0a\x09varying\x20vec2\x20vEmissiveMapUv;\x0a#endif\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09varying\x20vec2\x20vMetalnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09varying\x20vec2\x20vRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ANISOTROPYMAP\x0a\x09varying\x20vec2\x20vAnisotropyMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOATMAP\x0a\x09varying\x20vec2\x20vClearcoatMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09varying\x20vec2\x20vClearcoatNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09varying\x20vec2\x20vClearcoatRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09varying\x20vec2\x20vIridescenceMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09varying\x20vec2\x20vIridescenceThicknessMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09varying\x20vec2\x20vSheenColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09varying\x20vec2\x20vSheenRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09varying\x20vec2\x20vSpecularMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09varying\x20vec2\x20vSpecularColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09varying\x20vec2\x20vSpecularIntensityMapUv;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09uniform\x20mat3\x20transmissionMapTransform;\x0a\x09varying\x20vec2\x20vTransmissionMapUv;\x0a#endif\x0a#ifdef\x20USE_THICKNESSMAP\x0a\x09uniform\x20mat3\x20thicknessMapTransform;\x0a\x09varying\x20vec2\x20vThicknessMapUv;\x0a#endif','uv_pars_vertex':'#if\x20defined(\x20USE_UV\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09varying\x20vec2\x20vUv;\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09uniform\x20mat3\x20mapTransform;\x0a\x09varying\x20vec2\x20vMapUv;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09uniform\x20mat3\x20alphaMapTransform;\x0a\x09varying\x20vec2\x20vAlphaMapUv;\x0a#endif\x0a#ifdef\x20USE_LIGHTMAP\x0a\x09uniform\x20mat3\x20lightMapTransform;\x0a\x09varying\x20vec2\x20vLightMapUv;\x0a#endif\x0a#ifdef\x20USE_AOMAP\x0a\x09uniform\x20mat3\x20aoMapTransform;\x0a\x09varying\x20vec2\x20vAoMapUv;\x0a#endif\x0a#ifdef\x20USE_BUMPMAP\x0a\x09uniform\x20mat3\x20bumpMapTransform;\x0a\x09varying\x20vec2\x20vBumpMapUv;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP\x0a\x09uniform\x20mat3\x20normalMapTransform;\x0a\x09varying\x20vec2\x20vNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09uniform\x20mat3\x20displacementMapTransform;\x0a\x09varying\x20vec2\x20vDisplacementMapUv;\x0a#endif\x0a#ifdef\x20USE_EMISSIVEMAP\x0a\x09uniform\x20mat3\x20emissiveMapTransform;\x0a\x09varying\x20vec2\x20vEmissiveMapUv;\x0a#endif\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09uniform\x20mat3\x20metalnessMapTransform;\x0a\x09varying\x20vec2\x20vMetalnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09uniform\x20mat3\x20roughnessMapTransform;\x0a\x09varying\x20vec2\x20vRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ANISOTROPYMAP\x0a\x09uniform\x20mat3\x20anisotropyMapTransform;\x0a\x09varying\x20vec2\x20vAnisotropyMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOATMAP\x0a\x09uniform\x20mat3\x20clearcoatMapTransform;\x0a\x09varying\x20vec2\x20vClearcoatMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09uniform\x20mat3\x20clearcoatNormalMapTransform;\x0a\x09varying\x20vec2\x20vClearcoatNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09uniform\x20mat3\x20clearcoatRoughnessMapTransform;\x0a\x09varying\x20vec2\x20vClearcoatRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09uniform\x20mat3\x20sheenColorMapTransform;\x0a\x09varying\x20vec2\x20vSheenColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09uniform\x20mat3\x20sheenRoughnessMapTransform;\x0a\x09varying\x20vec2\x20vSheenRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09uniform\x20mat3\x20iridescenceMapTransform;\x0a\x09varying\x20vec2\x20vIridescenceMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09uniform\x20mat3\x20iridescenceThicknessMapTransform;\x0a\x09varying\x20vec2\x20vIridescenceThicknessMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09uniform\x20mat3\x20specularMapTransform;\x0a\x09varying\x20vec2\x20vSpecularMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09uniform\x20mat3\x20specularColorMapTransform;\x0a\x09varying\x20vec2\x20vSpecularColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09uniform\x20mat3\x20specularIntensityMapTransform;\x0a\x09varying\x20vec2\x20vSpecularIntensityMapUv;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09uniform\x20mat3\x20transmissionMapTransform;\x0a\x09varying\x20vec2\x20vTransmissionMapUv;\x0a#endif\x0a#ifdef\x20USE_THICKNESSMAP\x0a\x09uniform\x20mat3\x20thicknessMapTransform;\x0a\x09varying\x20vec2\x20vThicknessMapUv;\x0a#endif','uv_vertex':d4(0x224),'worldpos_vertex':'#if\x20defined(\x20USE_ENVMAP\x20)\x20||\x20defined(\x20DISTANCE\x20)\x20||\x20defined\x20(\x20USE_SHADOWMAP\x20)\x20||\x20defined\x20(\x20USE_TRANSMISSION\x20)\x20||\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09vec4\x20worldPosition\x20=\x20vec4(\x20transformed,\x201.0\x20);\x0a\x09#ifdef\x20USE_BATCHING\x0a\x09\x09worldPosition\x20=\x20batchingMatrix\x20*\x20worldPosition;\x0a\x09#endif\x0a\x09#ifdef\x20USE_INSTANCING\x0a\x09\x09worldPosition\x20=\x20instanceMatrix\x20*\x20worldPosition;\x0a\x09#endif\x0a\x09worldPosition\x20=\x20modelMatrix\x20*\x20worldPosition;\x0a#endif','background_vert':'varying\x20vec2\x20vUv;\x0auniform\x20mat3\x20uvTransform;\x0avoid\x20main()\x20{\x0a\x09vUv\x20=\x20(\x20uvTransform\x20*\x20vec3(\x20uv,\x201\x20)\x20).xy;\x0a\x09gl_Position\x20=\x20vec4(\x20position.xy,\x201.0,\x201.0\x20);\x0a}','background_frag':d4(0x3f0),'backgroundCube_vert':'varying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09gl_Position.z\x20=\x20gl_Position.w;\x0a}','backgroundCube_frag':d4(0x207),'cube_vert':'varying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09gl_Position.z\x20=\x20gl_Position.w;\x0a}','cube_frag':'uniform\x20samplerCube\x20tCube;\x0auniform\x20float\x20tFlip;\x0auniform\x20float\x20opacity;\x0avarying\x20vec3\x20vWorldDirection;\x0avoid\x20main()\x20{\x0a\x09vec4\x20texColor\x20=\x20textureCube(\x20tCube,\x20vec3(\x20tFlip\x20*\x20vWorldDirection.x,\x20vWorldDirection.yz\x20)\x20);\x0a\x09gl_FragColor\x20=\x20texColor;\x0a\x09gl_FragColor.a\x20*=\x20opacity;\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','depth_vert':'#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avarying\x20vec2\x20vHighPrecisionZW;\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09\x09#include\x20<beginnormal_vertex>\x0a\x09\x09#include\x20<morphnormal_vertex>\x0a\x09\x09#include\x20<skinnormal_vertex>\x0a\x09#endif\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vHighPrecisionZW\x20=\x20gl_Position.zw;\x0a}','depth_frag':'#if\x20DEPTH_PACKING\x20==\x203200\x0a\x09uniform\x20float\x20opacity;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<packing>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avarying\x20vec2\x20vHighPrecisionZW;\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x201.0\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#if\x20DEPTH_PACKING\x20==\x203200\x0a\x09\x09diffuseColor.a\x20=\x20opacity;\x0a\x09#endif\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09float\x20fragCoordZ\x20=\x20vHighPrecisionZW[\x200\x20]\x20/\x20vHighPrecisionZW[\x201\x20];\x0a\x09#else\x0a\x09\x09float\x20fragCoordZ\x20=\x200.5\x20*\x20vHighPrecisionZW[\x200\x20]\x20/\x20vHighPrecisionZW[\x201\x20]\x20+\x200.5;\x0a\x09#endif\x0a\x09#if\x20DEPTH_PACKING\x20==\x203200\x0a\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x201.0\x20-\x20fragCoordZ\x20),\x20opacity\x20);\x0a\x09#elif\x20DEPTH_PACKING\x20==\x203201\x0a\x09\x09gl_FragColor\x20=\x20packDepthToRGBA(\x20fragCoordZ\x20);\x0a\x09#elif\x20DEPTH_PACKING\x20==\x203202\x0a\x09\x09gl_FragColor\x20=\x20vec4(\x20packDepthToRGB(\x20fragCoordZ\x20),\x201.0\x20);\x0a\x09#elif\x20DEPTH_PACKING\x20==\x203203\x0a\x09\x09gl_FragColor\x20=\x20vec4(\x20packDepthToRG(\x20fragCoordZ\x20),\x200.0,\x201.0\x20);\x0a\x09#endif\x0a}','distance_vert':'#define\x20DISTANCE\x0avarying\x20vec3\x20vWorldPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09\x09#include\x20<beginnormal_vertex>\x0a\x09\x09#include\x20<morphnormal_vertex>\x0a\x09\x09#include\x20<skinnormal_vertex>\x0a\x09#endif\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vWorldPosition\x20=\x20worldPosition.xyz;\x0a}','distance_frag':d4(0x1f6),'equirect_vert':'varying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<project_vertex>\x0a}','equirect_frag':'uniform\x20sampler2D\x20tEquirect;\x0avarying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vec3\x20direction\x20=\x20normalize(\x20vWorldDirection\x20);\x0a\x09vec2\x20sampleUV\x20=\x20equirectUv(\x20direction\x20);\x0a\x09gl_FragColor\x20=\x20texture2D(\x20tEquirect,\x20sampleUV\x20);\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','linedashed_vert':'uniform\x20float\x20scale;\x0aattribute\x20float\x20lineDistance;\x0avarying\x20float\x20vLineDistance;\x0a#include\x20<common>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09vLineDistance\x20=\x20scale\x20*\x20lineDistance;\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','linedashed_frag':'uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0auniform\x20float\x20dashSize;\x0auniform\x20float\x20totalSize;\x0avarying\x20float\x20vLineDistance;\x0a#include\x20<common>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09if\x20(\x20mod(\x20vLineDistance,\x20totalSize\x20)\x20>\x20dashSize\x20)\x20{\x0a\x09\x09discard;\x0a\x09}\x0a\x09vec3\x20outgoingLight\x20=\x20vec3(\x200.0\x20);\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09outgoingLight\x20=\x20diffuseColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a}','meshbasic_vert':'#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<envmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#if\x20defined\x20(\x20USE_ENVMAP\x20)\x20||\x20defined\x20(\x20USE_SKINNING\x20)\x0a\x09\x09#include\x20<beginnormal_vertex>\x0a\x09\x09#include\x20<morphnormal_vertex>\x0a\x09\x09#include\x20<skinbase_vertex>\x0a\x09\x09#include\x20<skinnormal_vertex>\x0a\x09\x09#include\x20<defaultnormal_vertex>\x0a\x09#endif\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<envmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshbasic_frag':d4(0x366),'meshlambert_vert':'#define\x20LAMBERT\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<envmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<envmap_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshlambert_frag':'#define\x20LAMBERT\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<cube_uv_reflection_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_pars_fragment>\x0a#include\x20<envmap_physical_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_lambert_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<specularmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<specularmap_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_lambert_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse\x20+\x20totalEmissiveRadiance;\x0a\x09#include\x20<envmap_fragment>\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshmatcap_vert':'#define\x20MATCAP\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<fog_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a}','meshmatcap_frag':'#define\x20MATCAP\x0auniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0auniform\x20sampler2D\x20matcap;\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09vec3\x20viewDir\x20=\x20normalize(\x20vViewPosition\x20);\x0a\x09vec3\x20x\x20=\x20normalize(\x20vec3(\x20viewDir.z,\x200.0,\x20-\x20viewDir.x\x20)\x20);\x0a\x09vec3\x20y\x20=\x20cross(\x20viewDir,\x20x\x20);\x0a\x09vec2\x20uv\x20=\x20vec2(\x20dot(\x20x,\x20normal\x20),\x20dot(\x20y,\x20normal\x20)\x20)\x20*\x200.495\x20+\x200.5;\x0a\x09#ifdef\x20USE_MATCAP\x0a\x09\x09vec4\x20matcapColor\x20=\x20texture2D(\x20matcap,\x20uv\x20);\x0a\x09#else\x0a\x09\x09vec4\x20matcapColor\x20=\x20vec4(\x20vec3(\x20mix(\x200.2,\x200.8,\x20uv.y\x20)\x20),\x201.0\x20);\x0a\x09#endif\x0a\x09vec3\x20outgoingLight\x20=\x20diffuseColor.rgb\x20*\x20matcapColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshnormal_vert':'#define\x20NORMAL\x0a#if\x20defined(\x20FLAT_SHADED\x20)\x20||\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09varying\x20vec3\x20vViewPosition;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a#if\x20defined(\x20FLAT_SHADED\x20)\x20||\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a#endif\x0a}','meshnormal_frag':'#define\x20NORMAL\x0auniform\x20float\x20opacity;\x0a#if\x20defined(\x20FLAT_SHADED\x20)\x20||\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09varying\x20vec3\x20vViewPosition;\x0a#endif\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x200.0,\x200.0,\x200.0,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09gl_FragColor\x20=\x20vec4(\x20normalize(\x20normal\x20)\x20*\x200.5\x20+\x200.5,\x20diffuseColor.a\x20);\x0a\x09#ifdef\x20OPAQUE\x0a\x09\x09gl_FragColor.a\x20=\x201.0;\x0a\x09#endif\x0a}','meshphong_vert':'#define\x20PHONG\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<envmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<envmap_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshphong_frag':'#define\x20PHONG\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20vec3\x20specular;\x0auniform\x20float\x20shininess;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<cube_uv_reflection_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_pars_fragment>\x0a#include\x20<envmap_physical_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_phong_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<specularmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<specularmap_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_phong_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse\x20+\x20reflectedLight.directSpecular\x20+\x20reflectedLight.indirectSpecular\x20+\x20totalEmissiveRadiance;\x0a\x09#include\x20<envmap_fragment>\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshphysical_vert':'#define\x20STANDARD\x0avarying\x20vec3\x20vViewPosition;\x0a#ifdef\x20USE_TRANSMISSION\x0a\x09varying\x20vec3\x20vWorldPosition;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a#ifdef\x20USE_TRANSMISSION\x0a\x09vWorldPosition\x20=\x20worldPosition.xyz;\x0a#endif\x0a}','meshphysical_frag':'#define\x20STANDARD\x0a#ifdef\x20PHYSICAL\x0a\x09#define\x20IOR\x0a\x09#define\x20USE_SPECULAR\x0a#endif\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20float\x20roughness;\x0auniform\x20float\x20metalness;\x0auniform\x20float\x20opacity;\x0a#ifdef\x20IOR\x0a\x09uniform\x20float\x20ior;\x0a#endif\x0a#ifdef\x20USE_SPECULAR\x0a\x09uniform\x20float\x20specularIntensity;\x0a\x09uniform\x20vec3\x20specularColor;\x0a\x09#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09\x09uniform\x20sampler2D\x20specularColorMap;\x0a\x09#endif\x0a\x09#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09\x09uniform\x20sampler2D\x20specularIntensityMap;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09uniform\x20float\x20clearcoat;\x0a\x09uniform\x20float\x20clearcoatRoughness;\x0a#endif\x0a#ifdef\x20USE_DISPERSION\x0a\x09uniform\x20float\x20dispersion;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE\x0a\x09uniform\x20float\x20iridescence;\x0a\x09uniform\x20float\x20iridescenceIOR;\x0a\x09uniform\x20float\x20iridescenceThicknessMinimum;\x0a\x09uniform\x20float\x20iridescenceThicknessMaximum;\x0a#endif\x0a#ifdef\x20USE_SHEEN\x0a\x09uniform\x20vec3\x20sheenColor;\x0a\x09uniform\x20float\x20sheenRoughness;\x0a\x09#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09\x09uniform\x20sampler2D\x20sheenColorMap;\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09\x09uniform\x20sampler2D\x20sheenRoughnessMap;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_ANISOTROPY\x0a\x09uniform\x20vec2\x20anisotropyVector;\x0a\x09#ifdef\x20USE_ANISOTROPYMAP\x0a\x09\x09uniform\x20sampler2D\x20anisotropyMap;\x0a\x09#endif\x0a#endif\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<iridescence_fragment>\x0a#include\x20<cube_uv_reflection_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_physical_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_physical_pars_fragment>\x0a#include\x20<transmission_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<clearcoat_pars_fragment>\x0a#include\x20<iridescence_pars_fragment>\x0a#include\x20<roughnessmap_pars_fragment>\x0a#include\x20<metalnessmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<roughnessmap_fragment>\x0a\x09#include\x20<metalnessmap_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<clearcoat_normal_fragment_begin>\x0a\x09#include\x20<clearcoat_normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_physical_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20totalDiffuse\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse;\x0a\x09vec3\x20totalSpecular\x20=\x20reflectedLight.directSpecular\x20+\x20reflectedLight.indirectSpecular;\x0a\x09#include\x20<transmission_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20totalDiffuse\x20+\x20totalSpecular\x20+\x20totalEmissiveRadiance;\x0a\x09#ifdef\x20USE_SHEEN\x0a\x20\x0a\x09\x09outgoingLight\x20=\x20outgoingLight\x20+\x20sheenSpecularDirect\x20+\x20sheenSpecularIndirect;\x0a\x20\x0a\x20\x09#endif\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09float\x20dotNVcc\x20=\x20saturate(\x20dot(\x20geometryClearcoatNormal,\x20geometryViewDir\x20)\x20);\x0a\x09\x09vec3\x20Fcc\x20=\x20F_Schlick(\x20material.clearcoatF0,\x20material.clearcoatF90,\x20dotNVcc\x20);\x0a\x09\x09outgoingLight\x20=\x20outgoingLight\x20*\x20(\x201.0\x20-\x20material.clearcoat\x20*\x20Fcc\x20)\x20+\x20(\x20clearcoatSpecularDirect\x20+\x20clearcoatSpecularIndirect\x20)\x20*\x20material.clearcoat;\x0a\x09#endif\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshtoon_vert':'#define\x20TOON\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshtoon_frag':d4(0x562),'points_vert':'uniform\x20float\x20size;\x0auniform\x20float\x20scale;\x0a#include\x20<common>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0a#ifdef\x20USE_POINTS_UV\x0a\x09varying\x20vec2\x20vUv;\x0a\x09uniform\x20mat3\x20uvTransform;\x0a#endif\x0avoid\x20main()\x20{\x0a\x09#ifdef\x20USE_POINTS_UV\x0a\x09\x09vUv\x20=\x20(\x20uvTransform\x20*\x20vec3(\x20uv,\x201\x20)\x20).xy;\x0a\x09#endif\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09gl_PointSize\x20=\x20size;\x0a\x09#ifdef\x20USE_SIZEATTENUATION\x0a\x09\x09bool\x20isPerspective\x20=\x20isPerspectiveMatrix(\x20projectionMatrix\x20);\x0a\x09\x09if\x20(\x20isPerspective\x20)\x20gl_PointSize\x20*=\x20(\x20scale\x20/\x20-\x20mvPosition.z\x20);\x0a\x09#endif\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','points_frag':'uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<map_particle_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20vec3(\x200.0\x20);\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_particle_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09outgoingLight\x20=\x20diffuseColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a}','shadow_vert':'#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','shadow_frag':'uniform\x20vec3\x20color;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<shadowmask_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09gl_FragColor\x20=\x20vec4(\x20color,\x20opacity\x20*\x20(\x201.0\x20-\x20getShadowMask()\x20)\x20);\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a}','sprite_vert':'uniform\x20float\x20rotation;\x0auniform\x20vec2\x20center;\x0a#include\x20<common>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09vec4\x20mvPosition\x20=\x20modelViewMatrix[\x203\x20];\x0a\x09vec2\x20scale\x20=\x20vec2(\x20length(\x20modelMatrix[\x200\x20].xyz\x20),\x20length(\x20modelMatrix[\x201\x20].xyz\x20)\x20);\x0a\x09#ifndef\x20USE_SIZEATTENUATION\x0a\x09\x09bool\x20isPerspective\x20=\x20isPerspectiveMatrix(\x20projectionMatrix\x20);\x0a\x09\x09if\x20(\x20isPerspective\x20)\x20scale\x20*=\x20-\x20mvPosition.z;\x0a\x09#endif\x0a\x09vec2\x20alignedPosition\x20=\x20(\x20position.xy\x20-\x20(\x20center\x20-\x20vec2(\x200.5\x20)\x20)\x20)\x20*\x20scale;\x0a\x09vec2\x20rotatedPosition;\x0a\x09rotatedPosition.x\x20=\x20cos(\x20rotation\x20)\x20*\x20alignedPosition.x\x20-\x20sin(\x20rotation\x20)\x20*\x20alignedPosition.y;\x0a\x09rotatedPosition.y\x20=\x20sin(\x20rotation\x20)\x20*\x20alignedPosition.x\x20+\x20cos(\x20rotation\x20)\x20*\x20alignedPosition.y;\x0a\x09mvPosition.xy\x20+=\x20rotatedPosition;\x0a\x09gl_Position\x20=\x20projectionMatrix\x20*\x20mvPosition;\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','sprite_frag':'uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20vec3(\x200.0\x20);\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09outgoingLight\x20=\x20diffuseColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a}'},$={'common':{'diffuse':{'value':new Y(0xffffff)},'opacity':{'value':0x1},'map':{'value':null},'mapTransform':{'value':new G()},'alphaMap':{'value':null},'alphaMapTransform':{'value':new G()},'alphaTest':{'value':0x0}},'specularmap':{'specularMap':{'value':null},'specularMapTransform':{'value':new G()}},'envmap':{'envMap':{'value':null},'envMapRotation':{'value':new G()},'reflectivity':{'value':0x1},'ior':{'value':1.5},'refractionRatio':{'value':0.98},'dfgLUT':{'value':null}},'aomap':{'aoMap':{'value':null},'aoMapIntensity':{'value':0x1},'aoMapTransform':{'value':new G()}},'lightmap':{'lightMap':{'value':null},'lightMapIntensity':{'value':0x1},'lightMapTransform':{'value':new G()}},'bumpmap':{'bumpMap':{'value':null},'bumpMapTransform':{'value':new G()},'bumpScale':{'value':0x1}},'normalmap':{'normalMap':{'value':null},'normalMapTransform':{'value':new G()},'normalScale':{'value':new U(0x1,0x1)}},'displacementmap':{'displacementMap':{'value':null},'displacementMapTransform':{'value':new G()},'displacementScale':{'value':0x1},'displacementBias':{'value':0x0}},'emissivemap':{'emissiveMap':{'value':null},'emissiveMapTransform':{'value':new G()}},'metalnessmap':{'metalnessMap':{'value':null},'metalnessMapTransform':{'value':new G()}},'roughnessmap':{'roughnessMap':{'value':null},'roughnessMapTransform':{'value':new G()}},'gradientmap':{'gradientMap':{'value':null}},'fog':{'fogDensity':{'value':0.00025},'fogNear':{'value':0x1},'fogFar':{'value':0x7d0},'fogColor':{'value':new Y(0xffffff)}},'lights':{'ambientLightColor':{'value':[]},'lightProbe':{'value':[]},'directionalLights':{'value':[],'properties':{'direction':{},'color':{}}},'directionalLightShadows':{'value':[],'properties':{'shadowIntensity':0x1,'shadowBias':{},'shadowNormalBias':{},'shadowRadius':{},'shadowMapSize':{}}},'directionalShadowMatrix':{'value':[]},'spotLights':{'value':[],'properties':{'color':{},'position':{},'direction':{},'distance':{},'coneCos':{},'penumbraCos':{},'decay':{}}},'spotLightShadows':{'value':[],'properties':{'shadowIntensity':0x1,'shadowBias':{},'shadowNormalBias':{},'shadowRadius':{},'shadowMapSize':{}}},'spotLightMap':{'value':[]},'spotLightMatrix':{'value':[]},'pointLights':{'value':[],'properties':{'color':{},'position':{},'decay':{},'distance':{}}},'pointLightShadows':{'value':[],'properties':{'shadowIntensity':0x1,'shadowBias':{},'shadowNormalBias':{},'shadowRadius':{},'shadowMapSize':{},'shadowCameraNear':{},'shadowCameraFar':{}}},'pointShadowMatrix':{'value':[]},'hemisphereLights':{'value':[],'properties':{'direction':{},'skyColor':{},'groundColor':{}}},'rectAreaLights':{'value':[],'properties':{'color':{},'position':{},'width':{},'height':{}}},'ltc_1':{'value':null},'ltc_2':{'value':null},'probesSH':{'value':null},'probesMin':{'value':new W()},'probesMax':{'value':new W()},'probesResolution':{'value':new W()}},'points':{'diffuse':{'value':new Y(0xffffff)},'opacity':{'value':0x1},'size':{'value':0x1},'scale':{'value':0x1},'map':{'value':null},'alphaMap':{'value':null},'alphaMapTransform':{'value':new G()},'alphaTest':{'value':0x0},'uvTransform':{'value':new G()}},'sprite':{'diffuse':{'value':new Y(0xffffff)},'opacity':{'value':0x1},'center':{'value':new U(0.5,0.5)},'rotation':{'value':0x0},'map':{'value':null},'mapTransform':{'value':new G()},'alphaMap':{'value':null},'alphaMapTransform':{'value':new G()},'alphaTest':{'value':0x0}}},cc={'basic':{'uniforms':mo([$['common'],$['specularmap'],$['envmap'],$['aomap'],$['lightmap'],$['fog']]),'vertexShader':Q[d4(0x30b)],'fragmentShader':Q['meshbasic_frag']},'lambert':{'uniforms':mo([$[d4(0x3b2)],$[d4(0x597)],$['envmap'],$['aomap'],$['lightmap'],$['emissivemap'],$['bumpmap'],$['normalmap'],$['displacementmap'],$['fog'],$['lights'],{'emissive':{'value':new Y(0x0)},'envMapIntensity':{'value':0x1}}]),'vertexShader':Q['meshlambert_vert'],'fragmentShader':Q[d4(0x291)]},'phong':{'uniforms':mo([$['common'],$['specularmap'],$['envmap'],$[d4(0x352)],$['lightmap'],$['emissivemap'],$['bumpmap'],$['normalmap'],$['displacementmap'],$[d4(0x4e3)],$[d4(0x124)],{'emissive':{'value':new Y(0x0)},'specular':{'value':new Y(0x111111)},'shininess':{'value':0x1e},'envMapIntensity':{'value':0x1}}]),'vertexShader':Q['meshphong_vert'],'fragmentShader':Q['meshphong_frag']},'standard':{'uniforms':mo([$['common'],$['envmap'],$['aomap'],$[d4(0x133)],$[d4(0x4af)],$[d4(0x3f4)],$['normalmap'],$[d4(0x368)],$['roughnessmap'],$['metalnessmap'],$['fog'],$['lights'],{'emissive':{'value':new Y(0x0)},'roughness':{'value':0x1},'metalness':{'value':0x0},'envMapIntensity':{'value':0x1}}]),'vertexShader':Q['meshphysical_vert'],'fragmentShader':Q['meshphysical_frag']},'toon':{'uniforms':mo([$[d4(0x3b2)],$['aomap'],$['lightmap'],$['emissivemap'],$['bumpmap'],$['normalmap'],$['displacementmap'],$['gradientmap'],$['fog'],$['lights'],{'emissive':{'value':new Y(0x0)}}]),'vertexShader':Q['meshtoon_vert'],'fragmentShader':Q['meshtoon_frag']},'matcap':{'uniforms':mo([$['common'],$['bumpmap'],$['normalmap'],$['displacementmap'],$[d4(0x4e3)],{'matcap':{'value':null}}]),'vertexShader':Q['meshmatcap_vert'],'fragmentShader':Q['meshmatcap_frag']},'points':{'uniforms':mo([$['points'],$['fog']]),'vertexShader':Q[d4(0x502)],'fragmentShader':Q['points_frag']},'dashed':{'uniforms':mo([$['common'],$['fog'],{'scale':{'value':0x1},'dashSize':{'value':0x1},'totalSize':{'value':0x2}}]),'vertexShader':Q['linedashed_vert'],'fragmentShader':Q['linedashed_frag']},'depth':{'uniforms':mo([$['common'],$['displacementmap']]),'vertexShader':Q['depth_vert'],'fragmentShader':Q['depth_frag']},'normal':{'uniforms':mo([$['common'],$['bumpmap'],$['normalmap'],$['displacementmap'],{'opacity':{'value':0x1}}]),'vertexShader':Q['meshnormal_vert'],'fragmentShader':Q[d4(0x286)]},'sprite':{'uniforms':mo([$['sprite'],$['fog']]),'vertexShader':Q['sprite_vert'],'fragmentShader':Q[d4(0x50c)]},'background':{'uniforms':{'uvTransform':{'value':new G()},'t2D':{'value':null},'backgroundIntensity':{'value':0x1}},'vertexShader':Q['background_vert'],'fragmentShader':Q['background_frag']},'backgroundCube':{'uniforms':{'envMap':{'value':null},'backgroundBlurriness':{'value':0x0},'backgroundIntensity':{'value':0x1},'backgroundRotation':{'value':new G()}},'vertexShader':Q['backgroundCube_vert'],'fragmentShader':Q['backgroundCube_frag']},'cube':{'uniforms':{'tCube':{'value':null},'tFlip':{'value':-0x1},'opacity':{'value':0x1}},'vertexShader':Q['cube_vert'],'fragmentShader':Q['cube_frag']},'equirect':{'uniforms':{'tEquirect':{'value':null}},'vertexShader':Q['equirect_vert'],'fragmentShader':Q['equirect_frag']},'distance':{'uniforms':mo([$['common'],$['displacementmap'],{'referencePosition':{'value':new W()},'nearDistance':{'value':0x1},'farDistance':{'value':0x3e8}}]),'vertexShader':Q['distance_vert'],'fragmentShader':Q[d4(0x576)]},'shadow':{'uniforms':mo([$['lights'],$['fog'],{'color':{'value':new Y(0x0)},'opacity':{'value':0x1}}]),'vertexShader':Q['shadow_vert'],'fragmentShader':Q[d4(0x1a9)]}};cc['physical']={'uniforms':mo([cc['standard']['uniforms'],{'clearcoat':{'value':0x0},'clearcoatMap':{'value':null},'clearcoatMapTransform':{'value':new G()},'clearcoatNormalMap':{'value':null},'clearcoatNormalMapTransform':{'value':new G()},'clearcoatNormalScale':{'value':new U(0x1,0x1)},'clearcoatRoughness':{'value':0x0},'clearcoatRoughnessMap':{'value':null},'clearcoatRoughnessMapTransform':{'value':new G()},'dispersion':{'value':0x0},'iridescence':{'value':0x0},'iridescenceMap':{'value':null},'iridescenceMapTransform':{'value':new G()},'iridescenceIOR':{'value':1.3},'iridescenceThicknessMinimum':{'value':0x64},'iridescenceThicknessMaximum':{'value':0x190},'iridescenceThicknessMap':{'value':null},'iridescenceThicknessMapTransform':{'value':new G()},'sheen':{'value':0x0},'sheenColor':{'value':new Y(0x0)},'sheenColorMap':{'value':null},'sheenColorMapTransform':{'value':new G()},'sheenRoughness':{'value':0x1},'sheenRoughnessMap':{'value':null},'sheenRoughnessMapTransform':{'value':new G()},'transmission':{'value':0x0},'transmissionMap':{'value':null},'transmissionMapTransform':{'value':new G()},'transmissionSamplerSize':{'value':new U()},'transmissionSamplerMap':{'value':null},'thickness':{'value':0x0},'thicknessMap':{'value':null},'thicknessMapTransform':{'value':new G()},'attenuationDistance':{'value':0x0},'attenuationColor':{'value':new Y(0x0)},'specularColor':{'value':new Y(0x1,0x1,0x1)},'specularColorMap':{'value':null},'specularColorMapTransform':{'value':new G()},'specularIntensity':{'value':0x1},'specularIntensityMap':{'value':null},'specularIntensityMapTransform':{'value':new G()},'anisotropyVector':{'value':new U()},'anisotropyMap':{'value':null},'anisotropyMapTransform':{'value':new G()}}]),'vertexShader':Q[d4(0x104)],'fragmentShader':Q[d4(0x540)]};var lc={'r':0x0,'b':0x0,'g':0x0},uc=new J(),dc=new G();dc['set'](-0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1);function fc(a4,a5,a6,a7,a8,a9){let ab=new Y(0x0),af=a8===!0x0?0x0:0x1,ag,ah,aj=null,ak=0x0,am=null;function ap(ay){const qz=a1;let az=ay['isScene']===!0x0?ay['background']:null;if(az&&az[qz(0x449)]){let aA=ay['backgroundBlurriness']>0x0;az=a5[qz(0x2f1)](az,aA);}return az;}function aq(ay){const qA=a1;let az=!0x1,aA=ap(ay);aA===null?aw(ab,af):aA&&aA[qA(0x44e)]&&(aw(aA,0x1),az=!0x0);let aB=a4['xr']['getEnvironmentBlendMode']();aB==='additive'?a6['buffers']['color']['setClear'](0x0,0x0,0x0,0x1,a9):aB==='alpha-blend'&&a6['buffers']['color']['setClear'](0x0,0x0,0x0,0x0,a9),(a4[qA(0x3ed)]||az)&&(a6['buffers']['depth']['setTest'](!0x0),a6[qA(0x57e)][qA(0x11c)][qA(0x431)](!0x0),a6['buffers'][qA(0x379)]['setMask'](!0x0),a4['clear'](a4['autoClearColor'],a4[qA(0x383)],a4['autoClearStencil']));}function av(ay,az){const qB=a1;let aA=ap(az);aA&&(aA['isCubeTexture']||aA['mapping']===0x132)?(ah===void 0x0&&(ah=new gi(new Sa(0x1,0x1,0x1),new xo({'name':'BackgroundCubeMaterial','uniforms':po(cc['backgroundCube']['uniforms']),'vertexShader':cc['backgroundCube']['vertexShader'],'fragmentShader':cc['backgroundCube']['fragmentShader'],'side':0x1,'depthTest':!0x1,'depthWrite':!0x1,'fog':!0x1,'allowOverride':!0x1})),ah['geometry']['deleteAttribute']('normal'),ah['geometry']['deleteAttribute']('uv'),ah['onBeforeRender']=function(aB,aC,aD){this['matrixWorld']['copyPosition'](aD['matrixWorld']);},Object['defineProperty'](ah[qB(0xd7)],qB(0x492),{'get':function(){const qC=qB;return this['uniforms'][qC(0x492)]['value'];}}),a7['update'](ah)),ah['material'][qB(0x21c)]['envMap']['value']=aA,ah['material'][qB(0x21c)][qB(0x4eb)]['value']=az['backgroundBlurriness'],ah[qB(0xd7)]['uniforms']['backgroundIntensity'][qB(0x529)]=az['backgroundIntensity'],ah['material']['uniforms']['backgroundRotation']['value']['setFromMatrix4'](uc['makeRotationFromEuler'](az['backgroundRotation']))['transpose'](),aA[qB(0x476)]&&aA['isRenderTargetTexture']===!0x1&&ah['material']['uniforms'][qB(0x53d)]['value']['premultiply'](dc),ah[qB(0xd7)][qB(0x458)]=K[qB(0x486)](aA['colorSpace'])!==ot,(aj!==aA||ak!==aA['version']||am!==a4['toneMapping'])&&(ah[qB(0xd7)]['needsUpdate']=!0x0,aj=aA,ak=aA[qB(0x2d1)],am=a4['toneMapping']),ah['layers']['enableAll'](),ay['unshift'](ah,ah[qB(0x120)],ah['material'],0x0,0x0,null)):aA&&aA['isTexture']&&(ag===void 0x0&&(ag=new gi(new uo(0x2,0x2),new xo({'name':'BackgroundMaterial','uniforms':po(cc[qB(0x116)]['uniforms']),'vertexShader':cc['background'][qB(0x111)],'fragmentShader':cc[qB(0x116)]['fragmentShader'],'side':0x0,'depthTest':!0x1,'depthWrite':!0x1,'fog':!0x1,'allowOverride':!0x1})),ag[qB(0x120)]['deleteAttribute']('normal'),Object[qB(0x138)](ag[qB(0xd7)],'map',{'get':function(){return this['uniforms']['t2D']['value'];}}),a7['update'](ag)),ag['material']['uniforms'][qB(0x38a)]['value']=aA,ag['material']['uniforms']['backgroundIntensity'][qB(0x529)]=az['backgroundIntensity'],ag['material']['toneMapped']=K['getTransfer'](aA[qB(0x30e)])!==ot,aA[qB(0x4fc)]===!0x0&&aA['updateMatrix'](),ag['material']['uniforms']['uvTransform']['value']['copy'](aA['matrix']),(aj!==aA||ak!==aA['version']||am!==a4['toneMapping'])&&(ag['material']['needsUpdate']=!0x0,aj=aA,ak=aA['version'],am=a4[qB(0x21a)]),ag['layers']['enableAll'](),ay['unshift'](ag,ag['geometry'],ag['material'],0x0,0x0,null));}function aw(ay,az){ay['getRGB'](lc,_o(a4)),a6['buffers']['color']['setClear'](lc['r'],lc['g'],lc['b'],az,a9);}function ax(){const qD=a1;ah!==void 0x0&&(ah['geometry']['dispose'](),ah[qD(0xd7)]['dispose'](),ah=void 0x0),ag!==void 0x0&&(ag['geometry'][qD(0x365)](),ag['material']['dispose'](),ag=void 0x0);}return{'getClearColor':function(){return ab;},'setClearColor':function(ay,az=0x1){ab['set'](ay),af=az,aw(ab,af);},'getClearAlpha':function(){return af;},'setClearAlpha':function(ay){af=ay,aw(ab,af);},'render':aq,'addToRenderList':av,'dispose':ax};}function pc(a4,a5){const qE=d4;let a6=a4['getParameter'](a4[qE(0x16a)]),a7={},a8=am(null),a9=a8,ab=!0x1;function af(aH,aI,aJ,aK,aL){const qF=qE;let aM=!0x1,aN=ak(aH,aK,aJ,aI);a9!==aN&&(a9=aN,ah(a9[qF(0x54f)])),aM=ap(aH,aK,aJ,aL),aM&&aq(aH,aK,aJ,aL),aL!==null&&a5['update'](aL,a4['ELEMENT_ARRAY_BUFFER']),(aM||ab)&&(ab=!0x1,aA(aH,aI,aJ,aK),aL!==null&&a4['bindBuffer'](a4['ELEMENT_ARRAY_BUFFER'],a5['get'](aL)['buffer']));}function ag(){return a4['createVertexArray']();}function ah(aH){return a4['bindVertexArray'](aH);}function aj(aH){return a4['deleteVertexArray'](aH);}function ak(aH,aI,aJ,aK){let aL=aK['wireframe']===!0x0,aM=a7[aI['id']];aM===void 0x0&&(aM={},a7[aI['id']]=aM);let aN=aH['isInstancedMesh']===!0x0?aH['id']:0x0,aO=aM[aN];aO===void 0x0&&(aO={},aM[aN]=aO);let aP=aO[aJ['id']];aP===void 0x0&&(aP={},aO[aJ['id']]=aP);let aQ=aP[aL];return aQ===void 0x0&&(aQ=am(ag()),aP[aL]=aQ),aQ;}function am(aH){let aI=[],aJ=[],aK=[];for(let aL=0x0;aL<a6;aL++)aI[aL]=0x0,aJ[aL]=0x0,aK[aL]=0x0;return{'geometry':null,'program':null,'wireframe':!0x1,'newAttributes':aI,'enabledAttributes':aJ,'attributeDivisors':aK,'object':aH,'attributes':{},'index':null};}function ap(aH,aI,aJ,aK){const qG=qE;let aL=a9['attributes'],aM=aI['attributes'],aN=0x0,aO=aJ['getAttributes']();for(let aP in aO)if(aO[aP][qG(0x1fe)]>=0x0){let aQ=aL[aP],aR=aM[aP];if(aR===void 0x0&&(aP===qG(0x422)&&aH['instanceMatrix']&&(aR=aH['instanceMatrix']),aP==='instanceColor'&&aH['instanceColor']&&(aR=aH['instanceColor'])),aQ===void 0x0||aQ['attribute']!==aR||aR&&aQ['data']!==aR['data'])return!0x0;aN++;}return a9['attributesNum']!==aN||a9[qG(0x150)]!==aK;}function aq(aH,aI,aJ,aK){const qH=qE;let aL={},aM=aI['attributes'],aN=0x0,aO=aJ['getAttributes']();for(let aP in aO)if(aO[aP]['location']>=0x0){let aQ=aM[aP];aQ===void 0x0&&(aP==='instanceMatrix'&&aH['instanceMatrix']&&(aQ=aH['instanceMatrix']),aP==='instanceColor'&&aH['instanceColor']&&(aQ=aH['instanceColor']));let aR={};aR['attribute']=aQ,aQ&&aQ[qH(0x26c)]&&(aR['data']=aQ['data']),aL[aP]=aR,aN++;}a9['attributes']=aL,a9['attributesNum']=aN,a9['index']=aK;}function av(){const qI=qE;let aH=a9[qI(0x2e4)];for(let aI=0x0,aJ=aH['length'];aI<aJ;aI++)aH[aI]=0x0;}function aw(aH){ax(aH,0x0);}function ax(aH,aI){let aJ=a9['newAttributes'],aK=a9['enabledAttributes'],aL=a9['attributeDivisors'];aJ[aH]=0x1,aK[aH]===0x0&&(a4['enableVertexAttribArray'](aH),aK[aH]=0x1),aL[aH]!==aI&&(a4['vertexAttribDivisor'](aH,aI),aL[aH]=aI);}function ay(){const qJ=qE;let aH=a9[qJ(0x2e4)],aI=a9['enabledAttributes'];for(let aJ=0x0,aK=aI['length'];aJ<aK;aJ++)aI[aJ]!==aH[aJ]&&(a4['disableVertexAttribArray'](aJ),aI[aJ]=0x0);}function az(aH,aI,aJ,aK,aL,aM,aN){const qK=qE;aN===!0x0?a4['vertexAttribIPointer'](aH,aI,aJ,aL,aM):a4[qK(0x406)](aH,aI,aJ,aK,aL,aM);}function aA(aH,aI,aJ,aK){const qL=qE;av();let aL=aK['attributes'],aM=aJ['getAttributes'](),aN=aI['defaultAttributeValues'];for(let aO in aM){let aP=aM[aO];if(aP['location']>=0x0){let aQ=aL[aO];if(aQ===void 0x0&&(aO===qL(0x422)&&aH[qL(0x422)]&&(aQ=aH['instanceMatrix']),aO==='instanceColor'&&aH['instanceColor']&&(aQ=aH['instanceColor'])),aQ!==void 0x0){let aR=aQ['normalized'],aS=aQ['itemSize'],aT=a5['get'](aQ);if(aT===void 0x0)continue;let aU=aT[qL(0x154)],aV=aT['type'],aW=aT['bytesPerElement'],aX=aV===a4['INT']||aV===a4['UNSIGNED_INT']||aQ[qL(0x2aa)]===0x3f5;if(aQ[qL(0x363)]){let aY=aQ['data'],aZ=aY['stride'],b0=aQ['offset'];if(aY['isInstancedInterleavedBuffer']){for(let b1=0x0;b1<aP['locationSize'];b1++)ax(aP['location']+b1,aY['meshPerAttribute']);aH['isInstancedMesh']!==!0x0&&aK['_maxInstanceCount']===void 0x0&&(aK[qL(0x494)]=aY['meshPerAttribute']*aY['count']);}else{for(let b2=0x0;b2<aP['locationSize'];b2++)aw(aP['location']+b2);}a4['bindBuffer'](a4[qL(0x293)],aU);for(let b3=0x0;b3<aP['locationSize'];b3++)az(aP['location']+b3,aS/aP[qL(0x4e4)],aV,aR,aZ*aW,(b0+aS/aP['locationSize']*b3)*aW,aX);}else{if(aQ['isInstancedBufferAttribute']){for(let b4=0x0;b4<aP['locationSize'];b4++)ax(aP['location']+b4,aQ['meshPerAttribute']);aH['isInstancedMesh']!==!0x0&&aK[qL(0x494)]===void 0x0&&(aK['_maxInstanceCount']=aQ['meshPerAttribute']*aQ[qL(0x58d)]);}else{for(let b5=0x0;b5<aP['locationSize'];b5++)aw(aP['location']+b5);}a4[qL(0x3a5)](a4['ARRAY_BUFFER'],aU);for(let b6=0x0;b6<aP['locationSize'];b6++)az(aP['location']+b6,aS/aP[qL(0x4e4)],aV,aR,aS*aW,aS/aP['locationSize']*b6*aW,aX);}}else{if(aN!==void 0x0){let b7=aN[aO];if(b7!==void 0x0)switch(b7['length']){case 0x2:a4['vertexAttrib2fv'](aP['location'],b7);break;case 0x3:a4[qL(0xd5)](aP['location'],b7);break;case 0x4:a4['vertexAttrib4fv'](aP[qL(0x1fe)],b7);break;default:a4[qL(0x210)](aP['location'],b7);}}}}}ay();}function aB(){aF();for(let aH in a7){let aI=a7[aH];for(let aJ in aI){let aK=aI[aJ];for(let aL in aK){let aM=aK[aL];for(let aN in aM)aj(aM[aN]['object']),delete aM[aN];delete aK[aL];}}delete a7[aH];}}function aC(aH){if(a7[aH['id']]===void 0x0)return;let aI=a7[aH['id']];for(let aJ in aI){let aK=aI[aJ];for(let aL in aK){let aM=aK[aL];for(let aN in aM)aj(aM[aN]['object']),delete aM[aN];delete aK[aL];}}delete a7[aH['id']];}function aD(aH){for(let aI in a7){let aJ=a7[aI];for(let aK in aJ){let aL=aJ[aK];if(aL[aH['id']]===void 0x0)continue;let aM=aL[aH['id']];for(let aN in aM)aj(aM[aN]['object']),delete aM[aN];delete aL[aH['id']];}}}function aE(aH){for(let aI in a7){let aJ=a7[aI],aK=aH['isInstancedMesh']===!0x0?aH['id']:0x0,aL=aJ[aK];if(aL!==void 0x0){for(let aM in aL){let aN=aL[aM];for(let aO in aN)aj(aN[aO]['object']),delete aN[aO];delete aL[aM];}delete aJ[aK],Object['keys'](aJ)['length']===0x0&&delete a7[aI];}}}function aF(){aG(),ab=!0x0,a9!==a8&&(a9=a8,ah(a9['object']));}function aG(){const qM=qE;a8['geometry']=null,a8[qM(0x4c3)]=null,a8['wireframe']=!0x1;}return{'setup':af,'reset':aF,'resetDefaultState':aG,'dispose':aB,'releaseStatesOfGeometry':aC,'releaseStatesOfObject':aE,'releaseStatesOfProgram':aD,'initAttributes':av,'enableAttribute':aw,'disableUnusedAttributes':ay};}function mc(a4,a5,a6){const qO=d4;let a7;function a8(ag){a7=ag;}function a9(ag,ah){a4['drawArrays'](a7,ag,ah),a6['update'](ah,a7,0x1);}function ab(ag,ah,aj){aj!==0x0&&(a4['drawArraysInstanced'](a7,ag,ah,aj),a6['update'](ah,a7,aj));}function af(ag,ah,aj){const qN=a1;if(aj===0x0)return;a5[qN(0x2f1)]('WEBGL_multi_draw')['multiDrawArraysWEBGL'](a7,ag,0x0,ah,0x0,aj);let ak=0x0;for(let am=0x0;am<aj;am++)ak+=ah[am];a6['update'](ak,a7,0x1);}this['setMode']=a8,this[qO(0x37f)]=a9,this['renderInstances']=ab,this[qO(0x41e)]=af;}function hc(a4,a5,a6,a7){const qQ=d4;let a8;function a9(){if(a8!==void 0x0)return a8;if(a5['has']('EXT_texture_filter_anisotropic')===!0x0){let aD=a5['get']('EXT_texture_filter_anisotropic');a8=a4['getParameter'](aD['MAX_TEXTURE_MAX_ANISOTROPY_EXT']);}else a8=0x0;return a8;}function ab(aD){return!(aD!==0x3ff&&a7['convert'](aD)!==a4['getParameter'](a4['IMPLEMENTATION_COLOR_READ_FORMAT']));}function af(aD){let aE=aD===0x3f8&&(a5['has']('EXT_color_buffer_half_float')||a5['has']('EXT_color_buffer_float'));return!(aD!==0x3f1&&a7['convert'](aD)!==a4['getParameter'](a4['IMPLEMENTATION_COLOR_READ_TYPE'])&&aD!==0x3f7&&!aE);}function ag(aD){const qP=a1;if(aD==='highp'){if(a4['getShaderPrecisionFormat'](a4[qP(0x59e)],a4['HIGH_FLOAT'])[qP(0x3ef)]>0x0&&a4['getShaderPrecisionFormat'](a4['FRAGMENT_SHADER'],a4['HIGH_FLOAT'])[qP(0x3ef)]>0x0)return'highp';aD='mediump';}return aD===qP(0x37b)&&a4[qP(0x44c)](a4['VERTEX_SHADER'],a4['MEDIUM_FLOAT'])['precision']>0x0&&a4[qP(0x44c)](a4['FRAGMENT_SHADER'],a4['MEDIUM_FLOAT'])['precision']>0x0?'mediump':'lowp';}let ah=a6['precision']===void 0x0?'highp':a6[qQ(0x3ef)],aj=ag(ah);aj!==ah&&(z(qQ(0x570),ah,'not\x20supported,\x20using',aj,'instead.'),ah=aj);let ak=a6['logarithmicDepthBuffer']===!0x0,am=a6['reversedDepthBuffer']===!0x0&&a5[qQ(0x538)](qQ(0x453));a6['reversedDepthBuffer']===!0x0&&am===!0x1&&z('WebGLRenderer:\x20Unable\x20to\x20use\x20reversed\x20depth\x20buffer\x20due\x20to\x20missing\x20EXT_clip_control\x20extension.\x20Fallback\x20to\x20default\x20depth\x20buffer.');let ap=a4['getParameter'](a4[qQ(0x38d)]),aq=a4[qQ(0x2cf)](a4['MAX_VERTEX_TEXTURE_IMAGE_UNITS']),av=a4['getParameter'](a4[qQ(0x194)]),aw=a4['getParameter'](a4[qQ(0x395)]),ax=a4['getParameter'](a4['MAX_VERTEX_ATTRIBS']),ay=a4['getParameter'](a4['MAX_VERTEX_UNIFORM_VECTORS']),az=a4['getParameter'](a4[qQ(0x591)]),aA=a4['getParameter'](a4['MAX_FRAGMENT_UNIFORM_VECTORS']),aB=a4['getParameter'](a4['MAX_SAMPLES']),aC=a4['getParameter'](a4['SAMPLES']);return{'isWebGL2':!0x0,'getMaxAnisotropy':a9,'getMaxPrecision':ag,'textureFormatReadable':ab,'textureTypeReadable':af,'precision':ah,'logarithmicDepthBuffer':ak,'reversedDepthBuffer':am,'maxTextures':ap,'maxVertexTextures':aq,'maxTextureSize':av,'maxCubemapSize':aw,'maxAttributes':ax,'maxVertexUniforms':ay,'maxVaryings':az,'maxFragmentUniforms':aA,'maxSamples':aB,'samples':aC};}function gc(a4){const qR=d4;let a5=this,a6=null,a7=0x0,a8=!0x1,a9=!0x1,ab=new Ki(),af=new G(),ag={'value':null,'needsUpdate':!0x1};this['uniform']=ag,this['numPlanes']=0x0,this['numIntersection']=0x0,this[qR(0x2fd)]=function(ak,am){let ap=ak['length']!==0x0||am||a7!==0x0||a8;return a8=am,a7=ak['length'],ap;},this[qR(0x155)]=function(){a9=!0x0,aj(null);},this['endShadows']=function(){a9=!0x1;},this['setGlobalState']=function(ak,am){a6=aj(ak,am,0x0);},this['setState']=function(ak,am,ap){const qS=qR;let aq=ak[qS(0x22f)],av=ak['clipIntersection'],aw=ak['clipShadows'],ax=a4['get'](ak);if(!a8||aq===null||aq[qS(0x27a)]===0x0||a9&&!aw)a9?aj(null):ah();else{let ay=a9?0x0:a7,az=ay*0x4,aA=ax[qS(0x33c)]||null;ag['value']=aA,aA=aj(aq,am,az,ap);for(let aB=0x0;aB!==az;++aB)aA[aB]=a6[aB];ax['clippingState']=aA,this['numIntersection']=av?this[qS(0x181)]:0x0,this['numPlanes']+=ay;}};function ah(){ag['value']!==a6&&(ag['value']=a6,ag['needsUpdate']=a7>0x0),a5['numPlanes']=a7,a5['numIntersection']=0x0;}function aj(ak,am,ap,aq){const qT=qR;let av=ak===null?0x0:ak['length'],aw=null;if(av!==0x0){if(aw=ag['value'],aq!==!0x0||aw===null){let ax=ap+av*0x4,ay=am['matrixWorldInverse'];af['getNormalMatrix'](ay),(aw===null||aw[qT(0x27a)]<ax)&&(aw=new Float32Array(ax));for(let az=0x0,aA=ap;az!==av;++az,aA+=0x4)ab['copy'](ak[az])['applyMatrix4'](ay,af),ab['normal']['toArray'](aw,aA),aw[aA+0x3]=ab['constant'];}ag['value']=aw,ag['needsUpdate']=!0x0;}return a5['numPlanes']=av,a5['numIntersection']=0x0,aw;}}var _c=0x4,vc=[0.125,0.215,0.35,0.446,0.526,0.582],yc=0x14,bc=0x100,xc=new Ts(),Sc=new Y(),Cc=null,wc=0x0,Tc=0x0,Ec=!0x1,Dc=new W(),Oc=class{constructor(a4){const qU=d4;this['_renderer']=a4,this['_pingPongRenderTarget']=null,this['_lodMax']=0x0,this['_cubeSize']=0x0,this['_sizeLods']=[],this[qU(0x466)]=[],this['_lodMeshes']=[],this['_backgroundBox']=null,this[qU(0x533)]=null,this['_equirectMaterial']=null,this['_blurMaterial']=null,this['_ggxMaterial']=null;}[d4(0x2cc)](a4,a5=0x0,a6=0.1,a7=0x64,a8={}){const qV=d4;let {size:a9=0x100,position:ab=Dc}=a8;Cc=this['_renderer']['getRenderTarget'](),wc=this['_renderer']['getActiveCubeFace'](),Tc=this[qV(0x3f7)]['getActiveMipmapLevel'](),Ec=this['_renderer']['xr'][qV(0x4d6)],this['_renderer']['xr']['enabled']=!0x1,this['_setSize'](a9);let af=this['_allocateTargets']();return af['depthBuffer']=!0x0,this['_sceneToCubeUV'](a4,a6,a7,af,ab),a5>0x0&&this['_blur'](af,0x0,0x0,a5),this['_applyPMREM'](af),this['_cleanup'](af),af;}['fromEquirectangular'](a4,a5=null){return this['_fromTexture'](a4,a5);}['fromCubemap'](a4,a5=null){return this['_fromTexture'](a4,a5);}['compileCubemapShader'](){const qW=d4;this['_cubemapMaterial']===null&&(this['_cubemapMaterial']=Fc(),this['_compileMaterial'](this[qW(0x533)]));}['compileEquirectangularShader'](){this['_equirectMaterial']===null&&(this['_equirectMaterial']=Pc(),this['_compileMaterial'](this['_equirectMaterial']));}['dispose'](){const qX=d4;this['_dispose'](),this['_cubemapMaterial']!==null&&this['_cubemapMaterial'][qX(0x365)](),this['_equirectMaterial']!==null&&this['_equirectMaterial']['dispose'](),this[qX(0x303)]!==null&&(this['_backgroundBox']['geometry'][qX(0x365)](),this['_backgroundBox']['material']['dispose']());}['_setSize'](a4){this['_lodMax']=Math['floor'](Math['log2'](a4)),this['_cubeSize']=Math['pow'](0x2,this['_lodMax']);}['_dispose'](){const qY=d4;this['_blurMaterial']!==null&&this['_blurMaterial']['dispose'](),this[qY(0x323)]!==null&&this['_ggxMaterial']['dispose'](),this['_pingPongRenderTarget']!==null&&this['_pingPongRenderTarget'][qY(0x365)]();for(let a4=0x0;a4<this[qY(0x2ff)][qY(0x27a)];a4++)this['_lodMeshes'][a4]['geometry']['dispose']();}[d4(0x39c)](a4){const qZ=d4;this['_renderer']['setRenderTarget'](Cc,wc,Tc),this[qZ(0x3f7)]['xr']['enabled']=Ec,a4['scissorTest']=!0x1,jc(a4,0x0,0x0,a4['width'],a4['height']);}[d4(0xc5)](a4,a5){const r0=d4;a4[r0(0x23a)]===0x12d||a4[r0(0x23a)]===0x12e?this['_setSize'](a4['image']['length']===0x0?0x10:a4['image'][0x0][r0(0x426)]||a4['image'][0x0]['image'][r0(0x426)]):this[r0(0x437)](a4['image']['width']/0x4),Cc=this['_renderer']['getRenderTarget'](),wc=this['_renderer']['getActiveCubeFace'](),Tc=this['_renderer']['getActiveMipmapLevel'](),Ec=this['_renderer']['xr']['enabled'],this[r0(0x3f7)]['xr']['enabled']=!0x1;let a6=a5||this['_allocateTargets']();return this['_textureToCubeUV'](a4,a6),this['_applyPMREM'](a6),this['_cleanup'](a6),a6;}[d4(0x447)](){const r1=d4;let a4=0x3*Math['max'](this['_cubeSize'],0x70),a5=0x4*this[r1(0x14e)],a6={'magFilter':S,'minFilter':S,'generateMipmaps':!0x1,'type':te,'format':oe,'colorSpace':it,'depthBuffer':!0x1},a7=Ac(a4,a5,a6);if(this[r1(0x2cb)]===null||this['_pingPongRenderTarget']['width']!==a4||this['_pingPongRenderTarget']['height']!==a5){this['_pingPongRenderTarget']!==null&&this['_dispose'](),this['_pingPongRenderTarget']=Ac(a4,a5,a6);let {_lodMax:a8}=this;({lodMeshes:this['_lodMeshes'],sizeLods:this['_sizeLods'],sigmas:this[r1(0x466)]}=kc(a8),this[r1(0x3e7)]=Nc(a8,a4,a5),this[r1(0x323)]=Mc(a8,a4,a5));}return a7;}[d4(0x313)](a4){let a5=new gi(new Wr(),a4);this['_renderer']['compile'](a5,xc);}['_sceneToCubeUV'](a4,a5,a6,a7,a8){const r2=d4;let a9=new bs(0x5a,0x1,a5,a6),ab=[0x1,-0x1,0x1,0x1,0x1,0x1],af=[0x1,0x1,0x1,-0x1,-0x1,-0x1],ag=this[r2(0x3f7)],ah=ag['autoClear'],aj=ag[r2(0x21a)];ag[r2(0x2da)](Sc),ag[r2(0x21a)]=0x0,ag[r2(0x3ed)]=!0x1,ag['state']['buffers']['depth']['getReversed']()&&(ag[r2(0x112)](a7),ag['clearDepth'](),ag[r2(0x112)](null)),this['_backgroundBox']===null&&(this['_backgroundBox']=new gi(new Sa(),new ii({'name':'PMREM.Background','side':0x1,'depthWrite':!0x1,'depthTest':!0x1})));let ak=this[r2(0x303)],am=ak['material'],ap=!0x1,aq=a4['background'];aq?aq[r2(0x44e)]&&(am['color']['copy'](aq),a4[r2(0x116)]=null,ap=!0x0):(am['color']['copy'](Sc),ap=!0x0);for(let av=0x0;av<0x6;av++){let aw=av%0x3;aw===0x0?(a9['up'][r2(0x479)](0x0,ab[av],0x0),a9['position']['set'](a8['x'],a8['y'],a8['z']),a9['lookAt'](a8['x']+af[av],a8['y'],a8['z'])):aw===0x1?(a9['up']['set'](0x0,0x0,ab[av]),a9['position']['set'](a8['x'],a8['y'],a8['z']),a9['lookAt'](a8['x'],a8['y']+af[av],a8['z'])):(a9['up']['set'](0x0,ab[av],0x0),a9['position']['set'](a8['x'],a8['y'],a8['z']),a9['lookAt'](a8['x'],a8['y'],a8['z']+af[av]));let ax=this['_cubeSize'];jc(a7,aw*ax,av>0x2?ax:0x0,ax,ax),ag['setRenderTarget'](a7),ap&&ag['render'](ak,a9),ag['render'](a4,a9);}ag[r2(0x21a)]=aj,ag['autoClear']=ah,a4['background']=aq;}[d4(0x1de)](a4,a5){const r3=d4;let a6=this[r3(0x3f7)],a7=a4['mapping']===0x12d||a4['mapping']===0x12e;a7?(this[r3(0x533)]===null&&(this[r3(0x533)]=Fc()),this['_cubemapMaterial']['uniforms'][r3(0x242)][r3(0x529)]=a4['isRenderTargetTexture']===!0x1?-0x1:0x1):this['_equirectMaterial']===null&&(this['_equirectMaterial']=Pc());let a8=a7?this['_cubemapMaterial']:this[r3(0x4a3)],a9=this['_lodMeshes'][0x0];a9['material']=a8;let ab=a8['uniforms'];ab['envMap'][r3(0x529)]=a4;let af=this['_cubeSize'];jc(a5,0x0,0x0,0x3*af,0x2*af),a6['setRenderTarget'](a5),a6['render'](a9,xc);}['_applyPMREM'](a4){const r4=d4;let a5=this['_renderer'],a6=a5['autoClear'];a5['autoClear']=!0x1;let a7=this['_lodMeshes'][r4(0x27a)];for(let a8=0x1;a8<a7;a8++)this['_applyGGXFilter'](a4,a8-0x1,a8);a5['autoClear']=a6;}['_applyGGXFilter'](a4,a5,a6){const r5=d4;let a7=this['_renderer'],a8=this['_pingPongRenderTarget'],a9=this['_ggxMaterial'],ab=this['_lodMeshes'][a6];ab['material']=a9;let af=a9['uniforms'],ag=a6/(this[r5(0x2ff)]['length']-0x1),ah=a5/(this['_lodMeshes'][r5(0x27a)]-0x1),aj=Math['sqrt'](ag*ag-ah*ah)*(0x0+ag*1.25),{_lodMax:ak}=this,am=this['_sizeLods'][a6],ap=0x3*am*(a6>ak-_c?a6-ak+_c:0x0),aq=0x4*(this['_cubeSize']-am);af[r5(0x492)]['value']=a4['texture'],af[r5(0x250)]['value']=aj,af[r5(0x46f)]['value']=ak-a5,jc(a8,ap,aq,0x3*am,0x2*am),a7['setRenderTarget'](a8),a7['render'](ab,xc),af[r5(0x492)][r5(0x529)]=a8['texture'],af['roughness']['value']=0x0,af[r5(0x46f)]['value']=ak-a6,jc(a4,ap,aq,0x3*am,0x2*am),a7['setRenderTarget'](a4),a7['render'](ab,xc);}['_blur'](a4,a5,a6,a7,a8){const r6=d4;let a9=this['_pingPongRenderTarget'];this[r6(0x105)](a4,a9,a5,a6,a7,'latitudinal',a8),this['_halfBlur'](a9,a4,a6,a6,a7,'longitudinal',a8);}['_halfBlur'](a4,a5,a6,a7,a8,a9,ab){const r7=d4;let af=this['_renderer'],ag=this[r7(0x3e7)];a9!=='latitudinal'&&a9!=='longitudinal'&&B(r7(0x57b));let ah=this['_lodMeshes'][a7];ah['material']=ag;let aj=ag['uniforms'],ak=this['_sizeLods'][a6]-0x1,am=isFinite(a8)?Math['PI']/(0x2*ak):0x2*Math['PI']/(0x2*yc-0x1),ap=a8/am,aq=isFinite(a8)?0x1+Math['floor'](0x3*ap):yc;aq>yc&&z('sigmaRadians,\x20'+a8+',\x20is\x20too\x20large\x20and\x20will\x20clip,\x20as\x20it\x20requested\x20'+aq+'\x20samples\x20when\x20the\x20maximum\x20is\x20set\x20to\x20'+yc);let av=[],aw=0x0;for(let az=0x0;az<yc;++az){let aA=az/ap,aB=Math['exp'](-aA*aA/0x2);av['push'](aB),az===0x0?aw+=aB:az<aq&&(aw+=0x2*aB);}for(let aC=0x0;aC<av['length'];aC++)av[aC]=av[aC]/aw;aj['envMap']['value']=a4['texture'],aj['samples']['value']=aq,aj['weights'][r7(0x529)]=av,aj['latitudinal']['value']=a9==='latitudinal',ab&&(aj['poleAxis'][r7(0x529)]=ab);let {_lodMax:ax}=this;aj['dTheta']['value']=am,aj['mipInt']['value']=ax-a6;let ay=this['_sizeLods'][a7];jc(a5,0x3*ay*(a7>ax-_c?a7-ax+_c:0x0),0x4*(this['_cubeSize']-ay),0x3*ay,0x2*ay),af['setRenderTarget'](a5),af['render'](ah,xc);}};function kc(a4){const r8=d4;let a5=[],a6=[],a7=[],a8=a4,a9=a4-_c+0x1+vc['length'];for(let ab=0x0;ab<a9;ab++){let af=Math['pow'](0x2,a8);a5['push'](af);let ag=0x1/af;ab>a4-_c?ag=vc[ab-a4+_c-0x1]:ab===0x0&&(ag=0x0),a6['push'](ag);let ah=0x1/(af-0x2),aj=-ah,ak=0x1+ah,am=[aj,aj,ak,aj,ak,ak,aj,aj,ak,ak,aj,ak],ap=new Float32Array(0x6c),aq=new Float32Array(0x48),av=new Float32Array(0x24);for(let ax=0x0;ax<0x6;ax++){let ay=ax%0x3*0x2/0x3-0x1,az=ax>0x2?0x0:-0x1,aA=[ay,az,0x0,ay+0x2/0x3,az,0x0,ay+0x2/0x3,az+0x1,0x0,ay,az,0x0,ay+0x2/0x3,az+0x1,0x0,ay,az+0x1,0x0];ap[r8(0x479)](aA,0x12*ax),aq['set'](am,0xc*ax);let aB=[ax,ax,ax,ax,ax,ax];av[r8(0x479)](aB,0x6*ax);}let aw=new Wr();aw[r8(0x3a6)]('position',new kr(ap,0x3)),aw['setAttribute']('uv',new kr(aq,0x2)),aw['setAttribute']('faceIndex',new kr(av,0x1)),a7['push'](new gi(aw,null)),a8>_c&&a8--;}return{'lodMeshes':a7,'sizeLods':a5,'sigmas':a6};}function Ac(a4,a5,a6){const r9=d4;let a7=new fn(a4,a5,a6);return a7['texture']['mapping']=0x132,a7['texture'][r9(0x3a8)]='PMREM.cubeUv',a7['scissorTest']=!0x0,a7;}function jc(a4,a5,a6,a7,a8){a4['viewport']['set'](a5,a6,a7,a8),a4['scissor']['set'](a5,a6,a7,a8);}function Mc(a4,a5,a6){return new xo({'name':'PMREMGGXConvolution','defines':{'GGX_SAMPLES':bc,'CUBEUV_TEXEL_WIDTH':0x1/a5,'CUBEUV_TEXEL_HEIGHT':0x1/a6,'CUBEUV_MAX_MIP':a4+'.0'},'uniforms':{'envMap':{'value':null},'roughness':{'value':0x0},'mipInt':{'value':0x0}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20highp\x20float;\x0a\x09\x09\x09precision\x20highp\x20int;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x09\x09\x09uniform\x20float\x20roughness;\x0a\x09\x09\x09uniform\x20float\x20mipInt;\x0a\x0a\x09\x09\x09#define\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09#include\x20<cube_uv_reflection_fragment>\x0a\x0a\x09\x09\x09#define\x20PI\x203.14159265359\x0a\x0a\x09\x09\x09//\x20Van\x20der\x20Corput\x20radical\x20inverse\x0a\x09\x09\x09float\x20radicalInverse_VdC(uint\x20bits)\x20{\x0a\x09\x09\x09\x09bits\x20=\x20(bits\x20<<\x2016u)\x20|\x20(bits\x20>>\x2016u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x55555555u)\x20<<\x201u)\x20|\x20((bits\x20&\x200xAAAAAAAAu)\x20>>\x201u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x33333333u)\x20<<\x202u)\x20|\x20((bits\x20&\x200xCCCCCCCCu)\x20>>\x202u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x0F0F0F0Fu)\x20<<\x204u)\x20|\x20((bits\x20&\x200xF0F0F0F0u)\x20>>\x204u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x00FF00FFu)\x20<<\x208u)\x20|\x20((bits\x20&\x200xFF00FF00u)\x20>>\x208u);\x0a\x09\x09\x09\x09return\x20float(bits)\x20*\x202.3283064365386963e-10;\x20//\x20/\x200x100000000\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09//\x20Hammersley\x20sequence\x0a\x09\x09\x09vec2\x20hammersley(uint\x20i,\x20uint\x20N)\x20{\x0a\x09\x09\x09\x09return\x20vec2(float(i)\x20/\x20float(N),\x20radicalInverse_VdC(i));\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09//\x20GGX\x20VNDF\x20importance\x20sampling\x20(Eric\x20Heitz\x202018)\x0a\x09\x09\x09//\x20\x22Sampling\x20the\x20GGX\x20Distribution\x20of\x20Visible\x20Normals\x22\x0a\x09\x09\x09//\x20https://jcgt.org/published/0007/04/01/\x0a\x09\x09\x09vec3\x20importanceSampleGGX_VNDF(vec2\x20Xi,\x20vec3\x20V,\x20float\x20roughness)\x20{\x0a\x09\x09\x09\x09float\x20alpha\x20=\x20roughness\x20*\x20roughness;\x0a\x0a\x09\x09\x09\x09//\x20Section\x204.1:\x20Orthonormal\x20basis\x0a\x09\x09\x09\x09vec3\x20T1\x20=\x20vec3(1.0,\x200.0,\x200.0);\x0a\x09\x09\x09\x09vec3\x20T2\x20=\x20cross(V,\x20T1);\x0a\x0a\x09\x09\x09\x09//\x20Section\x204.2:\x20Parameterization\x20of\x20projected\x20area\x0a\x09\x09\x09\x09float\x20r\x20=\x20sqrt(Xi.x);\x0a\x09\x09\x09\x09float\x20phi\x20=\x202.0\x20*\x20PI\x20*\x20Xi.y;\x0a\x09\x09\x09\x09float\x20t1\x20=\x20r\x20*\x20cos(phi);\x0a\x09\x09\x09\x09float\x20t2\x20=\x20r\x20*\x20sin(phi);\x0a\x09\x09\x09\x09float\x20s\x20=\x200.5\x20*\x20(1.0\x20+\x20V.z);\x0a\x09\x09\x09\x09t2\x20=\x20(1.0\x20-\x20s)\x20*\x20sqrt(1.0\x20-\x20t1\x20*\x20t1)\x20+\x20s\x20*\x20t2;\x0a\x0a\x09\x09\x09\x09//\x20Section\x204.3:\x20Reprojection\x20onto\x20hemisphere\x0a\x09\x09\x09\x09vec3\x20Nh\x20=\x20t1\x20*\x20T1\x20+\x20t2\x20*\x20T2\x20+\x20sqrt(max(0.0,\x201.0\x20-\x20t1\x20*\x20t1\x20-\x20t2\x20*\x20t2))\x20*\x20V;\x0a\x0a\x09\x09\x09\x09//\x20Section\x203.4:\x20Transform\x20back\x20to\x20ellipsoid\x20configuration\x0a\x09\x09\x09\x09return\x20normalize(vec3(alpha\x20*\x20Nh.x,\x20alpha\x20*\x20Nh.y,\x20max(0.0,\x20Nh.z)));\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09vec3\x20N\x20=\x20normalize(vOutputDirection);\x0a\x09\x09\x09\x09vec3\x20V\x20=\x20N;\x20//\x20Assume\x20view\x20direction\x20equals\x20normal\x20for\x20pre-filtering\x0a\x0a\x09\x09\x09\x09vec3\x20prefilteredColor\x20=\x20vec3(0.0);\x0a\x09\x09\x09\x09float\x20totalWeight\x20=\x200.0;\x0a\x0a\x09\x09\x09\x09//\x20For\x20very\x20low\x20roughness,\x20just\x20sample\x20the\x20environment\x20directly\x0a\x09\x09\x09\x09if\x20(roughness\x20<\x200.001)\x20{\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(bilinearCubeUV(envMap,\x20N,\x20mipInt),\x201.0);\x0a\x09\x09\x09\x09\x09return;\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09//\x20Tangent\x20space\x20basis\x20for\x20VNDF\x20sampling\x0a\x09\x09\x09\x09vec3\x20up\x20=\x20abs(N.z)\x20<\x200.999\x20?\x20vec3(0.0,\x200.0,\x201.0)\x20:\x20vec3(1.0,\x200.0,\x200.0);\x0a\x09\x09\x09\x09vec3\x20tangent\x20=\x20normalize(cross(up,\x20N));\x0a\x09\x09\x09\x09vec3\x20bitangent\x20=\x20cross(N,\x20tangent);\x0a\x0a\x09\x09\x09\x09for(uint\x20i\x20=\x200u;\x20i\x20<\x20uint(GGX_SAMPLES);\x20i++)\x20{\x0a\x09\x09\x09\x09\x09vec2\x20Xi\x20=\x20hammersley(i,\x20uint(GGX_SAMPLES));\x0a\x0a\x09\x09\x09\x09\x09//\x20For\x20PMREM,\x20V\x20=\x20N,\x20so\x20in\x20tangent\x20space\x20V\x20is\x20always\x20(0,\x200,\x201)\x0a\x09\x09\x09\x09\x09vec3\x20H_tangent\x20=\x20importanceSampleGGX_VNDF(Xi,\x20vec3(0.0,\x200.0,\x201.0),\x20roughness);\x0a\x0a\x09\x09\x09\x09\x09//\x20Transform\x20H\x20back\x20to\x20world\x20space\x0a\x09\x09\x09\x09\x09vec3\x20H\x20=\x20normalize(tangent\x20*\x20H_tangent.x\x20+\x20bitangent\x20*\x20H_tangent.y\x20+\x20N\x20*\x20H_tangent.z);\x0a\x09\x09\x09\x09\x09vec3\x20L\x20=\x20normalize(2.0\x20*\x20dot(V,\x20H)\x20*\x20H\x20-\x20V);\x0a\x0a\x09\x09\x09\x09\x09float\x20NdotL\x20=\x20max(dot(N,\x20L),\x200.0);\x0a\x0a\x09\x09\x09\x09\x09if(NdotL\x20>\x200.0)\x20{\x0a\x09\x09\x09\x09\x09\x09//\x20Sample\x20environment\x20at\x20fixed\x20mip\x20level\x0a\x09\x09\x09\x09\x09\x09//\x20VNDF\x20importance\x20sampling\x20handles\x20the\x20distribution\x20filtering\x0a\x09\x09\x09\x09\x09\x09vec3\x20sampleColor\x20=\x20bilinearCubeUV(envMap,\x20L,\x20mipInt);\x0a\x0a\x09\x09\x09\x09\x09\x09//\x20Weight\x20by\x20NdotL\x20for\x20the\x20split-sum\x20approximation\x0a\x09\x09\x09\x09\x09\x09//\x20VNDF\x20PDF\x20naturally\x20accounts\x20for\x20the\x20visible\x20microfacet\x20distribution\x0a\x09\x09\x09\x09\x09\x09prefilteredColor\x20+=\x20sampleColor\x20*\x20NdotL;\x0a\x09\x09\x09\x09\x09\x09totalWeight\x20+=\x20NdotL;\x0a\x09\x09\x09\x09\x09}\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09if\x20(totalWeight\x20>\x200.0)\x20{\x0a\x09\x09\x09\x09\x09prefilteredColor\x20=\x20prefilteredColor\x20/\x20totalWeight;\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(prefilteredColor,\x201.0);\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Nc(a4,a5,a6){let a7=new Float32Array(yc),a8=new W(0x0,0x1,0x0);return new xo({'name':'SphericalGaussianBlur','defines':{'n':yc,'CUBEUV_TEXEL_WIDTH':0x1/a5,'CUBEUV_TEXEL_HEIGHT':0x1/a6,'CUBEUV_MAX_MIP':a4+'.0'},'uniforms':{'envMap':{'value':null},'samples':{'value':0x1},'weights':{'value':a7},'latitudinal':{'value':!0x1},'dTheta':{'value':0x0},'mipInt':{'value':0x0},'poleAxis':{'value':a8}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20mediump\x20float;\x0a\x09\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x09\x09\x09uniform\x20int\x20samples;\x0a\x09\x09\x09uniform\x20float\x20weights[\x20n\x20];\x0a\x09\x09\x09uniform\x20bool\x20latitudinal;\x0a\x09\x09\x09uniform\x20float\x20dTheta;\x0a\x09\x09\x09uniform\x20float\x20mipInt;\x0a\x09\x09\x09uniform\x20vec3\x20poleAxis;\x0a\x0a\x09\x09\x09#define\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09#include\x20<cube_uv_reflection_fragment>\x0a\x0a\x09\x09\x09vec3\x20getSample(\x20float\x20theta,\x20vec3\x20axis\x20)\x20{\x0a\x0a\x09\x09\x09\x09float\x20cosTheta\x20=\x20cos(\x20theta\x20);\x0a\x09\x09\x09\x09//\x20Rodrigues\x27\x20axis-angle\x20rotation\x0a\x09\x09\x09\x09vec3\x20sampleDirection\x20=\x20vOutputDirection\x20*\x20cosTheta\x0a\x09\x09\x09\x09\x09+\x20cross(\x20axis,\x20vOutputDirection\x20)\x20*\x20sin(\x20theta\x20)\x0a\x09\x09\x09\x09\x09+\x20axis\x20*\x20dot(\x20axis,\x20vOutputDirection\x20)\x20*\x20(\x201.0\x20-\x20cosTheta\x20);\x0a\x0a\x09\x09\x09\x09return\x20bilinearCubeUV(\x20envMap,\x20sampleDirection,\x20mipInt\x20);\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09vec3\x20axis\x20=\x20latitudinal\x20?\x20poleAxis\x20:\x20cross(\x20poleAxis,\x20vOutputDirection\x20);\x0a\x0a\x09\x09\x09\x09if\x20(\x20all(\x20equal(\x20axis,\x20vec3(\x200.0\x20)\x20)\x20)\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09axis\x20=\x20vec3(\x20vOutputDirection.z,\x200.0,\x20-\x20vOutputDirection.x\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09axis\x20=\x20normalize(\x20axis\x20);\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x200.0,\x200.0,\x200.0,\x201.0\x20);\x0a\x09\x09\x09\x09gl_FragColor.rgb\x20+=\x20weights[\x200\x20]\x20*\x20getSample(\x200.0,\x20axis\x20);\x0a\x0a\x09\x09\x09\x09for\x20(\x20int\x20i\x20=\x201;\x20i\x20<\x20n;\x20i++\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20i\x20>=\x20samples\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09break;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09\x09float\x20theta\x20=\x20dTheta\x20*\x20float(\x20i\x20);\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20+=\x20weights[\x20i\x20]\x20*\x20getSample(\x20-1.0\x20*\x20theta,\x20axis\x20);\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20+=\x20weights[\x20i\x20]\x20*\x20getSample(\x20theta,\x20axis\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Pc(){return new xo({'name':'EquirectangularToCubeUV','uniforms':{'envMap':{'value':null}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20mediump\x20float;\x0a\x09\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x0a\x09\x09\x09#include\x20<common>\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09vec3\x20outputDirection\x20=\x20normalize(\x20vOutputDirection\x20);\x0a\x09\x09\x09\x09vec2\x20uv\x20=\x20equirectUv(\x20outputDirection\x20);\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20texture2D\x20(\x20envMap,\x20uv\x20).rgb,\x201.0\x20);\x0a\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Fc(){return new xo({'name':'CubemapToCubeUV','uniforms':{'envMap':{'value':null},'flipEnvMap':{'value':-0x1}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20mediump\x20float;\x0a\x09\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09\x09uniform\x20float\x20flipEnvMap;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20samplerCube\x20envMap;\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20textureCube(\x20envMap,\x20vec3(\x20flipEnvMap\x20*\x20vOutputDirection.x,\x20vOutputDirection.yz\x20)\x20);\x0a\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Ic(){return'\x0a\x0a\x09\x09precision\x20mediump\x20float;\x0a\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09attribute\x20float\x20faceIndex;\x0a\x0a\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09//\x20RH\x20coordinate\x20system;\x20PMREM\x20face-indexing\x20convention\x0a\x09\x09vec3\x20getDirection(\x20vec2\x20uv,\x20float\x20face\x20)\x20{\x0a\x0a\x09\x09\x09uv\x20=\x202.0\x20*\x20uv\x20-\x201.0;\x0a\x0a\x09\x09\x09vec3\x20direction\x20=\x20vec3(\x20uv,\x201.0\x20);\x0a\x0a\x09\x09\x09if\x20(\x20face\x20==\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.zyx;\x20//\x20(\x201,\x20v,\x20u\x20)\x20pos\x20x\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.xzy;\x0a\x09\x09\x09\x09direction.xz\x20*=\x20-1.0;\x20//\x20(\x20-u,\x201,\x20-v\x20)\x20pos\x20y\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x202.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction.x\x20*=\x20-1.0;\x20//\x20(\x20-u,\x20v,\x201\x20)\x20pos\x20z\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x203.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.zyx;\x0a\x09\x09\x09\x09direction.xz\x20*=\x20-1.0;\x20//\x20(\x20-1,\x20v,\x20-u\x20)\x20neg\x20x\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x204.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.xzy;\x0a\x09\x09\x09\x09direction.xy\x20*=\x20-1.0;\x20//\x20(\x20-u,\x20-1,\x20v\x20)\x20neg\x20y\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x205.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction.z\x20*=\x20-1.0;\x20//\x20(\x20u,\x20v,\x20-1\x20)\x20neg\x20z\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09return\x20direction;\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vOutputDirection\x20=\x20getDirection(\x20uv,\x20faceIndex\x20);\x0a\x09\x09\x09gl_Position\x20=\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}\x0a\x09';}var Lc=class extends fn{constructor(a4=0x1,a5={}){super(a4,a4,a5),this['isWebGLCubeRenderTarget']=!0x0;let a6={'width':a4,'height':a4,'depth':0x1},a7=[a6,a6,a6,a6,a6,a6];this['texture']=new va(a7),this['_setTextureOptions'](a5),this['texture']['isRenderTargetTexture']=!0x0;}['fromEquirectangularTexture'](a4,a5){const rb=d4;this['texture']['type']=a5['type'],this['texture'][rb(0x30e)]=a5['colorSpace'],this[rb(0x2e9)]['generateMipmaps']=a5['generateMipmaps'],this['texture']['minFilter']=a5[rb(0x2f6)],this['texture']['magFilter']=a5['magFilter'];let a6={'uniforms':{'tEquirect':{'value':null}},'vertexShader':'\x0a\x0a\x09\x09\x09\x09varying\x20vec3\x20vWorldDirection;\x0a\x0a\x09\x09\x09\x09vec3\x20transformDirection(\x20in\x20vec3\x20dir,\x20in\x20mat4\x20matrix\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09return\x20normalize(\x20(\x20matrix\x20*\x20vec4(\x20dir,\x200.0\x20)\x20).xyz\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x0a\x09\x09\x09\x09\x09#include\x20<begin_vertex>\x0a\x09\x09\x09\x09\x09#include\x20<project_vertex>\x0a\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09','fragmentShader':'\x0a\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20tEquirect;\x0a\x0a\x09\x09\x09\x09varying\x20vec3\x20vWorldDirection;\x0a\x0a\x09\x09\x09\x09#include\x20<common>\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09\x09vec3\x20direction\x20=\x20normalize(\x20vWorldDirection\x20);\x0a\x0a\x09\x09\x09\x09\x09vec2\x20sampleUV\x20=\x20equirectUv(\x20direction\x20);\x0a\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20texture2D(\x20tEquirect,\x20sampleUV\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09'},a7=new Sa(0x5,0x5,0x5),a8=new xo({'name':'CubemapFromEquirect','uniforms':po(a6['uniforms']),'vertexShader':a6['vertexShader'],'fragmentShader':a6['fragmentShader'],'side':0x1,'blending':0x0});a8['uniforms'][rb(0x232)]['value']=a5;let a9=new gi(a7,a8),ab=a5['minFilter'];return a5['minFilter']===0x3f0&&(a5['minFilter']=S),new Fs(0x1,0xa,this)['update'](a4,a9),a5[rb(0x2f6)]=ab,a9[rb(0x120)][rb(0x365)](),a9['material']['dispose'](),this;}['clear'](a4,a5=!0x0,a6=!0x0,a7=!0x0){const rf=d4;let a8=a4['getRenderTarget']();for(let a9=0x0;a9<0x6;a9++)a4['setRenderTarget'](this,a9),a4[rf(0x330)](a5,a6,a7);a4['setRenderTarget'](a8);}};function Rc(a4){let a5=new WeakMap(),a6=new WeakMap(),a7=null;function a8(am,ap=!0x1){return am==null?null:ap?ab(am):a9(am);}function a9(am){const rg=a1;if(am&&am['isTexture']){let ap=am['mapping'];if(ap===0x12f||ap===0x130){if(a5['has'](am)){let aq=a5['get'](am)['texture'];return af(aq,am[rg(0x23a)]);}else{let av=am['image'];if(av&&av['height']>0x0){let aw=new Lc(av['height']);return aw['fromEquirectangularTexture'](a4,am),a5['set'](am,aw),am['addEventListener'](rg(0x365),ah),af(aw['texture'],am['mapping']);}else return null;}}}return am;}function ab(am){const rh=a1;if(am&&am['isTexture']){let ap=am[rh(0x23a)],aq=ap===0x12f||ap===0x130,av=ap===0x12d||ap===0x12e;if(aq||av){let aw=a6['get'](am),ax=aw===void 0x0?0x0:aw['texture']['pmremVersion'];if(am['isRenderTargetTexture']&&am['pmremVersion']!==ax)return a7===null&&(a7=new Oc(a4)),aw=aq?a7['fromEquirectangular'](am,aw):a7['fromCubemap'](am,aw),aw['texture']['pmremVersion']=am['pmremVersion'],a6['set'](am,aw),aw['texture'];if(aw!==void 0x0)return aw['texture'];{let ay=am['image'];return aq&&ay&&ay[rh(0x45f)]>0x0||av&&ay&&ag(ay)?(a7===null&&(a7=new Oc(a4)),aw=aq?a7['fromEquirectangular'](am):a7[rh(0x300)](am),aw['texture']['pmremVersion']=am['pmremVersion'],a6['set'](am,aw),am['addEventListener']('dispose',aj),aw['texture']):null;}}}return am;}function af(am,ap){return ap===0x12f?am['mapping']=0x12d:ap===0x130&&(am['mapping']=0x12e),am;}function ag(am){let ap=0x0;for(let aq=0x0;aq<0x6;aq++)am[aq]!==void 0x0&&ap++;return ap===0x6;}function ah(am){const rj=a1;let ap=am['target'];ap['removeEventListener']('dispose',ah);let aq=a5['get'](ap);aq!==void 0x0&&(a5[rj(0xa1)](ap),aq['dispose']());}function aj(am){const rk=a1;let ap=am['target'];ap['removeEventListener'](rk(0x365),aj);let aq=a6['get'](ap);aq!==void 0x0&&(a6['delete'](ap),aq['dispose']());}function ak(){a5=new WeakMap(),a6=new WeakMap(),a7!==null&&(a7['dispose'](),a7=null);}return{'get':a8,'dispose':ak};}function zc(a4){let a5={};function a6(a7){if(a5[a7]!==void 0x0)return a5[a7];let a8=a4['getExtension'](a7);return a5[a7]=a8,a8;}return{'has':function(a7){return a6(a7)!==null;},'init':function(){const rm=a1;a6('EXT_color_buffer_float'),a6('WEBGL_clip_cull_distance'),a6('OES_texture_float_linear'),a6('EXT_color_buffer_half_float'),a6(rm(0x595)),a6('WEBGL_render_shared_exponent');},'get':function(a7){let a8=a6(a7);return a8===null&&vt('WebGLRenderer:\x20'+a7+'\x20extension\x20not\x20supported.'),a8;}};}function Bc(a4,a5,a6,a7){let a8={},a9=new WeakMap();function ab(ak){const rp=a1;let am=ak['target'];am['index']!==null&&a5['remove'](am['index']);for(let aq in am[rp(0xab)])a5[rp(0x160)](am['attributes'][aq]);am['removeEventListener']('dispose',ab),delete a8[am['id']];let ap=a9['get'](am);ap&&(a5['remove'](ap),a9['delete'](am)),a7['releaseStatesOfGeometry'](am),am['isInstancedBufferGeometry']===!0x0&&delete am[rp(0x494)],a6['memory'][rp(0x47a)]--;}function af(ak,am){const rq=a1;return a8[am['id']]===!0x0?am:(am['addEventListener'](rq(0x365),ab),a8[am['id']]=!0x0,a6['memory']['geometries']++,am);}function ag(ak){const rv=a1;let am=ak[rv(0xab)];for(let ap in am)a5['update'](am[ap],a4['ARRAY_BUFFER']);}function ah(ak){let am=[],ap=ak['index'],aq=ak['attributes']['position'],av=0x0;if(aq===void 0x0)return;if(ap!==null){let ay=ap['array'];av=ap['version'];for(let az=0x0,aA=ay['length'];az<aA;az+=0x3){let aB=ay[az+0x0],aC=ay[az+0x1],aD=ay[az+0x2];am['push'](aB,aC,aC,aD,aD,aB);}}else{let aE=aq['array'];av=aq['version'];for(let aF=0x0,aG=aE['length']/0x3-0x1;aF<aG;aF+=0x3){let aH=aF+0x0,aI=aF+0x1,aJ=aF+0x2;am['push'](aH,aI,aI,aJ,aJ,aH);}}let aw=new(aq['count']>=0xffff?Mr:Ar)(am,0x1);aw['version']=av;let ax=a9['get'](ak);ax&&a5['remove'](ax),a9['set'](ak,aw);}function aj(ak){const rw=a1;let am=a9[rw(0x2f1)](ak);if(am){let ap=ak['index'];ap!==null&&am['version']<ap['version']&&ah(ak);}else ah(ak);return a9['get'](ak);}return{'get':af,'update':ag,'getWireframeAttribute':aj};}function Vc(a4,a5,a6){let a7;function a8(ak){a7=ak;}let a9,ab;function af(ak){a9=ak['type'],ab=ak['bytesPerElement'];}function ag(ak,am){const rx=a1;a4['drawElements'](a7,am,a9,ak*ab),a6[rx(0x246)](am,a7,0x1);}function ah(ak,am,ap){const ry=a1;ap!==0x0&&(a4['drawElementsInstanced'](a7,am,a9,ak*ab,ap),a6[ry(0x246)](am,a7,ap));}function aj(ak,am,ap){if(ap===0x0)return;a5['get']('WEBGL_multi_draw')['multiDrawElementsWEBGL'](a7,am,0x0,a9,ak,0x0,ap);let aq=0x0;for(let av=0x0;av<ap;av++)aq+=am[av];a6['update'](aq,a7,0x1);}this['setMode']=a8,this['setIndex']=af,this['render']=ag,this['renderInstances']=ah,this['renderMultiDraw']=aj;}function Hc(a4){let a5={'geometries':0x0,'textures':0x0},a6={'frame':0x0,'calls':0x0,'triangles':0x0,'points':0x0,'lines':0x0};function a7(a9,ab,af){const rz=a1;switch(a6[rz(0xd1)]++,ab){case a4['TRIANGLES']:a6['triangles']+=a9/0x3*af;break;case a4['LINES']:a6[rz(0x4e9)]+=a9/0x2*af;break;case a4['LINE_STRIP']:a6['lines']+=af*(a9-0x1);break;case a4['LINE_LOOP']:a6['lines']+=af*a9;break;case a4[rz(0x94)]:a6['points']+=af*a9;break;default:B('WebGLInfo:\x20Unknown\x20draw\x20mode:',ab);break;}}function a8(){const rA=a1;a6['calls']=0x0,a6[rA(0x343)]=0x0,a6['points']=0x0,a6['lines']=0x0;}return{'memory':a5,'render':a6,'programs':null,'autoReset':!0x0,'reset':a8,'update':a7};}function Uc(a4,a5,a6){let a7=new WeakMap(),a8=new q();function a9(ab,af,ag){const rB=a1;let ah=ab['morphTargetInfluences'],aj=af['morphAttributes']['position']||af[rB(0x1d7)]['normal']||af[rB(0x1d7)]['color'],ak=aj===void 0x0?0x0:aj['length'],am=a7[rB(0x2f1)](af);if(am===void 0x0||am['count']!==ak){am!==void 0x0&&am['texture']['dispose']();let ap=af['morphAttributes']['position']!==void 0x0,aq=af['morphAttributes']['normal']!==void 0x0,av=af['morphAttributes']['color']!==void 0x0,aw=af[rB(0x1d7)]['position']||[],ax=af['morphAttributes']['normal']||[],ay=af['morphAttributes']['color']||[],az=0x0;ap===!0x0&&(az=0x1),aq===!0x0&&(az=0x2),av===!0x0&&(az=0x3);let aA=af[rB(0xab)]['position']['count']*az,aB=0x1;aA>a5['maxTextureSize']&&(aB=Math[rB(0x456)](aA/a5['maxTextureSize']),aA=a5['maxTextureSize']);let aC=new Float32Array(aA*aB*0x4*ak),aD=new pn(aC,aA,aB,ak);aD['type']=A,aD['needsUpdate']=!0x0;let aE=az*0x4;for(let aG=0x0;aG<ak;aG++){let aH=aw[aG],aI=ax[aG],aJ=ay[aG],aK=aA*aB*0x4*aG;for(let aL=0x0;aL<aH['count'];aL++){let aM=aL*aE;ap===!0x0&&(a8['fromBufferAttribute'](aH,aL),aC[aK+aM+0x0]=a8['x'],aC[aK+aM+0x1]=a8['y'],aC[aK+aM+0x2]=a8['z'],aC[aK+aM+0x3]=0x0),aq===!0x0&&(a8['fromBufferAttribute'](aI,aL),aC[aK+aM+0x4]=a8['x'],aC[aK+aM+0x5]=a8['y'],aC[aK+aM+0x6]=a8['z'],aC[aK+aM+0x7]=0x0),av===!0x0&&(a8['fromBufferAttribute'](aJ,aL),aC[aK+aM+0x8]=a8['x'],aC[aK+aM+0x9]=a8['y'],aC[aK+aM+0xa]=a8['z'],aC[aK+aM+0xb]=aJ['itemSize']===0x4?a8['w']:0x1);}}am={'count':ak,'texture':aD,'size':new U(aA,aB)},a7['set'](af,am);function aF(){aD['dispose'](),a7['delete'](af),af['removeEventListener']('dispose',aF);}af[rB(0x151)]('dispose',aF);}if(ab['isInstancedMesh']===!0x0&&ab[rB(0x328)]!==null)ag['getUniforms']()['setValue'](a4,'morphTexture',ab['morphTexture'],a6);else{let aN=0x0;for(let aP=0x0;aP<ah['length'];aP++)aN+=ah[aP];let aO=af[rB(0x99)]?0x1:0x1-aN;ag[rB(0x524)]()['setValue'](a4,'morphTargetBaseInfluence',aO),ag['getUniforms']()[rB(0x397)](a4,'morphTargetInfluences',ah);}ag['getUniforms']()[rB(0x397)](a4,'morphTargetsTexture',am['texture'],a6),ag['getUniforms']()['setValue'](a4,'morphTargetsTextureSize',am['size']);}return{'update':a9};}function Wc(a4,a5,a6,a7,a8){let a9=new WeakMap();function ab(ah){const rC=a1;let aj=a8['render'][rC(0x1a4)],ak=ah['geometry'],am=a5['get'](ah,ak);if(a9[rC(0x2f1)](am)!==aj&&(a5['update'](am),a9['set'](am,aj)),ah['isInstancedMesh']&&(ah[rC(0x2af)]('dispose',ag)===!0x1&&ah[rC(0x151)]('dispose',ag),a9[rC(0x2f1)](ah)!==aj&&(a6['update'](ah['instanceMatrix'],a4['ARRAY_BUFFER']),ah[rC(0x384)]!==null&&a6['update'](ah['instanceColor'],a4['ARRAY_BUFFER']),a9['set'](ah,aj))),ah['isSkinnedMesh']){let ap=ah[rC(0xd6)];a9['get'](ap)!==aj&&(ap[rC(0x246)](),a9['set'](ap,aj));}return am;}function af(){a9=new WeakMap();}function ag(ah){const rD=a1;let aj=ah[rD(0x33b)];aj['removeEventListener']('dispose',ag),a7['releaseStatesOfObject'](aj),a6['remove'](aj['instanceMatrix']),aj[rD(0x384)]!==null&&a6['remove'](aj['instanceColor']);}return{'update':ab,'dispose':af};}var Gc={0x1:'LINEAR_TONE_MAPPING',0x2:'REINHARD_TONE_MAPPING',0x3:'CINEON_TONE_MAPPING',0x4:d4(0x349),0x6:'AGX_TONE_MAPPING',0x7:'NEUTRAL_TONE_MAPPING',0x5:d4(0x4f8)};function Kc(a4,a5,a6,a7,a8){const rE=d4;let a9=new fn(a5,a6,{'type':a4,'depthBuffer':a7,'stencilBuffer':a8,'depthTexture':a7?new ya(a5,a6):void 0x0}),ab=new fn(a5,a6,{'type':te,'depthBuffer':!0x1,'stencilBuffer':!0x1}),af=new Wr();af['setAttribute']('position',new X([-0x1,0x3,0x0,-0x1,-0x1,0x0,0x3,-0x1,0x0],0x3)),af[rE(0x3a6)]('uv',new X([0x0,0x2,0x0,0x0,0x2,0x0],0x2));let ag=new So({'uniforms':{'tDiffuse':{'value':null}},'vertexShader':'\x0a\x09\x09\x09precision\x20highp\x20float;\x0a\x0a\x09\x09\x09uniform\x20mat4\x20modelViewMatrix;\x0a\x09\x09\x09uniform\x20mat4\x20projectionMatrix;\x0a\x0a\x09\x09\x09attribute\x20vec3\x20position;\x0a\x09\x09\x09attribute\x20vec2\x20uv;\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x09\x09\x09}','fragmentShader':'\x0a\x09\x09\x09precision\x20highp\x20float;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20tDiffuse;\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09#include\x20<tonemapping_pars_fragment>\x0a\x09\x09\x09#include\x20<colorspace_pars_fragment>\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20texture2D(\x20tDiffuse,\x20vUv\x20);\x0a\x0a\x09\x09\x09\x09#ifdef\x20LINEAR_TONE_MAPPING\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20LinearToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20REINHARD_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20ReinhardToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20CINEON_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20CineonToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20ACES_FILMIC_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20ACESFilmicToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20AGX_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20AgXToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20NEUTRAL_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20NeutralToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20CUSTOM_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20CustomToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09\x09#ifdef\x20SRGB_TRANSFER\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20sRGBTransferOETF(\x20gl_FragColor\x20);\x0a\x09\x09\x09\x09#endif\x0a\x09\x09\x09}','depthTest':!0x1,'depthWrite':!0x1}),ah=new gi(af,ag),aj=new Ts(-0x1,0x1,0x1,-0x1,0x0,0x1),ak=null,am=null,ap=!0x1,aq,av=null,aw=[],ax=!0x1;this[rE(0x41b)]=function(ay,az){const rF=rE;a9[rF(0x41b)](ay,az),ab[rF(0x41b)](ay,az);for(let aA=0x0;aA<aw[rF(0x27a)];aA++){let aB=aw[aA];aB['setSize']&&aB['setSize'](ay,az);}},this['setEffects']=function(ay){const rG=rE;aw=ay,ax=aw['length']>0x0&&aw[0x0][rG(0x1b1)]===!0x0;let az=a9['width'],aA=a9['height'];for(let aB=0x0;aB<aw['length'];aB++){let aC=aw[aB];aC['setSize']&&aC[rG(0x41b)](az,aA);}},this['begin']=function(ay,az){if(ap||ay['toneMapping']===0x0&&aw['length']===0x0)return!0x1;if(av=az,az!==null){let aA=az['width'],aB=az['height'];(a9['width']!==aA||a9['height']!==aB)&&this['setSize'](aA,aB);}return ax===!0x1&&ay['setRenderTarget'](a9),aq=ay['toneMapping'],ay['toneMapping']=0x0,!0x0;},this['hasRenderPass']=function(){return ax;},this[rE(0x4d4)]=function(ay,az){const rH=rE;ay[rH(0x21a)]=aq,ap=!0x0;let aA=a9,aB=ab;for(let aC=0x0;aC<aw['length'];aC++){let aD=aw[aC];if(aD['enabled']!==!0x1&&(aD[rH(0x37f)](ay,aB,aA,az),aD['needsSwap']!==!0x1)){let aE=aA;aA=aB,aB=aE;}}if(ak!==ay['outputColorSpace']||am!==ay['toneMapping']){ak=ay['outputColorSpace'],am=ay['toneMapping'],ag['defines']={},K['getTransfer'](ak)===rH(0x472)&&(ag['defines']['SRGB_TRANSFER']='');let aF=Gc[am];aF&&(ag[rH(0x54b)][aF]=''),ag['needsUpdate']=!0x0;}ag['uniforms']['tDiffuse']['value']=aA['texture'],ay['setRenderTarget'](av),ay['render'](ah,aj),av=null,ap=!0x1;},this['isCompositing']=function(){return ap;},this['dispose']=function(){const rI=rE;a9['depthTexture']&&a9['depthTexture']['dispose'](),a9['dispose'](),ab[rI(0x365)](),af['dispose'](),ag[rI(0x365)]();};}var qc=new un(),Jc=new ya(0x1,0x1),Yc=new pn(),Xc=new mn(),Zc=new va(),Qc=[],$c=[],el=new Float32Array(0x10),tl=new Float32Array(0x9),nl=new Float32Array(0x4);function rl(a4,a5,a6){let a7=a4[0x0];if(a7<=0x0||a7>0x0)return a4;let a8=a5*a6,a9=Qc[a8];if(a9===void 0x0&&(a9=new Float32Array(a8),Qc[a8]=a9),a5!==0x0){a7['toArray'](a9,0x0);for(let ab=0x1,af=0x0;ab!==a5;++ab)af+=a6,a4[ab]['toArray'](a9,af);}return a9;}function il(a4,a5){if(a4['length']!==a5['length'])return!0x1;for(let a6=0x0,a7=a4['length'];a6<a7;a6++)if(a4[a6]!==a5[a6])return!0x1;return!0x0;}function al(a4,a5){for(let a6=0x0,a7=a5['length'];a6<a7;a6++)a4[a6]=a5[a6];}function ol(a4,a5){let a6=$c[a5];a6===void 0x0&&(a6=new Int32Array(a5),$c[a5]=a6);for(let a7=0x0;a7!==a5;++a7)a6[a7]=a4['allocateTextureUnit']();return a6;}function sl(a4,a5){let a6=this['cache'];a6[0x0]!==a5&&(a4['uniform1f'](this['addr'],a5),a6[0x0]=a5);}function cl(a4,a5){const rJ=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y'])&&(a4[rJ(0x334)](this['addr'],a5['x'],a5['y']),a6[0x0]=a5['x'],a6[0x1]=a5['y']);else{if(il(a6,a5))return;a4['uniform2fv'](this['addr'],a5),al(a6,a5);}}function ll(a4,a5){const rK=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z'])&&(a4['uniform3f'](this[rK(0x333)],a5['x'],a5['y'],a5['z']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z']);else{if(a5['r']!==void 0x0)(a6[0x0]!==a5['r']||a6[0x1]!==a5['g']||a6[0x2]!==a5['b'])&&(a4['uniform3f'](this[rK(0x333)],a5['r'],a5['g'],a5['b']),a6[0x0]=a5['r'],a6[0x1]=a5['g'],a6[0x2]=a5['b']);else{if(il(a6,a5))return;a4['uniform3fv'](this['addr'],a5),al(a6,a5);}}}function ul(a4,a5){const rL=d4;let a6=this[rL(0x2ce)];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z']||a6[0x3]!==a5['w'])&&(a4[rL(0x33a)](this['addr'],a5['x'],a5['y'],a5['z'],a5['w']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z'],a6[0x3]=a5['w']);else{if(il(a6,a5))return;a4[rL(0x90)](this['addr'],a5),al(a6,a5);}}function dl(a4,a5){const rM=d4;let a6=this['cache'],a7=a5['elements'];if(a7===void 0x0){if(il(a6,a5))return;a4['uniformMatrix2fv'](this[rM(0x333)],!0x1,a5),al(a6,a5);}else{if(il(a6,a7))return;nl['set'](a7),a4['uniformMatrix2fv'](this['addr'],!0x1,nl),al(a6,a7);}}function fl(a4,a5){const rN=d4;let a6=this[rN(0x2ce)],a7=a5[rN(0xdf)];if(a7===void 0x0){if(il(a6,a5))return;a4['uniformMatrix3fv'](this[rN(0x333)],!0x1,a5),al(a6,a5);}else{if(il(a6,a7))return;tl['set'](a7),a4['uniformMatrix3fv'](this['addr'],!0x1,tl),al(a6,a7);}}function pl(a4,a5){const rO=d4;let a6=this['cache'],a7=a5[rO(0xdf)];if(a7===void 0x0){if(il(a6,a5))return;a4['uniformMatrix4fv'](this['addr'],!0x1,a5),al(a6,a5);}else{if(il(a6,a7))return;el[rO(0x479)](a7),a4['uniformMatrix4fv'](this['addr'],!0x1,el),al(a6,a7);}}function a0(){const wh=['acos','ambientLightColor','then','uniform1fv','_pageVisibilityHandler','added','_offsetPrev','setHSL','rotateY','#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x0a\x09varying\x20vec4\x20vColor;\x0a#endif','SRGB8_ALPHA8','bumpMap','slerpFlat','uniformsNeedUpdate','addScaledVector','UNSIGNED_SHORT','_order','__renderTarget','ValueTypeName','ONE_MINUS_CONSTANT_COLOR','raycast','build','_blurMaterial','envMapMode','manager','wrapS','specularIntensityMap','distanceSqToPoint','autoClear','createInterpolant','precision','uniform\x20sampler2D\x20t2D;\x0auniform\x20float\x20backgroundIntensity;\x0avarying\x20vec2\x20vUv;\x0avoid\x20main()\x20{\x0a\x09vec4\x20texColor\x20=\x20texture2D(\x20t2D,\x20vUv\x20);\x0a\x09#ifdef\x20DECODE_VIDEO_TEXTURE\x0a\x09\x09texColor\x20=\x20vec4(\x20mix(\x20pow(\x20texColor.rgb\x20*\x200.9478672986\x20+\x20vec3(\x200.0521327014\x20),\x20vec3(\x202.4\x20)\x20),\x20texColor.rgb\x20*\x200.0773993808,\x20vec3(\x20lessThanEqual(\x20texColor.rgb,\x20vec3(\x200.04045\x20)\x20)\x20)\x20),\x20texColor.w\x20);\x0a\x09#endif\x0a\x09texColor.rgb\x20*=\x20backgroundIntensity;\x0a\x09gl_FragColor\x20=\x20texColor;\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','needsUpdate','origin','manhattanLength','bumpmap','addHandler','premultiplyAlpha','_renderer','byteLength','__version','blendDst','autoUpdate','shadowMapSize','quaternion','translateOnAxis','spotShadowMap','params','lightMap','uniform3ui','push','STENCIL_TEST','setMorphAt','vertexAttribPointer','isSpotLight','sqrt','R16F','refreshMaterialUniforms','type','onStart','clearDepth','removeEventListener','hasDepthSensing','__boundDepthTexture','READ_FRAMEBUFFER','warp','isExternalTexture','linearVelocity','materials','group','createFramebuffer','THREE.WebGLRenderer:\x20setEffects()\x20requires\x20outputBufferType\x20set\x20to\x20HalfFloatType\x20or\x20FloatType.','setX','#define\x20SHADER_TYPE\x20','setSize','BufferGeometry.computeBoundingBox():\x20Computed\x20min/max\x20have\x20NaN\x20values.\x20The\x20\x22position\x22\x20attribute\x20is\x20likely\x20to\x20have\x20NaN\x20values.','refractionRatio','renderMultiDraw','texImage3D','any','lastIndexOf','instanceMatrix','trim','boneMatrices','updateCamera','width','resolution','_targetRay','normalMapUv','initRenderTarget','log2','2839520zaZDey','radius','isDepthTexture','translate','depthTest','setMask','unbind','RG8I','setFromMatrixPosition','getUtoTmapping','\x0a\x0aMaterial\x20Name:\x20','_setSize','setComponent','ENVMAP_TYPE_CUBE','shadow','round','normalMapType','#define\x20MORPHTARGETS_TEXTURE_STRIDE\x20','#ifdef\x20USE_LOGARITHMIC_DEPTH_BUFFER\x0a\x09vFragDepth\x20=\x201.0\x20+\x20gl_Position.w;\x0a\x09vIsPerspective\x20=\x20float(\x20isPerspectiveMatrix(\x20projectionMatrix\x20)\x20);\x0a#endif','disableAll','replace','bind','toArray','Bone','optimize','_slerp','getMatrixAt','_allocateTargets','camera','isTexture','nCachedObjects_','isShaderMaterial','getShaderPrecisionFormat','\x20keyframe\x20track\x20named\x20','isColor','unshift','_outputColorSpace','#endif','deleteBuffer','EXT_clip_control','\x09attribute\x20vec2\x20uv1;','extensions','ceil','onBeforeRender','toneMapped','outputColorSpace','RGBA8I','gapSize','prev','updateMorphTargets','setLoop','height','instancingMorph','repeat','numClipIntersection','thicknessMapUv','directional','dot','_sigmas','clearcoatNormalMap','hemi','Texture.setValues():\x20parameter\x20\x27','specular','setFromAxisAngle','shadowMapEnabled','environmentBlendMode','dispersion','mipInt','clampScalar','not\x20supported,\x20using','srgb','lightProbeGrid','blendColor','getBarycoord','isCubeTexture','texStorage3D','position','set','geometries','depthSegments','matrixWorldNeedsUpdate','ltc_1','disable','planes','setupRenderTarget','binding','findNode','decode','blendAlpha','resetDefaultState','getTransfer','bumpScale','boneInverses','THREE.KeyframeTrack:\x20no\x20keyframes\x20in\x20track\x20named\x20','XZX','getX','materialIndex','charAt','deleteFramebuffer','transmissionSamplerSize','#define\x20USE_IRIDESCENCE_THICKNESSMAP','isPresenting','envMap','getAttribLocation','_maxInstanceCount','isLight','indexOf','inputsourceschange','ONE_MINUS_SRC_ALPHA','polygonOffsetFactor','#define\x20TONE_MAPPING','setPixelRatio','multiplyMatrices','#define\x20DOUBLE_SIDED','depthTexture','makePerspective','resultBuffer','isMeshPhysicalMaterial','order','_equirectMaterial','repetitions','setViewport','DEPTH24_STENCIL8','biasNode','setTexture3D','numIntersection','generateMipmaps','DepthTexture:\x2016\x20bit\x20depth\x20attachment\x20is\x20not\x20supported\x20with\x20stencil.\x20Using\x2024-bit\x20attachment.','copySampleValue_','ONE','Composite','emissivemap','COLOR_ATTACHMENT0','RGBA16F','makeRotationAxis','Light','view','sheenRoughnessMapTransform','LINE_LOOP','HORIZONTAL_PASS','modelViewMatrix','ZERO','shapes','focus','outputColorSpaceConfig','trunc','InterpolantFactoryMethodBezier','attenuationColor','fov','envMapRotation','endingEnd','program','_cachedIndex','environment','needsLights','angularVelocity','WebGLRenderer:\x20Shader\x20chunk\x20\x22%s\x22\x20has\x20been\x20deprecated.\x20Use\x20\x22%s\x22\x20instead.','bias','specularColorMapTransform','forceSinglePass','\x20texture\x20units\x20while\x20this\x20GPU\x20supports\x20only\x20','toLowerCase','computeVertexNormals','blendFunc','pos','TEXTURE0','setOptional','fromJSON','end','propertyIndex','enabled','bindMatrix','lookAt','uniformsList','compressedTexImage2D','scissor','union','clipControlEXT','COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT','iridescenceMap','_startTime','isLightProbe','top','fog','locationSize','linejoin','resolvedProperty','Invalid\x20component\x20type.','#ifdef\x20USE_TRANSMISSION\x0a\x09material.transmission\x20=\x20transmission;\x0a\x09material.transmissionAlpha\x20=\x201.0;\x0a\x09material.thickness\x20=\x20thickness;\x0a\x09material.attenuationDistance\x20=\x20attenuationDistance;\x0a\x09material.attenuationColor\x20=\x20attenuationColor;\x0a\x09#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09\x09material.transmission\x20*=\x20texture2D(\x20transmissionMap,\x20vTransmissionMapUv\x20).r;\x0a\x09#endif\x0a\x09#ifdef\x20USE_THICKNESSMAP\x0a\x09\x09material.thickness\x20*=\x20texture2D(\x20thicknessMap,\x20vThicknessMapUv\x20).g;\x0a\x09#endif\x0a\x09vec3\x20pos\x20=\x20vWorldPosition;\x0a\x09vec3\x20v\x20=\x20normalize(\x20cameraPosition\x20-\x20pos\x20);\x0a\x09vec3\x20n\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09vec4\x20transmitted\x20=\x20getIBLVolumeRefraction(\x0a\x09\x09n,\x20v,\x20material.roughness,\x20material.diffuseContribution,\x20material.specularColorBlended,\x20material.specularF90,\x0a\x09\x09pos,\x20modelMatrix,\x20viewMatrix,\x20projectionMatrix,\x20material.dispersion,\x20material.ior,\x20material.thickness,\x0a\x09\x09material.attenuationColor,\x20material.attenuationDistance\x20);\x0a\x09material.transmissionAlpha\x20=\x20mix(\x20material.transmissionAlpha,\x20transmitted.a,\x20material.transmission\x20);\x0a\x09totalDiffuse\x20=\x20mix(\x20totalDiffuse,\x20transmitted.rgb,\x20material.transmission\x20);\x0a#endif','lines','cos','backgroundBlurriness','floor','_getShaderStage','getHex','mapPass','_actions',',\x20value.a\x20)\x20);','setIndex','imul','pointShadowMap','DefaultInterpolation','displacementScale','hemiLength','CUSTOM_TONE_MAPPING','image-bitmap:','iridescenceIOR','setFromCartesianCoords','matrixAutoUpdate','isPoints','#define\x20USE_NORMALMAP_OBJECTSPACE','.morphTargetInfluence[','_lerp','pop','points_vert','sessionend','_takeBackBinding','setEffectiveWeight','getTextureUnits','boneTexture','img','getTangentAt','_setValue_unbound','#define\x20NORMALMAP_UV\x20','sprite_frag','maxMip','visibilityState','_currentTime','applyMatrix4','userData','far','Reinhard','Curve:\x20.getPoint()\x20not\x20implemented.','shadowMapType','#ifdef\x20USE_AOMAP\x0a\x09float\x20ambientOcclusion\x20=\x20(\x20texture2D(\x20aoMap,\x20vAoMapUv\x20).r\x20-\x201.0\x20)\x20*\x20aoMapIntensity\x20+\x201.0;\x0a\x09reflectedLight.indirectDiffuse\x20*=\x20ambientOcclusion;\x0a\x09#if\x20defined(\x20USE_CLEARCOAT\x20)\x20\x0a\x09\x09clearcoatSpecularIndirect\x20*=\x20ambientOcclusion;\x0a\x09#endif\x0a\x09#if\x20defined(\x20USE_SHEEN\x20)\x20\x0a\x09\x09sheenSpecularIndirect\x20*=\x20ambientOcclusion;\x0a\x09#endif\x0a\x09#if\x20defined(\x20USE_ENVMAP\x20)\x20&&\x20defined(\x20STANDARD\x20)\x0a\x09\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20geometryViewDir\x20)\x20);\x0a\x09\x09reflectedLight.indirectSpecular\x20*=\x20computeSpecularOcclusion(\x20dotNV,\x20ambientOcclusion,\x20material.roughness\x20);\x0a\x09#endif\x0a#endif','blendEquationAlpha','#define\x20texture2DProj\x20textureProj','attribute\x20vec3\x20position;','onUpdateProgram','setFromCoplanarPoints','ONE_MINUS_SRC_COLOR','clearStencil','resolveStencilBuffer','_frustum','uncacheAction','STREAM_READ','stopAllAction','cameraAutoUpdate','getUniforms','applyQuaternion','transformDirection','blendEquation','expandByObject','value','DRAW_FRAMEBUFFER','texParameteri','#define\x20USE_BATCHING','sheenRoughness','batching','subVectors','__data','hand','lineDistance','_cubemapMaterial','lightProbeGridArray','UNPACK_ROW_LENGTH','#define\x20attribute\x20in','viewMatrix','has','iridescence','makeOrthographic','removed','images','backgroundRotation','TEXTURE_CUBE_MAP_POSITIVE_X','modelMatrix','meshphysical_frag','setXYZW','premultipliedAlpha','sort','unbindTexture','morphTargetDictionary','_isActiveAction','_setValue_arrayElement_setNeedsUpdate','stopWarping','PlaneGeometry','useFog','defines','copyTexSubImage3D','times','reset','object','gradientMap','RGB16_EXT','groups','abs','THREE.Frustum.setFromProjectionMatrix():\x20Invalid\x20coordinate\x20system:\x20','internalFormat','#ifdef\x20USE_ALPHAMAP\x0a\x09diffuseColor.a\x20*=\x20texture2D(\x20alphaMap,\x20vAlphaMapUv\x20).g;\x0a#endif','clearcoatMap','join','previousInstanceMatrix','_hand','#define\x20FLAT_SHADED','(\x20vec3\x20color\x20)\x20{\x20return\x20','_mixBufferRegion','iridescenceThicknessMap','BufferGeometry','isInstancedMesh','NEGATIVE_ONE_TO_ONE_EXT','#define\x20TOON\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<gradientmap_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_toon_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_toon_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse\x20+\x20totalEmissiveRadiance;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','targetRaySpace','crossFadeFrom','#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09vec4\x20plane;\x0a\x09#ifdef\x20ALPHA_TO_COVERAGE\x0a\x09\x09float\x20distanceToPlane,\x20distanceGradient;\x0a\x09\x09float\x20clipOpacity\x20=\x201.0;\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20UNION_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09distanceToPlane\x20=\x20-\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20+\x20plane.w;\x0a\x09\x09\x09distanceGradient\x20=\x20fwidth(\x20distanceToPlane\x20)\x20/\x202.0;\x0a\x09\x09\x09clipOpacity\x20*=\x20smoothstep(\x20-\x20distanceGradient,\x20distanceGradient,\x20distanceToPlane\x20);\x0a\x09\x09\x09if\x20(\x20clipOpacity\x20==\x200.0\x20)\x20discard;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09#if\x20UNION_CLIPPING_PLANES\x20<\x20NUM_CLIPPING_PLANES\x0a\x09\x09\x09float\x20unionClipOpacity\x20=\x201.0;\x0a\x09\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x20UNION_CLIPPING_PLANES;\x20i\x20<\x20NUM_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09\x09distanceToPlane\x20=\x20-\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20+\x20plane.w;\x0a\x09\x09\x09\x09distanceGradient\x20=\x20fwidth(\x20distanceToPlane\x20)\x20/\x202.0;\x0a\x09\x09\x09\x09unionClipOpacity\x20*=\x201.0\x20-\x20smoothstep(\x20-\x20distanceGradient,\x20distanceGradient,\x20distanceToPlane\x20);\x0a\x09\x09\x09}\x0a\x09\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09\x09clipOpacity\x20*=\x201.0\x20-\x20unionClipOpacity;\x0a\x09\x09#endif\x0a\x09\x09diffuseColor.a\x20*=\x20clipOpacity;\x0a\x09\x09if\x20(\x20diffuseColor.a\x20==\x200.0\x20)\x20discard;\x0a\x09#else\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20UNION_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09if\x20(\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20>\x20plane.w\x20)\x20discard;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09#if\x20UNION_CLIPPING_PLANES\x20<\x20NUM_CLIPPING_PLANES\x0a\x09\x09\x09bool\x20clipped\x20=\x20true;\x0a\x09\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x20UNION_CLIPPING_PLANES;\x20i\x20<\x20NUM_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09\x09clipped\x20=\x20(\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20>\x20plane.w\x20)\x20&&\x20clipped;\x0a\x09\x09\x09}\x0a\x09\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09\x09if\x20(\x20clipped\x20)\x20discard;\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif','_interpolants','SetterByBindingTypeAndVersioning','blendSrcAlpha','lerpVectors','bones','near','YXY','setComponents','subScalar','isDataArrayTexture','WebGLRenderer:','(WCOD+)?','fixedFoveation','applyNormalMatrix','COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR','enable','distance_frag','displacementBias','onUploadCallback','computeBoundingBox','matrix','blur\x20direction\x20must\x20be\x20either\x20latitudinal\x20or\x20longitudinal!','customDistanceMaterial','lengthSq','buffers','blurSamples','morphTargets','identity','srgb-linear','setY','directionalLength','getContextAttributes','clipShadows','InterpolantFactoryMethodLinear','isRenderTargetTexture','#define\x20USE_NORMALMAP','shift','removeFromParent','getFilmWidth','count','fragment','__webglTexture','workingColorSpace','MAX_VARYING_VECTORS','generateMipmap','isOutputPass','ONE_MINUS_DST_COLOR','WEBGL_multisampled_render_to_texture','#define\x20USE_EMISSIVEMAP','specularmap','R16I','toJSON','getReversed','anisotropyRotation','path','filmGauge','VERTEX_SHADER','select','shadowsArray','shaderCache','isHTMLTexture','#define\x20LIGHTMAP_UV\x20','setPath','#ifdef\x20USE_BATCHING\x0a\x09mat4\x20batchingMatrix\x20=\x20getBatchingMatrix(\x20getIndirectIndex(\x20gl_DrawID\x20)\x20);\x0a#endif','texImage2D','aspect','ray','ZXY','THREE.','coordinateSystem','RG16I','NEAREST','displacementMapUv','clipIntersection','seq','_grip','#define\x20USE_SHADOWMAP','uniformsGroups','transmissionMap','child','wrapR','environmentRotation','sin','WebGLState:','dispatchEvent','DEPTH_TEST','index\x20is\x20out\x20of\x20range:\x20','blitFramebuffer','uniform4fv','Curve.toJSON','headers','isArray','POINTS','penumbra','isView','setMode','mapSize','morphTargetsRelative','move','unpackAlignment','normalScale','layers','displacementMap','spot','UNIFORM_BUFFER','delete','COMPRESSED_SRGB_S3TC_DXT1_EXT','arrayBuffer','requestHeader','127080bocQwP','RED','logarithmicDepthBuffer','pose','visible','blendMode','attributes','transparent','activeTexture','transpose','fragmentShader','rootNode','renderStart','stencilZPass','updateMatrixWorld','boundingBox','updateProjectionMatrix','COLOR_BUFFER_BIT','UNPACK_SKIP_ROWS','source','LINES','#define\x20USE_MORPHCOLORS','min','reflectivity','FUNC_ADD','uniform2i','Material:\x20\x27','isPerspectiveCamera','1190513KWuVYB','itemSize','transmission','isVector2','_fromTexture','intersectsSphere','nextIndexStart','numSpotLightMaps','framebufferTexture2D','getInterpolatedAttribute','prototype','THREE.CubeCamera.updateCoordinateSystem():\x20Invalid\x20coordinate\x20system:\x20','observe','file:','scale','mesh','calls','shadowRadius','BYTES_PER_ELEMENT','sessionstart','vertexAttrib3fv','skeleton','material','getVertexPosition','#ifdef\x20USE_ALPHAHASH\x0a\x09const\x20float\x20ALPHA_HASH_SCALE\x20=\x200.05;\x0a\x09float\x20hash2D(\x20vec2\x20value\x20)\x20{\x0a\x09\x09return\x20fract(\x201.0e4\x20*\x20sin(\x2017.0\x20*\x20value.x\x20+\x200.1\x20*\x20value.y\x20)\x20*\x20(\x200.1\x20+\x20abs(\x20sin(\x2013.0\x20*\x20value.y\x20+\x20value.x\x20)\x20)\x20)\x20);\x0a\x09}\x0a\x09float\x20hash3D(\x20vec3\x20value\x20)\x20{\x0a\x09\x09return\x20hash2D(\x20vec2(\x20hash2D(\x20value.xy\x20),\x20value.z\x20)\x20);\x0a\x09}\x0a\x09float\x20getAlphaHashThreshold(\x20vec3\x20position\x20)\x20{\x0a\x09\x09float\x20maxDeriv\x20=\x20max(\x0a\x09\x09\x09length(\x20dFdx(\x20position.xyz\x20)\x20),\x0a\x09\x09\x09length(\x20dFdy(\x20position.xyz\x20)\x20)\x0a\x09\x09);\x0a\x09\x09float\x20pixScale\x20=\x201.0\x20/\x20(\x20ALPHA_HASH_SCALE\x20*\x20maxDeriv\x20);\x0a\x09\x09vec2\x20pixScales\x20=\x20vec2(\x0a\x09\x09\x09exp2(\x20floor(\x20log2(\x20pixScale\x20)\x20)\x20),\x0a\x09\x09\x09exp2(\x20ceil(\x20log2(\x20pixScale\x20)\x20)\x20)\x0a\x09\x09);\x0a\x09\x09vec2\x20alpha\x20=\x20vec2(\x0a\x09\x09\x09hash3D(\x20floor(\x20pixScales.x\x20*\x20position.xyz\x20)\x20),\x0a\x09\x09\x09hash3D(\x20floor(\x20pixScales.y\x20*\x20position.xyz\x20)\x20)\x0a\x09\x09);\x0a\x09\x09float\x20lerpFactor\x20=\x20fract(\x20log2(\x20pixScale\x20)\x20);\x0a\x09\x09float\x20x\x20=\x20(\x201.0\x20-\x20lerpFactor\x20)\x20*\x20alpha.x\x20+\x20lerpFactor\x20*\x20alpha.y;\x0a\x09\x09float\x20a\x20=\x20min(\x20lerpFactor,\x201.0\x20-\x20lerpFactor\x20);\x0a\x09\x09vec3\x20cases\x20=\x20vec3(\x0a\x09\x09\x09x\x20*\x20x\x20/\x20(\x202.0\x20*\x20a\x20*\x20(\x201.0\x20-\x20a\x20)\x20),\x0a\x09\x09\x09(\x20x\x20-\x200.5\x20*\x20a\x20)\x20/\x20(\x201.0\x20-\x20a\x20),\x0a\x09\x09\x091.0\x20-\x20(\x20(\x201.0\x20-\x20x\x20)\x20*\x20(\x201.0\x20-\x20x\x20)\x20/\x20(\x202.0\x20*\x20a\x20*\x20(\x201.0\x20-\x20a\x20)\x20)\x20)\x0a\x09\x09);\x0a\x09\x09float\x20threshold\x20=\x20(\x20x\x20<\x20(\x201.0\x20-\x20a\x20)\x20)\x0a\x09\x09\x09?\x20(\x20(\x20x\x20<\x20a\x20)\x20?\x20cases.x\x20:\x20cases.y\x20)\x0a\x09\x09\x09:\x20cases.z;\x0a\x09\x09return\x20clamp(\x20threshold\x20,\x201.0e-6,\x201.0\x20);\x0a\x09}\x0a#endif','onUpdate','UNPACK_SKIP_IMAGES','layerUpdates','reflect','setHex','elements','getRGB','_lendAction','distanceTo','attenuationDistance','bufferSubData','wireframeLinejoin','intersectSphere','actionByRoot','decompose','timeScale','fadeIn','\x20isampler2D;\x0a\x09precision\x20','squeezestart','alphaMap','blendFuncSeparate','#define\x20USE_UV1','maxCubemapSize','UNPACK_ALIGNMENT','arcLengthDivisions','connected','isSource','depthFunc','framebufferHeight','_localRoot','vertexTangents','depthPacking','VSM_SAMPLES','preventDefault','UNPACK_IMAGE_HEIGHT','slice','#if\x20defined(\x20USE_MAP\x20)\x20||\x20defined(\x20USE_ALPHAMAP\x20)\x0a\x09#if\x20defined(\x20USE_POINTS_UV\x20)\x0a\x09\x09vec2\x20uv\x20=\x20vUv;\x0a\x09#else\x0a\x09\x09vec2\x20uv\x20=\x20(\x20uvTransform\x20*\x20vec3(\x20gl_PointCoord.x,\x201.0\x20-\x20gl_PointCoord.y,\x201\x20)\x20).xy;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09diffuseColor\x20*=\x20texture2D(\x20map,\x20uv\x20);\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09diffuseColor.a\x20*=\x20texture2D(\x20alphaMap,\x20uv\x20).g;\x0a#endif','specularColorMap','getRenderTarget','setRGB','isMeshDistanceMaterial','wrapT','meshphysical_vert','_halfBlur','intersectTriangle','openEnded','deleteTexture','_bindings','applyMatrix3','computeLineDistances','TEXTURE_2D','setViewOffset','index0AttributeName','COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR','itemError','vertexShader','setRenderTarget','BufferGeometry.computeBoundingBox():\x20GLBufferAttribute\x20requires\x20a\x20manual\x20bounding\x20box.','envMapCubeUVHeight','scissorTest','background','setXYZ','tracks','sheenRoughnessMap','itemEnd','stencilWrite','depth','addScalar','emissiveMapTransform','\x0avoid\x20main()\x20{\x0a\x0a\x09gl_Position\x20=\x20vec4(\x20position,\x201.0\x20);\x0a\x0a}','geometry','textureWidth','crossVectors','getAttribute','lights','#if\x20defined(\x20USE_POINTS_UV\x20)\x0a\x09varying\x20vec2\x20vUv;\x0a#else\x0a\x09#if\x20defined(\x20USE_MAP\x20)\x20||\x20defined(\x20USE_ALPHAMAP\x20)\x0a\x09\x09uniform\x20mat3\x20uvTransform;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09uniform\x20sampler2D\x20map;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09uniform\x20sampler2D\x20alphaMap;\x0a#endif','normalMap','colorspace_pars_fragment','2WAsCaL','arrayBuffers','getValueSize','mask','setValues','copyLinearToSRGB','getProgramParameter','#define\x20textureCubeLodEXT\x20textureLod','assign','intersectsObject','getZ','lightmap','depthBuffer','extractRotation','_propertyBindings','compile','defineProperty','textureFormatReadable','(\x20vec3\x20color\x20)\x20{\x20return\x20LinearToneMapping(\x20color\x20);\x20}','_accuIndex','getStyle','_getValue_array','isSpotLightShadow','rotateOnWorldAxis','__autoAllocateDepthBuffer','wireframeLinewidth','_alphaTest','traverseAncestors','setCrossOrigin','onProgress','map','THREE.Matrix4.makePerspective():\x20Invalid\x20coordinate\x20system:\x20','CreateFromMorphTargetSequence','getObjectById','CreateClipsFromMorphTargetSequences','add','zeroSlopeAtEnd','FLOAT','_cubeSize','R16_EXT','index','addEventListener','vertexUv3s','flatShading','buffer','beginShadows','getActiveCubeFace','restoreContext','weight','normalMatrix','_timeScaleInterpolant','clampWhenFinished','shaderName','blendDstAlpha','array','_targetGroup','remove','interpolate_','InterpolantFactoryMethodSmooth','static','duration','isInterleavedBuffer','renderOrder','ENVMAP_BLENDING_MULTIPLY','drawRange','mimeType','MAX_VERTEX_ATTRIBS','exec','resourcePath','float\x20luminance(\x20const\x20in\x20vec3\x20rgb\x20)\x20{','uniform2uiv','halfHeight','shininess','left','ENVMAP_BLENDING_ADD','zoom','TEXTURE_CUBE_MAP','multiplyScalar','direction','computeBoneTexture','localClippingEnabled','paused','setClearColor','filmOffset','spotLights','offsetY','emissiveMap','getDataURL','next','numPlanes','canvas','heightSegments','state','compressedTexSubImage3D','vertexAlphas','isSprite','uniform3i','basic','thetaStart','ColorManagement:\x20.fromWorkingColorSpace()\x20has\x20been\x20renamed\x20to\x20.workingToColorSpace().','nodes','isBatchedMesh','SpotLight','triangulate','emissive','UNSIGNED_BYTE','forceContextRestore','releaseShaderCache','MAX_TEXTURE_SIZE','alphaToCoverage','format','morphTargetInfluences','halt','alphaTest','MatrixWorldNeedsUpdate','SYNC_FLUSH_COMMANDS_BIT','WebGLProgram.getParameters:','FRAGMENT_SHADER','ior','size','isDirectionalLightShadow','rotateX','alphaMapTransform','point','frame','setColorAt','RENDERBUFFER','uniform1uiv','deleteRenderbuffer','shadow_frag','_byClipCacheIndex','addVectors','overrideMaterial','__webglColorRenderbuffer','iridescenceThicknessRange','isArrayTexture','setRenderTargetFramebuffer','isRenderPass','#ifdef\x20USE_TRANSMISSION\x0a\x09uniform\x20float\x20transmission;\x0a\x09uniform\x20float\x20thickness;\x0a\x09uniform\x20float\x20attenuationDistance;\x0a\x09uniform\x20vec3\x20attenuationColor;\x0a\x09#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09\x09uniform\x20sampler2D\x20transmissionMap;\x0a\x09#endif\x0a\x09#ifdef\x20USE_THICKNESSMAP\x0a\x09\x09uniform\x20sampler2D\x20thicknessMap;\x0a\x09#endif\x0a\x09uniform\x20vec2\x20transmissionSamplerSize;\x0a\x09uniform\x20sampler2D\x20transmissionSamplerMap;\x0a\x09uniform\x20mat4\x20modelMatrix;\x0a\x09uniform\x20mat4\x20projectionMatrix;\x0a\x09varying\x20vec3\x20vWorldPosition;\x0a\x09float\x20w0(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20(\x20a\x20*\x20(\x20-\x20a\x20+\x203.0\x20)\x20-\x203.0\x20)\x20+\x201.0\x20);\x0a\x09}\x0a\x09float\x20w1(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20\x20a\x20*\x20(\x203.0\x20*\x20a\x20-\x206.0\x20)\x20+\x204.0\x20);\x0a\x09}\x0a\x09float\x20w2(\x20float\x20a\x20){\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20(\x20a\x20*\x20(\x20-\x203.0\x20*\x20a\x20+\x203.0\x20)\x20+\x203.0\x20)\x20+\x201.0\x20);\x0a\x09}\x0a\x09float\x20w3(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20a\x20*\x20a\x20);\x0a\x09}\x0a\x09float\x20g0(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20w0(\x20a\x20)\x20+\x20w1(\x20a\x20);\x0a\x09}\x0a\x09float\x20g1(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20w2(\x20a\x20)\x20+\x20w3(\x20a\x20);\x0a\x09}\x0a\x09float\x20h0(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20-\x201.0\x20+\x20w1(\x20a\x20)\x20/\x20(\x20w0(\x20a\x20)\x20+\x20w1(\x20a\x20)\x20);\x0a\x09}\x0a\x09float\x20h1(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x201.0\x20+\x20w3(\x20a\x20)\x20/\x20(\x20w2(\x20a\x20)\x20+\x20w3(\x20a\x20)\x20);\x0a\x09}\x0a\x09vec4\x20bicubic(\x20sampler2D\x20tex,\x20vec2\x20uv,\x20vec4\x20texelSize,\x20float\x20lod\x20)\x20{\x0a\x09\x09uv\x20=\x20uv\x20*\x20texelSize.zw\x20+\x200.5;\x0a\x09\x09vec2\x20iuv\x20=\x20floor(\x20uv\x20);\x0a\x09\x09vec2\x20fuv\x20=\x20fract(\x20uv\x20);\x0a\x09\x09float\x20g0x\x20=\x20g0(\x20fuv.x\x20);\x0a\x09\x09float\x20g1x\x20=\x20g1(\x20fuv.x\x20);\x0a\x09\x09float\x20h0x\x20=\x20h0(\x20fuv.x\x20);\x0a\x09\x09float\x20h1x\x20=\x20h1(\x20fuv.x\x20);\x0a\x09\x09float\x20h0y\x20=\x20h0(\x20fuv.y\x20);\x0a\x09\x09float\x20h1y\x20=\x20h1(\x20fuv.y\x20);\x0a\x09\x09vec2\x20p0\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h0x,\x20iuv.y\x20+\x20h0y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09vec2\x20p1\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h1x,\x20iuv.y\x20+\x20h0y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09vec2\x20p2\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h0x,\x20iuv.y\x20+\x20h1y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09vec2\x20p3\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h1x,\x20iuv.y\x20+\x20h1y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09return\x20g0(\x20fuv.y\x20)\x20*\x20(\x20g0x\x20*\x20textureLod(\x20tex,\x20p0,\x20lod\x20)\x20+\x20g1x\x20*\x20textureLod(\x20tex,\x20p1,\x20lod\x20)\x20)\x20+\x0a\x09\x09\x09g1(\x20fuv.y\x20)\x20*\x20(\x20g0x\x20*\x20textureLod(\x20tex,\x20p2,\x20lod\x20)\x20+\x20g1x\x20*\x20textureLod(\x20tex,\x20p3,\x20lod\x20)\x20);\x0a\x09}\x0a\x09vec4\x20textureBicubic(\x20sampler2D\x20sampler,\x20vec2\x20uv,\x20float\x20lod\x20)\x20{\x0a\x09\x09vec2\x20fLodSize\x20=\x20vec2(\x20textureSize(\x20sampler,\x20int(\x20lod\x20)\x20)\x20);\x0a\x09\x09vec2\x20cLodSize\x20=\x20vec2(\x20textureSize(\x20sampler,\x20int(\x20lod\x20+\x201.0\x20)\x20)\x20);\x0a\x09\x09vec2\x20fLodSizeInv\x20=\x201.0\x20/\x20fLodSize;\x0a\x09\x09vec2\x20cLodSizeInv\x20=\x201.0\x20/\x20cLodSize;\x0a\x09\x09vec4\x20fSample\x20=\x20bicubic(\x20sampler,\x20uv,\x20vec4(\x20fLodSizeInv,\x20fLodSize\x20),\x20floor(\x20lod\x20)\x20);\x0a\x09\x09vec4\x20cSample\x20=\x20bicubic(\x20sampler,\x20uv,\x20vec4(\x20cLodSizeInv,\x20cLodSize\x20),\x20ceil(\x20lod\x20)\x20);\x0a\x09\x09return\x20mix(\x20fSample,\x20cSample,\x20fract(\x20lod\x20)\x20);\x0a\x09}\x0a\x09vec3\x20getVolumeTransmissionRay(\x20const\x20in\x20vec3\x20n,\x20const\x20in\x20vec3\x20v,\x20const\x20in\x20float\x20thickness,\x20const\x20in\x20float\x20ior,\x20const\x20in\x20mat4\x20modelMatrix\x20)\x20{\x0a\x09\x09vec3\x20refractionVector\x20=\x20refract(\x20-\x20v,\x20normalize(\x20n\x20),\x201.0\x20/\x20ior\x20);\x0a\x09\x09vec3\x20modelScale;\x0a\x09\x09modelScale.x\x20=\x20length(\x20vec3(\x20modelMatrix[\x200\x20].xyz\x20)\x20);\x0a\x09\x09modelScale.y\x20=\x20length(\x20vec3(\x20modelMatrix[\x201\x20].xyz\x20)\x20);\x0a\x09\x09modelScale.z\x20=\x20length(\x20vec3(\x20modelMatrix[\x202\x20].xyz\x20)\x20);\x0a\x09\x09return\x20normalize(\x20refractionVector\x20)\x20*\x20thickness\x20*\x20modelScale;\x0a\x09}\x0a\x09float\x20applyIorToRoughness(\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20float\x20ior\x20)\x20{\x0a\x09\x09return\x20roughness\x20*\x20clamp(\x20ior\x20*\x202.0\x20-\x202.0,\x200.0,\x201.0\x20);\x0a\x09}\x0a\x09vec4\x20getTransmissionSample(\x20const\x20in\x20vec2\x20fragCoord,\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20float\x20ior\x20)\x20{\x0a\x09\x09float\x20lod\x20=\x20log2(\x20transmissionSamplerSize.x\x20)\x20*\x20applyIorToRoughness(\x20roughness,\x20ior\x20);\x0a\x09\x09return\x20textureBicubic(\x20transmissionSamplerMap,\x20fragCoord.xy,\x20lod\x20);\x0a\x09}\x0a\x09vec3\x20volumeAttenuation(\x20const\x20in\x20float\x20transmissionDistance,\x20const\x20in\x20vec3\x20attenuationColor,\x20const\x20in\x20float\x20attenuationDistance\x20)\x20{\x0a\x09\x09if\x20(\x20isinf(\x20attenuationDistance\x20)\x20)\x20{\x0a\x09\x09\x09return\x20vec3(\x201.0\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09vec3\x20attenuationCoefficient\x20=\x20-log(\x20attenuationColor\x20)\x20/\x20attenuationDistance;\x0a\x09\x09\x09vec3\x20transmittance\x20=\x20exp(\x20-\x20attenuationCoefficient\x20*\x20transmissionDistance\x20);\x09\x09\x09return\x20transmittance;\x0a\x09\x09}\x0a\x09}\x0a\x09vec4\x20getIBLVolumeRefraction(\x20const\x20in\x20vec3\x20n,\x20const\x20in\x20vec3\x20v,\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20vec3\x20diffuseColor,\x0a\x09\x09const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20vec3\x20position,\x20const\x20in\x20mat4\x20modelMatrix,\x0a\x09\x09const\x20in\x20mat4\x20viewMatrix,\x20const\x20in\x20mat4\x20projMatrix,\x20const\x20in\x20float\x20dispersion,\x20const\x20in\x20float\x20ior,\x20const\x20in\x20float\x20thickness,\x0a\x09\x09const\x20in\x20vec3\x20attenuationColor,\x20const\x20in\x20float\x20attenuationDistance\x20)\x20{\x0a\x09\x09vec4\x20transmittedLight;\x0a\x09\x09vec3\x20transmittance;\x0a\x09\x09#ifdef\x20USE_DISPERSION\x0a\x09\x09\x09float\x20halfSpread\x20=\x20(\x20ior\x20-\x201.0\x20)\x20*\x200.025\x20*\x20dispersion;\x0a\x09\x09\x09vec3\x20iors\x20=\x20vec3(\x20ior\x20-\x20halfSpread,\x20ior,\x20ior\x20+\x20halfSpread\x20);\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x203;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09vec3\x20transmissionRay\x20=\x20getVolumeTransmissionRay(\x20n,\x20v,\x20thickness,\x20iors[\x20i\x20],\x20modelMatrix\x20);\x0a\x09\x09\x09\x09vec3\x20refractedRayExit\x20=\x20position\x20+\x20transmissionRay;\x0a\x09\x09\x09\x09vec4\x20ndcPos\x20=\x20projMatrix\x20*\x20viewMatrix\x20*\x20vec4(\x20refractedRayExit,\x201.0\x20);\x0a\x09\x09\x09\x09vec2\x20refractionCoords\x20=\x20ndcPos.xy\x20/\x20ndcPos.w;\x0a\x09\x09\x09\x09refractionCoords\x20+=\x201.0;\x0a\x09\x09\x09\x09refractionCoords\x20/=\x202.0;\x0a\x09\x09\x09\x09vec4\x20transmissionSample\x20=\x20getTransmissionSample(\x20refractionCoords,\x20roughness,\x20iors[\x20i\x20]\x20);\x0a\x09\x09\x09\x09transmittedLight[\x20i\x20]\x20=\x20transmissionSample[\x20i\x20];\x0a\x09\x09\x09\x09transmittedLight.a\x20+=\x20transmissionSample.a;\x0a\x09\x09\x09\x09transmittance[\x20i\x20]\x20=\x20diffuseColor[\x20i\x20]\x20*\x20volumeAttenuation(\x20length(\x20transmissionRay\x20),\x20attenuationColor,\x20attenuationDistance\x20)[\x20i\x20];\x0a\x09\x09\x09}\x0a\x09\x09\x09transmittedLight.a\x20/=\x203.0;\x0a\x09\x09#else\x0a\x09\x09\x09vec3\x20transmissionRay\x20=\x20getVolumeTransmissionRay(\x20n,\x20v,\x20thickness,\x20ior,\x20modelMatrix\x20);\x0a\x09\x09\x09vec3\x20refractedRayExit\x20=\x20position\x20+\x20transmissionRay;\x0a\x09\x09\x09vec4\x20ndcPos\x20=\x20projMatrix\x20*\x20viewMatrix\x20*\x20vec4(\x20refractedRayExit,\x201.0\x20);\x0a\x09\x09\x09vec2\x20refractionCoords\x20=\x20ndcPos.xy\x20/\x20ndcPos.w;\x0a\x09\x09\x09refractionCoords\x20+=\x201.0;\x0a\x09\x09\x09refractionCoords\x20/=\x202.0;\x0a\x09\x09\x09transmittedLight\x20=\x20getTransmissionSample(\x20refractionCoords,\x20roughness,\x20ior\x20);\x0a\x09\x09\x09transmittance\x20=\x20diffuseColor\x20*\x20volumeAttenuation(\x20length(\x20transmissionRay\x20),\x20attenuationColor,\x20attenuationDistance\x20);\x0a\x09\x09#endif\x0a\x09\x09vec3\x20attenuatedColor\x20=\x20transmittance\x20*\x20transmittedLight.rgb;\x0a\x09\x09vec3\x20F\x20=\x20EnvironmentBRDF(\x20n,\x20v,\x20specularColor,\x20specularF90,\x20roughness\x20);\x0a\x09\x09float\x20transmittanceFactor\x20=\x20(\x20transmittance.r\x20+\x20transmittance.g\x20+\x20transmittance.b\x20)\x20/\x203.0;\x0a\x09\x09return\x20vec4(\x20(\x201.0\x20-\x20F\x20)\x20*\x20attenuatedColor,\x201.0\x20-\x20(\x201.0\x20-\x20transmittedLight.a\x20)\x20*\x20transmittanceFactor\x20);\x0a\x09}\x0a#endif','specularMap','bindFramebuffer','#define\x20TRANSMISSIONMAP_UV\x20','TEXTURE_3D','.morphTargetInfluences[','mipmaps','#define\x20USE_ENVMAP','instancingColor','cameras','getLengths','stencilRef','instancing','_timescale','viewport','UNPACK_FLIP_Y_WEBGL','memory','getCenter','delta','COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR','WEBGL_compressed_texture_etc','eventsEnabled','pointLength','allocateTextureUnit','morphColors','toDataURL','sheenColor','indirectOffset','parameterPositions','castShadow','projectionMatrixInverse','pushShadow','clearcoatRoughnessMap','transmissive','getPrimaries','mipmapCount','DEFAULT_ORDER','morphAttributes','boolean','COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR','receiveShadow','#define\x20CUBEUV_TEXEL_WIDTH\x20','compareFunction','colorSpaceToWorking','_textureToCubeUV','RectAreaLight','clearcoatRoughnessMapUv','#define\x20USE_TRANSMISSIONMAP','acquireProgram','emissiveIntensity','COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR','projectOnVector','envMapIntensity','2155055CMsWgV','distance','invert','isPointLight','_effectiveWeight','_elapsed','normalized','__offset','23865600WwJeYZ','UNPACK_SKIP_PIXELS','#ifdef\x20USE_NORMALMAP_OBJECTSPACE\x0a\x09normal\x20=\x20texture2D(\x20normalMap,\x20vNormalMapUv\x20).xyz\x20*\x202.0\x20-\x201.0;\x0a\x09#ifdef\x20FLIP_SIDED\x0a\x09\x09normal\x20=\x20-\x20normal;\x0a\x09#endif\x0a\x09#ifdef\x20DOUBLE_SIDED\x0a\x09\x09normal\x20=\x20normal\x20*\x20faceDirection;\x0a\x09#endif\x0a\x09normal\x20=\x20normalize(\x20normalMatrix\x20*\x20normal\x20);\x0a#elif\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09vec3\x20mapN\x20=\x20texture2D(\x20normalMap,\x20vNormalMapUv\x20).xyz\x20*\x202.0\x20-\x201.0;\x0a\x09#if\x20defined(\x20USE_PACKED_NORMALMAP\x20)\x0a\x09\x09mapN\x20=\x20vec3(\x20mapN.xy,\x20sqrt(\x20saturate(\x201.0\x20-\x20dot(\x20mapN.xy,\x20mapN.xy\x20)\x20)\x20)\x20);\x0a\x09#endif\x0a\x09mapN.xy\x20*=\x20normalScale;\x0a\x09normal\x20=\x20normalize(\x20tbn\x20*\x20mapN\x20);\x0a#elif\x20defined(\x20USE_BUMPMAP\x20)\x0a\x09normal\x20=\x20perturbNormalArb(\x20-\x20vViewPosition,\x20normal,\x20dHdxy_fwd(),\x20faceDirection\x20);\x0a#endif','isGLBufferAttribute','opacity','workingToColorSpace','_uuid','#define\x20DISTANCE\x0auniform\x20vec3\x20referencePosition;\x0auniform\x20float\x20nearDistance;\x0auniform\x20float\x20farDistance;\x0avarying\x20vec3\x20vWorldPosition;\x0a#include\x20<common>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main\x20()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x201.0\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09float\x20dist\x20=\x20length(\x20vWorldPosition\x20-\x20referencePosition\x20);\x0a\x09dist\x20=\x20(\x20dist\x20-\x20nearDistance\x20)\x20/\x20(\x20farDistance\x20-\x20nearDistance\x20);\x0a\x09dist\x20=\x20saturate(\x20dist\x20);\x0a\x09gl_FragColor\x20=\x20vec4(\x20dist,\x200.0,\x200.0,\x201.0\x20);\x0a}','ignoreDepthValues','#define\x20','_multiDrawCount','#define\x20USE_BUMPMAP','getSettings_','makeEmpty','UNSIGNED_SHORT_5_5_5_1','location','_setValue_array','_setValue_direct_setNeedsUpdate','abortController','parseFromString','COMPARE_REF_TO_TEXTURE','stencilFuncMask','_effectiveTimeScale','bindTexture','#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09uniform\x20samplerCube\x20envMap;\x0a#elif\x20defined(\x20ENVMAP_TYPE_CUBE_UV\x20)\x0a\x09uniform\x20sampler2D\x20envMap;\x0a#endif\x0auniform\x20float\x20backgroundBlurriness;\x0auniform\x20float\x20backgroundIntensity;\x0auniform\x20mat3\x20backgroundRotation;\x0avarying\x20vec3\x20vWorldDirection;\x0a#include\x20<cube_uv_reflection_fragment>\x0avoid\x20main()\x20{\x0a\x09#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09\x09vec4\x20texColor\x20=\x20textureCube(\x20envMap,\x20backgroundRotation\x20*\x20vWorldDirection\x20);\x0a\x09#elif\x20defined(\x20ENVMAP_TYPE_CUBE_UV\x20)\x0a\x09\x09vec4\x20texColor\x20=\x20textureCubeUV(\x20envMap,\x20backgroundRotation\x20*\x20vWorldDirection,\x20backgroundBlurriness\x20);\x0a\x09#else\x0a\x09\x09vec4\x20texColor\x20=\x20vec4(\x200.0,\x200.0,\x200.0,\x201.0\x20);\x0a\x09#endif\x0a\x09texColor.rgb\x20*=\x20backgroundIntensity;\x0a\x09gl_FragColor\x20=\x20texColor;\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','isRawShaderMaterial','texParameterf','flipY','clipping','shadowIntensity','cumulativeWeightAdditive','updateWorldMatrix','selectstart','vertexAttrib1fv','visible-blurred','_onChangeCallback','power','sortObjects','OES_texture_float_linear','getWorldDirection','#define\x20texture2D\x20texture','morphNormals','aoMap','toneMapping','resolveDepthBuffer','uniforms','releaseProgram','intersectsLine','RGBA_INTEGER','has\x20no\x20shadow.','_deactivateAction','TEXTURE_COMPARE_MODE','TEXTURE_2D_ARRAY','#if\x20defined(\x20USE_UV\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09vUv\x20=\x20vec3(\x20uv,\x201\x20).xy;\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09vMapUv\x20=\x20(\x20mapTransform\x20*\x20vec3(\x20MAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09vAlphaMapUv\x20=\x20(\x20alphaMapTransform\x20*\x20vec3(\x20ALPHAMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_LIGHTMAP\x0a\x09vLightMapUv\x20=\x20(\x20lightMapTransform\x20*\x20vec3(\x20LIGHTMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_AOMAP\x0a\x09vAoMapUv\x20=\x20(\x20aoMapTransform\x20*\x20vec3(\x20AOMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_BUMPMAP\x0a\x09vBumpMapUv\x20=\x20(\x20bumpMapTransform\x20*\x20vec3(\x20BUMPMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP\x0a\x09vNormalMapUv\x20=\x20(\x20normalMapTransform\x20*\x20vec3(\x20NORMALMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09vDisplacementMapUv\x20=\x20(\x20displacementMapTransform\x20*\x20vec3(\x20DISPLACEMENTMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_EMISSIVEMAP\x0a\x09vEmissiveMapUv\x20=\x20(\x20emissiveMapTransform\x20*\x20vec3(\x20EMISSIVEMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09vMetalnessMapUv\x20=\x20(\x20metalnessMapTransform\x20*\x20vec3(\x20METALNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09vRoughnessMapUv\x20=\x20(\x20roughnessMapTransform\x20*\x20vec3(\x20ROUGHNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_ANISOTROPYMAP\x0a\x09vAnisotropyMapUv\x20=\x20(\x20anisotropyMapTransform\x20*\x20vec3(\x20ANISOTROPYMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_CLEARCOATMAP\x0a\x09vClearcoatMapUv\x20=\x20(\x20clearcoatMapTransform\x20*\x20vec3(\x20CLEARCOATMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09vClearcoatNormalMapUv\x20=\x20(\x20clearcoatNormalMapTransform\x20*\x20vec3(\x20CLEARCOAT_NORMALMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09vClearcoatRoughnessMapUv\x20=\x20(\x20clearcoatRoughnessMapTransform\x20*\x20vec3(\x20CLEARCOAT_ROUGHNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09vIridescenceMapUv\x20=\x20(\x20iridescenceMapTransform\x20*\x20vec3(\x20IRIDESCENCEMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09vIridescenceThicknessMapUv\x20=\x20(\x20iridescenceThicknessMapTransform\x20*\x20vec3(\x20IRIDESCENCE_THICKNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09vSheenColorMapUv\x20=\x20(\x20sheenColorMapTransform\x20*\x20vec3(\x20SHEEN_COLORMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09vSheenRoughnessMapUv\x20=\x20(\x20sheenRoughnessMapTransform\x20*\x20vec3(\x20SHEEN_ROUGHNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09vSpecularMapUv\x20=\x20(\x20specularMapTransform\x20*\x20vec3(\x20SPECULARMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09vSpecularColorMapUv\x20=\x20(\x20specularColorMapTransform\x20*\x20vec3(\x20SPECULAR_COLORMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09vSpecularIntensityMapUv\x20=\x20(\x20specularIntensityMapTransform\x20*\x20vec3(\x20SPECULAR_INTENSITYMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09vTransmissionMapUv\x20=\x20(\x20transmissionMapTransform\x20*\x20vec3(\x20TRANSMISSIONMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_THICKNESSMAP\x0a\x09vThicknessMapUv\x20=\x20(\x20thicknessMapTransform\x20*\x20vec3(\x20THICKNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif','isMeshPhongMaterial','WebGLShadowMap:','test','accumulateAdditive','thickness','LTC_FLOAT_2','directionalShadowMatrix','CubeCamera','fadeOut','clearcoatNormalScale','clippingPlanes','center','useDepthPacking','tEquirect','vertexColors','itemStart','accumulate','MIN','setFromEuler','anisotropy','getWireframeAttribute','mapping','isMaterial','_transmission','THREE.WebGLAttributes:\x20Unsupported\x20buffer\x20data\x20format:\x20','#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x0a\x09diffuseColor\x20*=\x20vColor;\x0a#endif','shadowSide','hsl','metalnessMap','flipEnvMap','flipSided','isStackTrace','DEPTH_ATTACHMENT','update','usedTimes','makeRotationZ','setClear','load','attached','components','local-floor','float\x20roughnessFactor\x20=\x20roughness;\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09vec4\x20texelRoughness\x20=\x20texture2D(\x20roughnessMap,\x20vRoughnessMapUv\x20);\x0a\x09roughnessFactor\x20*=\x20texelRoughness.g;\x0a#endif','PropertyBinding:\x20can\x20not\x20parse\x20propertyName\x20from\x20trackName:\x20','roughness','image','numRectAreaLights','createElementNS','MeshDepthMaterial','2777016GmsbDj','updateRenderTargetMipmap','substring','RED_INTEGER','_setEndings','parent','stopFading','vertexNormals','getNormal','uniformMatrix2fv','extractBasis','makeRotationY','signal','atan2','pixelStorei','normal','blendSrc','_scheduleFading','isImageBitmapLoader','#define\x20USE_CLEARCOATMAP','getImageData','hasAngularVelocity','texStorage2D','data','clone','isSphere','workingColorSpaceConfig','pivot','SAMPLE_ALPHA_TO_COVERAGE','isScene','depthNear','lightMapIntensity','pow','#define\x20USE_MORPHNORMALS','sampleValues','stringify','endingStart','length','constructor','convert','LineLoop','parameters','forEach','#define\x20USE_FOG','log','COMPRESSED_RGBA_ASTC_4x4_KHR','getSize','__size','__useDefaultFramebuffer','meshnormal_frag','AnimationClip:\x20parseAnimation()\x20is\x20deprecated\x20and\x20will\x20be\x20removed\x20with\x20r185','allowOverride','SHORT','_multiDrawStarts','updateRanges','isEuler','vertex','onAfterShadow','setFromMatrixColumn','wireframeLinecap','meshlambert_frag','joints','ARRAY_BUFFER','Object','hasLinearVelocity','setFromVector3','expandByPoint','reversedDepthBuffer','numPointShadows','void\x20main()\x20{\x0a\x09gl_Position\x20=\x20vec4(\x20position,\x201.0\x20);\x0a}','isMesh','number','storage','NEAREST_MIPMAP_LINEAR','isBox3','slerp','metalness','_depthTexture','perObjectFrustumCulled','LinearTransferOETF','clampPoint','#define\x20FOG_EXP2','Curve','interleavedBuffers','COMPRESSED_RGBA_S3TC_DXT1_EXT','gpuType','#define\x20USE_LIGHT_PROBES','wireframe','X-File-Size','setTexture2DArray','hasEventListener','isEmpty','cacheKey','isMeshBasicMaterial','containsPoint','sRGBToLinear','#define\x20gl_FragDepthEXT\x20gl_FragDepth','SCISSOR_TEST','sub','magFilter','clearcoat','anonymous','fromBufferAttribute','getMaxScaleOnAxis','divideScalar','HasFromToArray','mapUv','propertyName','getY','parse','#ifdef\x20USE_FOG\x0a\x09uniform\x20vec3\x20fogColor;\x0a\x09varying\x20float\x20vFogDepth;\x0a\x09#ifdef\x20FOG_EXP2\x0a\x09\x09uniform\x20float\x20fogDensity;\x0a\x09#else\x0a\x09\x09uniform\x20float\x20fogNear;\x0a\x09\x09uniform\x20float\x20fogFar;\x0a\x09#endif\x0a#endif','FRAMEBUFFER','_update','textures','properties','groundColor','fullWidth','uuid','_pingPongRenderTarget','fromScene','boundary','cache','getParameter','_geometryCount','version','framebufferRenderbuffer','ZYX','getFrustum','startAt','alphaMapUv','rotation','error','specularIntensity','getClearColor','theta','__webglMultisampledFramebuffer','isCompressedTexture','spotLightMatrix','values','aoMapIntensity','random','getViewport','side','newAttributes','specularColor','worldToLocal','#define\x20DECODE_VIDEO_TEXTURE_EMISSIVE','_removeInactiveBindingsForAction','texture','projectionMatrix','framebufferTextureLayer','isVector3','getCamera','stride','colorWrite','boundingSphere','get','LineSegments.computeLineDistances():\x20Computation\x20only\x20possible\x20with\x20non-indexed\x20BufferGeometry.','offsetX','XYZ','distanceToPoint','minFilter','setWithCredentials','bindRenderbuffer','start','phi','bindMode','_matricesTexture','init','targetObject','_lodMeshes','fromCubemap','environmentIntensity','_actionsByClip','_backgroundBox','isMatrix3','matrixWorldAutoUpdate','\x20int;\x0a\x09precision\x20','sourceTexture','getLocation','ZERO_TO_ONE_EXT','fogNear','meshbasic_vert','rectArea','RGBA4','colorSpace','rectAreaLTC2','keys','blending','drawImage','_compileMaterial','children','videoWidth','right','isMeshStandardMaterial','isVector4','intersectsPlane','11571KLfnyI','COLOR','184','_colorsTexture','onError','mapTransform','diagnostics','setScalar','_drawRanges','_ggxMaterial','_document','angleTo','#define\x20USE_REVERSED_DEPTH_BUFFER','LambertMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;\x0amaterial.specularStrength\x20=\x20specularStrength;','morphTexture','sheenColorMap','\x20will\x20be\x20ignored.','uniform\x20mat3\x20normalMatrix;','userAgent','alphaHash','anisotropyMap','copy','clear','PropertyBinding:\x20No\x20target\x20node\x20found\x20for\x20track:\x20','animations','addr','uniform2f','reversedDepth','disconnect','multiview','pointShadow','combine','uniform4f','target','clippingState','160xuDWMn','LineSegments','metadata','_reversedDepth','lightsStateVersion','isMeshLambertMaterial','triangles','negate','getPixelRatio','_updateTimeScale','texSubImage2D','stencilFail','ACES_FILMIC_TONE_MAPPING','isXRRenderTarget','copyAt','makeScale','string','WebGLState:\x20MultiplyBlending\x20requires\x20material.premultipliedAlpha\x20=\x20true','files','isHemisphereLight','intensity','aomap','backgroundIntensity','roughnessMap','renderTarget','BufferGeometry:\x20Buffer\x20size\x20too\x20small\x20for\x20points\x20data.\x20Use\x20.dispose()\x20and\x20create\x20a\x20new\x20geometry.','spotLightMap','clearcoatMapTransform','makeBasis','Texture.setValues():\x20property\x20\x27','constant','mapType','setFromPoints','decay','fogExp2','max','time','_abortController','isInterleavedBufferAttribute','probesMin','dispose','uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0a#ifndef\x20FLAT_SHADED\x0a\x09varying\x20vec3\x20vNormal;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<specularmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<specularmap_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09#ifdef\x20USE_LIGHTMAP\x0a\x09\x09vec4\x20lightMapTexel\x20=\x20texture2D(\x20lightMap,\x20vLightMapUv\x20);\x0a\x09\x09reflectedLight.indirectDiffuse\x20+=\x20lightMapTexel.rgb\x20*\x20lightMapIntensity\x20*\x20RECIPROCAL_PI;\x0a\x09#else\x0a\x09\x09reflectedLight.indirectDiffuse\x20+=\x20vec3(\x201.0\x20);\x0a\x09#endif\x0a\x09#include\x20<aomap_fragment>\x0a\x09reflectedLight.indirectDiffuse\x20*=\x20diffuseColor.rgb;\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.indirectDiffuse;\x0a\x09#include\x20<envmap_fragment>\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','getPoint','displacementmap','valueSize','#define\x20USE_METALNESSMAP','glslVersion','_bindingsByRootAndName','matrixWorldInverse','includes','\x09attribute\x20vec3\x20color;','300\x20es','_clip','.shadowMap','dataReady','createTexture','bufferData','premultiply','bottom','groupOrder','color','usage','mediump','rectAreaLTC1','inputState','equals','render','distanceToSquared','setXY','onBeforeCompile','autoClearDepth','instanceColor','matcap','nodeName','rectAreaLights','isFogExp2','setReferenceSpace','t2D','nextZ','iridescenceMapUv','MAX_TEXTURE_IMAGE_UNITS','isCompressedArrayTexture','#define\x20texture2DProjGradEXT\x20textureProjGrad','toXYZ','_dispersion','#define\x20SHADER_NAME\x20','GetterByBindingType','_nActiveControlInterpolants','MAX_CUBE_MAP_TEXTURE_SIZE','iterator','setValue','#define\x20SPECULARMAP_UV\x20','channel','_loopCount','onLoad','_cleanup','colorsTexture','isWebGLRenderer','normalMapTangentSpace','depthFar','_mixer','__webglFramebuffer','float','computeBoundingSphere','bindBuffer','setAttribute','ALWAYS','name','getSpacedPoints','makeTranslation','objectName','bindMatrixInverse','isData3DTexture','Content-Length','batchingColor','thicknessMap','WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20in\x20RGBA\x20or\x20implementation\x20defined\x20format.','common','stencil','_setIdentity','_delta','apply','addUpdateRange','matrixWorld','spaces','addGroup','#define\x20USE_SHEEN_ROUGHNESSMAP','normalBias','_setAdditiveIdentityNumeric','getW','renderBufferDirect','distanceToPlane','stencilFunc','getContext','ZYZ','fromArray','probe','DEPTH_STENCIL_ATTACHMENT','gripSpace','offset','parseTrackName','normalize','_cacheIndex','steiner','setLineWidth','reservedRanges','738CcUSAe','multiply'];a0=function(){return wh;};return a0();}function ml(a4,a5){const rP=d4;let a6=this['cache'];a6[0x0]!==a5&&(a4['uniform1i'](this[rP(0x333)],a5),a6[0x0]=a5);}function hl(a4,a5){const rQ=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y'])&&(a4[rQ(0xbe)](this['addr'],a5['x'],a5['y']),a6[0x0]=a5['x'],a6[0x1]=a5['y']);else{if(il(a6,a5))return;a4['uniform2iv'](this['addr'],a5),al(a6,a5);}}function gl(a4,a5){const rR=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z'])&&(a4[rR(0x188)](this['addr'],a5['x'],a5['y'],a5['z']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z']);else{if(il(a6,a5))return;a4['uniform3iv'](this[rR(0x333)],a5),al(a6,a5);}}function _l(a4,a5){let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z']||a6[0x3]!==a5['w'])&&(a4['uniform4i'](this['addr'],a5['x'],a5['y'],a5['z'],a5['w']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z'],a6[0x3]=a5['w']);else{if(il(a6,a5))return;a4['uniform4iv'](this['addr'],a5),al(a6,a5);}}function vl(a4,a5){const rS=d4;let a6=this[rS(0x2ce)];a6[0x0]!==a5&&(a4['uniform1ui'](this['addr'],a5),a6[0x0]=a5);}function yl(a4,a5){const rT=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y'])&&(a4['uniform2ui'](this[rT(0x333)],a5['x'],a5['y']),a6[0x0]=a5['x'],a6[0x1]=a5['y']);else{if(il(a6,a5))return;a4[rT(0x16e)](this['addr'],a5),al(a6,a5);}}function bl(a4,a5){const rU=d4;let a6=this[rU(0x2ce)];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z'])&&(a4[rU(0x402)](this['addr'],a5['x'],a5['y'],a5['z']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z']);else{if(il(a6,a5))return;a4['uniform3uiv'](this['addr'],a5),al(a6,a5);}}function xl(a4,a5){const rV=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z']||a6[0x3]!==a5['w'])&&(a4['uniform4ui'](this[rV(0x333)],a5['x'],a5['y'],a5['z'],a5['w']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z'],a6[0x3]=a5['w']);else{if(il(a6,a5))return;a4['uniform4uiv'](this['addr'],a5),al(a6,a5);}}function Sl(a4,a5,a6){const rW=d4;let a7=this['cache'],a8=a6[rW(0x1c9)]();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8);let a9;this['type']===a4['SAMPLER_2D_SHADOW']?(Jc['compareFunction']=a6['isReversedDepthBuffer']()?0x206:0x203,a9=Jc):a9=qc,a6['setTexture2D'](a5||a9,a8);}function Cl(a4,a5,a6){const rX=d4;let a7=this[rX(0x2ce)],a8=a6['allocateTextureUnit']();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8),a6['setTexture3D'](a5||Xc,a8);}function wl(a4,a5,a6){const rY=d4;let a7=this['cache'],a8=a6[rY(0x1c9)]();a7[0x0]!==a8&&(a4['uniform1i'](this[rY(0x333)],a8),a7[0x0]=a8),a6['setTextureCube'](a5||Zc,a8);}function Tl(a4,a5,a6){const rZ=d4;let a7=this['cache'],a8=a6['allocateTextureUnit']();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8),a6[rZ(0x2ae)](a5||Yc,a8);}function El(a4){switch(a4){case 0x1406:return sl;case 0x8b50:return cl;case 0x8b51:return ll;case 0x8b52:return ul;case 0x8b5a:return dl;case 0x8b5b:return fl;case 0x8b5c:return pl;case 0x1404:case 0x8b56:return ml;case 0x8b53:case 0x8b57:return hl;case 0x8b54:case 0x8b58:return gl;case 0x8b55:case 0x8b59:return _l;case 0x1405:return vl;case 0x8dc6:return yl;case 0x8dc7:return bl;case 0x8dc8:return xl;case 0x8b5e:case 0x8d66:case 0x8dca:case 0x8dd2:case 0x8b62:return Sl;case 0x8b5f:case 0x8dcb:case 0x8dd3:return Cl;case 0x8b60:case 0x8dcc:case 0x8dd4:case 0x8dc5:return wl;case 0x8dc1:case 0x8dcf:case 0x8dd7:case 0x8dc4:return Tl;}}function Dl(a4,a5){const s0=d4;a4[s0(0x3d4)](this[s0(0x333)],a5);}function Ol(a4,a5){let a6=rl(a5,this['size'],0x2);a4['uniform2fv'](this['addr'],a6);}function kl(a4,a5){let a6=rl(a5,this['size'],0x3);a4['uniform3fv'](this['addr'],a6);}function Al(a4,a5){let a6=rl(a5,this['size'],0x4);a4['uniform4fv'](this['addr'],a6);}function jl(a4,a5){const s1=d4;let a6=rl(a5,this['size'],0x4);a4[s1(0x25e)](this['addr'],!0x1,a6);}function Ml(a4,a5){let a6=rl(a5,this['size'],0x9);a4['uniformMatrix3fv'](this['addr'],!0x1,a6);}function Nl(a4,a5){const s2=d4;let a6=rl(a5,this[s2(0x19f)],0x10);a4['uniformMatrix4fv'](this['addr'],!0x1,a6);}function Pl(a4,a5){a4['uniform1iv'](this['addr'],a5);}function Fl(a4,a5){a4['uniform2iv'](this['addr'],a5);}function Il(a4,a5){a4['uniform3iv'](this['addr'],a5);}function Ll(a4,a5){a4['uniform4iv'](this['addr'],a5);}function Rl(a4,a5){const s3=d4;a4[s3(0x1a7)](this[s3(0x333)],a5);}function zl(a4,a5){a4['uniform2uiv'](this['addr'],a5);}function Bl(a4,a5){a4['uniform3uiv'](this['addr'],a5);}function Vl(a4,a5){const s4=d4;a4['uniform4uiv'](this[s4(0x333)],a5);}function Hl(a4,a5,a6){const s5=d4;let a7=this[s5(0x2ce)],a8=a5['length'],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this['addr'],a9),al(a7,a9));let ab;ab=this['type']===a4['SAMPLER_2D_SHADOW']?Jc:qc;for(let af=0x0;af!==a8;++af)a6['setTexture2D'](a5[af]||ab,a9[af]);}function Ul(a4,a5,a6){const s6=d4;let a7=this['cache'],a8=a5[s6(0x27a)],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this['addr'],a9),al(a7,a9));for(let ab=0x0;ab!==a8;++ab)a6['setTexture3D'](a5[ab]||Xc,a9[ab]);}function Wl(a4,a5,a6){const s7=d4;let a7=this['cache'],a8=a5[s7(0x27a)],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this['addr'],a9),al(a7,a9));for(let ab=0x0;ab!==a8;++ab)a6['setTextureCube'](a5[ab]||Zc,a9[ab]);}function Gl(a4,a5,a6){let a7=this['cache'],a8=a5['length'],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this['addr'],a9),al(a7,a9));for(let ab=0x0;ab!==a8;++ab)a6['setTexture2DArray'](a5[ab]||Yc,a9[ab]);}function Kl(a4){switch(a4){case 0x1406:return Dl;case 0x8b50:return Ol;case 0x8b51:return kl;case 0x8b52:return Al;case 0x8b5a:return jl;case 0x8b5b:return Ml;case 0x8b5c:return Nl;case 0x1404:case 0x8b56:return Pl;case 0x8b53:case 0x8b57:return Fl;case 0x8b54:case 0x8b58:return Il;case 0x8b55:case 0x8b59:return Ll;case 0x1405:return Rl;case 0x8dc6:return zl;case 0x8dc7:return Bl;case 0x8dc8:return Vl;case 0x8b5e:case 0x8d66:case 0x8dca:case 0x8dd2:case 0x8b62:return Hl;case 0x8b5f:case 0x8dcb:case 0x8dd3:return Ul;case 0x8b60:case 0x8dcc:case 0x8dd4:case 0x8dc5:return Wl;case 0x8dc1:case 0x8dcf:case 0x8dd7:case 0x8dc4:return Gl;}}var ql=class{constructor(a4,a5,a6){const s8=d4;this['id']=a4,this['addr']=a6,this['cache']=[],this['type']=a5['type'],this['setValue']=El(a5[s8(0x40b)]);}},Jl=class{constructor(a4,a5,a6){this['id']=a4,this['addr']=a6,this['cache']=[],this['type']=a5['type'],this['size']=a5['size'],this['setValue']=Kl(a5['type']);}},Yl=class{constructor(a4){this['id']=a4,this['seq']=[],this['map']={};}[d4(0x397)](a4,a5,a6){let a7=this['seq'];for(let a8=0x0,a9=a7['length'];a8!==a9;++a8){let ab=a7[a8];ab['setValue'](a4,a5[ab['id']],a6);}}},Xl=/(\w+)(\])?(\[|\.)?/g;function Zl(a4,a5){a4['seq']['push'](a5),a4['map'][a5['id']]=a5;}function Ql(a4,a5,a6){let a7=a4['name'],a8=a7['length'];for(Xl['lastIndex']=0x0;;){let a9=Xl['exec'](a7),ab=Xl['lastIndex'],af=a9[0x1],ag=a9[0x2]===']',ah=a9[0x3];if(ag&&(af|=0x0),ah===void 0x0||ah==='['&&ab+0x2===a8){Zl(a6,ah===void 0x0?new ql(af,a4,a5):new Jl(af,a4,a5));break;}else{let aj=a6['map'][af];aj===void 0x0&&(aj=new Yl(af),Zl(a6,aj)),a6=aj;}}}var $l=class{constructor(a4,a5){const s9=d4;this['seq']=[],this['map']={};let a6=a4['getProgramParameter'](a5,a4['ACTIVE_UNIFORMS']);for(let a9=0x0;a9<a6;++a9){let ab=a4['getActiveUniform'](a5,a9);Ql(ab,a4['getUniformLocation'](a5,ab['name']),this);}let a7=[],a8=[];for(let af of this[s9(0x82)])af['type']===a4['SAMPLER_2D_SHADOW']||af[s9(0x40b)]===a4['SAMPLER_CUBE_SHADOW']||af['type']===a4['SAMPLER_2D_ARRAY_SHADOW']?a7['push'](af):a8['push'](af);a7['length']>0x0&&(this['seq']=a7['concat'](a8));}['setValue'](a4,a5,a6,a7){const sb=d4;let a8=this[sb(0x146)][a5];a8!==void 0x0&&a8['setValue'](a4,a6,a7);}['setOptional'](a4,a5,a6){let a7=a5[a6];a7!==void 0x0&&this['setValue'](a4,a6,a7);}static['upload'](a4,a5,a6,a7){const sf=d4;for(let a8=0x0,a9=a5['length'];a8!==a9;++a8){let ab=a5[a8],af=a6[ab['id']];af[sf(0x3f1)]!==!0x1&&ab['setValue'](a4,af['value'],a7);}}static['seqWithValue'](a4,a5){const sg=d4;let a6=[];for(let a7=0x0,a8=a4[sg(0x27a)];a7!==a8;++a7){let a9=a4[a7];a9['id']in a5&&a6['push'](a9);}return a6;}};function eu(a4,a5,a6){let a7=a4['createShader'](a5);return a4['shaderSource'](a7,a6),a4['compileShader'](a7),a7;}var tu=0x91b1,nu=0x0;function ru(a4,a5){let a6=a4['split']('\x0a'),a7=[],a8=Math['max'](a5-0x6,0x0),a9=Math['min'](a5+0x6,a6['length']);for(let ab=a8;ab<a9;ab++){let af=ab+0x1;a7['push']((af===a5?'>':'\x20')+'\x20'+af+':\x20'+a6[ab]);}return a7['join']('\x0a');}var iu=new G();function au(a4){const sh=d4;K['_getMatrix'](iu,K['workingColorSpace'],a4);let a5='mat3(\x20'+iu[sh(0xdf)]['map'](a6=>a6['toFixed'](0x4))+'\x20)';switch(K['getTransfer'](a4)){case at:return[a5,sh(0x2a4)];case ot:return[a5,'sRGBTransferOETF'];default:return z('WebGLProgram:\x20Unsupported\x20color\x20space:\x20',a4),[a5,'LinearTransferOETF'];}}function ou(a4,a5,a6){const sj=d4;let a7=a4['getShaderParameter'](a5,a4['COMPILE_STATUS']),a8=(a4['getShaderInfoLog'](a5)||'')[sj(0x423)]();if(a7&&a8==='')return'';let a9=/ERROR: 0:(\d+)/[sj(0x16b)](a8);if(a9){let ab=parseInt(a9[0x1]);return a6['toUpperCase']()+'\x0a\x0a'+a8+'\x0a\x0a'+ru(a4['getShaderSource'](a5),ab);}else return a8;}function su(a4,a5){const sk=d4;let a6=au(a5);return['vec4\x20'+a4+'(\x20vec4\x20value\x20)\x20{','\x09return\x20'+a6[0x1]+'(\x20vec4(\x20value.rgb\x20*\x20'+a6[0x0]+sk(0x4f1),'}']['join']('\x0a');}var cu={0x1:'Linear',0x2:d4(0x513),0x3:'Cineon',0x4:'ACESFilmic',0x6:'AgX',0x7:'Neutral',0x5:'Custom'};function lu(a4,a5){const sm=d4;let a6=cu[a5];return a6===void 0x0?(z('WebGLProgram:\x20Unsupported\x20toneMapping:',a5),'vec3\x20'+a4+sm(0x13a)):'vec3\x20'+a4+sm(0x55c)+a6+'ToneMapping(\x20color\x20);\x20}';}var uu=new W();function du(){const sp=d4;return K['getLuminanceCoefficients'](uu),[sp(0x16d),'\x09const\x20vec3\x20weights\x20=\x20vec3(\x20'+uu['x']['toFixed'](0x4)+',\x20'+uu['y']['toFixed'](0x4)+',\x20'+uu['z']['toFixed'](0x4)+'\x20);','\x09return\x20dot(\x20weights,\x20rgb\x20);','}']['join']('\x0a');}function fu(a4){const sq=d4;return[a4['extensionClipCullDistance']?'#extension\x20GL_ANGLE_clip_cull_distance\x20:\x20require':'',a4['extensionMultiDraw']?'#extension\x20GL_ANGLE_multi_draw\x20:\x20require':'']['filter'](hu)[sq(0x558)]('\x0a');}function pu(a4){const sv=d4;let a5=[];for(let a6 in a4){let a7=a4[a6];a7!==!0x1&&a5[sv(0x403)]('#define\x20'+a6+'\x20'+a7);}return a5['join']('\x0a');}function mu(a4,a5){const sw=d4;let a6={},a7=a4['getProgramParameter'](a5,a4['ACTIVE_ATTRIBUTES']);for(let a8=0x0;a8<a7;a8++){let a9=a4['getActiveAttrib'](a5,a8),ab=a9['name'],af=0x1;a9['type']===a4['FLOAT_MAT2']&&(af=0x2),a9['type']===a4['FLOAT_MAT3']&&(af=0x3),a9['type']===a4['FLOAT_MAT4']&&(af=0x4),a6[ab]={'type':a9['type'],'location':a4[sw(0x493)](a5,ab),'locationSize':af};}return a6;}function hu(a4){return a4!=='';}function gu(a4,a5){const sx=d4;let a6=a5['numSpotLightShadows']+a5['numSpotLightMaps']-a5['numSpotLightShadowsWithMaps'];return a4[sx(0x440)](/NUM_DIR_LIGHTS/g,a5['numDirLights'])[sx(0x440)](/NUM_SPOT_LIGHTS/g,a5['numSpotLights'])['replace'](/NUM_SPOT_LIGHT_MAPS/g,a5[sx(0xc8)])[sx(0x440)](/NUM_SPOT_LIGHT_COORDS/g,a6)['replace'](/NUM_RECT_AREA_LIGHTS/g,a5['numRectAreaLights'])[sx(0x440)](/NUM_POINT_LIGHTS/g,a5['numPointLights'])['replace'](/NUM_HEMI_LIGHTS/g,a5['numHemiLights'])['replace'](/NUM_DIR_LIGHT_SHADOWS/g,a5['numDirLightShadows'])[sx(0x440)](/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,a5['numSpotLightShadowsWithMaps'])['replace'](/NUM_SPOT_LIGHT_SHADOWS/g,a5['numSpotLightShadows'])['replace'](/NUM_POINT_LIGHT_SHADOWS/g,a5['numPointLightShadows']);}function _u(a4,a5){const sy=d4;return a4['replace'](/NUM_CLIPPING_PLANES/g,a5['numClippingPlanes'])['replace'](/UNION_CLIPPING_PLANES/g,a5['numClippingPlanes']-a5[sy(0x462)]);}var vu=/^[ \t]*#include +<([\w\d./]+)>/gm;function yu(a4){return a4['replace'](vu,xu);}var bu=new Map();function xu(a4,a5){const sz=d4;let a6=Q[a5];if(a6===void 0x0){let a7=bu['get'](a5);if(a7!==void 0x0)a6=Q[a7],z(sz(0x4c8),a5,a7);else throw Error('Can\x20not\x20resolve\x20#include\x20<'+a5+'>');}return yu(a6);}var Su=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Cu(a4){return a4['replace'](Su,wu);}function wu(a4,a5,a6,a7){let a8='';for(let a9=parseInt(a5);a9<parseInt(a6);a9++)a8+=a7['replace'](/\[\s*i\s*\]/g,'[\x20'+a9+'\x20]')['replace'](/UNROLLED_LOOP_INDEX/g,a9);return a8;}function Tu(a4){const sA=d4;let a5='precision\x20'+a4['precision']+'\x20float;\x0a\x09precision\x20'+a4['precision']+sA(0x306)+a4['precision']+'\x20sampler2D;\x0a\x09precision\x20'+a4[sA(0x3ef)]+'\x20samplerCube;\x0a\x09precision\x20'+a4['precision']+'\x20sampler3D;\x0a\x09precision\x20'+a4['precision']+'\x20sampler2DArray;\x0a\x09precision\x20'+a4['precision']+'\x20sampler2DShadow;\x0a\x09precision\x20'+a4['precision']+'\x20samplerCubeShadow;\x0a\x09precision\x20'+a4['precision']+'\x20sampler2DArrayShadow;\x0a\x09precision\x20'+a4['precision']+sA(0xeb)+a4['precision']+'\x20isampler3D;\x0a\x09precision\x20'+a4[sA(0x3ef)]+'\x20isamplerCube;\x0a\x09precision\x20'+a4['precision']+'\x20isampler2DArray;\x0a\x09precision\x20'+a4[sA(0x3ef)]+'\x20usampler2D;\x0a\x09precision\x20'+a4['precision']+'\x20usampler3D;\x0a\x09precision\x20'+a4['precision']+'\x20usamplerCube;\x0a\x09precision\x20'+a4['precision']+'\x20usampler2DArray;\x0a\x09';return a4[sA(0x3ef)]==='highp'?a5+='\x0a#define\x20HIGH_PRECISION':a4['precision']===sA(0x37b)?a5+='\x0a#define\x20MEDIUM_PRECISION':a4['precision']==='lowp'&&(a5+='\x0a#define\x20LOW_PRECISION'),a5;}var Eu={0x1:'SHADOWMAP_TYPE_PCF',0x3:'SHADOWMAP_TYPE_VSM'};function Du(a4){return Eu[a4['shadowMapType']]||'SHADOWMAP_TYPE_BASIC';}var Ou={0x12d:'ENVMAP_TYPE_CUBE',0x12e:'ENVMAP_TYPE_CUBE',0x132:'ENVMAP_TYPE_CUBE_UV'};function ku(a4){const sB=d4;return a4['envMap']===!0x1?'ENVMAP_TYPE_CUBE':Ou[a4['envMapMode']]||sB(0x439);}var Au={0x12e:'ENVMAP_MODE_REFRACTION'};function ju(a4){return a4['envMap']===!0x1?'ENVMAP_MODE_REFLECTION':Au[a4['envMapMode']]||'ENVMAP_MODE_REFLECTION';}var Mu={0x0:d4(0x167),0x1:'ENVMAP_BLENDING_MIX',0x2:d4(0x172)};function Nu(a4){return a4['envMap']===!0x1?'ENVMAP_BLENDING_NONE':Mu[a4['combine']]||'ENVMAP_BLENDING_NONE';}function Pu(a4){const sC=d4;let a5=a4[sC(0x114)];if(a5===null)return null;let a6=Math['log2'](a5)-0x2,a7=0x1/a5;return{'texelWidth':0x1/(0x3*Math['max'](Math['pow'](0x2,a6),0x70)),'texelHeight':a7,'maxMip':a6};}function Fu(a4,a5,a6,a7){const sD=d4;let a8=a4['getContext'](),a9=a6[sD(0x54b)],ab=a6[sD(0x111)],af=a6[sD(0xaf)],ag=Du(a6),ah=ku(a6),aj=ju(a6),ak=Nu(a6),am=Pu(a6),ap=fu(a6),aq=pu(a9),av=a8['createProgram'](),aw,ax,ay=a6['glslVersion']?'#version\x20'+a6['glslVersion']+'\x0a':'';a6['isRawShaderMaterial']?(aw=['#define\x20SHADER_TYPE\x20'+a6['shaderType'],'#define\x20SHADER_NAME\x20'+a6['shaderName'],aq]['filter'](hu)['join']('\x0a'),aw['length']>0x0&&(aw+='\x0a'),ax=['#define\x20SHADER_TYPE\x20'+a6['shaderType'],'#define\x20SHADER_NAME\x20'+a6['shaderName'],aq]['filter'](hu)['join']('\x0a'),ax['length']>0x0&&(ax+='\x0a')):(aw=[Tu(a6),sD(0x41a)+a6['shaderType'],sD(0x392)+a6['shaderName'],aq,a6['extensionClipCullDistance']?'#define\x20USE_CLIP_DISTANCE':'',a6[sD(0x52e)]?sD(0x52c):'',a6[sD(0x3af)]?'#define\x20USE_BATCHING_COLOR':'',a6[sD(0x1be)]?'#define\x20USE_INSTANCING':'',a6['instancingColor']?'#define\x20USE_INSTANCING_COLOR':'',a6['instancingMorph']?'#define\x20USE_INSTANCING_MORPH':'',a6['useFog']&&a6[sD(0x4e3)]?'#define\x20USE_FOG':'',a6[sD(0x54a)]&&a6[sD(0x35f)]?sD(0x2a6):'',a6[sD(0x146)]?'#define\x20USE_MAP':'',a6[sD(0x492)]?sD(0x1b9):'',a6['envMap']?sD(0x1f8)+aj:'',a6[sD(0x401)]?'#define\x20USE_LIGHTMAP':'',a6['aoMap']?'#define\x20USE_AOMAP':'',a6['bumpMap']?sD(0x1fa):'',a6['normalMap']?sD(0x589):'',a6['normalMapObjectSpace']?'#define\x20USE_NORMALMAP_OBJECTSPACE':'',a6['normalMapTangentSpace']?'#define\x20USE_NORMALMAP_TANGENTSPACE':'',a6[sD(0x9e)]?'#define\x20USE_DISPLACEMENTMAP':'',a6['emissiveMap']?'#define\x20USE_EMISSIVEMAP':'',a6[sD(0x238)]?'#define\x20USE_ANISOTROPY':'',a6['anisotropyMap']?'#define\x20USE_ANISOTROPYMAP':'',a6['clearcoatMap']?sD(0x268):'',a6['clearcoatRoughnessMap']?'#define\x20USE_CLEARCOAT_ROUGHNESSMAP':'',a6['clearcoatNormalMap']?'#define\x20USE_CLEARCOAT_NORMALMAP':'',a6[sD(0x4df)]?'#define\x20USE_IRIDESCENCEMAP':'',a6['iridescenceThicknessMap']?'#define\x20USE_IRIDESCENCE_THICKNESSMAP':'',a6['specularMap']?'#define\x20USE_SPECULARMAP':'',a6[sD(0xff)]?'#define\x20USE_SPECULAR_COLORMAP':'',a6[sD(0x3eb)]?'#define\x20USE_SPECULAR_INTENSITYMAP':'',a6['roughnessMap']?'#define\x20USE_ROUGHNESSMAP':'',a6['metalnessMap']?sD(0x36a):'',a6[sD(0xed)]?'#define\x20USE_ALPHAMAP':'',a6['alphaHash']?'#define\x20USE_ALPHAHASH':'',a6['transmission']?'#define\x20USE_TRANSMISSION':'',a6['transmissionMap']?'#define\x20USE_TRANSMISSIONMAP':'',a6['thicknessMap']?'#define\x20USE_THICKNESSMAP':'',a6['sheenColorMap']?'#define\x20USE_SHEEN_COLORMAP':'',a6['sheenRoughnessMap']?'#define\x20USE_SHEEN_ROUGHNESSMAP':'',a6['mapUv']?'#define\x20MAP_UV\x20'+a6[sD(0x2bf)]:'',a6['alphaMapUv']?'#define\x20ALPHAMAP_UV\x20'+a6[sD(0x2d6)]:'',a6['lightMapUv']?sD(0x5a3)+a6['lightMapUv']:'',a6['aoMapUv']?'#define\x20AOMAP_UV\x20'+a6['aoMapUv']:'',a6['emissiveMapUv']?'#define\x20EMISSIVEMAP_UV\x20'+a6['emissiveMapUv']:'',a6['bumpMapUv']?'#define\x20BUMPMAP_UV\x20'+a6['bumpMapUv']:'',a6['normalMapUv']?sD(0x50b)+a6['normalMapUv']:'',a6['displacementMapUv']?'#define\x20DISPLACEMENTMAP_UV\x20'+a6['displacementMapUv']:'',a6['metalnessMapUv']?'#define\x20METALNESSMAP_UV\x20'+a6['metalnessMapUv']:'',a6['roughnessMapUv']?'#define\x20ROUGHNESSMAP_UV\x20'+a6['roughnessMapUv']:'',a6['anisotropyMapUv']?'#define\x20ANISOTROPYMAP_UV\x20'+a6['anisotropyMapUv']:'',a6['clearcoatMapUv']?'#define\x20CLEARCOATMAP_UV\x20'+a6['clearcoatMapUv']:'',a6['clearcoatNormalMapUv']?'#define\x20CLEARCOAT_NORMALMAP_UV\x20'+a6['clearcoatNormalMapUv']:'',a6['clearcoatRoughnessMapUv']?'#define\x20CLEARCOAT_ROUGHNESSMAP_UV\x20'+a6[sD(0x1e0)]:'',a6['iridescenceMapUv']?'#define\x20IRIDESCENCEMAP_UV\x20'+a6['iridescenceMapUv']:'',a6['iridescenceThicknessMapUv']?'#define\x20IRIDESCENCE_THICKNESSMAP_UV\x20'+a6['iridescenceThicknessMapUv']:'',a6['sheenColorMapUv']?'#define\x20SHEEN_COLORMAP_UV\x20'+a6['sheenColorMapUv']:'',a6['sheenRoughnessMapUv']?'#define\x20SHEEN_ROUGHNESSMAP_UV\x20'+a6['sheenRoughnessMapUv']:'',a6['specularMapUv']?sD(0x398)+a6['specularMapUv']:'',a6['specularColorMapUv']?'#define\x20SPECULAR_COLORMAP_UV\x20'+a6['specularColorMapUv']:'',a6['specularIntensityMapUv']?'#define\x20SPECULAR_INTENSITYMAP_UV\x20'+a6['specularIntensityMapUv']:'',a6['transmissionMapUv']?sD(0x1b5)+a6['transmissionMapUv']:'',a6[sD(0x463)]?'#define\x20THICKNESSMAP_UV\x20'+a6['thicknessMapUv']:'',a6[sD(0xf8)]&&a6[sD(0x153)]===!0x1?'#define\x20USE_TANGENT':'',a6[sD(0x25c)]?'#define\x20HAS_NORMAL':'',a6[sD(0x233)]?'#define\x20USE_COLOR':'',a6['vertexAlphas']?'#define\x20USE_COLOR_ALPHA':'',a6['vertexUv1s']?sD(0xef):'',a6['vertexUv2s']?'#define\x20USE_UV2':'',a6[sD(0x152)]?'#define\x20USE_UV3':'',a6['pointsUvs']?'#define\x20USE_POINTS_UV':'',a6['flatShading']?'#define\x20FLAT_SHADED':'',a6['skinning']?'#define\x20USE_SKINNING':'',a6['morphTargets']?'#define\x20USE_MORPHTARGETS':'',a6['morphNormals']&&a6['flatShading']===!0x1?sD(0x276):'',a6['morphColors']?sD(0xba):'',a6['morphTargetsCount']>0x0?sD(0x43d)+a6['morphTextureStride']:'',a6['morphTargetsCount']>0x0?'#define\x20MORPHTARGETS_COUNT\x20'+a6['morphTargetsCount']:'',a6['doubleSided']?'#define\x20DOUBLE_SIDED':'',a6['flipSided']?'#define\x20FLIP_SIDED':'',a6['shadowMapEnabled']?'#define\x20USE_SHADOWMAP':'',a6[sD(0x46c)]?sD(0x1f8)+ag:'',a6['sizeAttenuation']?'#define\x20USE_SIZEATTENUATION':'',a6['numLightProbes']>0x0?sD(0x2ab):'',a6['logarithmicDepthBuffer']?'#define\x20USE_LOGARITHMIC_DEPTH_BUFFER':'',a6['reversedDepthBuffer']?'#define\x20USE_REVERSED_DEPTH_BUFFER':'','uniform\x20mat4\x20modelMatrix;','uniform\x20mat4\x20modelViewMatrix;','uniform\x20mat4\x20projectionMatrix;','uniform\x20mat4\x20viewMatrix;',sD(0x32b),'uniform\x20vec3\x20cameraPosition;','uniform\x20bool\x20isOrthographic;','#ifdef\x20USE_INSTANCING','\x09attribute\x20mat4\x20instanceMatrix;','#endif','#ifdef\x20USE_INSTANCING_COLOR','\x09attribute\x20vec3\x20instanceColor;','#endif','#ifdef\x20USE_INSTANCING_MORPH','\x09uniform\x20sampler2D\x20morphTexture;','#endif',sD(0x519),'attribute\x20vec3\x20normal;','attribute\x20vec2\x20uv;','#ifdef\x20USE_UV1',sD(0x454),'#endif','#ifdef\x20USE_UV2','\x09attribute\x20vec2\x20uv2;',sD(0x451),'#ifdef\x20USE_UV3','\x09attribute\x20vec2\x20uv3;','#endif','#ifdef\x20USE_TANGENT','\x09attribute\x20vec4\x20tangent;','#endif','#if\x20defined(\x20USE_COLOR_ALPHA\x20)','\x09attribute\x20vec4\x20color;','#elif\x20defined(\x20USE_COLOR\x20)',sD(0x36f),'#endif','#ifdef\x20USE_SKINNING','\x09attribute\x20vec4\x20skinIndex;','\x09attribute\x20vec4\x20skinWeight;','#endif','\x0a']['filter'](hu)['join']('\x0a'),ax=[Tu(a6),'#define\x20SHADER_TYPE\x20'+a6['shaderType'],sD(0x392)+a6[sD(0x15c)],aq,a6['useFog']&&a6['fog']?sD(0x280):'',a6['useFog']&&a6[sD(0x35f)]?sD(0x2a6):'',a6['alphaToCoverage']?'#define\x20ALPHA_TO_COVERAGE':'',a6['map']?'#define\x20USE_MAP':'',a6['matcap']?'#define\x20USE_MATCAP':'',a6['envMap']?sD(0x1b9):'',a6[sD(0x492)]?'#define\x20'+ah:'',a6['envMap']?'#define\x20'+aj:'',a6['envMap']?'#define\x20'+ak:'',am?sD(0x1db)+am['texelWidth']:'',am?'#define\x20CUBEUV_TEXEL_HEIGHT\x20'+am['texelHeight']:'',am?'#define\x20CUBEUV_MAX_MIP\x20'+am[sD(0x50d)]+'.0':'',a6[sD(0x401)]?'#define\x20USE_LIGHTMAP':'',a6[sD(0x219)]?'#define\x20USE_AOMAP':'',a6['bumpMap']?'#define\x20USE_BUMPMAP':'',a6['normalMap']?'#define\x20USE_NORMALMAP':'',a6['normalMapObjectSpace']?sD(0x4fe):'',a6['normalMapTangentSpace']?'#define\x20USE_NORMALMAP_TANGENTSPACE':'',a6['packedNormalMap']?'#define\x20USE_PACKED_NORMALMAP':'',a6['emissiveMap']?sD(0x596):'',a6['anisotropy']?'#define\x20USE_ANISOTROPY':'',a6['anisotropyMap']?'#define\x20USE_ANISOTROPYMAP':'',a6['clearcoat']?'#define\x20USE_CLEARCOAT':'',a6['clearcoatMap']?'#define\x20USE_CLEARCOATMAP':'',a6['clearcoatRoughnessMap']?'#define\x20USE_CLEARCOAT_ROUGHNESSMAP':'',a6['clearcoatNormalMap']?'#define\x20USE_CLEARCOAT_NORMALMAP':'',a6[sD(0x46e)]?'#define\x20USE_DISPERSION':'',a6['iridescence']?'#define\x20USE_IRIDESCENCE':'',a6['iridescenceMap']?'#define\x20USE_IRIDESCENCEMAP':'',a6['iridescenceThicknessMap']?sD(0x490):'',a6['specularMap']?'#define\x20USE_SPECULARMAP':'',a6['specularColorMap']?'#define\x20USE_SPECULAR_COLORMAP':'',a6['specularIntensityMap']?'#define\x20USE_SPECULAR_INTENSITYMAP':'',a6['roughnessMap']?'#define\x20USE_ROUGHNESSMAP':'',a6['metalnessMap']?'#define\x20USE_METALNESSMAP':'',a6['alphaMap']?'#define\x20USE_ALPHAMAP':'',a6['alphaTest']?'#define\x20USE_ALPHATEST':'',a6['alphaHash']?'#define\x20USE_ALPHAHASH':'',a6['sheen']?'#define\x20USE_SHEEN':'',a6['sheenColorMap']?'#define\x20USE_SHEEN_COLORMAP':'',a6['sheenRoughnessMap']?sD(0x3bb):'',a6['transmission']?'#define\x20USE_TRANSMISSION':'',a6['transmissionMap']?sD(0x1e1):'',a6[sD(0x3b0)]?'#define\x20USE_THICKNESSMAP':'',a6[sD(0xf8)]&&a6['flatShading']===!0x1?'#define\x20USE_TANGENT':'',a6['vertexColors']||a6['instancingColor']?'#define\x20USE_COLOR':'',a6['vertexAlphas']||a6['batchingColor']?'#define\x20USE_COLOR_ALPHA':'',a6['vertexUv1s']?'#define\x20USE_UV1':'',a6['vertexUv2s']?'#define\x20USE_UV2':'',a6['vertexUv3s']?'#define\x20USE_UV3':'',a6['pointsUvs']?'#define\x20USE_POINTS_UV':'',a6['gradientMap']?'#define\x20USE_GRADIENTMAP':'',a6['flatShading']?sD(0x55b):'',a6['doubleSided']?sD(0x49d):'',a6['flipSided']?'#define\x20FLIP_SIDED':'',a6['shadowMapEnabled']?sD(0x84):'',a6[sD(0x46c)]?'#define\x20'+ag:'',a6[sD(0x542)]?'#define\x20PREMULTIPLIED_ALPHA':'',a6['numLightProbes']>0x0?'#define\x20USE_LIGHT_PROBES':'',a6['numLightProbeGrids']>0x0?'#define\x20USE_LIGHT_PROBES_GRID':'',a6['decodeVideoTexture']?'#define\x20DECODE_VIDEO_TEXTURE':'',a6['decodeVideoTextureEmissive']?sD(0x2e7):'',a6[sD(0xa7)]?'#define\x20USE_LOGARITHMIC_DEPTH_BUFFER':'',a6[sD(0x298)]?sD(0x326):'','uniform\x20mat4\x20viewMatrix;','uniform\x20vec3\x20cameraPosition;','uniform\x20bool\x20isOrthographic;',a6['toneMapping']===0x0?'':sD(0x49a),a6['toneMapping']===0x0?'':Q['tonemapping_pars_fragment'],a6['toneMapping']===0x0?'':lu('toneMapping',a6['toneMapping']),a6['dithering']?'#define\x20DITHERING':'',a6['opaque']?'#define\x20OPAQUE':'',Q[sD(0x127)],su('linearToOutputTexel',a6[sD(0x459)]),du(),a6['useDepthPacking']?'#define\x20DEPTH_PACKING\x20'+a6[sD(0xf9)]:'','\x0a']['filter'](hu)['join']('\x0a')),ab=yu(ab),ab=gu(ab,a6),ab=_u(ab,a6),af=yu(af),af=gu(af,a6),af=_u(af,a6),ab=Cu(ab),af=Cu(af),a6['isRawShaderMaterial']!==!0x0&&(ay='#version\x20300\x20es\x0a',aw=[ap,sD(0x536),'#define\x20varying\x20out','#define\x20texture2D\x20texture'][sD(0x558)]('\x0a')+'\x0a'+aw,ax=['#define\x20varying\x20in',a6['glslVersion']==='300\x20es'?'':'layout(location\x20=\x200)\x20out\x20highp\x20vec4\x20pc_fragColor;',a6['glslVersion']===sD(0x370)?'':'#define\x20gl_FragColor\x20pc_fragColor',sD(0x2b5),sD(0x217),'#define\x20textureCube\x20texture',sD(0x518),'#define\x20texture2DLodEXT\x20textureLod','#define\x20texture2DProjLodEXT\x20textureProjLod',sD(0x12f),'#define\x20texture2DGradEXT\x20textureGrad',sD(0x38f),'#define\x20textureCubeGradEXT\x20textureGrad']['join']('\x0a')+'\x0a'+ax);let az=ay+aw+ab,aA=ay+ax+af,aB=eu(a8,a8[sD(0x59e)],az),aC=eu(a8,a8[sD(0x19d)],aA);a8['attachShader'](av,aB),a8['attachShader'](av,aC),a6['index0AttributeName']===void 0x0?a6['morphTargets']===!0x0&&a8['bindAttribLocation'](av,0x0,'position'):a8['bindAttribLocation'](av,0x0,a6['index0AttributeName']),a8['linkProgram'](av);function aD(aH){const sE=sD;if(a4['debug']['checkShaderErrors']){let aI=a8['getProgramInfoLog'](av)||'',aJ=a8['getShaderInfoLog'](aB)||'',aK=a8['getShaderInfoLog'](aC)||'',aL=aI['trim'](),aM=aJ['trim'](),aN=aK['trim'](),aO=!0x0,aP=!0x0;if(a8['getProgramParameter'](av,a8['LINK_STATUS'])===!0x1){if(aO=!0x1,typeof a4['debug']['onShaderError']=='function')a4['debug']['onShaderError'](a8,av,aB,aC);else{let aQ=ou(a8,aB,sE(0x28d)),aR=ou(a8,aC,sE(0x58e));B('THREE.WebGLProgram:\x20Shader\x20Error\x20'+a8['getError']()+'\x20-\x20VALIDATE_STATUS\x20'+a8['getProgramParameter'](av,a8['VALIDATE_STATUS'])+sE(0x436)+aH[sE(0x3a8)]+'\x0aMaterial\x20Type:\x20'+aH['type']+'\x0a\x0aProgram\x20Info\x20Log:\x20'+aL+'\x0a'+aQ+'\x0a'+aR);}}else aL===''?(aM===''||aN==='')&&(aP=!0x1):z('WebGLProgram:\x20Program\x20Info\x20Log:',aL);aP&&(aH[sE(0x320)]={'runnable':aO,'programLog':aL,'vertexShader':{'log':aM,'prefix':aw},'fragmentShader':{'log':aN,'prefix':ax}});}a8['deleteShader'](aB),a8['deleteShader'](aC),aE=new $l(a8,av),aF=mu(a8,av);}let aE;this[sD(0x524)]=function(){return aE===void 0x0&&aD(this),aE;};let aF;this['getAttributes']=function(){return aF===void 0x0&&aD(this),aF;};let aG=a6['rendererExtensionParallelShaderCompile']===!0x1;return this['isReady']=function(){const sF=sD;return aG===!0x1&&(aG=a8[sF(0x12e)](av,tu)),aG;},this['destroy']=function(){a7['releaseStatesOfProgram'](this),a8['deleteProgram'](av),this['program']=void 0x0;},this[sD(0x40b)]=a6['shaderType'],this['name']=a6[sD(0x15c)],this['id']=nu++,this[sD(0x2b1)]=a5,this['usedTimes']=0x1,this['program']=av,this['vertexShader']=aB,this['fragmentShader']=aC,this;}var Iu=0x0,Lu=class{constructor(){const sG=d4;this[sG(0x5a1)]=new Map(),this['materialCache']=new Map();}[d4(0x246)](a4){const sH=d4;let a5=a4['vertexShader'],a6=a4['fragmentShader'],a7=this['_getShaderStage'](a5),a8=this[sH(0x4ed)](a6),a9=this['_getShaderCacheForMaterial'](a4);return a9['has'](a7)===!0x1&&(a9['add'](a7),a7[sH(0x247)]++),a9['has'](a8)===!0x1&&(a9['add'](a8),a8['usedTimes']++),this;}['remove'](a4){const sI=d4;let a5=this['materialCache']['get'](a4);for(let a6 of a5)a6['usedTimes']--,a6['usedTimes']===0x0&&this['shaderCache']['delete'](a6['code']);return this['materialCache'][sI(0xa1)](a4),this;}['getVertexShaderID'](a4){return this['_getShaderStage'](a4['vertexShader'])['id'];}['getFragmentShaderID'](a4){const sJ=d4;return this['_getShaderStage'](a4[sJ(0xaf)])['id'];}[d4(0x365)](){this['shaderCache']['clear'](),this['materialCache']['clear']();}['_getShaderCacheForMaterial'](a4){const sK=d4;let a5=this['materialCache'],a6=a5['get'](a4);return a6===void 0x0&&(a6=new Set(),a5[sK(0x479)](a4,a6)),a6;}['_getShaderStage'](a4){const sL=d4;let a5=this[sL(0x5a1)],a6=a5[sL(0x2f1)](a4);return a6===void 0x0&&(a6=new Ru(a4),a5['set'](a4,a6)),a6;}},Ru=class{constructor(a4){this['id']=Iu++,this['code']=a4,this['usedTimes']=0x0;}};function zu(a4){return a4===0x406||a4===0x9272||a4===0x8dbd;}function Bu(a4,a5,a6,a7,a8,a9){const sM=d4;let ab=new Tn(),af=new Lu(),ag=new Set(),ah=[],aj=new Map(),ak=a7[sM(0xa7)],am=a7[sM(0x3ef)],ap={'MeshDepthMaterial':sM(0x11c),'MeshDistanceMaterial':'distance','MeshNormalMaterial':sM(0x264),'MeshBasicMaterial':'basic','MeshLambertMaterial':'lambert','MeshPhongMaterial':'phong','MeshToonMaterial':'toon','MeshStandardMaterial':'physical','MeshPhysicalMaterial':'physical','MeshMatcapMaterial':'matcap','LineBasicMaterial':sM(0x189),'LineDashedMaterial':'dashed','PointsMaterial':'points','ShadowMaterial':'shadow','SpriteMaterial':'sprite'};function aq(aE){return ag['add'](aE),aE===0x0?'uv':'uv'+aE;}function av(aE,aF,aG,aH,aI,aJ){const sN=sM;let aK=aH[sN(0x4e3)],aL=aI['geometry'],aM=aE['isMeshStandardMaterial']||aE[sN(0x342)]||aE[sN(0x225)]?aH['environment']:null,aN=aE[sN(0x317)]||aE['isMeshLambertMaterial']&&!aE['envMap']||aE['isMeshPhongMaterial']&&!aE['envMap'],aO=a5['get'](aE['envMap']||aM,aN),aP=aO&&aO['mapping']===0x132?aO['image'][sN(0x45f)]:null,aQ=ap[aE['type']];aE['precision']!==null&&(am=a7['getMaxPrecision'](aE['precision']),am!==aE['precision']&&z(sN(0x19c),aE['precision'],sN(0x471),am,'instead.'));let aR=aL[sN(0x1d7)]['position']||aL['morphAttributes']['normal']||aL[sN(0x1d7)]['color'],aS=aR===void 0x0?0x0:aR['length'],aT=0x0;aL['morphAttributes'][sN(0x478)]!==void 0x0&&(aT=0x1),aL['morphAttributes']['normal']!==void 0x0&&(aT=0x2),aL[sN(0x1d7)]['color']!==void 0x0&&(aT=0x3);let aU,aV,aW,aX;if(aQ){let bP=cc[aQ];aU=bP['vertexShader'],aV=bP['fragmentShader'];}else aU=aE[sN(0x111)],aV=aE['fragmentShader'],af['update'](aE),aW=af['getVertexShaderID'](aE),aX=af['getFragmentShaderID'](aE);let aY=a4[sN(0x100)](),aZ=a4[sN(0x184)][sN(0x57e)]['depth']['getReversed'](),b0=aI['isInstancedMesh']===!0x0,b1=aI['isBatchedMesh']===!0x0,b2=!!aE[sN(0x146)],b3=!!aE['matcap'],b4=!!aO,b5=!!aE['aoMap'],b6=!!aE['lightMap'],b7=!!aE['bumpMap'],b8=!!aE['normalMap'],b9=!!aE['displacementMap'],bb=!!aE['emissiveMap'],bf=!!aE['metalnessMap'],bg=!!aE[sN(0x354)],bh=aE[sN(0x238)]>0x0,bj=aE['clearcoat']>0x0,bk=aE['dispersion']>0x0,bm=aE['iridescence']>0x0,bp=aE['sheen']>0x0,bq=aE['transmission']>0x0,bv=bh&&!!aE['anisotropyMap'],bw=bj&&!!aE[sN(0x557)],bx=bj&&!!aE['clearcoatNormalMap'],by=bj&&!!aE['clearcoatRoughnessMap'],bz=bm&&!!aE['iridescenceMap'],bA=bm&&!!aE['iridescenceThicknessMap'],bB=bp&&!!aE['sheenColorMap'],bC=bp&&!!aE[sN(0x119)],bD=!!aE['specularMap'],bE=!!aE['specularColorMap'],bF=!!aE[sN(0x3eb)],bG=bq&&!!aE['transmissionMap'],bH=bq&&!!aE['thicknessMap'],bI=!!aE[sN(0x550)],bJ=!!aE[sN(0xed)],bK=aE['alphaTest']>0x0,bL=!!aE[sN(0x32d)],bM=!!aE['extensions'],bN=0x0;aE['toneMapped']&&(aY===null||aY[sN(0x34a)]===!0x0)&&(bN=a4['toneMapping']);let bO={'shaderID':aQ,'shaderType':aE['type'],'shaderName':aE['name'],'vertexShader':aU,'fragmentShader':aV,'defines':aE['defines'],'customVertexShaderID':aW,'customFragmentShaderID':aX,'isRawShaderMaterial':aE[sN(0x208)]===!0x0,'glslVersion':aE['glslVersion'],'precision':am,'batching':b1,'batchingColor':b1&&aI['_colorsTexture']!==null,'instancing':b0,'instancingColor':b0&&aI['instanceColor']!==null,'instancingMorph':b0&&aI['morphTexture']!==null,'outputColorSpace':aY===null?a4['outputColorSpace']:aY['isXRRenderTarget']===!0x0?aY['texture']['colorSpace']:K['workingColorSpace'],'alphaToCoverage':!!aE['alphaToCoverage'],'map':b2,'matcap':b3,'envMap':b4,'envMapMode':b4&&aO[sN(0x23a)],'envMapCubeUVHeight':aP,'aoMap':b5,'lightMap':b6,'bumpMap':b7,'normalMap':b8,'displacementMap':b9,'emissiveMap':bb,'normalMapObjectSpace':b8&&aE['normalMapType']===0x1,'normalMapTangentSpace':b8&&aE['normalMapType']===0x0,'packedNormalMap':b8&&aE['normalMapType']===0x0&&zu(aE['normalMap'][sN(0x196)]),'metalnessMap':bf,'roughnessMap':bg,'anisotropy':bh,'anisotropyMap':bv,'clearcoat':bj,'clearcoatMap':bw,'clearcoatNormalMap':bx,'clearcoatRoughnessMap':by,'dispersion':bk,'iridescence':bm,'iridescenceMap':bz,'iridescenceThicknessMap':bA,'sheen':bp,'sheenColorMap':bB,'sheenRoughnessMap':bC,'specularMap':bD,'specularColorMap':bE,'specularIntensityMap':bF,'transmission':bq,'transmissionMap':bG,'thicknessMap':bH,'gradientMap':bI,'opaque':aE['transparent']===!0x1&&aE['blending']===0x1&&aE['alphaToCoverage']===!0x1,'alphaMap':bJ,'alphaTest':bK,'alphaHash':bL,'combine':aE['combine'],'mapUv':b2&&aq(aE['map']['channel']),'aoMapUv':b5&&aq(aE['aoMap'][sN(0x399)]),'lightMapUv':b6&&aq(aE['lightMap']['channel']),'bumpMapUv':b7&&aq(aE[sN(0x3dc)]['channel']),'normalMapUv':b8&&aq(aE['normalMap']['channel']),'displacementMapUv':b9&&aq(aE['displacementMap']['channel']),'emissiveMapUv':bb&&aq(aE['emissiveMap']['channel']),'metalnessMapUv':bf&&aq(aE[sN(0x241)]['channel']),'roughnessMapUv':bg&&aq(aE['roughnessMap'][sN(0x399)]),'anisotropyMapUv':bv&&aq(aE['anisotropyMap']['channel']),'clearcoatMapUv':bw&&aq(aE['clearcoatMap'][sN(0x399)]),'clearcoatNormalMapUv':bx&&aq(aE['clearcoatNormalMap']['channel']),'clearcoatRoughnessMapUv':by&&aq(aE['clearcoatRoughnessMap']['channel']),'iridescenceMapUv':bz&&aq(aE['iridescenceMap'][sN(0x399)]),'iridescenceThicknessMapUv':bA&&aq(aE['iridescenceThicknessMap']['channel']),'sheenColorMapUv':bB&&aq(aE[sN(0x329)]['channel']),'sheenRoughnessMapUv':bC&&aq(aE['sheenRoughnessMap']['channel']),'specularMapUv':bD&&aq(aE['specularMap']['channel']),'specularColorMapUv':bE&&aq(aE['specularColorMap']['channel']),'specularIntensityMapUv':bF&&aq(aE['specularIntensityMap']['channel']),'transmissionMapUv':bG&&aq(aE['transmissionMap']['channel']),'thicknessMapUv':bH&&aq(aE[sN(0x3b0)]['channel']),'alphaMapUv':bJ&&aq(aE['alphaMap'][sN(0x399)]),'vertexTangents':!!aL[sN(0xab)]['tangent']&&(b8||bh),'vertexNormals':!!aL['attributes']['normal'],'vertexColors':aE['vertexColors'],'vertexAlphas':aE['vertexColors']===!0x0&&!!aL['attributes']['color']&&aL['attributes'][sN(0x379)]['itemSize']===0x4,'pointsUvs':aI['isPoints']===!0x0&&!!aL[sN(0xab)]['uv']&&(b2||bJ),'fog':!!aK,'useFog':aE['fog']===!0x0,'fogExp2':!!aK&&aK[sN(0x388)],'flatShading':aE['wireframe']===!0x1&&(aE['flatShading']===!0x0||aL['attributes'][sN(0x264)]===void 0x0&&b8===!0x1&&(aE['isMeshLambertMaterial']||aE[sN(0x225)]||aE[sN(0x317)]||aE[sN(0x4a1)])),'sizeAttenuation':aE['sizeAttenuation']===!0x0,'logarithmicDepthBuffer':ak,'reversedDepthBuffer':aZ,'skinning':aI['isSkinnedMesh']===!0x0,'morphTargets':aL['morphAttributes']['position']!==void 0x0,'morphNormals':aL['morphAttributes']['normal']!==void 0x0,'morphColors':aL['morphAttributes']['color']!==void 0x0,'morphTargetsCount':aS,'morphTextureStride':aT,'numDirLights':aF[sN(0x464)]['length'],'numPointLights':aF['point']['length'],'numSpotLights':aF['spot']['length'],'numSpotLightMaps':aF['spotLightMap']['length'],'numRectAreaLights':aF['rectArea']['length'],'numHemiLights':aF[sN(0x468)][sN(0x27a)],'numDirLightShadows':aF['directionalShadowMap']['length'],'numPointLightShadows':aF['pointShadowMap']['length'],'numSpotLightShadows':aF['spotShadowMap']['length'],'numSpotLightShadowsWithMaps':aF['numSpotLightShadowsWithMaps'],'numLightProbes':aF['numLightProbes'],'numLightProbeGrids':aJ['length'],'numClippingPlanes':a9['numPlanes'],'numClipIntersection':a9[sN(0x4a9)],'dithering':aE['dithering'],'shadowMapEnabled':a4['shadowMap']['enabled']&&aG['length']>0x0,'shadowMapType':a4['shadowMap']['type'],'toneMapping':bN,'decodeVideoTexture':b2&&aE['map']['isVideoTexture']===!0x0&&K['getTransfer'](aE[sN(0x146)]['colorSpace'])==='srgb','decodeVideoTextureEmissive':bb&&aE['emissiveMap']['isVideoTexture']===!0x0&&K[sN(0x486)](aE['emissiveMap']['colorSpace'])==='srgb','premultipliedAlpha':aE['premultipliedAlpha'],'doubleSided':aE['side']===0x2,'flipSided':aE['side']===0x1,'useDepthPacking':aE[sN(0xf9)]>=0x0,'depthPacking':aE['depthPacking']||0x0,'index0AttributeName':aE['index0AttributeName'],'extensionClipCullDistance':bM&&aE['extensions']['clipCullDistance']===!0x0&&a6['has']('WEBGL_clip_cull_distance'),'extensionMultiDraw':(bM&&aE['extensions']['multiDraw']===!0x0||b1)&&a6['has']('WEBGL_multi_draw'),'rendererExtensionParallelShaderCompile':a6['has']('KHR_parallel_shader_compile'),'customProgramCacheKey':aE['customProgramCacheKey']()};return bO['vertexUv1s']=ag['has'](0x1),bO['vertexUv2s']=ag['has'](0x2),bO['vertexUv3s']=ag['has'](0x3),ag['clear'](),bO;}function aw(aE){const sO=sM;let aF=[];if(aE['shaderID']?aF['push'](aE['shaderID']):(aF['push'](aE['customVertexShaderID']),aF[sO(0x403)](aE['customFragmentShaderID'])),aE[sO(0x54b)]!==void 0x0){for(let aG in aE['defines'])aF[sO(0x403)](aG),aF['push'](aE['defines'][aG]);}return aE['isRawShaderMaterial']===!0x1&&(ax(aF,aE),ay(aF,aE),aF['push'](a4[sO(0x459)])),aF['push'](aE['customProgramCacheKey']),aF['join']();}function ax(aE,aF){const sP=sM;aE[sP(0x403)](aF['precision']),aE['push'](aF['outputColorSpace']),aE[sP(0x403)](aF[sP(0x3e8)]),aE['push'](aF['envMapCubeUVHeight']),aE['push'](aF['mapUv']),aE['push'](aF['alphaMapUv']),aE['push'](aF['lightMapUv']),aE['push'](aF['aoMapUv']),aE['push'](aF['bumpMapUv']),aE['push'](aF[sP(0x429)]),aE['push'](aF[sP(0x80)]),aE['push'](aF['emissiveMapUv']),aE['push'](aF['metalnessMapUv']),aE['push'](aF['roughnessMapUv']),aE[sP(0x403)](aF['anisotropyMapUv']),aE['push'](aF['clearcoatMapUv']),aE['push'](aF['clearcoatNormalMapUv']),aE['push'](aF['clearcoatRoughnessMapUv']),aE['push'](aF[sP(0x38c)]),aE['push'](aF['iridescenceThicknessMapUv']),aE['push'](aF['sheenColorMapUv']),aE['push'](aF['sheenRoughnessMapUv']),aE[sP(0x403)](aF['specularMapUv']),aE[sP(0x403)](aF['specularColorMapUv']),aE['push'](aF['specularIntensityMapUv']),aE['push'](aF['transmissionMapUv']),aE['push'](aF['thicknessMapUv']),aE['push'](aF['combine']),aE['push'](aF['fogExp2']),aE[sP(0x403)](aF['sizeAttenuation']),aE[sP(0x403)](aF['morphTargetsCount']),aE['push'](aF['morphAttributeCount']),aE['push'](aF['numDirLights']),aE['push'](aF['numPointLights']),aE['push'](aF['numSpotLights']),aE['push'](aF['numSpotLightMaps']),aE['push'](aF['numHemiLights']),aE['push'](aF[sP(0x252)]),aE[sP(0x403)](aF['numDirLightShadows']),aE['push'](aF['numPointLightShadows']),aE['push'](aF['numSpotLightShadows']),aE['push'](aF['numSpotLightShadowsWithMaps']),aE['push'](aF['numLightProbes']),aE['push'](aF[sP(0x515)]),aE['push'](aF['toneMapping']),aE['push'](aF['numClippingPlanes']),aE['push'](aF[sP(0x462)]),aE['push'](aF['depthPacking']);}function ay(aE,aF){const sQ=sM;ab['disableAll'](),aF[sQ(0x1be)]&&ab[sQ(0x575)](0x0),aF['instancingColor']&&ab['enable'](0x1),aF['instancingMorph']&&ab[sQ(0x575)](0x2),aF['matcap']&&ab['enable'](0x3),aF['envMap']&&ab['enable'](0x4),aF['normalMapObjectSpace']&&ab['enable'](0x5),aF[sQ(0x39f)]&&ab['enable'](0x6),aF['clearcoat']&&ab['enable'](0x7),aF['iridescence']&&ab['enable'](0x8),aF['alphaTest']&&ab['enable'](0x9),aF['vertexColors']&&ab['enable'](0xa),aF['vertexAlphas']&&ab[sQ(0x575)](0xb),aF['vertexUv1s']&&ab[sQ(0x575)](0xc),aF['vertexUv2s']&&ab['enable'](0xd),aF[sQ(0x152)]&&ab[sQ(0x575)](0xe),aF['vertexTangents']&&ab['enable'](0xf),aF[sQ(0x238)]&&ab['enable'](0x10),aF[sQ(0x32d)]&&ab['enable'](0x11),aF['batching']&&ab['enable'](0x12),aF['dispersion']&&ab['enable'](0x13),aF['batchingColor']&&ab[sQ(0x575)](0x14),aF['gradientMap']&&ab['enable'](0x15),aF['packedNormalMap']&&ab['enable'](0x16),aF['vertexNormals']&&ab['enable'](0x17),aE[sQ(0x403)](ab['mask']),ab[sQ(0x43f)](),aF['fog']&&ab[sQ(0x575)](0x0),aF[sQ(0x54a)]&&ab[sQ(0x575)](0x1),aF['flatShading']&&ab[sQ(0x575)](0x2),aF['logarithmicDepthBuffer']&&ab['enable'](0x3),aF['reversedDepthBuffer']&&ab['enable'](0x4),aF['skinning']&&ab['enable'](0x5),aF['morphTargets']&&ab['enable'](0x6),aF[sQ(0x218)]&&ab['enable'](0x7),aF['morphColors']&&ab['enable'](0x8),aF['premultipliedAlpha']&&ab['enable'](0x9),aF['shadowMapEnabled']&&ab[sQ(0x575)](0xa),aF['doubleSided']&&ab[sQ(0x575)](0xb),aF[sQ(0x243)]&&ab['enable'](0xc),aF[sQ(0x231)]&&ab['enable'](0xd),aF['dithering']&&ab[sQ(0x575)](0xe),aF['transmission']&&ab['enable'](0xf),aF['sheen']&&ab[sQ(0x575)](0x10),aF['opaque']&&ab['enable'](0x11),aF['pointsUvs']&&ab['enable'](0x12),aF['decodeVideoTexture']&&ab['enable'](0x13),aF['decodeVideoTextureEmissive']&&ab['enable'](0x14),aF['alphaToCoverage']&&ab[sQ(0x575)](0x15),aF['numLightProbeGrids']>0x0&&ab[sQ(0x575)](0x16),aE['push'](ab['mask']);}function az(aE){let aF=ap[aE['type']],aG;if(aF){let aH=cc[aF];aG=vo['clone'](aH['uniforms']);}else aG=aE['uniforms'];return aG;}function aA(aE,aF){let aG=aj['get'](aF);return aG===void 0x0?(aG=new Fu(a4,aF,aE,a8),ah['push'](aG),aj['set'](aF,aG)):++aG['usedTimes'],aG;}function aB(aE){const sR=sM;if(--aE['usedTimes']===0x0){let aF=ah['indexOf'](aE);ah[aF]=ah[ah['length']-0x1],ah['pop'](),aj[sR(0xa1)](aE[sR(0x2b1)]),aE['destroy']();}}function aC(aE){af['remove'](aE);}function aD(){af['dispose']();}return{'getParameters':av,'getProgramCacheKey':aw,'getUniforms':az,'acquireProgram':aA,'releaseProgram':aB,'releaseShaderCache':aC,'programs':ah,'dispose':aD};}function Vu(){let a4=new WeakMap();function a5(ab){return a4['has'](ab);}function a6(ab){let af=a4['get'](ab);return af===void 0x0&&(af={},a4['set'](ab,af)),af;}function a7(ab){a4['delete'](ab);}function a8(ab,af,ag){const sS=a1;a4[sS(0x2f1)](ab)[af]=ag;}function a9(){a4=new WeakMap();}return{'has':a5,'get':a6,'remove':a7,'update':a8,'dispose':a9};}function Hu(a4,a5){const sT=d4;return a4[sT(0x378)]===a5['groupOrder']?a4['renderOrder']===a5['renderOrder']?a4['material']['id']===a5['material']['id']?a4['materialVariant']===a5['materialVariant']?a4['z']===a5['z']?a4['id']-a5['id']:a4['z']-a5['z']:a4['materialVariant']-a5['materialVariant']:a4[sT(0xd7)]['id']-a5[sT(0xd7)]['id']:a4[sT(0x166)]-a5[sT(0x166)]:a4['groupOrder']-a5['groupOrder'];}function Uu(a4,a5){const sU=d4;return a4['groupOrder']===a5['groupOrder']?a4['renderOrder']===a5[sU(0x166)]?a4['z']===a5['z']?a4['id']-a5['id']:a5['z']-a4['z']:a4[sU(0x166)]-a5['renderOrder']:a4['groupOrder']-a5['groupOrder'];}function Wu(){let a4=[],a5=0x0,a6=[],a7=[],a8=[];function a9(){a5=0x0,a6['length']=0x0,a7['length']=0x0,a8['length']=0x0;}function ab(am){let ap=0x0;return am['isInstancedMesh']&&(ap+=0x2),am['isSkinnedMesh']&&(ap+=0x1),ap;}function af(am,ap,aq,av,aw,ax){const sV=a1;let ay=a4[a5];return ay===void 0x0?(ay={'id':am['id'],'object':am,'geometry':ap,'material':aq,'materialVariant':ab(am),'groupOrder':av,'renderOrder':am['renderOrder'],'z':aw,'group':ax},a4[a5]=ay):(ay['id']=am['id'],ay['object']=am,ay['geometry']=ap,ay['material']=aq,ay['materialVariant']=ab(am),ay['groupOrder']=av,ay[sV(0x166)]=am['renderOrder'],ay['z']=aw,ay[sV(0x416)]=ax),a5++,ay;}function ag(am,ap,aq,av,aw,ax){const sW=a1;let ay=af(am,ap,aq,av,aw,ax);aq['transmission']>0x0?a7['push'](ay):aq[sW(0xac)]===!0x0?a8['push'](ay):a6['push'](ay);}function ah(am,ap,aq,av,aw,ax){const sX=a1;let ay=af(am,ap,aq,av,aw,ax);aq['transmission']>0x0?a7['unshift'](ay):aq[sX(0xac)]===!0x0?a8['unshift'](ay):a6[sX(0x44f)](ay);}function aj(am,ap){const sY=a1;a6['length']>0x1&&a6[sY(0x543)](am||Hu),a7['length']>0x1&&a7['sort'](ap||Uu),a8['length']>0x1&&a8['sort'](ap||Uu);}function ak(){for(let am=a5,ap=a4['length'];am<ap;am++){let aq=a4[am];if(aq['id']===null)break;aq['id']=null,aq['object']=null,aq['geometry']=null,aq['material']=null,aq['group']=null;}}return{'opaque':a6,'transmissive':a7,'transparent':a8,'init':a9,'push':ag,'unshift':ah,'finish':ak,'sort':aj};}function Gu(){let a4=new WeakMap();function a5(a7,a8){let a9=a4['get'](a7),ab;return a9===void 0x0?(ab=new Wu(),a4['set'](a7,[ab])):a8>=a9['length']?(ab=new Wu(),a9['push'](ab)):ab=a9[a8],ab;}function a6(){a4=new WeakMap();}return{'get':a5,'dispose':a6};}function Ku(){let a4={};return{'get':function(a5){const sZ=a1;if(a4[a5['id']]!==void 0x0)return a4[a5['id']];let a6;switch(a5['type']){case'DirectionalLight':a6={'direction':new W(),'color':new Y()};break;case'SpotLight':a6={'position':new W(),'direction':new W(),'color':new Y(),'distance':0x0,'coneCos':0x0,'penumbraCos':0x0,'decay':0x0};break;case'PointLight':a6={'position':new W(),'color':new Y(),'distance':0x0,'decay':0x0};break;case'HemisphereLight':a6={'direction':new W(),'skyColor':new Y(),'groundColor':new Y()};break;case sZ(0x1df):a6={'color':new Y(),'position':new W(),'halfWidth':new W(),'halfHeight':new W()};break;}return a4[a5['id']]=a6,a6;}};}function qu(){let a4={};return{'get':function(a5){const t0=a1;if(a4[a5['id']]!==void 0x0)return a4[a5['id']];let a6;switch(a5[t0(0x40b)]){case'DirectionalLight':a6={'shadowIntensity':0x1,'shadowBias':0x0,'shadowNormalBias':0x0,'shadowRadius':0x1,'shadowMapSize':new U()};break;case'SpotLight':a6={'shadowIntensity':0x1,'shadowBias':0x0,'shadowNormalBias':0x0,'shadowRadius':0x1,'shadowMapSize':new U()};break;case'PointLight':a6={'shadowIntensity':0x1,'shadowBias':0x0,'shadowNormalBias':0x0,'shadowRadius':0x1,'shadowMapSize':new U(),'shadowCameraNear':0x1,'shadowCameraFar':0x3e8};break;}return a4[a5['id']]=a6,a6;}};}var Ju=0x0;function Yu(a4,a5){return(a5['castShadow']?0x2:0x0)-(a4['castShadow']?0x2:0x0)+ +!!a5['map']-!!a4['map'];}function Xu(a4){const t1=d4;let a5=new Ku(),a6=qu(),a7={'version':0x0,'hash':{'directionalLength':-0x1,'pointLength':-0x1,'spotLength':-0x1,'rectAreaLength':-0x1,'hemiLength':-0x1,'numDirectionalShadows':-0x1,'numPointShadows':-0x1,'numSpotShadows':-0x1,'numSpotMaps':-0x1,'numLightProbes':-0x1},'ambient':[0x0,0x0,0x0],'probe':[],'directional':[],'directionalShadow':[],'directionalShadowMap':[],'directionalShadowMatrix':[],'spot':[],'spotLightMap':[],'spotShadow':[],'spotShadowMap':[],'spotLightMatrix':[],'rectArea':[],'rectAreaLTC1':null,'rectAreaLTC2':null,'point':[],'pointShadow':[],'pointShadowMap':[],'pointShadowMatrix':[],'hemi':[],'numSpotLightShadowsWithMaps':0x0,'numLightProbes':0x0};for(let ah=0x0;ah<0x9;ah++)a7[t1(0x3c5)]['push'](new W());let a8=new W(),a9=new J(),ab=new J();function af(aj){const t2=t1;let ak=0x0,am=0x0,ap=0x0;for(let aG=0x0;aG<0x9;aG++)a7['probe'][aG][t2(0x479)](0x0,0x0,0x0);let aq=0x0,av=0x0,aw=0x0,ax=0x0,ay=0x0,az=0x0,aA=0x0,aB=0x0,aC=0x0,aD=0x0,aE=0x0;aj[t2(0x543)](Yu);for(let aH=0x0,aI=aj['length'];aH<aI;aH++){let aJ=aj[aH],aK=aJ['color'],aL=aJ[t2(0x351)],aM=aJ['distance'],aN=null;if(aJ[t2(0x43a)]&&aJ['shadow']['map']&&(aN=aJ['shadow']['map']['texture']['format']===0x406?aJ['shadow'][t2(0x146)]['texture']:aJ['shadow']['map']['depthTexture']||aJ['shadow'][t2(0x146)]['texture']),aJ['isAmbientLight'])ak+=aK['r']*aL,am+=aK['g']*aL,ap+=aK['b']*aL;else{if(aJ[t2(0x4e1)]){for(let aO=0x0;aO<0x9;aO++)a7[t2(0x3c5)][aO][t2(0x3df)](aJ['sh']['coefficients'][aO],aL);aE++;}else{if(aJ['isDirectionalLight']){let aP=a5[t2(0x2f1)](aJ);if(aP['color']['copy'](aJ['color'])[t2(0x175)](aJ['intensity']),aJ['castShadow']){let aQ=aJ['shadow'],aR=a6['get'](aJ);aR['shadowIntensity']=aQ['intensity'],aR['shadowBias']=aQ[t2(0x4c9)],aR['shadowNormalBias']=aQ['normalBias'],aR[t2(0xd2)]=aQ['radius'],aR[t2(0x3fc)]=aQ['mapSize'],a7['directionalShadow'][aq]=aR,a7['directionalShadowMap'][aq]=aN,a7['directionalShadowMatrix'][aq]=aJ[t2(0x43a)]['matrix'],az++;}a7['directional'][aq]=aP,aq++;}else{if(aJ[t2(0x407)]){let aS=a5['get'](aJ);aS['position']['setFromMatrixPosition'](aJ['matrixWorld']),aS['color']['copy'](aK)[t2(0x175)](aL),aS['distance']=aM,aS['coneCos']=Math['cos'](aJ['angle']),aS['penumbraCos']=Math['cos'](aJ['angle']*(0x1-aJ['penumbra'])),aS['decay']=aJ['decay'],a7['spot'][aw]=aS;let aT=aJ['shadow'];if(aJ['map']&&(a7['spotLightMap'][aC]=aJ['map'],aC++,aT['updateMatrices'](aJ),aJ[t2(0x1cf)]&&aD++),a7['spotLightMatrix'][aw]=aT['matrix'],aJ['castShadow']){let aU=a6['get'](aJ);aU[t2(0x20c)]=aT['intensity'],aU['shadowBias']=aT[t2(0x4c9)],aU['shadowNormalBias']=aT[t2(0x3bc)],aU['shadowRadius']=aT[t2(0x42d)],aU[t2(0x3fc)]=aT['mapSize'],a7['spotShadow'][aw]=aU,a7['spotShadowMap'][aw]=aN,aB++;}aw++;}else{if(aJ['isRectAreaLight']){let aV=a5[t2(0x2f1)](aJ);aV['color'][t2(0x32f)](aK)[t2(0x175)](aL),aV['halfWidth'][t2(0x479)](aJ['width']*0.5,0x0,0x0),aV[t2(0x16f)]['set'](0x0,aJ['height']*0.5,0x0),a7['rectArea'][ax]=aV,ax++;}else{if(aJ['isPointLight']){let aW=a5[t2(0x2f1)](aJ);if(aW['color']['copy'](aJ['color'])[t2(0x175)](aJ['intensity']),aW['distance']=aJ['distance'],aW['decay']=aJ['decay'],aJ['castShadow']){let aX=aJ['shadow'],aY=a6['get'](aJ);aY[t2(0x20c)]=aX['intensity'],aY['shadowBias']=aX['bias'],aY['shadowNormalBias']=aX['normalBias'],aY[t2(0xd2)]=aX['radius'],aY['shadowMapSize']=aX['mapSize'],aY['shadowCameraNear']=aX['camera'][t2(0x56b)],aY['shadowCameraFar']=aX['camera']['far'],a7['pointShadow'][av]=aY,a7['pointShadowMap'][av]=aN,a7['pointShadowMatrix'][av]=aJ['shadow']['matrix'],aA++;}a7['point'][av]=aW,av++;}else{if(aJ['isHemisphereLight']){let aZ=a5['get'](aJ);aZ['skyColor']['copy'](aJ['color'])['multiplyScalar'](aL),aZ['groundColor']['copy'](aJ['groundColor'])['multiplyScalar'](aL),a7['hemi'][ay]=aZ,ay++;}}}}}}}}ax>0x0&&(a4['has']('OES_texture_float_linear')===!0x0?(a7[t2(0x37c)]=$['LTC_FLOAT_1'],a7[t2(0x30f)]=$[t2(0x22a)]):(a7[t2(0x37c)]=$['LTC_HALF_1'],a7[t2(0x30f)]=$['LTC_HALF_2'])),a7['ambient'][0x0]=ak,a7['ambient'][0x1]=am,a7['ambient'][0x2]=ap;let aF=a7['hash'];(aF['directionalLength']!==aq||aF[t2(0x1c8)]!==av||aF['spotLength']!==aw||aF['rectAreaLength']!==ax||aF[t2(0x4f7)]!==ay||aF['numDirectionalShadows']!==az||aF['numPointShadows']!==aA||aF['numSpotShadows']!==aB||aF['numSpotMaps']!==aC||aF['numLightProbes']!==aE)&&(a7['directional']['length']=aq,a7['spot']['length']=aw,a7['rectArea']['length']=ax,a7['point']['length']=av,a7['hemi']['length']=ay,a7['directionalShadow']['length']=az,a7['directionalShadowMap']['length']=az,a7[t2(0x338)]['length']=aA,a7[t2(0x4f4)]['length']=aA,a7['spotShadow'][t2(0x27a)]=aB,a7[t2(0x3ff)]['length']=aB,a7['directionalShadowMatrix'][t2(0x27a)]=az,a7['pointShadowMatrix'][t2(0x27a)]=aA,a7['spotLightMatrix']['length']=aB+aC-aD,a7['spotLightMap']['length']=aC,a7['numSpotLightShadowsWithMaps']=aD,a7['numLightProbes']=aE,aF[t2(0x584)]=aq,aF['pointLength']=av,aF['spotLength']=aw,aF['rectAreaLength']=ax,aF['hemiLength']=ay,aF['numDirectionalShadows']=az,aF[t2(0x299)]=aA,aF['numSpotShadows']=aB,aF['numSpotMaps']=aC,aF['numLightProbes']=aE,a7['version']=Ju++);}function ag(aj,ak){const t3=t1;let am=0x0,ap=0x0,aq=0x0,av=0x0,aw=0x0,ax=ak['matrixWorldInverse'];for(let ay=0x0,az=aj['length'];ay<az;ay++){let aA=aj[ay];if(aA['isDirectionalLight']){let aB=a7['directional'][am];aB['direction']['setFromMatrixPosition'](aA['matrixWorld']),a8['setFromMatrixPosition'](aA['target']['matrixWorld']),aB[t3(0x176)]['sub'](a8),aB['direction'][t3(0x526)](ax),am++;}else{if(aA['isSpotLight']){let aC=a7['spot'][aq];aC['position'][t3(0x434)](aA['matrixWorld']),aC['position']['applyMatrix4'](ax),aC['direction']['setFromMatrixPosition'](aA['matrixWorld']),a8['setFromMatrixPosition'](aA['target']['matrixWorld']),aC['direction'][t3(0x2b7)](a8),aC['direction']['transformDirection'](ax),aq++;}else{if(aA['isRectAreaLight']){let aD=a7['rectArea'][av];aD['position']['setFromMatrixPosition'](aA['matrixWorld']),aD[t3(0x478)][t3(0x510)](ax),ab['identity'](),a9['copy'](aA['matrixWorld']),a9['premultiply'](ax),ab['extractRotation'](a9),aD['halfWidth']['set'](aA['width']*0.5,0x0,0x0),aD['halfHeight']['set'](0x0,aA['height']*0.5,0x0),aD['halfWidth']['applyMatrix4'](ab),aD[t3(0x16f)][t3(0x510)](ab),av++;}else{if(aA['isPointLight']){let aE=a7[t3(0x1a3)][ap];aE['position']['setFromMatrixPosition'](aA['matrixWorld']),aE['position']['applyMatrix4'](ax),ap++;}else{if(aA[t3(0x350)]){let aF=a7[t3(0x468)][aw];aF['direction']['setFromMatrixPosition'](aA[t3(0x3b8)]),aF['direction'][t3(0x526)](ax),aw++;}}}}}}}return{'setup':af,'setupView':ag,'state':a7};}function Zu(a4){let a5=new Xu(a4),a6=[],a7=[],a8=[];function a9(am){const t4=a1;ak[t4(0x448)]=am,a6['length']=0x0,a7['length']=0x0,a8['length']=0x0;}function ab(am){a6['push'](am);}function af(am){a7['push'](am);}function ag(am){a8['push'](am);}function ah(){a5['setup'](a6);}function aj(am){a5['setupView'](a6,am);}let ak={'lightsArray':a6,'shadowsArray':a7,'lightProbeGridArray':a8,'camera':null,'lights':a5,'transmissionRenderTarget':{},'textureUnits':0x0};return{'init':a9,'state':ak,'setupLights':ah,'setupLightsView':aj,'pushLight':ab,'pushShadow':af,'pushLightProbeGrid':ag};}function Qu(a4){let a5=new WeakMap();function a6(a8,a9=0x0){let ab=a5['get'](a8),af;return ab===void 0x0?(af=new Zu(a4),a5['set'](a8,[af])):a9>=ab['length']?(af=new Zu(a4),ab['push'](af)):af=ab[a9],af;}function a7(){a5=new WeakMap();}return{'get':a6,'dispose':a7};}var $u=d4(0x29a),ed='uniform\x20sampler2D\x20shadow_pass;\x0auniform\x20vec2\x20resolution;\x0auniform\x20float\x20radius;\x0avoid\x20main()\x20{\x0a\x09const\x20float\x20samples\x20=\x20float(\x20VSM_SAMPLES\x20);\x0a\x09float\x20mean\x20=\x200.0;\x0a\x09float\x20squared_mean\x20=\x200.0;\x0a\x09float\x20uvStride\x20=\x20samples\x20<=\x201.0\x20?\x200.0\x20:\x202.0\x20/\x20(\x20samples\x20-\x201.0\x20);\x0a\x09float\x20uvStart\x20=\x20samples\x20<=\x201.0\x20?\x200.0\x20:\x20-\x201.0;\x0a\x09for\x20(\x20float\x20i\x20=\x200.0;\x20i\x20<\x20samples;\x20i\x20++\x20)\x20{\x0a\x09\x09float\x20uvOffset\x20=\x20uvStart\x20+\x20i\x20*\x20uvStride;\x0a\x09\x09#ifdef\x20HORIZONTAL_PASS\x0a\x09\x09\x09vec2\x20distribution\x20=\x20texture2D(\x20shadow_pass,\x20(\x20gl_FragCoord.xy\x20+\x20vec2(\x20uvOffset,\x200.0\x20)\x20*\x20radius\x20)\x20/\x20resolution\x20).rg;\x0a\x09\x09\x09mean\x20+=\x20distribution.x;\x0a\x09\x09\x09squared_mean\x20+=\x20distribution.y\x20*\x20distribution.y\x20+\x20distribution.x\x20*\x20distribution.x;\x0a\x09\x09#else\x0a\x09\x09\x09float\x20depth\x20=\x20texture2D(\x20shadow_pass,\x20(\x20gl_FragCoord.xy\x20+\x20vec2(\x200.0,\x20uvOffset\x20)\x20*\x20radius\x20)\x20/\x20resolution\x20).r;\x0a\x09\x09\x09mean\x20+=\x20depth;\x0a\x09\x09\x09squared_mean\x20+=\x20depth\x20*\x20depth;\x0a\x09\x09#endif\x0a\x09}\x0a\x09mean\x20=\x20mean\x20/\x20samples;\x0a\x09squared_mean\x20=\x20squared_mean\x20/\x20samples;\x0a\x09float\x20std_dev\x20=\x20sqrt(\x20max(\x200.0,\x20squared_mean\x20-\x20mean\x20*\x20mean\x20)\x20);\x0a\x09gl_FragColor\x20=\x20vec4(\x20mean,\x20std_dev,\x200.0,\x201.0\x20);\x0a}',td=[new W(0x1,0x0,0x0),new W(-0x1,0x0,0x0),new W(0x0,0x1,0x0),new W(0x0,-0x1,0x0),new W(0x0,0x0,0x1),new W(0x0,0x0,-0x1)],nd=[new W(0x0,-0x1,0x0),new W(0x0,-0x1,0x0),new W(0x0,0x0,0x1),new W(0x0,0x0,-0x1),new W(0x0,-0x1,0x0),new W(0x0,-0x1,0x0)],rd=new J(),id=new W(),ad=new W();function od(a4,a5,a6){const t5=d4;let a7=new Xi(),a8=new U(),a9=new U(),ab=new q(),af=new Do(),ag=new Oo(),ah={},aj=a6['maxTextureSize'],ak={0x0:0x1,0x1:0x0,0x2:0x2},am=new xo({'defines':{'VSM_SAMPLES':0x8},'uniforms':{'shadow_pass':{'value':null},'resolution':{'value':new U()},'radius':{'value':0x4}},'vertexShader':$u,'fragmentShader':ed}),ap=am['clone']();ap['defines'][t5(0x4b7)]=0x1;let aq=new Wr();aq[t5(0x3a6)]('position',new kr(new Float32Array([-0x1,-0x1,0.5,0x3,-0x1,0.5,-0x1,0x3,0.5]),0x3));let av=new gi(aq,am),aw=this;this['enabled']=!0x1,this['autoUpdate']=!0x0,this['needsUpdate']=!0x1,this['type']=0x1;let ax=this[t5(0x40b)];this['render']=function(aC,aD,aE){const t6=t5;if(aw['enabled']===!0x1||aw[t6(0x3fb)]===!0x1&&aw[t6(0x3f1)]===!0x1||aC['length']===0x0)return;this['type']===0x2&&(z('WebGLShadowMap:\x20PCFSoftShadowMap\x20has\x20been\x20deprecated.\x20Using\x20PCFShadowMap\x20instead.'),this['type']=0x1);let aF=a4[t6(0x100)](),aG=a4['getActiveCubeFace'](),aH=a4['getActiveMipmapLevel'](),aI=a4['state'];aI['setBlending'](0x0),aI[t6(0x57e)]['depth']['getReversed']()===!0x0?aI['buffers']['color']['setClear'](0x0,0x0,0x0,0x0):aI['buffers']['color']['setClear'](0x1,0x1,0x1,0x1),aI['buffers']['depth']['setTest'](!0x0),aI['setScissorTest'](!0x1);let aJ=ax!==this['type'];aJ&&aD['traverse'](function(aK){const t7=t6;aK['material']&&(Array['isArray'](aK['material'])?aK[t7(0xd7)]['forEach'](aL=>aL['needsUpdate']=!0x0):aK[t7(0xd7)]['needsUpdate']=!0x0);});for(let aK=0x0,aL=aC[t6(0x27a)];aK<aL;aK++){let aM=aC[aK],aN=aM['shadow'];if(aN===void 0x0){z(t6(0x226),aM,t6(0x220));continue;}if(aN['autoUpdate']===!0x1&&aN['needsUpdate']===!0x1)continue;a8[t6(0x32f)](aN['mapSize']);let aO=aN['getFrameExtents']();a8['multiply'](aO),a9['copy'](aN[t6(0x98)]),(a8['x']>aj||a8['y']>aj)&&(a8['x']>aj&&(a9['x']=Math['floor'](aj/aO['x']),a8['x']=a9['x']*aO['x'],aN['mapSize']['x']=a9['x']),a8['y']>aj&&(a9['y']=Math['floor'](aj/aO['y']),a8['y']=a9['y']*aO['y'],aN[t6(0x98)]['y']=a9['y']));let aP=a4['state'][t6(0x57e)]['depth'][t6(0x59a)]();if(aN[t6(0x448)][t6(0x340)]=aP,aN['map']===null||aJ===!0x0){if(aN['map']!==null&&(aN['map']['depthTexture']!==null&&(aN['map']['depthTexture'][t6(0x365)](),aN['map'][t6(0x49e)]=null),aN[t6(0x146)]['dispose']()),this['type']===0x3){if(aM[t6(0x1ea)]){z('WebGLShadowMap:\x20VSM\x20shadow\x20maps\x20are\x20not\x20supported\x20for\x20PointLights.\x20Use\x20PCF\x20or\x20BasicShadowMap\x20instead.');continue;}aN['map']=new fn(a8['x'],a8['y'],{'format':P,'type':te,'minFilter':S,'magFilter':S,'generateMipmaps':!0x1}),aN['map']['texture'][t6(0x3a8)]=aM['name']+'.shadowMap',aN[t6(0x146)][t6(0x49e)]=new ya(a8['x'],a8['y'],A),aN['map'][t6(0x49e)]['name']=aM['name']+'.shadowMapDepth',aN['map'][t6(0x49e)]['format']=se,aN[t6(0x146)]['depthTexture']['compareFunction']=null,aN['map'][t6(0x49e)]['minFilter']=y,aN['map'][t6(0x49e)][t6(0x2b8)]=y;}else aM['isPointLight']?(aN['map']=new Lc(a8['x']),aN['map']['depthTexture']=new ba(a8['x'],k)):(aN[t6(0x146)]=new fn(a8['x'],a8['y']),aN['map'][t6(0x49e)]=new ya(a8['x'],a8['y'],k)),aN['map']['depthTexture']['name']=aM['name']+t6(0x372),aN['map']['depthTexture']['format']=se,this['type']===0x1?(aN[t6(0x146)]['depthTexture']['compareFunction']=aP?0x206:0x203,aN['map']['depthTexture']['minFilter']=S,aN[t6(0x146)]['depthTexture']['magFilter']=S):(aN[t6(0x146)]['depthTexture'][t6(0x1dc)]=null,aN['map']['depthTexture']['minFilter']=y,aN['map'][t6(0x49e)]['magFilter']=y);aN['camera'][t6(0xb5)]();}let aQ=aN['map']['isWebGLCubeRenderTarget']?0x6:0x1;for(let aR=0x0;aR<aQ;aR++){if(aN[t6(0x146)]['isWebGLCubeRenderTarget'])a4['setRenderTarget'](aN['map'],aR),a4['clear']();else{aR===0x0&&(a4['setRenderTarget'](aN[t6(0x146)]),a4['clear']());let aS=aN[t6(0x2e2)](aR);ab['set'](a9['x']*aS['x'],a9['y']*aS['y'],a9['x']*aS['z'],a9['y']*aS['w']),aI['viewport'](ab);}if(aM['isPointLight']){let aT=aN['camera'],aU=aN['matrix'],aV=aM['distance']||aT['far'];aV!==aT[t6(0x512)]&&(aT['far']=aV,aT['updateProjectionMatrix']()),id[t6(0x434)](aM['matrixWorld']),aT['position']['copy'](id),ad['copy'](aT['position']),ad['add'](td[aR]),aT['up']['copy'](nd[aR]),aT['lookAt'](ad),aT['updateMatrixWorld'](),aU[t6(0x3aa)](-id['x'],-id['y'],-id['z']),rd['multiplyMatrices'](aT['projectionMatrix'],aT['matrixWorldInverse']),aN['_frustum']['setFromProjectionMatrix'](rd,aT['coordinateSystem'],aT['reversedDepth']);}else aN['updateMatrices'](aM);a7=aN['getFrustum'](),aA(aD,aE,aN['camera'],aM,this['type']);}aN['isPointLightShadow']!==!0x0&&this['type']===0x3&&ay(aN,aE),aN['needsUpdate']=!0x1;}ax=this['type'],aw['needsUpdate']=!0x1,a4['setRenderTarget'](aF,aG,aH);};function ay(aC,aD){const t8=t5;let aE=a5[t8(0x246)](av);am[t8(0x54b)]['VSM_SAMPLES']!==aC[t8(0x57f)]&&(am['defines'][t8(0xfa)]=aC['blurSamples'],ap['defines'][t8(0xfa)]=aC[t8(0x57f)],am['needsUpdate']=!0x0,ap['needsUpdate']=!0x0),aC['mapPass']===null&&(aC['mapPass']=new fn(a8['x'],a8['y'],{'format':P,'type':te})),am['uniforms']['shadow_pass'][t8(0x529)]=aC['map']['depthTexture'],am['uniforms']['resolution'][t8(0x529)]=aC['mapSize'],am['uniforms']['radius']['value']=aC[t8(0x42d)],a4['setRenderTarget'](aC[t8(0x4ef)]),a4['clear'](),a4['renderBufferDirect'](aD,null,aE,am,av,null),ap[t8(0x21c)]['shadow_pass'][t8(0x529)]=aC['mapPass']['texture'],ap['uniforms'][t8(0x427)]['value']=aC['mapSize'],ap['uniforms'][t8(0x42d)]['value']=aC['radius'],a4['setRenderTarget'](aC[t8(0x146)]),a4['clear'](),a4[t8(0x3bf)](aD,null,aE,ap,av,null);}function az(aC,aD,aE,aF){const t9=t5;let aG=null,aH=aE['isPointLight']===!0x0?aC['customDistanceMaterial']:aC['customDepthMaterial'];if(aH!==void 0x0)aG=aH;else{if(aG=aE['isPointLight']===!0x0?ag:af,a4['localClippingEnabled']&&aD[t9(0x586)]===!0x0&&Array['isArray'](aD['clippingPlanes'])&&aD['clippingPlanes'][t9(0x27a)]!==0x0||aD['displacementMap']&&aD[t9(0x4f6)]!==0x0||aD['alphaMap']&&aD[t9(0x199)]>0x0||aD['map']&&aD['alphaTest']>0x0||aD['alphaToCoverage']===!0x0){let aI=aG[t9(0x2ca)],aJ=aD['uuid'],aK=ah[aI];aK===void 0x0&&(aK={},ah[aI]=aK);let aL=aK[aJ];aL===void 0x0&&(aL=aG['clone'](),aK[aJ]=aL,aD['addEventListener']('dispose',aB)),aG=aL;}}if(aG['visible']=aD['visible'],aG['wireframe']=aD['wireframe'],aF===0x3?aG['side']=aD['shadowSide']===null?aD['side']:aD['shadowSide']:aG[t9(0x2e3)]=aD[t9(0x23f)]===null?ak[aD['side']]:aD['shadowSide'],aG['alphaMap']=aD['alphaMap'],aG['alphaTest']=aD['alphaToCoverage']===!0x0?0.5:aD['alphaTest'],aG['map']=aD['map'],aG[t9(0x586)]=aD['clipShadows'],aG['clippingPlanes']=aD['clippingPlanes'],aG['clipIntersection']=aD['clipIntersection'],aG['displacementMap']=aD['displacementMap'],aG['displacementScale']=aD['displacementScale'],aG['displacementBias']=aD['displacementBias'],aG['wireframeLinewidth']=aD['wireframeLinewidth'],aG['linewidth']=aD['linewidth'],aE['isPointLight']===!0x0&&aG[t9(0x102)]===!0x0){let aM=a4['properties']['get'](aG);aM['light']=aE;}return aG;}function aA(aC,aD,aE,aF,aG){const tb=t5;if(aC['visible']===!0x1)return;if(aC['layers']['test'](aD['layers'])&&(aC[tb(0x29b)]||aC['isLine']||aC['isPoints'])&&(aC['castShadow']||aC['receiveShadow']&&aG===0x3)&&(!aC['frustumCulled']||a7['intersectsObject'](aC))){aC['modelViewMatrix']['multiplyMatrices'](aE['matrixWorldInverse'],aC['matrixWorld']);let aI=a5[tb(0x246)](aC),aJ=aC['material'];if(Array['isArray'](aJ)){let aK=aI['groups'];for(let aL=0x0,aM=aK['length'];aL<aM;aL++){let aN=aK[aL],aO=aJ[aN[tb(0x48c)]];if(aO&&aO['visible']){let aP=az(aC,aO,aF,aG);aC['onBeforeShadow'](a4,aC,aD,aE,aI,aP,aN),a4['renderBufferDirect'](aE,null,aI,aP,aC,aN),aC['onAfterShadow'](a4,aC,aD,aE,aI,aP,aN);}}}else{if(aJ['visible']){let aQ=az(aC,aJ,aF,aG);aC['onBeforeShadow'](a4,aC,aD,aE,aI,aQ,null),a4[tb(0x3bf)](aE,null,aI,aQ,aC,null),aC['onAfterShadow'](a4,aC,aD,aE,aI,aQ,null);}}}let aH=aC[tb(0x314)];for(let aR=0x0,aS=aH['length'];aR<aS;aR++)aA(aH[aR],aD,aE,aF,aG);}function aB(aC){const tf=t5;aC['target']['removeEventListener']('dispose',aB);for(let aD in ah){let aE=ah[aD],aF=aC['target'][tf(0x2ca)];aF in aE&&(aE[aF]['dispose'](),delete aE[aF]);}}}function sd(a4,a5){const tp=d4;function a6(){let bI=!0x1,bJ=new q(),bK=null,bL=new q(0x0,0x0,0x0,0x0);return{'setMask':function(bM){bK!==bM&&!bI&&(a4['colorMask'](bM,bM,bM,bM),bK=bM);},'setLocked':function(bM){bI=bM;},'setClear':function(bM,bN,bO,bP,bQ){const tg=a1;bQ===!0x0&&(bM*=bP,bN*=bP,bO*=bP),bJ['set'](bM,bN,bO,bP),bL[tg(0x37e)](bJ)===!0x1&&(a4['clearColor'](bM,bN,bO,bP),bL['copy'](bJ));},'reset':function(){bI=!0x1,bK=null,bL['set'](-0x1,0x0,0x0,0x0);}};}function a7(){let bI=!0x1,bJ=!0x1,bK=null,bL=null,bM=null;return{'setReversed':function(bN){const th=a1;if(bJ!==bN){let bO=a5['get'](th(0x453));bN?bO['clipControlEXT'](bO['LOWER_LEFT_EXT'],bO[th(0x309)]):bO[th(0x4dd)](bO['LOWER_LEFT_EXT'],bO[th(0x561)]),bJ=bN;let bP=bM;bM=null,this['setClear'](bP);}},'getReversed':function(){return bJ;},'setTest':function(bN){const tj=a1;bN?aY(a4['DEPTH_TEST']):aZ(a4[tj(0x8d)]);},'setMask':function(bN){bK!==bN&&!bI&&(a4['depthMask'](bN),bK=bN);},'setFunc':function(bN){const tk=a1;if(bJ&&(bN=bt[bN]),bL!==bN){switch(bN){case 0x0:a4['depthFunc'](a4['NEVER']);break;case 0x1:a4['depthFunc'](a4['ALWAYS']);break;case 0x2:a4[tk(0xf5)](a4['LESS']);break;case 0x3:a4['depthFunc'](a4['LEQUAL']);break;case 0x4:a4['depthFunc'](a4['EQUAL']);break;case 0x5:a4['depthFunc'](a4['GEQUAL']);break;case 0x6:a4['depthFunc'](a4['GREATER']);break;case 0x7:a4['depthFunc'](a4['NOTEQUAL']);break;default:a4['depthFunc'](a4['LEQUAL']);}bL=bN;}},'setLocked':function(bN){bI=bN;},'setClear':function(bN){bM!==bN&&(bM=bN,bJ&&(bN=0x1-bN),a4['clearDepth'](bN));},'reset':function(){bI=!0x1,bK=null,bL=null,bM=null,bJ=!0x1;}};}function a8(){let bI=!0x1,bJ=null,bK=null,bL=null,bM=null,bN=null,bO=null,bP=null,bQ=null;return{'setTest':function(bR){const tm=a1;bI||(bR?aY(a4['STENCIL_TEST']):aZ(a4[tm(0x404)]));},'setMask':function(bR){bJ!==bR&&!bI&&(a4['stencilMask'](bR),bJ=bR);},'setFunc':function(bR,bS,bT){(bK!==bR||bL!==bS||bM!==bT)&&(a4['stencilFunc'](bR,bS,bT),bK=bR,bL=bS,bM=bT);},'setOp':function(bR,bS,bT){(bN!==bR||bO!==bS||bP!==bT)&&(a4['stencilOp'](bR,bS,bT),bN=bR,bO=bS,bP=bT);},'setLocked':function(bR){bI=bR;},'setClear':function(bR){bQ!==bR&&(a4['clearStencil'](bR),bQ=bR);},'reset':function(){bI=!0x1,bJ=null,bK=null,bL=null,bM=null,bN=null,bO=null,bP=null,bQ=null;}};}let a9=new a6(),ab=new a7(),af=new a8(),ag=new WeakMap(),ah=new WeakMap(),aj={},ak={},am={},ap=new WeakMap(),aq=[],av=null,aw=!0x1,ax=null,ay=null,az=null,aA=null,aB=null,aC=null,aD=null,aE=new Y(0x0,0x0,0x0),aF=0x0,aG=!0x1,aH=null,aI=null,aJ=null,aK=null,aL=null,aM=a4['getParameter'](a4['MAX_COMBINED_TEXTURE_IMAGE_UNITS']),aN=!0x1,aO=0x0,aP=a4['getParameter'](a4['VERSION']);aP['indexOf']('WebGL')===-0x1?aP[tp(0x496)]('OpenGL\x20ES')!==-0x1&&(aO=parseFloat(/^OpenGL ES (\d)/['exec'](aP)[0x1]),aN=aO>=0x2):(aO=parseFloat(/^WebGL (\d)/['exec'](aP)[0x1]),aN=aO>=0x1);let aQ=null,aR={},aS=a4[tp(0x2cf)](a4['SCISSOR_BOX']),aT=a4['getParameter'](a4['VIEWPORT']),aU=new q()['fromArray'](aS),aV=new q()['fromArray'](aT);function aW(bI,bJ,bK,bL){const tq=tp;let bM=new Uint8Array(0x4),bN=a4['createTexture']();a4[tq(0x206)](bI,bN),a4['texParameteri'](bI,a4['TEXTURE_MIN_FILTER'],a4[tq(0x7f)]),a4['texParameteri'](bI,a4['TEXTURE_MAG_FILTER'],a4[tq(0x7f)]);for(let bO=0x0;bO<bK;bO++)bI===a4[tq(0x1b6)]||bI===a4['TEXTURE_2D_ARRAY']?a4['texImage3D'](bJ,0x0,a4['RGBA'],0x1,0x1,bL,0x0,a4['RGBA'],a4['UNSIGNED_BYTE'],bM):a4['texImage2D'](bJ+bO,0x0,a4['RGBA'],0x1,0x1,0x0,a4['RGBA'],a4[tq(0x191)],bM);return bN;}let aX={};aX[a4['TEXTURE_2D']]=aW(a4[tp(0x10c)],a4['TEXTURE_2D'],0x1),aX[a4[tp(0x174)]]=aW(a4[tp(0x174)],a4['TEXTURE_CUBE_MAP_POSITIVE_X'],0x6),aX[a4['TEXTURE_2D_ARRAY']]=aW(a4['TEXTURE_2D_ARRAY'],a4['TEXTURE_2D_ARRAY'],0x1,0x1),aX[a4['TEXTURE_3D']]=aW(a4['TEXTURE_3D'],a4['TEXTURE_3D'],0x1,0x1),a9['setClear'](0x0,0x0,0x0,0x1),ab['setClear'](0x1),af[tp(0x249)](0x0),aY(a4['DEPTH_TEST']),ab['setFunc'](0x3),b7(!0x1),b8(0x1),aY(a4['CULL_FACE']),b5(0x0);function aY(bI){aj[bI]!==!0x0&&(a4['enable'](bI),aj[bI]=!0x0);}function aZ(bI){aj[bI]!==!0x1&&(a4['disable'](bI),aj[bI]=!0x1);}function b0(bI,bJ){const tv=tp;return am[bI]===bJ?!0x1:(a4['bindFramebuffer'](bI,bJ),am[bI]=bJ,bI===a4['DRAW_FRAMEBUFFER']&&(am[a4[tv(0x2c4)]]=bJ),bI===a4['FRAMEBUFFER']&&(am[a4['DRAW_FRAMEBUFFER']]=bJ),!0x0);}function b1(bI,bJ){const tw=tp;let bK=aq,bL=!0x1;if(bI){bK=ap['get'](bJ),bK===void 0x0&&(bK=[],ap['set'](bJ,bK));let bM=bI['textures'];if(bK['length']!==bM[tw(0x27a)]||bK[0x0]!==a4[tw(0x4b0)]){for(let bN=0x0,bO=bM['length'];bN<bO;bN++)bK[bN]=a4['COLOR_ATTACHMENT0']+bN;bK['length']=bM['length'],bL=!0x0;}}else bK[0x0]!==a4['BACK']&&(bK[0x0]=a4['BACK'],bL=!0x0);bL&&a4['drawBuffers'](bK);}function b2(bI){return av===bI?!0x1:(a4['useProgram'](bI),av=bI,!0x0);}let b3={0x64:a4['FUNC_ADD'],0x65:a4['FUNC_SUBTRACT'],0x66:a4['FUNC_REVERSE_SUBTRACT']};b3[0x67]=a4[tp(0x236)],b3[0x68]=a4['MAX'];let b4={0xc8:a4['ZERO'],0xc9:a4['ONE'],0xca:a4['SRC_COLOR'],0xcc:a4['SRC_ALPHA'],0xd2:a4['SRC_ALPHA_SATURATE'],0xd0:a4['DST_COLOR'],0xce:a4['DST_ALPHA'],0xcb:a4['ONE_MINUS_SRC_COLOR'],0xcd:a4[tp(0x498)],0xd1:a4[tp(0x594)],0xcf:a4['ONE_MINUS_DST_ALPHA'],0xd3:a4['CONSTANT_COLOR'],0xd4:a4[tp(0x3e4)],0xd5:a4['CONSTANT_ALPHA'],0xd6:a4['ONE_MINUS_CONSTANT_ALPHA']};function b5(bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR){const tx=tp;if(bI===0x0){aw===!0x0&&(aZ(a4['BLEND']),aw=!0x1);return;}if(aw===!0x1&&(aY(a4['BLEND']),aw=!0x0),bI!==0x5){if(bI!==ax||bR!==aG){if((ay!==0x64||aB!==0x64)&&(a4['blendEquation'](a4[tx(0xbd)]),ay=0x64,aB=0x64),bR)switch(bI){case 0x1:a4['blendFuncSeparate'](a4[tx(0x4ad)],a4['ONE_MINUS_SRC_ALPHA'],a4['ONE'],a4[tx(0x498)]);break;case 0x2:a4[tx(0x4cf)](a4['ONE'],a4['ONE']);break;case 0x3:a4[tx(0xee)](a4['ZERO'],a4[tx(0x51c)],a4[tx(0x4b9)],a4['ONE']);break;case 0x4:a4[tx(0xee)](a4['DST_COLOR'],a4[tx(0x498)],a4['ZERO'],a4['ONE']);break;default:B('WebGLState:\x20Invalid\x20blending:\x20',bI);break;}else switch(bI){case 0x1:a4[tx(0xee)](a4['SRC_ALPHA'],a4['ONE_MINUS_SRC_ALPHA'],a4['ONE'],a4[tx(0x498)]);break;case 0x2:a4[tx(0xee)](a4['SRC_ALPHA'],a4['ONE'],a4['ONE'],a4['ONE']);break;case 0x3:B('WebGLState:\x20SubtractiveBlending\x20requires\x20material.premultipliedAlpha\x20=\x20true');break;case 0x4:B(tx(0x34e));break;default:B('WebGLState:\x20Invalid\x20blending:\x20',bI);break;}az=null,aA=null,aC=null,aD=null,aE['set'](0x0,0x0,0x0),aF=0x0,ax=bI,aG=bR;}return;}bM=bM||bJ,bN=bN||bK,bO=bO||bL,(bJ!==ay||bM!==aB)&&(a4['blendEquationSeparate'](b3[bJ],b3[bM]),ay=bJ,aB=bM),(bK!==az||bL!==aA||bN!==aC||bO!==aD)&&(a4['blendFuncSeparate'](b4[bK],b4[bL],b4[bN],b4[bO]),az=bK,aA=bL,aC=bN,aD=bO),(bP['equals'](aE)===!0x1||bQ!==aF)&&(a4['blendColor'](bP['r'],bP['g'],bP['b'],bQ),aE['copy'](bP),aF=bQ),ax=bI,aG=!0x1;}function b6(bI,bJ){const ty=tp;bI[ty(0x2e3)]===0x2?aZ(a4['CULL_FACE']):aY(a4['CULL_FACE']);let bK=bI['side']===0x1;bJ&&(bK=!bK),b7(bK),bI['blending']===0x1&&bI['transparent']===!0x1?b5(0x0):b5(bI['blending'],bI['blendEquation'],bI['blendSrc'],bI[ty(0x3fa)],bI['blendEquationAlpha'],bI['blendSrcAlpha'],bI['blendDstAlpha'],bI['blendColor'],bI['blendAlpha'],bI[ty(0x542)]),ab['setFunc'](bI['depthFunc']),ab['setTest'](bI['depthTest']),ab['setMask'](bI['depthWrite']),a9['setMask'](bI[ty(0x2ef)]);let bL=bI['stencilWrite'];af['setTest'](bL),bL&&(af['setMask'](bI['stencilWriteMask']),af['setFunc'](bI[ty(0x3c1)],bI['stencilRef'],bI['stencilFuncMask']),af['setOp'](bI['stencilFail'],bI['stencilZFail'],bI['stencilZPass'])),bb(bI['polygonOffset'],bI[ty(0x499)],bI['polygonOffsetUnits']),bI['alphaToCoverage']===!0x0?aY(a4['SAMPLE_ALPHA_TO_COVERAGE']):aZ(a4[ty(0x271)]);}function b7(bI){aH!==bI&&(bI?a4['frontFace'](a4['CW']):a4['frontFace'](a4['CCW']),aH=bI);}function b8(bI){bI===0x0?aZ(a4['CULL_FACE']):(aY(a4['CULL_FACE']),bI!==aI&&(bI===0x1?a4['cullFace'](a4['BACK']):bI===0x2?a4['cullFace'](a4['FRONT']):a4['cullFace'](a4['FRONT_AND_BACK']))),aI=bI;}function b9(bI){bI!==aJ&&(aN&&a4['lineWidth'](bI),aJ=bI);}function bb(bI,bJ,bK){bI?(aY(a4['POLYGON_OFFSET_FILL']),(aK!==bJ||aL!==bK)&&(aK=bJ,aL=bK,ab['getReversed']()&&(bJ=-bJ),a4['polygonOffset'](bJ,bK))):aZ(a4['POLYGON_OFFSET_FILL']);}function bf(bI){const tz=tp;bI?aY(a4['SCISSOR_TEST']):aZ(a4[tz(0x2b6)]);}function bg(bI){const tA=tp;bI===void 0x0&&(bI=a4['TEXTURE0']+aM-0x1),aQ!==bI&&(a4[tA(0xad)](bI),aQ=bI);}function bh(bI,bJ,bK){const tB=tp;bK===void 0x0&&(bK=aQ===null?a4[tB(0x4d1)]+aM-0x1:aQ);let bL=aR[bK];bL===void 0x0&&(bL={'type':void 0x0,'texture':void 0x0},aR[bK]=bL),(bL['type']!==bI||bL[tB(0x2e9)]!==bJ)&&(aQ!==bK&&(a4['activeTexture'](bK),aQ=bK),a4['bindTexture'](bI,bJ||aX[bI]),bL['type']=bI,bL['texture']=bJ);}function bj(){const tC=tp;let bI=aR[aQ];bI!==void 0x0&&bI['type']!==void 0x0&&(a4['bindTexture'](bI['type'],null),bI[tC(0x40b)]=void 0x0,bI['texture']=void 0x0);}function bk(){const tD=tp;try{a4['compressedTexImage2D'](...arguments);}catch(bI){B(tD(0x8b),bI);}}function bm(){try{a4['compressedTexImage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bp(){const tE=tp;try{a4[tE(0x347)](...arguments);}catch(bI){B(tE(0x8b),bI);}}function bq(){const tF=tp;try{a4['texSubImage3D'](...arguments);}catch(bI){B(tF(0x8b),bI);}}function bv(){const tG=tp;try{a4['compressedTexSubImage2D'](...arguments);}catch(bI){B(tG(0x8b),bI);}}function bw(){const tH=tp;try{a4[tH(0x185)](...arguments);}catch(bI){B('WebGLState:',bI);}}function bx(){try{a4['texStorage2D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function by(){const tI=tp;try{a4[tI(0x477)](...arguments);}catch(bI){B('WebGLState:',bI);}}function bz(){const tJ=tp;try{a4['texImage2D'](...arguments);}catch(bI){B(tJ(0x8b),bI);}}function bA(){try{a4['texImage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bB(bI){return ak[bI]===void 0x0?a4['getParameter'](bI):ak[bI];}function bC(bI,bJ){ak[bI]!==bJ&&(a4['pixelStorei'](bI,bJ),ak[bI]=bJ);}function bD(bI){const tK=tp;aU['equals'](bI)===!0x1&&(a4['scissor'](bI['x'],bI['y'],bI['z'],bI['w']),aU[tK(0x32f)](bI));}function bE(bI){const tL=tp;aV['equals'](bI)===!0x1&&(a4[tL(0x1c0)](bI['x'],bI['y'],bI['z'],bI['w']),aV['copy'](bI));}function bF(bI,bJ){let bK=ah['get'](bJ);bK===void 0x0&&(bK=new WeakMap(),ah['set'](bJ,bK));let bL=bK['get'](bI);bL===void 0x0&&(bL=a4['getUniformBlockIndex'](bJ,bI['name']),bK['set'](bI,bL));}function bG(bI,bJ){const tM=tp;let bK=ah[tM(0x2f1)](bJ)['get'](bI);ag['get'](bJ)!==bK&&(a4['uniformBlockBinding'](bJ,bK,bI['__bindingPointIndex']),ag['set'](bJ,bK));}function bH(){const tN=tp;a4['disable'](a4['BLEND']),a4[tN(0x47e)](a4['CULL_FACE']),a4['disable'](a4['DEPTH_TEST']),a4['disable'](a4['POLYGON_OFFSET_FILL']),a4['disable'](a4['SCISSOR_TEST']),a4['disable'](a4['STENCIL_TEST']),a4['disable'](a4['SAMPLE_ALPHA_TO_COVERAGE']),a4[tN(0x527)](a4['FUNC_ADD']),a4['blendFunc'](a4['ONE'],a4['ZERO']),a4[tN(0xee)](a4[tN(0x4ad)],a4[tN(0x4b9)],a4['ONE'],a4['ZERO']),a4['blendColor'](0x0,0x0,0x0,0x0),a4['colorMask'](!0x0,!0x0,!0x0,!0x0),a4['clearColor'](0x0,0x0,0x0,0x0),a4['depthMask'](!0x0),a4['depthFunc'](a4['LESS']),ab['setReversed'](!0x1),a4[tN(0x40d)](0x1),a4['stencilMask'](0xffffffff),a4['stencilFunc'](a4[tN(0x3a7)],0x0,0xffffffff),a4['stencilOp'](a4['KEEP'],a4['KEEP'],a4['KEEP']),a4[tN(0x51d)](0x0),a4['cullFace'](a4['BACK']),a4['frontFace'](a4['CCW']),a4['polygonOffset'](0x0,0x0),a4['activeTexture'](a4['TEXTURE0']),a4['bindFramebuffer'](a4['FRAMEBUFFER'],null),a4[tN(0x1b4)](a4['DRAW_FRAMEBUFFER'],null),a4[tN(0x1b4)](a4['READ_FRAMEBUFFER'],null),a4['useProgram'](null),a4['lineWidth'](0x1),a4['scissor'](0x0,0x0,a4['canvas']['width'],a4[tN(0x182)]['height']),a4['viewport'](0x0,0x0,a4[tN(0x182)][tN(0x426)],a4['canvas']['height']),a4['pixelStorei'](a4['PACK_ALIGNMENT'],0x4),a4['pixelStorei'](a4['UNPACK_ALIGNMENT'],0x4),a4['pixelStorei'](a4[tN(0x1c1)],!0x1),a4['pixelStorei'](a4['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],!0x1),a4['pixelStorei'](a4['UNPACK_COLORSPACE_CONVERSION_WEBGL'],a4['BROWSER_DEFAULT_WEBGL']),a4['pixelStorei'](a4['PACK_ROW_LENGTH'],0x0),a4['pixelStorei'](a4['PACK_SKIP_PIXELS'],0x0),a4[tN(0x263)](a4['PACK_SKIP_ROWS'],0x0),a4['pixelStorei'](a4['UNPACK_ROW_LENGTH'],0x0),a4['pixelStorei'](a4[tN(0xfc)],0x0),a4[tN(0x263)](a4['UNPACK_SKIP_PIXELS'],0x0),a4[tN(0x263)](a4['UNPACK_SKIP_ROWS'],0x0),a4['pixelStorei'](a4[tN(0xdb)],0x0),aj={},ak={},aQ=null,aR={},am={},ap=new WeakMap(),aq=[],av=null,aw=!0x1,ax=null,ay=null,az=null,aA=null,aB=null,aC=null,aD=null,aE=new Y(0x0,0x0,0x0),aF=0x0,aG=!0x1,aH=null,aI=null,aJ=null,aK=null,aL=null,aU['set'](0x0,0x0,a4['canvas'][tN(0x426)],a4['canvas']['height']),aV['set'](0x0,0x0,a4['canvas']['width'],a4['canvas'][tN(0x45f)]),a9['reset'](),ab['reset'](),af['reset']();}return{'buffers':{'color':a9,'depth':ab,'stencil':af},'enable':aY,'disable':aZ,'bindFramebuffer':b0,'drawBuffers':b1,'useProgram':b2,'setBlending':b5,'setMaterial':b6,'setFlipSided':b7,'setCullFace':b8,'setLineWidth':b9,'setPolygonOffset':bb,'setScissorTest':bf,'activeTexture':bg,'bindTexture':bh,'unbindTexture':bj,'compressedTexImage2D':bk,'compressedTexImage3D':bm,'texImage2D':bz,'texImage3D':bA,'pixelStorei':bC,'getParameter':bB,'updateUBOMapping':bF,'uniformBlockBinding':bG,'texStorage2D':bx,'texStorage3D':by,'texSubImage2D':bp,'texSubImage3D':bq,'compressedTexSubImage2D':bv,'compressedTexSubImage3D':bw,'scissor':bD,'viewport':bE,'reset':bH};}function cd(a4,a5,a6,a7,a8,a9,ab){const tO=d4;let af=a5['has']('WEBGL_multisampled_render_to_texture')?a5['get'](tO(0x595)):null,ag=typeof navigator>'u'?!0x1:/OculusBrowser/g['test'](navigator[tO(0x32c)]),ah=new U(),aj=new WeakMap(),ak=new Set(),am,ap=new WeakMap(),aq=!0x1;try{aq=typeof OffscreenCanvas<'u'&&new OffscreenCanvas(0x1,0x1)['getContext']('2d')!==null;}catch(bm){}function av(bp,bq){const tP=tO;return aq?new OffscreenCanvas(bp,bq):ft(tP(0x182));}function aw(bp,bq,bv){const tQ=tO;let bw=0x1,bx=bk(bp);if((bx[tQ(0x426)]>bv||bx['height']>bv)&&(bw=bv/Math[tQ(0x360)](bx['width'],bx['height'])),bw<0x1){if(typeof HTMLImageElement<'u'&&bp instanceof HTMLImageElement||typeof HTMLCanvasElement<'u'&&bp instanceof HTMLCanvasElement||typeof ImageBitmap<'u'&&bp instanceof ImageBitmap||typeof VideoFrame<'u'&&bp instanceof VideoFrame){let by=Math['floor'](bw*bx['width']),bz=Math['floor'](bw*bx['height']);am===void 0x0&&(am=av(by,bz));let bA=bq?av(by,bz):am;return bA[tQ(0x426)]=by,bA['height']=bz,bA['getContext']('2d')['drawImage'](bp,0x0,0x0,by,bz),z('WebGLRenderer:\x20Texture\x20has\x20been\x20resized\x20from\x20('+bx['width']+'x'+bx['height']+')\x20to\x20('+by+'x'+bz+').'),bA;}else return'data'in bp&&z('WebGLRenderer:\x20Image\x20in\x20DataTexture\x20is\x20too\x20big\x20('+bx['width']+'x'+bx['height']+').'),bp;}return bp;}function ax(bp){return bp['generateMipmaps'];}function ay(bp){const tR=tO;a4[tR(0x592)](bp);}function az(bp){const tS=tO;return bp['isWebGLCubeRenderTarget']?a4['TEXTURE_CUBE_MAP']:bp['isWebGL3DRenderTarget']?a4['TEXTURE_3D']:bp['isWebGLArrayRenderTarget']||bp['isCompressedArrayTexture']?a4['TEXTURE_2D_ARRAY']:a4[tS(0x10c)];}function aA(bp,bq,bv,bw,bx,by=!0x1){const tT=tO;if(bp!==null){if(a4[bp]!==void 0x0)return a4[bp];z('WebGLRenderer:\x20Attempt\x20to\x20use\x20non-existing\x20WebGL\x20internal\x20format\x20\x27'+bp+'\x27');}let bz;bw&&(bz=a5['get']('EXT_texture_norm16'),bz||z('WebGLRenderer:\x20Unable\x20to\x20use\x20normalized\x20textures\x20without\x20EXT_texture_norm16\x20extension'));let bA=bq;if(bq===a4[tT(0xa6)]&&(bv===a4[tT(0x14d)]&&(bA=a4['R32F']),bv===a4['HALF_FLOAT']&&(bA=a4[tT(0x409)]),bv===a4[tT(0x191)]&&(bA=a4['R8']),bv===a4[tT(0x3e0)]&&bz&&(bA=bz[tT(0x14f)]),bv===a4['SHORT']&&bz&&(bA=bz['R16_SNORM_EXT'])),bq===a4['RED_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4['R8UI']),bv===a4['UNSIGNED_SHORT']&&(bA=a4['R16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4['R32UI']),bv===a4['BYTE']&&(bA=a4['R8I']),bv===a4[tT(0x289)]&&(bA=a4[tT(0x598)]),bv===a4['INT']&&(bA=a4['R32I'])),bq===a4['RG']&&(bv===a4['FLOAT']&&(bA=a4['RG32F']),bv===a4['HALF_FLOAT']&&(bA=a4['RG16F']),bv===a4[tT(0x191)]&&(bA=a4['RG8']),bv===a4['UNSIGNED_SHORT']&&bz&&(bA=bz['RG16_EXT']),bv===a4['SHORT']&&bz&&(bA=bz['RG16_SNORM_EXT'])),bq===a4['RG_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4['RG8UI']),bv===a4['UNSIGNED_SHORT']&&(bA=a4['RG16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4['RG32UI']),bv===a4['BYTE']&&(bA=a4[tT(0x433)]),bv===a4['SHORT']&&(bA=a4[tT(0x7e)]),bv===a4['INT']&&(bA=a4['RG32I'])),bq===a4['RGB_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4['RGB8UI']),bv===a4['UNSIGNED_SHORT']&&(bA=a4['RGB16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4['RGB32UI']),bv===a4['BYTE']&&(bA=a4['RGB8I']),bv===a4['SHORT']&&(bA=a4['RGB16I']),bv===a4['INT']&&(bA=a4['RGB32I'])),bq===a4[tT(0x21f)]&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4['RGBA8UI']),bv===a4['UNSIGNED_SHORT']&&(bA=a4['RGBA16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4['RGBA32UI']),bv===a4['BYTE']&&(bA=a4[tT(0x45a)]),bv===a4['SHORT']&&(bA=a4['RGBA16I']),bv===a4['INT']&&(bA=a4['RGBA32I'])),bq===a4['RGB']&&(bv===a4['UNSIGNED_SHORT']&&bz&&(bA=bz[tT(0x551)]),bv===a4[tT(0x289)]&&bz&&(bA=bz['RGB16_SNORM_EXT']),bv===a4['UNSIGNED_INT_5_9_9_9_REV']&&(bA=a4['RGB9_E5']),bv===a4['UNSIGNED_INT_10F_11F_11F_REV']&&(bA=a4['R11F_G11F_B10F'])),bq===a4['RGBA']){let bB=by?at:K['getTransfer'](bx);bv===a4['FLOAT']&&(bA=a4['RGBA32F']),bv===a4['HALF_FLOAT']&&(bA=a4[tT(0x4b1)]),bv===a4['UNSIGNED_BYTE']&&(bA=bB==='srgb'?a4[tT(0x3db)]:a4['RGBA8']),bv===a4['UNSIGNED_SHORT']&&bz&&(bA=bz['RGBA16_EXT']),bv===a4['SHORT']&&bz&&(bA=bz['RGBA16_SNORM_EXT']),bv===a4['UNSIGNED_SHORT_4_4_4_4']&&(bA=a4[tT(0x30d)]),bv===a4[tT(0x1fd)]&&(bA=a4['RGB5_A1']);}return(bA===a4['R16F']||bA===a4['R32F']||bA===a4['RG16F']||bA===a4['RG32F']||bA===a4['RGBA16F']||bA===a4['RGBA32F'])&&a5['get']('EXT_color_buffer_float'),bA;}function aB(bp,bq){const tU=tO;let bv;return bp?bq===null||bq===0x3f6||bq===0x3fc?bv=a4['DEPTH24_STENCIL8']:bq===0x3f7?bv=a4['DEPTH32F_STENCIL8']:bq===0x3f4&&(bv=a4[tU(0x4a6)],z(tU(0x4ab))):bq===null||bq===0x3f6||bq===0x3fc?bv=a4['DEPTH_COMPONENT24']:bq===0x3f7?bv=a4['DEPTH_COMPONENT32F']:bq===0x3f4&&(bv=a4['DEPTH_COMPONENT16']),bv;}function aC(bp,bq){const tV=tO;return ax(bp)===!0x0||bp['isFramebufferTexture']&&bp[tV(0x2f6)]!==0x3eb&&bp[tV(0x2f6)]!==0x3ee?Math[tV(0x42b)](Math[tV(0x360)](bq['width'],bq['height']))+0x1:bp['mipmaps']!==void 0x0&&bp['mipmaps']['length']>0x0?bp['mipmaps']['length']:bp[tV(0x2dd)]&&Array['isArray'](bp['image'])?bq[tV(0x1b8)][tV(0x27a)]:0x1;}function aD(bp){const tW=tO;let bq=bp[tW(0x33b)];bq['removeEventListener'](tW(0x365),aD),aF(bq),bq['isVideoTexture']&&aj[tW(0xa1)](bq),bq['isHTMLTexture']&&ak['delete'](bq);}function aE(bp){const tX=tO;let bq=bp['target'];bq[tX(0x40e)]('dispose',aE),aH(bq);}function aF(bp){const tY=tO;let bq=a7['get'](bp);if(bq['__webglInit']===void 0x0)return;let bv=bp['source'],bw=ap['get'](bv);if(bw){let bx=bw[bq['__cacheKey']];bx['usedTimes']--,bx[tY(0x247)]===0x0&&aG(bp),Object['keys'](bw)['length']===0x0&&ap['delete'](bv);}a7['remove'](bp);}function aG(bp){const tZ=tO;let bq=a7[tZ(0x2f1)](bp);a4[tZ(0x108)](bq['__webglTexture']);let bv=bp['source'],bw=ap['get'](bv);delete bw[bq['__cacheKey']],ab[tZ(0x1c2)]['textures']--;}function aH(bp){const u0=tO;let bq=a7[u0(0x2f1)](bp);if(bp[u0(0x49e)]&&(bp['depthTexture']['dispose'](),a7['remove'](bp[u0(0x49e)])),bp['isWebGLCubeRenderTarget'])for(let bw=0x0;bw<0x6;bw++){if(Array['isArray'](bq[u0(0x3a2)][bw])){for(let bx=0x0;bx<bq[u0(0x3a2)][bw]['length'];bx++)a4['deleteFramebuffer'](bq[u0(0x3a2)][bw][bx]);}else a4['deleteFramebuffer'](bq[u0(0x3a2)][bw]);bq['__webglDepthbuffer']&&a4['deleteRenderbuffer'](bq['__webglDepthbuffer'][bw]);}else{if(Array['isArray'](bq['__webglFramebuffer'])){for(let by=0x0;by<bq[u0(0x3a2)]['length'];by++)a4['deleteFramebuffer'](bq['__webglFramebuffer'][by]);}else a4['deleteFramebuffer'](bq['__webglFramebuffer']);if(bq['__webglDepthbuffer']&&a4['deleteRenderbuffer'](bq['__webglDepthbuffer']),bq['__webglMultisampledFramebuffer']&&a4[u0(0x48e)](bq[u0(0x2dc)]),bq['__webglColorRenderbuffer']){for(let bz=0x0;bz<bq[u0(0x1ad)]['length'];bz++)bq['__webglColorRenderbuffer'][bz]&&a4[u0(0x1a8)](bq[u0(0x1ad)][bz]);}bq['__webglDepthRenderbuffer']&&a4['deleteRenderbuffer'](bq['__webglDepthRenderbuffer']);}let bv=bp['textures'];for(let bA=0x0,bB=bv['length'];bA<bB;bA++){let bC=a7['get'](bv[bA]);bC['__webglTexture']&&(a4['deleteTexture'](bC['__webglTexture']),ab[u0(0x1c2)]['textures']--),a7[u0(0x160)](bv[bA]);}a7['remove'](bp);}let aI=0x0;function aJ(){aI=0x0;}function aK(){return aI;}function aL(bp){aI=bp;}function aM(){const u1=tO;let bp=aI;return bp>=a8['maxTextures']&&z('WebGLTextures:\x20Trying\x20to\x20use\x20'+bp+u1(0x4cc)+a8['maxTextures']),aI+=0x1,bp;}function aN(bp){const u2=tO;let bq=[];return bq['push'](bp['wrapS']),bq[u2(0x403)](bp['wrapT']),bq['push'](bp['wrapR']||0x0),bq[u2(0x403)](bp['magFilter']),bq['push'](bp['minFilter']),bq['push'](bp['anisotropy']),bq['push'](bp['internalFormat']),bq['push'](bp[u2(0x196)]),bq['push'](bp['type']),bq['push'](bp['generateMipmaps']),bq[u2(0x403)](bp['premultiplyAlpha']),bq['push'](bp[u2(0x20a)]),bq[u2(0x403)](bp[u2(0x9b)]),bq['push'](bp['colorSpace']),bq['join']();}function aO(bp,bq){const u3=tO;let bv=a7['get'](bp);if(bp['isVideoTexture']&&bh(bp),bp['isRenderTargetTexture']===!0x1&&bp[u3(0x413)]!==!0x0&&bp['version']>0x0&&bv['__version']!==bp['version']){let bw=bp[u3(0x251)];if(bw===null)z('WebGLRenderer:\x20Texture\x20marked\x20for\x20update\x20but\x20no\x20image\x20data\x20found.');else{if(bw['complete']===!0x1)z('WebGLRenderer:\x20Texture\x20marked\x20for\x20update\x20but\x20image\x20is\x20incomplete');else{aZ(bv,bp,bq);return;}}}else bp['isExternalTexture']&&(bv[u3(0x58f)]=bp['sourceTexture']?bp['sourceTexture']:null);a6[u3(0x206)](a4['TEXTURE_2D'],bv['__webglTexture'],a4['TEXTURE0']+bq);}function aP(bp,bq){const u4=tO;let bv=a7['get'](bp);if(bp['isRenderTargetTexture']===!0x1&&bp['version']>0x0&&bv['__version']!==bp['version']){aZ(bv,bp,bq);return;}else bp[u4(0x413)]&&(bv['__webglTexture']=bp[u4(0x307)]?bp['sourceTexture']:null);a6[u4(0x206)](a4[u4(0x223)],bv['__webglTexture'],a4['TEXTURE0']+bq);}function aQ(bp,bq){const u5=tO;let bv=a7['get'](bp);if(bp['isRenderTargetTexture']===!0x1&&bp[u5(0x2d1)]>0x0&&bv['__version']!==bp['version']){aZ(bv,bp,bq);return;}a6[u5(0x206)](a4['TEXTURE_3D'],bv['__webglTexture'],a4[u5(0x4d1)]+bq);}function aR(bp,bq){const u6=tO;let bv=a7['get'](bp);if(bp['isCubeDepthTexture']!==!0x0&&bp[u6(0x2d1)]>0x0&&bv[u6(0x3f9)]!==bp['version']){b0(bv,bp,bq);return;}a6['bindTexture'](a4['TEXTURE_CUBE_MAP'],bv['__webglTexture'],a4['TEXTURE0']+bq);}let aS={[g]:a4['REPEAT'],[_]:a4['CLAMP_TO_EDGE'],[v]:a4['MIRRORED_REPEAT']},aT={[y]:a4['NEAREST'],[b]:a4['NEAREST_MIPMAP_NEAREST'],[x]:a4[tO(0x29e)],[S]:a4['LINEAR'],[C]:a4['LINEAR_MIPMAP_NEAREST'],[w]:a4['LINEAR_MIPMAP_LINEAR']},aU={0x200:a4['NEVER'],0x207:a4['ALWAYS'],0x201:a4['LESS'],0x203:a4['LEQUAL'],0x202:a4['EQUAL'],0x206:a4['GEQUAL'],0x204:a4['GREATER'],0x205:a4['NOTEQUAL']};function aV(bp,bq){const u7=tO;if(bq[u7(0x40b)]===0x3f7&&a5['has']('OES_texture_float_linear')===!0x1&&(bq['magFilter']===0x3ee||bq['magFilter']===0x3ef||bq['magFilter']===0x3ed||bq[u7(0x2b8)]===0x3f0||bq[u7(0x2f6)]===0x3ee||bq['minFilter']===0x3ef||bq['minFilter']===0x3ed||bq['minFilter']===0x3f0)&&z('WebGLRenderer:\x20Unable\x20to\x20use\x20linear\x20filtering\x20with\x20floating\x20point\x20textures.\x20OES_texture_float_linear\x20not\x20supported\x20on\x20this\x20device.'),a4['texParameteri'](bp,a4['TEXTURE_WRAP_S'],aS[bq['wrapS']]),a4[u7(0x52b)](bp,a4['TEXTURE_WRAP_T'],aS[bq[u7(0x103)]]),(bp===a4['TEXTURE_3D']||bp===a4['TEXTURE_2D_ARRAY'])&&a4['texParameteri'](bp,a4['TEXTURE_WRAP_R'],aS[bq['wrapR']]),a4[u7(0x52b)](bp,a4['TEXTURE_MAG_FILTER'],aT[bq['magFilter']]),a4[u7(0x52b)](bp,a4['TEXTURE_MIN_FILTER'],aT[bq['minFilter']]),bq['compareFunction']&&(a4['texParameteri'](bp,a4[u7(0x222)],a4[u7(0x203)]),a4['texParameteri'](bp,a4['TEXTURE_COMPARE_FUNC'],aU[bq['compareFunction']])),a5['has']('EXT_texture_filter_anisotropic')===!0x0){if(bq['magFilter']===0x3eb||bq['minFilter']!==0x3ed&&bq['minFilter']!==0x3f0||bq[u7(0x40b)]===0x3f7&&a5['has'](u7(0x215))===!0x1)return;if(bq[u7(0x238)]>0x1||a7['get'](bq)['__currentAnisotropy']){let bv=a5['get']('EXT_texture_filter_anisotropic');a4[u7(0x209)](bp,bv['TEXTURE_MAX_ANISOTROPY_EXT'],Math[u7(0xbb)](bq['anisotropy'],a8['getMaxAnisotropy']())),a7['get'](bq)['__currentAnisotropy']=bq['anisotropy'];}}}function aW(bp,bq){const u8=tO;let bv=!0x1;bp['__webglInit']===void 0x0&&(bp['__webglInit']=!0x0,bq['addEventListener']('dispose',aD));let bw=bq['source'],bx=ap['get'](bw);bx===void 0x0&&(bx={},ap['set'](bw,bx));let by=aN(bq);if(by!==bp['__cacheKey']){bx[by]===void 0x0&&(bx[by]={'texture':a4['createTexture'](),'usedTimes':0x0},ab['memory']['textures']++,bv=!0x0),bx[by][u8(0x247)]++;let bz=bx[bp['__cacheKey']];bz!==void 0x0&&(bx[bp['__cacheKey']][u8(0x247)]--,bz['usedTimes']===0x0&&aG(bq)),bp['__cacheKey']=by,bp['__webglTexture']=bx[by][u8(0x2e9)];}return bv;}function aX(bp,bq,bv){const u9=tO;return Math['floor'](Math[u9(0x4ec)](bp/bv)/bq);}function aY(bp,bq,bv,bw){const ub=tO;let bx=bp['updateRanges'];if(bx['length']===0x0)a6[ub(0x347)](a4['TEXTURE_2D'],0x0,0x0,0x0,bq['width'],bq['height'],bv,bw,bq[ub(0x26c)]);else{bx[ub(0x543)]((bC,bD)=>bC[ub(0x2f9)]-bD[ub(0x2f9)]);let by=0x0;for(let bC=0x1;bC<bx['length'];bC++){let bD=bx[by],bE=bx[bC],bF=bD['start']+bD['count'],bG=aX(bE[ub(0x2f9)],bq['width'],0x4),bH=aX(bD['start'],bq['width'],0x4);bE[ub(0x2f9)]<=bF+0x1&&bG===bH&&aX(bE['start']+bE['count']-0x1,bq['width'],0x4)===bG?bD['count']=Math[ub(0x360)](bD['count'],bE['start']+bE[ub(0x58d)]-bD['start']):(++by,bx[by]=bE);}bx['length']=by+0x1;let bz=a6['getParameter'](a4['UNPACK_ROW_LENGTH']),bA=a6['getParameter'](a4['UNPACK_SKIP_PIXELS']),bB=a6[ub(0x2cf)](a4['UNPACK_SKIP_ROWS']);a6['pixelStorei'](a4['UNPACK_ROW_LENGTH'],bq['width']);for(let bI=0x0,bJ=bx[ub(0x27a)];bI<bJ;bI++){let bK=bx[bI],bL=Math['floor'](bK['start']/0x4),bM=Math['ceil'](bK['count']/0x4),bN=bL%bq['width'],bO=Math['floor'](bL/bq['width']),bP=bM;a6['pixelStorei'](a4['UNPACK_SKIP_PIXELS'],bN),a6[ub(0x263)](a4[ub(0xb7)],bO),a6['texSubImage2D'](a4['TEXTURE_2D'],0x0,bN,bO,bP,0x1,bv,bw,bq['data']);}bp['clearUpdateRanges'](),a6[ub(0x263)](a4['UNPACK_ROW_LENGTH'],bz),a6['pixelStorei'](a4['UNPACK_SKIP_PIXELS'],bA),a6['pixelStorei'](a4['UNPACK_SKIP_ROWS'],bB);}}function aZ(bp,bq,bv){const uf=tO;let bw=a4['TEXTURE_2D'];(bq['isDataArrayTexture']||bq[uf(0x38e)])&&(bw=a4['TEXTURE_2D_ARRAY']),bq['isData3DTexture']&&(bw=a4['TEXTURE_3D']);let bx=aW(bp,bq),by=bq['source'];a6['bindTexture'](bw,bp['__webglTexture'],a4['TEXTURE0']+bv);let bz=a7['get'](by);if(by['version']!==bz['__version']||bx===!0x0){if(a6['activeTexture'](a4['TEXTURE0']+bv),!(typeof ImageBitmap<'u'&&bq[uf(0x251)]instanceof ImageBitmap)){let bK=K[uf(0x1d4)](K['workingColorSpace']),bL=bq['colorSpace']===''?null:K['getPrimaries'](bq['colorSpace']),bM=bq['colorSpace']===''||bK===bL?a4['NONE']:a4['BROWSER_DEFAULT_WEBGL'];a6[uf(0x263)](a4['UNPACK_FLIP_Y_WEBGL'],bq['flipY']),a6['pixelStorei'](a4['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],bq['premultiplyAlpha']),a6['pixelStorei'](a4['UNPACK_COLORSPACE_CONVERSION_WEBGL'],bM);}a6['pixelStorei'](a4[uf(0xf1)],bq[uf(0x9b)]);let bA=aw(bq['image'],!0x1,a8['maxTextureSize']);bA=bj(bq,bA);let bB=a9['convert'](bq[uf(0x196)],bq['colorSpace']),bC=a9['convert'](bq['type']),bD=aA(bq['internalFormat'],bB,bC,bq['normalized'],bq['colorSpace'],bq['isVideoTexture']);aV(bw,bq);let bE,bF=bq[uf(0x1b8)],bG=bq['isVideoTexture']!==!0x0,bH=bz[uf(0x3f9)]===void 0x0||bx===!0x0,bI=by[uf(0x373)],bJ=aC(bq,bA);if(bq['isDepthTexture'])bD=aB(bq['format']===ce,bq['type']),bH&&(bG?a6[uf(0x26b)](a4[uf(0x10c)],0x1,bD,bA['width'],bA['height']):a6['texImage2D'](a4['TEXTURE_2D'],0x0,bD,bA['width'],bA['height'],0x0,bB,bC,null));else{if(bq['isDataTexture']){if(bF['length']>0x0){bG&&bH&&a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,bF[0x0]['width'],bF[0x0]['height']);for(let bN=0x0,bO=bF['length'];bN<bO;bN++)bE=bF[bN],bG?bI&&a6[uf(0x347)](a4['TEXTURE_2D'],bN,0x0,0x0,bE['width'],bE['height'],bB,bC,bE['data']):a6['texImage2D'](a4['TEXTURE_2D'],bN,bD,bE['width'],bE['height'],0x0,bB,bC,bE['data']);bq['generateMipmaps']=!0x1;}else bG?(bH&&a6['texStorage2D'](a4[uf(0x10c)],bJ,bD,bA['width'],bA['height']),bI&&aY(bq,bA,bB,bC)):a6['texImage2D'](a4['TEXTURE_2D'],0x0,bD,bA['width'],bA['height'],0x0,bB,bC,bA['data']);}else{if(bq[uf(0x2dd)]){if(bq['isCompressedArrayTexture']){bG&&bH&&a6['texStorage3D'](a4['TEXTURE_2D_ARRAY'],bJ,bD,bF[0x0]['width'],bF[0x0][uf(0x45f)],bA['depth']);for(let bP=0x0,bQ=bF['length'];bP<bQ;bP++)if(bE=bF[bP],bq['format']!==0x3ff){if(bB!==null){if(bG){if(bI){if(bq[uf(0xdc)]['size']>0x0){let bR=ic(bE[uf(0x426)],bE['height'],bq['format'],bq[uf(0x40b)]);for(let bS of bq['layerUpdates']){let bT=bE[uf(0x26c)]['subarray'](bS*bR/bE['data']['BYTES_PER_ELEMENT'],(bS+0x1)*bR/bE['data']['BYTES_PER_ELEMENT']);a6[uf(0x185)](a4['TEXTURE_2D_ARRAY'],bP,0x0,0x0,bS,bE['width'],bE['height'],0x1,bB,bT);}bq['clearLayerUpdates']();}else a6[uf(0x185)](a4['TEXTURE_2D_ARRAY'],bP,0x0,0x0,0x0,bE[uf(0x426)],bE['height'],bA['depth'],bB,bE[uf(0x26c)]);}}else a6['compressedTexImage3D'](a4['TEXTURE_2D_ARRAY'],bP,bD,bE['width'],bE['height'],bA['depth'],0x0,bE['data'],0x0,0x0);}else z('WebGLRenderer:\x20Attempt\x20to\x20load\x20unsupported\x20compressed\x20texture\x20format\x20in\x20.uploadTexture()');}else bG?bI&&a6['texSubImage3D'](a4['TEXTURE_2D_ARRAY'],bP,0x0,0x0,0x0,bE['width'],bE['height'],bA['depth'],bB,bC,bE['data']):a6['texImage3D'](a4['TEXTURE_2D_ARRAY'],bP,bD,bE[uf(0x426)],bE['height'],bA['depth'],0x0,bB,bC,bE[uf(0x26c)]);}else{bG&&bH&&a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,bF[0x0]['width'],bF[0x0]['height']);for(let bU=0x0,bV=bF['length'];bU<bV;bU++)bE=bF[bU],bq['format']===0x3ff?bG?bI&&a6['texSubImage2D'](a4['TEXTURE_2D'],bU,0x0,0x0,bE['width'],bE['height'],bB,bC,bE['data']):a6[uf(0x78)](a4['TEXTURE_2D'],bU,bD,bE['width'],bE['height'],0x0,bB,bC,bE['data']):bB===null?z('WebGLRenderer:\x20Attempt\x20to\x20load\x20unsupported\x20compressed\x20texture\x20format\x20in\x20.uploadTexture()'):bG?bI&&a6['compressedTexSubImage2D'](a4['TEXTURE_2D'],bU,0x0,0x0,bE[uf(0x426)],bE['height'],bB,bE['data']):a6[uf(0x4da)](a4['TEXTURE_2D'],bU,bD,bE['width'],bE['height'],0x0,bE['data']);}}else{if(bq[uf(0x56f)]){if(bG){if(bH&&a6[uf(0x477)](a4['TEXTURE_2D_ARRAY'],bJ,bD,bA['width'],bA['height'],bA['depth']),bI){if(bq[uf(0xdc)]['size']>0x0){let bW=ic(bA[uf(0x426)],bA['height'],bq['format'],bq['type']);for(let bX of bq['layerUpdates']){let bY=bA['data']['subarray'](bX*bW/bA['data'][uf(0xd3)],(bX+0x1)*bW/bA['data'][uf(0xd3)]);a6['texSubImage3D'](a4[uf(0x223)],0x0,0x0,0x0,bX,bA['width'],bA[uf(0x45f)],0x1,bB,bC,bY);}bq['clearLayerUpdates']();}else a6['texSubImage3D'](a4[uf(0x223)],0x0,0x0,0x0,0x0,bA[uf(0x426)],bA['height'],bA['depth'],bB,bC,bA['data']);}}else a6[uf(0x41f)](a4['TEXTURE_2D_ARRAY'],0x0,bD,bA['width'],bA['height'],bA['depth'],0x0,bB,bC,bA['data']);}else{if(bq['isData3DTexture'])bG?(bH&&a6['texStorage3D'](a4['TEXTURE_3D'],bJ,bD,bA['width'],bA[uf(0x45f)],bA['depth']),bI&&a6['texSubImage3D'](a4['TEXTURE_3D'],0x0,0x0,0x0,0x0,bA[uf(0x426)],bA['height'],bA['depth'],bB,bC,bA['data'])):a6[uf(0x41f)](a4['TEXTURE_3D'],0x0,bD,bA['width'],bA['height'],bA['depth'],0x0,bB,bC,bA['data']);else{if(bq['isFramebufferTexture']){if(bH){if(bG)a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,bA[uf(0x426)],bA['height']);else{let bZ=bA[uf(0x426)],c0=bA[uf(0x45f)];for(let c1=0x0;c1<bJ;c1++)a6['texImage2D'](a4['TEXTURE_2D'],c1,bD,bZ,c0,0x0,bB,bC,null),bZ>>=0x1,c0>>=0x1;}}}else{if(bq[uf(0x5a2)]){if('texElementImage2D'in a4){let c2=a4['canvas'];if(c2['hasAttribute']('layoutsubtree')||c2[uf(0x3a6)]('layoutsubtree','true'),bA['parentNode']!==c2){c2['appendChild'](bA),ak['add'](bq),c2['onpaint']=c6=>{const ug=uf;let c7=c6['changedElements'];for(let c8 of ak)c7[ug(0x36e)](c8['image'])&&(c8['needsUpdate']=!0x0);},c2['requestPaint']();return;}let c3=a4['RGBA'],c4=a4['RGBA'],c5=a4['UNSIGNED_BYTE'];a4['texElementImage2D'](a4['TEXTURE_2D'],0x0,c3,c4,c5,bA),a4['texParameteri'](a4['TEXTURE_2D'],a4['TEXTURE_MIN_FILTER'],a4['LINEAR']),a4['texParameteri'](a4['TEXTURE_2D'],a4['TEXTURE_WRAP_S'],a4['CLAMP_TO_EDGE']),a4['texParameteri'](a4['TEXTURE_2D'],a4['TEXTURE_WRAP_T'],a4['CLAMP_TO_EDGE']);}}else{if(bF['length']>0x0){if(bG&&bH){let c6=bk(bF[0x0]);a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,c6[uf(0x426)],c6['height']);}for(let c7=0x0,c8=bF['length'];c7<c8;c7++)bE=bF[c7],bG?bI&&a6['texSubImage2D'](a4['TEXTURE_2D'],c7,0x0,0x0,bB,bC,bE):a6[uf(0x78)](a4['TEXTURE_2D'],c7,bD,bB,bC,bE);bq['generateMipmaps']=!0x1;}else{if(bG){if(bH){let c9=bk(bA);a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,c9['width'],c9[uf(0x45f)]);}bI&&a6['texSubImage2D'](a4['TEXTURE_2D'],0x0,0x0,0x0,bB,bC,bA);}else a6['texImage2D'](a4['TEXTURE_2D'],0x0,bD,bB,bC,bA);}}}}}}}}ax(bq)&&ay(bw),bz[uf(0x3f9)]=by['version'],bq['onUpdate']&&bq['onUpdate'](bq);}bp[uf(0x3f9)]=bq['version'];}function b0(bp,bq,bv){const uh=tO;if(bq['image'][uh(0x27a)]!==0x6)return;let bw=aW(bp,bq),bx=bq[uh(0xb8)];a6['bindTexture'](a4['TEXTURE_CUBE_MAP'],bp['__webglTexture'],a4['TEXTURE0']+bv);let by=a7[uh(0x2f1)](bx);if(bx['version']!==by['__version']||bw===!0x0){a6['activeTexture'](a4['TEXTURE0']+bv);let bz=K['getPrimaries'](K['workingColorSpace']),bA=bq['colorSpace']===''?null:K['getPrimaries'](bq['colorSpace']),bB=bq[uh(0x30e)]===''||bz===bA?a4['NONE']:a4['BROWSER_DEFAULT_WEBGL'];a6['pixelStorei'](a4[uh(0x1c1)],bq[uh(0x20a)]),a6['pixelStorei'](a4['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],bq[uh(0x3f6)]),a6[uh(0x263)](a4['UNPACK_ALIGNMENT'],bq['unpackAlignment']),a6['pixelStorei'](a4['UNPACK_COLORSPACE_CONVERSION_WEBGL'],bB);let bC=bq['isCompressedTexture']||bq['image'][0x0][uh(0x2dd)],bD=bq['image'][0x0]&&bq[uh(0x251)][0x0]['isDataTexture'],bE=[];for(let bO=0x0;bO<0x6;bO++)!bC&&!bD?bE[bO]=aw(bq['image'][bO],!0x0,a8[uh(0xf0)]):bE[bO]=bD?bq['image'][bO]['image']:bq[uh(0x251)][bO],bE[bO]=bj(bq,bE[bO]);let bF=bE[0x0],bG=a9[uh(0x27c)](bq['format'],bq[uh(0x30e)]),bH=a9[uh(0x27c)](bq['type']),bI=aA(bq['internalFormat'],bG,bH,bq['normalized'],bq['colorSpace']),bJ=bq['isVideoTexture']!==!0x0,bK=by['__version']===void 0x0||bw===!0x0,bL=bx['dataReady'],bM=aC(bq,bF);aV(a4[uh(0x174)],bq);let bN;if(bC){bJ&&bK&&a6['texStorage2D'](a4['TEXTURE_CUBE_MAP'],bM,bI,bF['width'],bF[uh(0x45f)]);for(let bP=0x0;bP<0x6;bP++){bN=bE[bP]['mipmaps'];for(let bQ=0x0;bQ<bN['length'];bQ++){let bR=bN[bQ];bq['format']===0x3ff?bJ?bL&&a6['texSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,0x0,0x0,bR['width'],bR[uh(0x45f)],bG,bH,bR[uh(0x26c)]):a6[uh(0x78)](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,bI,bR['width'],bR['height'],0x0,bG,bH,bR['data']):bG===null?z('WebGLRenderer:\x20Attempt\x20to\x20load\x20unsupported\x20compressed\x20texture\x20format\x20in\x20.setTextureCube()'):bJ?bL&&a6['compressedTexSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,0x0,0x0,bR['width'],bR[uh(0x45f)],bG,bR['data']):a6['compressedTexImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,bI,bR['width'],bR['height'],0x0,bR['data']);}}}else{if(bN=bq['mipmaps'],bJ&&bK){bN['length']>0x0&&bM++;let bS=bk(bE[0x0]);a6['texStorage2D'](a4['TEXTURE_CUBE_MAP'],bM,bI,bS['width'],bS['height']);}for(let bT=0x0;bT<0x6;bT++)if(bD){bJ?bL&&a6['texSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,0x0,0x0,0x0,bE[bT]['width'],bE[bT]['height'],bG,bH,bE[bT]['data']):a6[uh(0x78)](a4[uh(0x53e)]+bT,0x0,bI,bE[bT]['width'],bE[bT]['height'],0x0,bG,bH,bE[bT]['data']);for(let bU=0x0;bU<bN['length'];bU++){let bV=bN[bU]['image'][bT]['image'];bJ?bL&&a6['texSubImage2D'](a4[uh(0x53e)]+bT,bU+0x1,0x0,0x0,bV['width'],bV['height'],bG,bH,bV['data']):a6['texImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bU+0x1,bI,bV['width'],bV['height'],0x0,bG,bH,bV['data']);}}else{bJ?bL&&a6['texSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,0x0,0x0,0x0,bG,bH,bE[bT]):a6['texImage2D'](a4[uh(0x53e)]+bT,0x0,bI,bG,bH,bE[bT]);for(let bW=0x0;bW<bN['length'];bW++){let bX=bN[bW];bJ?bL&&a6['texSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bW+0x1,0x0,0x0,bG,bH,bX['image'][bT]):a6['texImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bW+0x1,bI,bG,bH,bX['image'][bT]);}}}ax(bq)&&ay(a4[uh(0x174)]),by['__version']=bx[uh(0x2d1)],bq['onUpdate']&&bq['onUpdate'](bq);}bp['__version']=bq['version'];}function b1(bp,bq,bv,bw,bx,by){const uj=tO;let bz=a9['convert'](bv[uj(0x196)],bv['colorSpace']),bA=a9['convert'](bv['type']),bB=aA(bv['internalFormat'],bz,bA,bv['normalized'],bv[uj(0x30e)]),bC=a7['get'](bq),bD=a7[uj(0x2f1)](bv);if(bD['__renderTarget']=bq,!bC['__hasExternalTextures']){let bE=Math['max'](0x1,bq['width']>>by),bF=Math['max'](0x1,bq['height']>>by);bx===a4['TEXTURE_3D']||bx===a4['TEXTURE_2D_ARRAY']?a6['texImage3D'](bx,by,bB,bE,bF,bq['depth'],0x0,bz,bA,null):a6['texImage2D'](bx,by,bB,bE,bF,0x0,bz,bA,null);}a6['bindFramebuffer'](a4['FRAMEBUFFER'],bp),bg(bq)?af['framebufferTexture2DMultisampleEXT'](a4[uj(0x2c4)],bw,bx,bD['__webglTexture'],0x0,bf(bq)):(bx===a4['TEXTURE_2D']||bx>=a4['TEXTURE_CUBE_MAP_POSITIVE_X']&&bx<=a4['TEXTURE_CUBE_MAP_NEGATIVE_Z'])&&a4[uj(0xc9)](a4['FRAMEBUFFER'],bw,bx,bD['__webglTexture'],by),a6[uj(0x1b4)](a4['FRAMEBUFFER'],null);}function b2(bp,bq,bv){const uk=tO;if(a4['bindRenderbuffer'](a4['RENDERBUFFER'],bp),bq[uk(0x134)]){let bw=bq['depthTexture'],bx=bw&&bw['isDepthTexture']?bw['type']:null,by=aB(bq['stencilBuffer'],bx),bz=bq['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'];bg(bq)?af['renderbufferStorageMultisampleEXT'](a4[uk(0x1a6)],bf(bq),by,bq['width'],bq['height']):bv?a4['renderbufferStorageMultisample'](a4['RENDERBUFFER'],bf(bq),by,bq['width'],bq[uk(0x45f)]):a4['renderbufferStorage'](a4['RENDERBUFFER'],by,bq['width'],bq['height']),a4[uk(0x2d2)](a4['FRAMEBUFFER'],bz,a4['RENDERBUFFER'],bp);}else{let bA=bq['textures'];for(let bB=0x0;bB<bA['length'];bB++){let bC=bA[bB],bD=a9['convert'](bC['format'],bC['colorSpace']),bE=a9[uk(0x27c)](bC['type']),bF=aA(bC['internalFormat'],bD,bE,bC['normalized'],bC[uk(0x30e)]);bg(bq)?af['renderbufferStorageMultisampleEXT'](a4['RENDERBUFFER'],bf(bq),bF,bq['width'],bq['height']):bv?a4['renderbufferStorageMultisample'](a4['RENDERBUFFER'],bf(bq),bF,bq['width'],bq['height']):a4['renderbufferStorage'](a4['RENDERBUFFER'],bF,bq['width'],bq['height']);}}a4[uk(0x2f8)](a4['RENDERBUFFER'],null);}function b3(bp,bq,bv){const um=tO;let bw=bq['isWebGLCubeRenderTarget']===!0x0;if(a6['bindFramebuffer'](a4[um(0x2c4)],bp),!(bq['depthTexture']&&bq[um(0x49e)]['isDepthTexture']))throw Error('renderTarget.depthTexture\x20must\x20be\x20an\x20instance\x20of\x20THREE.DepthTexture');let bx=a7['get'](bq['depthTexture']);if(bx['__renderTarget']=bq,(!bx['__webglTexture']||bq[um(0x49e)]['image']['width']!==bq['width']||bq[um(0x49e)]['image']['height']!==bq['height'])&&(bq[um(0x49e)][um(0x251)]['width']=bq['width'],bq['depthTexture']['image']['height']=bq['height'],bq['depthTexture']['needsUpdate']=!0x0),bw){if(bx['__webglInit']===void 0x0&&(bx['__webglInit']=!0x0,bq['depthTexture'][um(0x151)]('dispose',aD)),bx['__webglTexture']===void 0x0){bx['__webglTexture']=a4[um(0x374)](),a6[um(0x206)](a4[um(0x174)],bx[um(0x58f)]),aV(a4['TEXTURE_CUBE_MAP'],bq['depthTexture']);let bC=a9[um(0x27c)](bq['depthTexture']['format']),bD=a9[um(0x27c)](bq['depthTexture'][um(0x40b)]),bE;bq[um(0x49e)]['format']===0x402?bE=a4['DEPTH_COMPONENT24']:bq['depthTexture'][um(0x196)]===0x403&&(bE=a4['DEPTH24_STENCIL8']);for(let bF=0x0;bF<0x6;bF++)a4['texImage2D'](a4[um(0x53e)]+bF,0x0,bE,bq['width'],bq['height'],0x0,bC,bD,null);}}else aO(bq['depthTexture'],0x0);let by=bx['__webglTexture'],bz=bf(bq),bA=bw?a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bv:a4['TEXTURE_2D'],bB=bq['depthTexture']['format']===0x403?a4['DEPTH_STENCIL_ATTACHMENT']:a4[um(0x245)];if(bq['depthTexture']['format']===0x402)bg(bq)?af['framebufferTexture2DMultisampleEXT'](a4['FRAMEBUFFER'],bB,bA,by,0x0,bz):a4['framebufferTexture2D'](a4['FRAMEBUFFER'],bB,bA,by,0x0);else{if(bq[um(0x49e)]['format']===0x403)bg(bq)?af['framebufferTexture2DMultisampleEXT'](a4['FRAMEBUFFER'],bB,bA,by,0x0,bz):a4['framebufferTexture2D'](a4['FRAMEBUFFER'],bB,bA,by,0x0);else throw Error('Unknown\x20depthTexture\x20format');}}function b4(bp){const up=tO;let bq=a7['get'](bp),bv=bp['isWebGLCubeRenderTarget']===!0x0;if(bq[up(0x410)]!==bp[up(0x49e)]){let bw=bp['depthTexture'];if(bq['__depthDisposeCallback']&&bq['__depthDisposeCallback'](),bw){let bx=()=>{const uq=up;delete bq[uq(0x410)],delete bq['__depthDisposeCallback'],bw['removeEventListener']('dispose',bx);};bw['addEventListener']('dispose',bx),bq['__depthDisposeCallback']=bx;}bq['__boundDepthTexture']=bw;}if(bp['depthTexture']&&!bq['__autoAllocateDepthBuffer']){if(bv){for(let by=0x0;by<0x6;by++)b3(bq['__webglFramebuffer'][by],bp,by);}else{let bz=bp['texture']['mipmaps'];bz&&bz[up(0x27a)]>0x0?b3(bq['__webglFramebuffer'][0x0],bp,0x0):b3(bq['__webglFramebuffer'],bp,0x0);}}else{if(bv){bq['__webglDepthbuffer']=[];for(let bA=0x0;bA<0x6;bA++)if(a6['bindFramebuffer'](a4['FRAMEBUFFER'],bq['__webglFramebuffer'][bA]),bq['__webglDepthbuffer'][bA]===void 0x0)bq['__webglDepthbuffer'][bA]=a4['createRenderbuffer'](),b2(bq['__webglDepthbuffer'][bA],bp,!0x1);else{let bB=bp['stencilBuffer']?a4[up(0x3c6)]:a4[up(0x245)],bC=bq['__webglDepthbuffer'][bA];a4[up(0x2f8)](a4[up(0x1a6)],bC),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],bB,a4['RENDERBUFFER'],bC);}}else{let bD=bp['texture']['mipmaps'];if(bD&&bD[up(0x27a)]>0x0?a6['bindFramebuffer'](a4['FRAMEBUFFER'],bq[up(0x3a2)][0x0]):a6[up(0x1b4)](a4['FRAMEBUFFER'],bq[up(0x3a2)]),bq['__webglDepthbuffer']===void 0x0)bq['__webglDepthbuffer']=a4['createRenderbuffer'](),b2(bq['__webglDepthbuffer'],bp,!0x1);else{let bE=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4[up(0x245)],bF=bq['__webglDepthbuffer'];a4['bindRenderbuffer'](a4[up(0x1a6)],bF),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],bE,a4[up(0x1a6)],bF);}}}a6['bindFramebuffer'](a4['FRAMEBUFFER'],null);}function b5(bp,bq,bv){let bw=a7['get'](bp);bq!==void 0x0&&b1(bw['__webglFramebuffer'],bp,bp['texture'],a4['COLOR_ATTACHMENT0'],a4['TEXTURE_2D'],0x0),bv!==void 0x0&&b4(bp);}function b6(bp){const uv=tO;let bq=bp['texture'],bv=a7['get'](bp),bw=a7['get'](bq);bp['addEventListener']('dispose',aE);let bx=bp['textures'],by=bp['isWebGLCubeRenderTarget']===!0x0,bz=bx['length']>0x1;if(bz||(bw['__webglTexture']===void 0x0&&(bw['__webglTexture']=a4['createTexture']()),bw[uv(0x3f9)]=bq['version'],ab[uv(0x1c2)]['textures']++),by){bv['__webglFramebuffer']=[];for(let bA=0x0;bA<0x6;bA++)if(bq['mipmaps']&&bq['mipmaps']['length']>0x0){bv['__webglFramebuffer'][bA]=[];for(let bB=0x0;bB<bq['mipmaps']['length'];bB++)bv['__webglFramebuffer'][bA][bB]=a4[uv(0x417)]();}else bv['__webglFramebuffer'][bA]=a4['createFramebuffer']();}else{if(bq['mipmaps']&&bq['mipmaps'][uv(0x27a)]>0x0){bv['__webglFramebuffer']=[];for(let bC=0x0;bC<bq[uv(0x1b8)]['length'];bC++)bv['__webglFramebuffer'][bC]=a4['createFramebuffer']();}else bv['__webglFramebuffer']=a4['createFramebuffer']();if(bz)for(let bD=0x0,bE=bx[uv(0x27a)];bD<bE;bD++){let bF=a7['get'](bx[bD]);bF['__webglTexture']===void 0x0&&(bF['__webglTexture']=a4['createTexture'](),ab['memory'][uv(0x2c6)]++);}if(bp['samples']>0x0&&bg(bp)===!0x1){bv['__webglMultisampledFramebuffer']=a4['createFramebuffer'](),bv['__webglColorRenderbuffer']=[],a6[uv(0x1b4)](a4['FRAMEBUFFER'],bv['__webglMultisampledFramebuffer']);for(let bG=0x0;bG<bx['length'];bG++){let bH=bx[bG];bv['__webglColorRenderbuffer'][bG]=a4['createRenderbuffer'](),a4[uv(0x2f8)](a4[uv(0x1a6)],bv['__webglColorRenderbuffer'][bG]);let bI=a9['convert'](bH['format'],bH['colorSpace']),bJ=a9['convert'](bH['type']),bK=aA(bH['internalFormat'],bI,bJ,bH['normalized'],bH['colorSpace'],bp['isXRRenderTarget']===!0x0),bL=bf(bp);a4['renderbufferStorageMultisample'](a4['RENDERBUFFER'],bL,bK,bp['width'],bp['height']),a4[uv(0x2d2)](a4['FRAMEBUFFER'],a4['COLOR_ATTACHMENT0']+bG,a4['RENDERBUFFER'],bv['__webglColorRenderbuffer'][bG]);}a4['bindRenderbuffer'](a4['RENDERBUFFER'],null),bp['depthBuffer']&&(bv['__webglDepthRenderbuffer']=a4['createRenderbuffer'](),b2(bv['__webglDepthRenderbuffer'],bp,!0x0)),a6['bindFramebuffer'](a4[uv(0x2c4)],null);}}if(by){a6['bindTexture'](a4[uv(0x174)],bw['__webglTexture']),aV(a4['TEXTURE_CUBE_MAP'],bq);for(let bM=0x0;bM<0x6;bM++)if(bq['mipmaps']&&bq['mipmaps']['length']>0x0){for(let bN=0x0;bN<bq['mipmaps'][uv(0x27a)];bN++)b1(bv[uv(0x3a2)][bM][bN],bp,bq,a4['COLOR_ATTACHMENT0'],a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bM,bN);}else b1(bv['__webglFramebuffer'][bM],bp,bq,a4['COLOR_ATTACHMENT0'],a4[uv(0x53e)]+bM,0x0);ax(bq)&&ay(a4['TEXTURE_CUBE_MAP']),a6['unbindTexture']();}else{if(bz){for(let bO=0x0,bP=bx[uv(0x27a)];bO<bP;bO++){let bQ=bx[bO],bR=a7['get'](bQ),bS=a4['TEXTURE_2D'];(bp['isWebGL3DRenderTarget']||bp['isWebGLArrayRenderTarget'])&&(bS=bp['isWebGL3DRenderTarget']?a4[uv(0x1b6)]:a4['TEXTURE_2D_ARRAY']),a6[uv(0x206)](bS,bR['__webglTexture']),aV(bS,bQ),b1(bv['__webglFramebuffer'],bp,bQ,a4[uv(0x4b0)]+bO,bS,0x0),ax(bQ)&&ay(bS);}a6[uv(0x544)]();}else{let bT=a4[uv(0x10c)];if((bp['isWebGL3DRenderTarget']||bp['isWebGLArrayRenderTarget'])&&(bT=bp['isWebGL3DRenderTarget']?a4[uv(0x1b6)]:a4['TEXTURE_2D_ARRAY']),a6['bindTexture'](bT,bw['__webglTexture']),aV(bT,bq),bq['mipmaps']&&bq['mipmaps']['length']>0x0){for(let bU=0x0;bU<bq[uv(0x1b8)]['length'];bU++)b1(bv['__webglFramebuffer'][bU],bp,bq,a4['COLOR_ATTACHMENT0'],bT,bU);}else b1(bv['__webglFramebuffer'],bp,bq,a4['COLOR_ATTACHMENT0'],bT,0x0);ax(bq)&&ay(bT),a6[uv(0x544)]();}}bp[uv(0x134)]&&b4(bp);}function b7(bp){let bq=bp['textures'];for(let bv=0x0,bw=bq['length'];bv<bw;bv++){let bx=bq[bv];if(ax(bx)){let by=az(bp),bz=a7['get'](bx)['__webglTexture'];a6['bindTexture'](by,bz),ay(by),a6['unbindTexture']();}}}let b8=[],b9=[];function bb(bp){const uw=tO;if(bp['samples']>0x0){if(bg(bp)===!0x1){let bq=bp['textures'],bv=bp['width'],bw=bp['height'],bx=a4['COLOR_BUFFER_BIT'],by=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'],bz=a7['get'](bp),bA=bq[uw(0x27a)]>0x1;if(bA){for(let bC=0x0;bC<bq['length'];bC++)a6['bindFramebuffer'](a4['FRAMEBUFFER'],bz[uw(0x2dc)]),a4[uw(0x2d2)](a4[uw(0x2c4)],a4[uw(0x4b0)]+bC,a4['RENDERBUFFER'],null),a6['bindFramebuffer'](a4['FRAMEBUFFER'],bz['__webglFramebuffer']),a4[uw(0xc9)](a4['DRAW_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0']+bC,a4['TEXTURE_2D'],null,0x0);}a6['bindFramebuffer'](a4['READ_FRAMEBUFFER'],bz['__webglMultisampledFramebuffer']);let bB=bp['texture']['mipmaps'];bB&&bB['length']>0x0?a6['bindFramebuffer'](a4['DRAW_FRAMEBUFFER'],bz['__webglFramebuffer'][0x0]):a6[uw(0x1b4)](a4[uw(0x52a)],bz['__webglFramebuffer']);for(let bD=0x0;bD<bq[uw(0x27a)];bD++){if(bp['resolveDepthBuffer']&&(bp['depthBuffer']&&(bx|=a4['DEPTH_BUFFER_BIT']),bp['stencilBuffer']&&bp['resolveStencilBuffer']&&(bx|=a4['STENCIL_BUFFER_BIT'])),bA){a4['framebufferRenderbuffer'](a4['READ_FRAMEBUFFER'],a4[uw(0x4b0)],a4[uw(0x1a6)],bz['__webglColorRenderbuffer'][bD]);let bE=a7['get'](bq[bD])['__webglTexture'];a4['framebufferTexture2D'](a4['DRAW_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0'],a4['TEXTURE_2D'],bE,0x0);}a4[uw(0x8f)](0x0,0x0,bv,bw,0x0,0x0,bv,bw,bx,a4[uw(0x7f)]),ag===!0x0&&(b8['length']=0x0,b9['length']=0x0,b8[uw(0x403)](a4['COLOR_ATTACHMENT0']+bD),bp[uw(0x134)]&&bp['resolveDepthBuffer']===!0x1&&(b8['push'](by),b9['push'](by),a4['invalidateFramebuffer'](a4[uw(0x52a)],b9)),a4['invalidateFramebuffer'](a4['READ_FRAMEBUFFER'],b8));}if(a6['bindFramebuffer'](a4['READ_FRAMEBUFFER'],null),a6['bindFramebuffer'](a4['DRAW_FRAMEBUFFER'],null),bA)for(let bF=0x0;bF<bq['length'];bF++){a6[uw(0x1b4)](a4[uw(0x2c4)],bz['__webglMultisampledFramebuffer']),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],a4[uw(0x4b0)]+bF,a4['RENDERBUFFER'],bz['__webglColorRenderbuffer'][bF]);let bG=a7[uw(0x2f1)](bq[bF])['__webglTexture'];a6['bindFramebuffer'](a4['FRAMEBUFFER'],bz['__webglFramebuffer']),a4[uw(0xc9)](a4['DRAW_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0']+bF,a4['TEXTURE_2D'],bG,0x0);}a6[uw(0x1b4)](a4['DRAW_FRAMEBUFFER'],bz['__webglMultisampledFramebuffer']);}else{if(bp['depthBuffer']&&bp['resolveDepthBuffer']===!0x1&&ag){let bH=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'];a4['invalidateFramebuffer'](a4['DRAW_FRAMEBUFFER'],[bH]);}}}}function bf(bp){const ux=tO;return Math[ux(0xbb)](a8['maxSamples'],bp['samples']);}function bg(bp){const uy=tO;let bq=a7['get'](bp);return bp['samples']>0x0&&a5['has'](uy(0x595))===!0x0&&bq['__useRenderToTexture']!==!0x1;}function bh(bp){const uz=tO;let bq=ab[uz(0x37f)]['frame'];aj['get'](bp)!==bq&&(aj['set'](bp,bq),bp['update']());}function bj(bp,bq){const uA=tO;let bv=bp[uA(0x30e)],bw=bp['format'],bx=bp['type'];return bp['isCompressedTexture']===!0x0||bp['isVideoTexture']===!0x0||bv!=='srgb-linear'&&bv!==''&&(K['getTransfer'](bv)==='srgb'?(bw!==0x3ff||bx!==0x3f1)&&z('WebGLTextures:\x20sRGB\x20encoded\x20textures\x20have\x20to\x20use\x20RGBAFormat\x20and\x20UnsignedByteType.'):B('WebGLTextures:\x20Unsupported\x20texture\x20color\x20space:',bv)),bq;}function bk(bp){const uB=tO;return typeof HTMLImageElement<'u'&&bp instanceof HTMLImageElement?(ah['width']=bp['naturalWidth']||bp['width'],ah['height']=bp['naturalHeight']||bp['height']):typeof VideoFrame<'u'&&bp instanceof VideoFrame?(ah['width']=bp['displayWidth'],ah['height']=bp['displayHeight']):(ah['width']=bp[uB(0x426)],ah[uB(0x45f)]=bp['height']),ah;}this['allocateTextureUnit']=aM,this['resetTextureUnits']=aJ,this[tO(0x506)]=aK,this['setTextureUnits']=aL,this['setTexture2D']=aO,this['setTexture2DArray']=aP,this['setTexture3D']=aQ,this['setTextureCube']=aR,this['rebindTextures']=b5,this['setupRenderTarget']=b6,this[tO(0x256)]=b7,this['updateMultisampleRenderTarget']=bb,this['setupDepthRenderbuffer']=b4,this['setupFrameBufferTexture']=b1,this['useMultisampledRTT']=bg,this['isReversedDepthBuffer']=function(){const uC=tO;return a6['buffers']['depth'][uC(0x59a)]();};}function ld(a4,a5){function a6(a7,a8=''){const uD=a1;let a9,ab=K['getTransfer'](a8);if(a7===0x3f1)return a4['UNSIGNED_BYTE'];if(a7===0x3f9)return a4['UNSIGNED_SHORT_4_4_4_4'];if(a7===0x3fa)return a4['UNSIGNED_SHORT_5_5_5_1'];if(a7===0x8c3e)return a4['UNSIGNED_INT_5_9_9_9_REV'];if(a7===0x8c3b)return a4['UNSIGNED_INT_10F_11F_11F_REV'];if(a7===0x3f2)return a4['BYTE'];if(a7===0x3f3)return a4['SHORT'];if(a7===0x3f4)return a4['UNSIGNED_SHORT'];if(a7===0x3f5)return a4['INT'];if(a7===0x3f6)return a4['UNSIGNED_INT'];if(a7===0x3f7)return a4['FLOAT'];if(a7===0x3f8)return a4['HALF_FLOAT'];if(a7===0x3fd)return a4['ALPHA'];if(a7===0x3fe)return a4['RGB'];if(a7===0x3ff)return a4['RGBA'];if(a7===0x402)return a4['DEPTH_COMPONENT'];if(a7===0x403)return a4['DEPTH_STENCIL'];if(a7===0x404)return a4['RED'];if(a7===0x405)return a4[uD(0x258)];if(a7===0x406)return a4['RG'];if(a7===0x407)return a4['RG_INTEGER'];if(a7===0x409)return a4['RGBA_INTEGER'];if(a7===0x83f0||a7===0x83f1||a7===0x83f2||a7===0x83f3){if(ab===uD(0x472)){if(a9=a5['get']('WEBGL_compressed_texture_s3tc_srgb'),a9!==null){if(a7===0x83f0)return a9[uD(0xa2)];if(a7===0x83f1)return a9['COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT'];if(a7===0x83f2)return a9['COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT'];if(a7===0x83f3)return a9[uD(0x4de)];}else return null;}else{if(a9=a5['get']('WEBGL_compressed_texture_s3tc'),a9!==null){if(a7===0x83f0)return a9['COMPRESSED_RGB_S3TC_DXT1_EXT'];if(a7===0x83f1)return a9[uD(0x2a9)];if(a7===0x83f2)return a9['COMPRESSED_RGBA_S3TC_DXT3_EXT'];if(a7===0x83f3)return a9['COMPRESSED_RGBA_S3TC_DXT5_EXT'];}else return null;}}if(a7===0x8c00||a7===0x8c01||a7===0x8c02||a7===0x8c03){if(a9=a5['get']('WEBGL_compressed_texture_pvrtc'),a9!==null){if(a7===0x8c00)return a9['COMPRESSED_RGB_PVRTC_4BPPV1_IMG'];if(a7===0x8c01)return a9['COMPRESSED_RGB_PVRTC_2BPPV1_IMG'];if(a7===0x8c02)return a9['COMPRESSED_RGBA_PVRTC_4BPPV1_IMG'];if(a7===0x8c03)return a9['COMPRESSED_RGBA_PVRTC_2BPPV1_IMG'];}else return null;}if(a7===0x8d64||a7===0x9274||a7===0x9278||a7===0x9270||a7===0x9271||a7===0x9272||a7===0x9273){if(a9=a5['get'](uD(0x1c6)),a9!==null){if(a7===0x8d64||a7===0x9274)return ab==='srgb'?a9['COMPRESSED_SRGB8_ETC2']:a9['COMPRESSED_RGB8_ETC2'];if(a7===0x9278)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ETC2_EAC']:a9['COMPRESSED_RGBA8_ETC2_EAC'];if(a7===0x9270)return a9['COMPRESSED_R11_EAC'];if(a7===0x9271)return a9['COMPRESSED_SIGNED_R11_EAC'];if(a7===0x9272)return a9['COMPRESSED_RG11_EAC'];if(a7===0x9273)return a9['COMPRESSED_SIGNED_RG11_EAC'];}else return null;}if(a7===0x93b0||a7===0x93b1||a7===0x93b2||a7===0x93b3||a7===0x93b4||a7===0x93b5||a7===0x93b6||a7===0x93b7||a7===0x93b8||a7===0x93b9||a7===0x93ba||a7===0x93bb||a7===0x93bc||a7===0x93bd){if(a9=a5['get']('WEBGL_compressed_texture_astc'),a9!==null){if(a7===0x93b0)return ab==='srgb'?a9[uD(0x1e4)]:a9[uD(0x282)];if(a7===0x93b1)return ab===uD(0x472)?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR']:a9['COMPRESSED_RGBA_ASTC_5x4_KHR'];if(a7===0x93b2)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR']:a9['COMPRESSED_RGBA_ASTC_5x5_KHR'];if(a7===0x93b3)return ab===uD(0x472)?a9[uD(0x1d9)]:a9['COMPRESSED_RGBA_ASTC_6x5_KHR'];if(a7===0x93b4)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR']:a9['COMPRESSED_RGBA_ASTC_6x6_KHR'];if(a7===0x93b5)return ab===uD(0x472)?a9[uD(0x10f)]:a9['COMPRESSED_RGBA_ASTC_8x5_KHR'];if(a7===0x93b6)return ab===uD(0x472)?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR']:a9['COMPRESSED_RGBA_ASTC_8x6_KHR'];if(a7===0x93b7)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR']:a9['COMPRESSED_RGBA_ASTC_8x8_KHR'];if(a7===0x93b8)return ab==='srgb'?a9[uD(0x1c5)]:a9['COMPRESSED_RGBA_ASTC_10x5_KHR'];if(a7===0x93b9)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR']:a9['COMPRESSED_RGBA_ASTC_10x6_KHR'];if(a7===0x93ba)return ab===uD(0x472)?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR']:a9['COMPRESSED_RGBA_ASTC_10x8_KHR'];if(a7===0x93bb)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR']:a9['COMPRESSED_RGBA_ASTC_10x10_KHR'];if(a7===0x93bc)return ab==='srgb'?a9[uD(0x574)]:a9['COMPRESSED_RGBA_ASTC_12x10_KHR'];if(a7===0x93bd)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR']:a9['COMPRESSED_RGBA_ASTC_12x12_KHR'];}else return null;}if(a7===0x8e8c||a7===0x8e8e||a7===0x8e8f){if(a9=a5['get']('EXT_texture_compression_bptc'),a9!==null){if(a7===0x8e8c)return ab===uD(0x472)?a9['COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT']:a9['COMPRESSED_RGBA_BPTC_UNORM_EXT'];if(a7===0x8e8e)return a9['COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT'];if(a7===0x8e8f)return a9['COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT'];}else return null;}if(a7===0x8dbb||a7===0x8dbc||a7===0x8dbd||a7===0x8dbe){if(a9=a5['get']('EXT_texture_compression_rgtc'),a9!==null){if(a7===0x8dbb)return a9['COMPRESSED_RED_RGTC1_EXT'];if(a7===0x8dbc)return a9['COMPRESSED_SIGNED_RED_RGTC1_EXT'];if(a7===0x8dbd)return a9['COMPRESSED_RED_GREEN_RGTC2_EXT'];if(a7===0x8dbe)return a9['COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT'];}else return null;}return a7===0x3fc?a4['UNSIGNED_INT_24_8']:a4[a7]===void 0x0?null:a4[a7];}return{'convert':a6};}var ud=d4(0x11f),dd='\x0auniform\x20sampler2DArray\x20depthColor;\x0auniform\x20float\x20depthWidth;\x0auniform\x20float\x20depthHeight;\x0a\x0avoid\x20main()\x20{\x0a\x0a\x09vec2\x20coord\x20=\x20vec2(\x20gl_FragCoord.x\x20/\x20depthWidth,\x20gl_FragCoord.y\x20/\x20depthHeight\x20);\x0a\x0a\x09if\x20(\x20coord.x\x20>=\x201.0\x20)\x20{\x0a\x0a\x09\x09gl_FragDepth\x20=\x20texture(\x20depthColor,\x20vec3(\x20coord.x\x20-\x201.0,\x20coord.y,\x201\x20)\x20).r;\x0a\x0a\x09}\x20else\x20{\x0a\x0a\x09\x09gl_FragDepth\x20=\x20texture(\x20depthColor,\x20vec3(\x20coord.x,\x20coord.y,\x200\x20)\x20).r;\x0a\x0a\x09}\x0a\x0a}',fd=class{constructor(){const uE=d4;this[uE(0x2e9)]=null,this[uE(0xd0)]=null,this['depthNear']=0x0,this[uE(0x3a0)]=0x0;}['init'](a4,a5){const uF=d4;if(this['texture']===null){let a6=new xa(a4['texture']);(a4['depthNear']!==a5['depthNear']||a4[uF(0x3a0)]!==a5['depthFar'])&&(this[uF(0x273)]=a4['depthNear'],this['depthFar']=a4['depthFar']),this['texture']=a6;}}['getMesh'](a4){const uG=d4;if(this['texture']!==null&&this[uG(0xd0)]===null){let a5=a4[uG(0x1bb)][0x0]['viewport'],a6=new xo({'vertexShader':ud,'fragmentShader':dd,'uniforms':{'depthColor':{'value':this[uG(0x2e9)]},'depthWidth':{'value':a5['z']},'depthHeight':{'value':a5['w']}}});this['mesh']=new gi(new uo(0x14,0x14),a6);}return this[uG(0xd0)];}['reset'](){const uH=d4;this['texture']=null,this[uH(0xd0)]=null;}['getDepthTexture'](){return this['texture'];}},pd=class extends xt{constructor(a4,a5){const uI=d4;super();let a6=this,a7=null,a8=0x1,a9=null,ab=uI(0x24d),af=0x1,ag=null,ah=null,aj=null,ak=null,am=null,ap=null,aq=typeof XRWebGLBinding<'u',av=new fd(),aw={},ax=a5[uI(0x585)](),ay=null,az=null,aA=[],aB=[],aC=new U(),aD=null,aE=new bs();aE['viewport']=new q();let aF=new bs();aF['viewport']=new q();let aG=[aE,aF],aH=new Is(),aI=null,aJ=null;this['cameraAutoUpdate']=!0x0,this['enabled']=!0x1,this[uI(0x491)]=!0x1,this['getController']=function(aV){let aW=aA[aV];return aW===void 0x0&&(aW=new Wn(),aA[aV]=aW),aW['getTargetRaySpace']();},this['getControllerGrip']=function(aV){let aW=aA[aV];return aW===void 0x0&&(aW=new Wn(),aA[aV]=aW),aW['getGripSpace']();},this['getHand']=function(aV){let aW=aA[aV];return aW===void 0x0&&(aW=new Wn(),aA[aV]=aW),aW['getHandSpace']();};function aK(aV){const uJ=uI;let aW=aB['indexOf'](aV['inputSource']);if(aW===-0x1)return;let aX=aA[aW];aX!==void 0x0&&(aX['update'](aV['inputSource'],aV['frame'],ag||a9),aX['dispatchEvent']({'type':aV[uJ(0x40b)],'data':aV['inputSource']}));}function aL(){const uK=uI;a7['removeEventListener'](uK(0x59f),aK),a7['removeEventListener']('selectstart',aK),a7[uK(0x40e)]('selectend',aK),a7['removeEventListener']('squeeze',aK),a7['removeEventListener']('squeezestart',aK),a7['removeEventListener']('squeezeend',aK),a7['removeEventListener'](uK(0x4d4),aL),a7['removeEventListener']('inputsourceschange',aM);for(let aV=0x0;aV<aA[uK(0x27a)];aV++){let aW=aB[aV];aW!==null&&(aB[aV]=null,aA[aV]['disconnect'](aW));}aI=null,aJ=null,av[uK(0x54e)]();for(let aX in aw)delete aw[aX];a4['setRenderTarget'](ay),am=null,ak=null,aj=null,a7=null,az=null,aU['stop'](),a6['isPresenting']=!0x1,a4['setPixelRatio'](aD),a4['setSize'](aC['width'],aC['height'],!0x1),a6[uK(0x8c)]({'type':'sessionend'});}this['setFramebufferScaleFactor']=function(aV){a8=aV,a6['isPresenting']===!0x0&&z('WebXRManager:\x20Cannot\x20change\x20framebuffer\x20scale\x20while\x20presenting.');},this['setReferenceSpaceType']=function(aV){ab=aV,a6['isPresenting']===!0x0&&z('WebXRManager:\x20Cannot\x20change\x20reference\x20space\x20type\x20while\x20presenting.');},this['getReferenceSpace']=function(){return ag||a9;},this[uI(0x389)]=function(aV){ag=aV;},this['getBaseLayer']=function(){return ak===null?am:ak;},this['getBinding']=function(){return aj===null&&aq&&(aj=new XRWebGLBinding(a7,a5)),aj;},this['getFrame']=function(){return ap;},this['getSession']=function(){return a7;},this['setSession']=(function(){var aV=a3(function*(aW){const uL=a1;if(a7=aW,a7!==null){if(ay=a4['getRenderTarget'](),a7['addEventListener']('select',aK),a7['addEventListener'](uL(0x20f),aK),a7['addEventListener']('selectend',aK),a7['addEventListener']('squeeze',aK),a7['addEventListener'](uL(0xec),aK),a7['addEventListener']('squeezeend',aK),a7[uL(0x151)]('end',aL),a7['addEventListener'](uL(0x497),aM),ax['xrCompatible']!==!0x0&&(yield a5['makeXRCompatible']()),aD=a4[uL(0x345)](),a4['getSize'](aC),aq&&'createProjectionLayer'in XRWebGLBinding['prototype']){let aX=null,aY=null,aZ=null;ax[uL(0x11c)]&&(aZ=ax[uL(0x3b3)]?a5[uL(0x4a6)]:a5['DEPTH_COMPONENT24'],aX=ax['stencil']?ce:se,aY=ax['stencil']?re:k);let b0={'colorFormat':a5['RGBA8'],'depthFormat':aZ,'scaleFactor':a8};aj=this['getBinding'](),ak=aj['createProjectionLayer'](b0),a7['updateRenderState']({'layers':[ak]}),a4['setPixelRatio'](0x1),a4['setSize'](ak['textureWidth'],ak['textureHeight'],!0x1),az=new fn(ak[uL(0x121)],ak['textureHeight'],{'format':oe,'type':T,'depthTexture':new ya(ak['textureWidth'],ak['textureHeight'],aY,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,aX),'stencilBuffer':ax[uL(0x3b3)],'colorSpace':a4['outputColorSpace'],'samples':ax['antialias']?0x4:0x0,'resolveDepthBuffer':ak['ignoreDepthValues']===!0x1,'resolveStencilBuffer':ak['ignoreDepthValues']===!0x1});}else{let b1={'antialias':ax['antialias'],'alpha':!0x0,'depth':ax['depth'],'stencil':ax['stencil'],'framebufferScaleFactor':a8};am=new XRWebGLLayer(a7,a5,b1),a7['updateRenderState']({'baseLayer':am}),a4[uL(0x49b)](0x1),a4['setSize'](am['framebufferWidth'],am[uL(0xf6)],!0x1),az=new fn(am['framebufferWidth'],am['framebufferHeight'],{'format':oe,'type':T,'colorSpace':a4['outputColorSpace'],'stencilBuffer':ax['stencil'],'resolveDepthBuffer':am[uL(0x1f7)]===!0x1,'resolveStencilBuffer':am['ignoreDepthValues']===!0x1});}az['isXRRenderTarget']=!0x0,this['setFoveation'](af),ag=null,a9=yield a7['requestReferenceSpace'](ab),aU['setContext'](a7),aU['start'](),a6['isPresenting']=!0x0,a6['dispatchEvent']({'type':uL(0xd4)});}});return function(aW){const uM=a1;return aV[uM(0x3b6)](this,arguments);};}()),this['getEnvironmentBlendMode']=function(){const uN=uI;if(a7!==null)return a7[uN(0x46d)];},this['getDepthTexture']=function(){return av['getDepthTexture']();};function aM(aV){const uO=uI;for(let aW=0x0;aW<aV[uO(0x53b)]['length'];aW++){let aX=aV['removed'][aW],aY=aB['indexOf'](aX);aY>=0x0&&(aB[aY]=null,aA[aY]['disconnect'](aX));}for(let aZ=0x0;aZ<aV['added']['length'];aZ++){let b0=aV[uO(0x3d6)][aZ],b1=aB['indexOf'](b0);if(b1===-0x1){for(let b3=0x0;b3<aA['length'];b3++)if(b3>=aB['length']){aB['push'](b0),b1=b3;break;}else{if(aB[b3]===null){aB[b3]=b0,b1=b3;break;}}if(b1===-0x1)break;}let b2=aA[b1];b2&&b2['connect'](b0);}}let aN=new W(),aO=new W();function aP(aV,aW,aX){const uP=uI;aN['setFromMatrixPosition'](aW['matrixWorld']),aO['setFromMatrixPosition'](aX[uP(0x3b8)]);let aY=aN['distanceTo'](aO),aZ=aW['projectionMatrix']['elements'],b0=aX['projectionMatrix'][uP(0xdf)],b1=aZ[0xe]/(aZ[0xa]-0x1),b2=aZ[0xe]/(aZ[0xa]+0x1),b3=(aZ[0x9]+0x1)/aZ[0x5],b4=(aZ[0x9]-0x1)/aZ[0x5],b5=(aZ[0x8]-0x1)/aZ[0x0],b6=(b0[0x8]+0x1)/b0[0x0],b7=b1*b5,b8=b1*b6,b9=aY/(-b5+b6),bb=b9*-b5;if(aW[uP(0x3b8)][uP(0xe8)](aV['position'],aV['quaternion'],aV['scale']),aV['translateX'](bb),aV['translateZ'](b9),aV['matrixWorld']['compose'](aV['position'],aV['quaternion'],aV['scale']),aV['matrixWorldInverse']['copy'](aV[uP(0x3b8)])['invert'](),aZ[0xa]===-0x1)aV['projectionMatrix']['copy'](aW['projectionMatrix']),aV['projectionMatrixInverse']['copy'](aW['projectionMatrixInverse']);else{let bf=b1+b9,bg=b2+b9,bh=b7-bb,bj=b8+(aY-bb),bk=b3*b2/bg*bf,bm=b4*b2/bg*bf;aV['projectionMatrix']['makePerspective'](bh,bj,bk,bm,bf,bg),aV['projectionMatrixInverse']['copy'](aV[uP(0x2ea)])['invert']();}}function aQ(aV,aW){const uQ=uI;aW===null?aV['matrixWorld']['copy'](aV['matrix']):aV[uQ(0x3b8)]['multiplyMatrices'](aW['matrixWorld'],aV['matrix']),aV['matrixWorldInverse']['copy'](aV['matrixWorld'])['invert']();}this[uI(0x425)]=function(aV){const uR=uI;if(a7===null)return;let aW=aV['near'],aX=aV['far'];av[uR(0x2e9)]!==null&&(av['depthNear']>0x0&&(aW=av[uR(0x273)]),av['depthFar']>0x0&&(aX=av['depthFar'])),aH['near']=aF['near']=aE['near']=aW,aH['far']=aF['far']=aE['far']=aX,(aI!==aH['near']||aJ!==aH['far'])&&(a7['updateRenderState']({'depthNear':aH['near'],'depthFar':aH['far']}),aI=aH['near'],aJ=aH[uR(0x512)]),aH['layers'][uR(0x12b)]=aV['layers'][uR(0x12b)]|0x6,aE['layers']['mask']=aH['layers']['mask']&-0x5,aF['layers']['mask']=aH['layers'][uR(0x12b)]&-0x3;let aY=aV['parent'],aZ=aH['cameras'];aQ(aH,aY);for(let b0=0x0;b0<aZ['length'];b0++)aQ(aZ[b0],aY);aZ[uR(0x27a)]===0x2?aP(aH,aE,aF):aH['projectionMatrix']['copy'](aE['projectionMatrix']),aR(aV,aH,aY);};function aR(aV,aW,aX){const uS=uI;aX===null?aV['matrix']['copy'](aW['matrixWorld']):(aV['matrix']['copy'](aX['matrixWorld']),aV['matrix']['invert'](),aV['matrix']['multiply'](aW['matrixWorld'])),aV['matrix']['decompose'](aV[uS(0x478)],aV['quaternion'],aV['scale']),aV['updateMatrixWorld'](!0x0),aV['projectionMatrix'][uS(0x32f)](aW['projectionMatrix']),aV['projectionMatrixInverse']['copy'](aW['projectionMatrixInverse']),aV['isPerspectiveCamera']&&(aV['fov']=Tt*0x2*Math['atan'](0x1/aV['projectionMatrix']['elements'][0x5]),aV['zoom']=0x1);}this['getCamera']=function(){return aH;},this['getFoveation']=function(){if(!(ak===null&&am===null))return af;},this['setFoveation']=function(aV){const uT=uI;af=aV,ak!==null&&(ak[uT(0x572)]=aV),am!==null&&am[uT(0x572)]!==void 0x0&&(am['fixedFoveation']=aV);},this[uI(0x40f)]=function(){return av['texture']!==null;},this['getDepthSensingMesh']=function(){return av['getMesh'](aH);},this['getCameraTexture']=function(aV){return aw[aV];};let aS=null;function aT(aV,aW){const uU=uI;if(ah=aW['getViewerPose'](ag||a9),ap=aW,ah!==null){let aX=ah['views'];am!==null&&(a4[uU(0x1b0)](az,am['framebuffer']),a4[uU(0x112)](az));let aY=!0x1;aX['length']!==aH['cameras'][uU(0x27a)]&&(aH['cameras'][uU(0x27a)]=0x0,aY=!0x0);for(let b0=0x0;b0<aX[uU(0x27a)];b0++){let b1=aX[b0],b2=null;if(am!==null)b2=am['getViewport'](b1);else{let b4=aj['getViewSubImage'](ak,b1);b2=b4['viewport'],b0===0x0&&(a4['setRenderTargetTextures'](az,b4['colorTexture'],b4['depthStencilTexture']),a4['setRenderTarget'](az));}let b3=aG[b0];b3===void 0x0&&(b3=new bs(),b3['layers']['enable'](b0),b3[uU(0x1c0)]=new q(),aG[b0]=b3),b3['matrix']['fromArray'](b1['transform']['matrix']),b3[uU(0x57a)]['decompose'](b3['position'],b3['quaternion'],b3['scale']),b3['projectionMatrix']['fromArray'](b1['projectionMatrix']),b3['projectionMatrixInverse'][uU(0x32f)](b3['projectionMatrix'])['invert'](),b3[uU(0x1c0)]['set'](b2['x'],b2['y'],b2['width'],b2['height']),b0===0x0&&(aH[uU(0x57a)]['copy'](b3['matrix']),aH[uU(0x57a)]['decompose'](aH[uU(0x478)],aH['quaternion'],aH['scale'])),aY===!0x0&&aH['cameras']['push'](b3);}let aZ=a7['enabledFeatures'];if(aZ&&aZ[uU(0x36e)]('depth-sensing')&&a7['depthUsage']=='gpu-optimized'&&aq){aj=a6['getBinding']();let b5=aj['getDepthInformation'](aX[0x0]);b5&&b5['isValid']&&b5['texture']&&av['init'](b5,a7['renderState']);}if(aZ&&aZ['includes']('camera-access')&&aq){a4['state']['unbindTexture'](),aj=a6['getBinding']();for(let b6=0x0;b6<aX['length'];b6++){let b7=aX[b6]['camera'];if(b7){let b8=aw[b7];b8||(b8=new xa(),aw[b7]=b8);let b9=aj['getCameraImage'](b7);b8['sourceTexture']=b9;}}}}for(let bb=0x0;bb<aA['length'];bb++){let bf=aB[bb],bg=aA[bb];bf!==null&&bg!==void 0x0&&bg['update'](bf,aW,ag||a9);}aS&&aS(aV,aW),aW['detectedPlanes']&&a6['dispatchEvent']({'type':'planesdetected','data':aW}),ap=null;}let aU=new oc();aU['setAnimationLoop'](aT),this['setAnimationLoop']=function(aV){aS=aV;},this['dispose']=function(){};}},md=new J(),hd=new G();hd['set'](-0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1);function gd(a4,a5){function a6(aw,ax){const uV=a1;aw['matrixAutoUpdate']===!0x0&&aw['updateMatrix'](),ax[uV(0x529)]['copy'](aw[uV(0x57a)]);}function a7(aw,ax){const uW=a1;ax['color'][uW(0xe0)](aw['fogColor']['value'],_o(a4)),ax['isFog']?(aw[uW(0x30a)]['value']=ax['near'],aw['fogFar']['value']=ax[uW(0x512)]):ax['isFogExp2']&&(aw['fogDensity']['value']=ax['density']);}function a8(aw,ax,ay,az,aA){const uX=a1;ax['isNodeMaterial']?ax[uX(0x3de)]=!0x1:ax['isMeshBasicMaterial']?a9(aw,ax):ax['isMeshLambertMaterial']?(a9(aw,ax),ax['envMap']&&(aw['envMapIntensity'][uX(0x529)]=ax['envMapIntensity'])):ax['isMeshToonMaterial']?(a9(aw,ax),ak(aw,ax)):ax['isMeshPhongMaterial']?(a9(aw,ax),aj(aw,ax),ax['envMap']&&(aw['envMapIntensity']['value']=ax['envMapIntensity'])):ax['isMeshStandardMaterial']?(a9(aw,ax),am(aw,ax),ax['isMeshPhysicalMaterial']&&ap(aw,ax,aA)):ax['isMeshMatcapMaterial']?(a9(aw,ax),aq(aw,ax)):ax['isMeshDepthMaterial']?a9(aw,ax):ax[uX(0x102)]?(a9(aw,ax),av(aw,ax)):ax['isMeshNormalMaterial']?a9(aw,ax):ax['isLineBasicMaterial']?(ab(aw,ax),ax['isLineDashedMaterial']&&af(aw,ax)):ax['isPointsMaterial']?ag(aw,ax,ay,az):ax['isSpriteMaterial']?ah(aw,ax):ax['isShadowMaterial']?(aw['color']['value']['copy'](ax['color']),aw['opacity']['value']=ax['opacity']):ax['isShaderMaterial']&&(ax['uniformsNeedUpdate']=!0x1);}function a9(aw,ax){const uY=a1;aw[uY(0x1f3)]['value']=ax['opacity'],ax[uY(0x379)]&&aw['diffuse']['value']['copy'](ax['color']),ax['emissive']&&aw[uY(0x190)]['value']['copy'](ax['emissive'])['multiplyScalar'](ax['emissiveIntensity']),ax['map']&&(aw[uY(0x146)]['value']=ax['map'],a6(ax[uY(0x146)],aw[uY(0x31f)])),ax['alphaMap']&&(aw['alphaMap']['value']=ax['alphaMap'],a6(ax['alphaMap'],aw['alphaMapTransform'])),ax['bumpMap']&&(aw['bumpMap'][uY(0x529)]=ax['bumpMap'],a6(ax['bumpMap'],aw['bumpMapTransform']),aw['bumpScale'][uY(0x529)]=ax['bumpScale'],ax['side']===0x1&&(aw['bumpScale']['value']*=-0x1)),ax['normalMap']&&(aw[uY(0x126)]['value']=ax['normalMap'],a6(ax['normalMap'],aw['normalMapTransform']),aw[uY(0x9c)]['value']['copy'](ax[uY(0x9c)]),ax['side']===0x1&&aw['normalScale'][uY(0x529)]['negate']()),ax['displacementMap']&&(aw[uY(0x9e)]['value']=ax['displacementMap'],a6(ax['displacementMap'],aw['displacementMapTransform']),aw['displacementScale']['value']=ax['displacementScale'],aw['displacementBias']['value']=ax['displacementBias']),ax[uY(0x17e)]&&(aw['emissiveMap'][uY(0x529)]=ax['emissiveMap'],a6(ax[uY(0x17e)],aw[uY(0x11e)])),ax['specularMap']&&(aw['specularMap']['value']=ax['specularMap'],a6(ax['specularMap'],aw['specularMapTransform'])),ax[uY(0x199)]>0x0&&(aw['alphaTest']['value']=ax['alphaTest']);let ay=a5['get'](ax),az=ay['envMap'],aA=ay['envMapRotation'];az&&(aw['envMap']['value']=az,aw['envMapRotation']['value']['setFromMatrix4'](md['makeRotationFromEuler'](aA))['transpose'](),az['isCubeTexture']&&az['isRenderTargetTexture']===!0x1&&aw[uY(0x4c1)]['value']['premultiply'](hd),aw['reflectivity'][uY(0x529)]=ax['reflectivity'],aw['ior']['value']=ax[uY(0x19e)],aw['refractionRatio']['value']=ax['refractionRatio']),ax['lightMap']&&(aw['lightMap']['value']=ax['lightMap'],aw[uY(0x274)]['value']=ax['lightMapIntensity'],a6(ax['lightMap'],aw['lightMapTransform'])),ax['aoMap']&&(aw['aoMap']['value']=ax['aoMap'],aw['aoMapIntensity']['value']=ax['aoMapIntensity'],a6(ax['aoMap'],aw['aoMapTransform']));}function ab(aw,ax){const uZ=a1;aw['diffuse'][uZ(0x529)]['copy'](ax['color']),aw[uZ(0x1f3)]['value']=ax[uZ(0x1f3)],ax['map']&&(aw['map']['value']=ax['map'],a6(ax['map'],aw['mapTransform']));}function af(aw,ax){const v0=a1;aw['dashSize']['value']=ax['dashSize'],aw['totalSize']['value']=ax['dashSize']+ax['gapSize'],aw[v0(0xcf)]['value']=ax['scale'];}function ag(aw,ax,ay,az){const v1=a1;aw['diffuse']['value']['copy'](ax['color']),aw['opacity'][v1(0x529)]=ax['opacity'],aw['size'][v1(0x529)]=ax[v1(0x19f)]*ay,aw['scale'][v1(0x529)]=az*0.5,ax['map']&&(aw['map']['value']=ax['map'],a6(ax['map'],aw['uvTransform'])),ax['alphaMap']&&(aw['alphaMap']['value']=ax['alphaMap'],a6(ax['alphaMap'],aw['alphaMapTransform'])),ax['alphaTest']>0x0&&(aw[v1(0x199)]['value']=ax[v1(0x199)]);}function ah(aw,ax){const v2=a1;aw['diffuse']['value']['copy'](ax[v2(0x379)]),aw['opacity'][v2(0x529)]=ax['opacity'],aw['rotation'][v2(0x529)]=ax['rotation'],ax[v2(0x146)]&&(aw['map']['value']=ax[v2(0x146)],a6(ax['map'],aw[v2(0x31f)])),ax['alphaMap']&&(aw[v2(0xed)]['value']=ax['alphaMap'],a6(ax['alphaMap'],aw[v2(0x1a2)])),ax[v2(0x199)]>0x0&&(aw[v2(0x199)]['value']=ax[v2(0x199)]);}function aj(aw,ax){const v3=a1;aw[v3(0x46a)]['value']['copy'](ax['specular']),aw['shininess']['value']=Math[v3(0x360)](ax[v3(0x170)],0.0001);}function ak(aw,ax){ax['gradientMap']&&(aw['gradientMap']['value']=ax['gradientMap']);}function am(aw,ax){const v4=a1;aw['metalness']['value']=ax['metalness'],ax['metalnessMap']&&(aw['metalnessMap']['value']=ax['metalnessMap'],a6(ax[v4(0x241)],aw['metalnessMapTransform'])),aw['roughness']['value']=ax['roughness'],ax['roughnessMap']&&(aw['roughnessMap']['value']=ax['roughnessMap'],a6(ax[v4(0x354)],aw['roughnessMapTransform'])),ax['envMap']&&(aw[v4(0x1e6)]['value']=ax[v4(0x1e6)]);}function ap(aw,ax,ay){const v5=a1;aw['ior']['value']=ax['ior'],ax['sheen']>0x0&&(aw['sheenColor']['value']['copy'](ax['sheenColor'])['multiplyScalar'](ax['sheen']),aw['sheenRoughness']['value']=ax['sheenRoughness'],ax['sheenColorMap']&&(aw['sheenColorMap']['value']=ax['sheenColorMap'],a6(ax['sheenColorMap'],aw['sheenColorMapTransform'])),ax['sheenRoughnessMap']&&(aw['sheenRoughnessMap']['value']=ax[v5(0x119)],a6(ax['sheenRoughnessMap'],aw[v5(0x4b5)]))),ax['clearcoat']>0x0&&(aw['clearcoat'][v5(0x529)]=ax['clearcoat'],aw['clearcoatRoughness']['value']=ax['clearcoatRoughness'],ax[v5(0x557)]&&(aw['clearcoatMap']['value']=ax['clearcoatMap'],a6(ax[v5(0x557)],aw[v5(0x358)])),ax['clearcoatRoughnessMap']&&(aw['clearcoatRoughnessMap']['value']=ax[v5(0x1d2)],a6(ax[v5(0x1d2)],aw['clearcoatRoughnessMapTransform'])),ax['clearcoatNormalMap']&&(aw['clearcoatNormalMap']['value']=ax[v5(0x467)],a6(ax['clearcoatNormalMap'],aw['clearcoatNormalMapTransform']),aw['clearcoatNormalScale']['value'][v5(0x32f)](ax['clearcoatNormalScale']),ax['side']===0x1&&aw['clearcoatNormalScale']['value']['negate']())),ax['dispersion']>0x0&&(aw['dispersion']['value']=ax['dispersion']),ax['iridescence']>0x0&&(aw[v5(0x539)][v5(0x529)]=ax['iridescence'],aw['iridescenceIOR']['value']=ax['iridescenceIOR'],aw['iridescenceThicknessMinimum']['value']=ax[v5(0x1ae)][0x0],aw['iridescenceThicknessMaximum']['value']=ax['iridescenceThicknessRange'][0x1],ax[v5(0x4df)]&&(aw['iridescenceMap']['value']=ax['iridescenceMap'],a6(ax[v5(0x4df)],aw['iridescenceMapTransform'])),ax['iridescenceThicknessMap']&&(aw['iridescenceThicknessMap']['value']=ax['iridescenceThicknessMap'],a6(ax['iridescenceThicknessMap'],aw['iridescenceThicknessMapTransform']))),ax['transmission']>0x0&&(aw['transmission']['value']=ax['transmission'],aw['transmissionSamplerMap']['value']=ay[v5(0x2e9)],aw[v5(0x48f)]['value'][v5(0x479)](ay['width'],ay['height']),ax['transmissionMap']&&(aw['transmissionMap']['value']=ax[v5(0x86)],a6(ax['transmissionMap'],aw['transmissionMapTransform'])),aw['thickness'][v5(0x529)]=ax[v5(0x229)],ax['thicknessMap']&&(aw['thicknessMap']['value']=ax[v5(0x3b0)],a6(ax['thicknessMap'],aw['thicknessMapTransform'])),aw['attenuationDistance']['value']=ax['attenuationDistance'],aw['attenuationColor'][v5(0x529)]['copy'](ax[v5(0x4bf)])),ax['anisotropy']>0x0&&(aw['anisotropyVector'][v5(0x529)][v5(0x479)](ax['anisotropy']*Math['cos'](ax['anisotropyRotation']),ax['anisotropy']*Math['sin'](ax['anisotropyRotation'])),ax['anisotropyMap']&&(aw[v5(0x32e)]['value']=ax['anisotropyMap'],a6(ax['anisotropyMap'],aw['anisotropyMapTransform']))),aw['specularIntensity']['value']=ax['specularIntensity'],aw['specularColor']['value']['copy'](ax['specularColor']),ax['specularColorMap']&&(aw['specularColorMap']['value']=ax[v5(0xff)],a6(ax['specularColorMap'],aw[v5(0x4ca)])),ax['specularIntensityMap']&&(aw['specularIntensityMap']['value']=ax['specularIntensityMap'],a6(ax['specularIntensityMap'],aw['specularIntensityMapTransform']));}function aq(aw,ax){ax['matcap']&&(aw['matcap']['value']=ax['matcap']);}function av(aw,ax){const v6=a1;let ay=a5['get'](ax)['light'];aw['referencePosition'][v6(0x529)]['setFromMatrixPosition'](ay['matrixWorld']),aw['nearDistance']['value']=ay['shadow']['camera']['near'],aw['farDistance']['value']=ay['shadow']['camera']['far'];}return{'refreshFogUniforms':a7,'refreshMaterialUniforms':a8};}function _d(a4,a5,a6,a7){let a8={},a9={},ab=[],af=a4['getParameter'](a4['MAX_UNIFORM_BUFFER_BINDINGS']);function ag(ay,az){let aA=az['program'];a7['uniformBlockBinding'](ay,aA);}function ah(ay,az){const v7=a1;let aA=a8[ay['id']];aA===void 0x0&&(aq(ay),aA=aj(ay),a8[ay['id']]=aA,ay['addEventListener'](v7(0x365),aw));let aB=az['program'];a7['updateUBOMapping'](ay,aB);let aC=a5['render']['frame'];a9[ay['id']]!==aC&&(am(ay),a9[ay['id']]=aC);}function aj(ay){const v8=a1;let az=ak();ay['__bindingPointIndex']=az;let aA=a4['createBuffer'](),aB=ay['__size'],aC=ay[v8(0x37a)];return a4['bindBuffer'](a4['UNIFORM_BUFFER'],aA),a4['bufferData'](a4['UNIFORM_BUFFER'],aB,aC),a4[v8(0x3a5)](a4['UNIFORM_BUFFER'],null),a4['bindBufferBase'](a4[v8(0xa0)],az,aA),aA;}function ak(){for(let ay=0x0;ay<af;ay++)if(ab['indexOf'](ay)===-0x1)return ab['push'](ay),ay;return B('WebGLRenderer:\x20Maximum\x20number\x20of\x20simultaneously\x20usable\x20uniforms\x20groups\x20reached.'),0x0;}function am(ay){const v9=a1;let az=a8[ay['id']],aA=ay[v9(0x21c)],aB=ay['__cache'];a4[v9(0x3a5)](a4[v9(0xa0)],az);for(let aC=0x0,aD=aA['length'];aC<aD;aC++){let aE=Array[v9(0x93)](aA[aC])?aA[aC]:[aA[aC]];for(let aF=0x0,aG=aE['length'];aF<aG;aF++){let aH=aE[aF];if(ap(aH,aC,aF,aB)===!0x0){let aI=aH['__offset'],aJ=Array['isArray'](aH[v9(0x529)])?aH['value']:[aH['value']],aK=0x0;for(let aL=0x0;aL<aJ['length'];aL++){let aM=aJ[aL],aN=av(aM);typeof aM==v9(0x29c)||typeof aM=='boolean'?(aH['__data'][0x0]=aM,a4['bufferSubData'](a4['UNIFORM_BUFFER'],aI+aK,aH['__data'])):aM['isMatrix3']?(aH['__data'][0x0]=aM[v9(0xdf)][0x0],aH[v9(0x530)][0x1]=aM['elements'][0x1],aH['__data'][0x2]=aM['elements'][0x2],aH[v9(0x530)][0x3]=0x0,aH['__data'][0x4]=aM[v9(0xdf)][0x3],aH[v9(0x530)][0x5]=aM[v9(0xdf)][0x4],aH['__data'][0x6]=aM[v9(0xdf)][0x5],aH['__data'][0x7]=0x0,aH[v9(0x530)][0x8]=aM['elements'][0x6],aH['__data'][0x9]=aM['elements'][0x7],aH['__data'][0xa]=aM[v9(0xdf)][0x8],aH['__data'][0xb]=0x0):ArrayBuffer['isView'](aM)?aH['__data']['set'](new aM[(v9(0x27b))](aM['buffer'],aM['byteOffset'],aH[v9(0x530)]['length'])):(aM['toArray'](aH[v9(0x530)],aK),aK+=aN['storage']/Float32Array['BYTES_PER_ELEMENT']);}a4['bufferSubData'](a4[v9(0xa0)],aI,aH['__data']);}}}a4['bindBuffer'](a4['UNIFORM_BUFFER'],null);}function ap(ay,az,aA,aB){const vb=a1;let aC=ay['value'],aD=az+'_'+aA;if(aB[aD]===void 0x0)return typeof aC==vb(0x29c)||typeof aC=='boolean'?aB[aD]=aC:ArrayBuffer['isView'](aC)?aB[aD]=aC[vb(0xfd)]():aB[aD]=aC['clone'](),!0x0;{let aE=aB[aD];if(typeof aC=='number'||typeof aC==vb(0x1d8)){if(aE!==aC)return aB[aD]=aC,!0x0;}else{if(ArrayBuffer['isView'](aC))return!0x0;else{if(aE['equals'](aC)===!0x1)return aE['copy'](aC),!0x0;}}}return!0x1;}function aq(ay){const vf=a1;let az=ay['uniforms'],aA=0x0;for(let aC=0x0,aD=az['length'];aC<aD;aC++){let aE=Array[vf(0x93)](az[aC])?az[aC]:[az[aC]];for(let aF=0x0,aG=aE['length'];aF<aG;aF++){let aH=aE[aF],aI=Array['isArray'](aH['value'])?aH['value']:[aH['value']];for(let aJ=0x0,aK=aI['length'];aJ<aK;aJ++){let aL=aI[aJ],aM=av(aL),aN=aA%0x10,aO=aN%aM['boundary'],aP=aN+aO;aA+=aO,aP!==0x0&&0x10-aP<aM['storage']&&(aA+=0x10-aP),aH['__data']=new Float32Array(aM['storage']/Float32Array['BYTES_PER_ELEMENT']),aH[vf(0x1ee)]=aA,aA+=aM['storage'];}}}let aB=aA%0x10;return aB>0x0&&(aA+=0x10-aB),ay[vf(0x284)]=aA,ay['__cache']={},this;}function av(ay){const vg=a1;let az={'boundary':0x0,'storage':0x0};return typeof ay=='number'||typeof ay=='boolean'?(az['boundary']=0x4,az['storage']=0x4):ay[vg(0xc4)]?(az['boundary']=0x8,az[vg(0x29d)]=0x8):ay['isVector3']||ay['isColor']?(az['boundary']=0x10,az['storage']=0xc):ay['isVector4']?(az['boundary']=0x10,az['storage']=0x10):ay['isMatrix3']?(az[vg(0x2cd)]=0x30,az['storage']=0x30):ay['isMatrix4']?(az[vg(0x2cd)]=0x40,az['storage']=0x40):ay['isTexture']?z('WebGLRenderer:\x20Texture\x20samplers\x20can\x20not\x20be\x20part\x20of\x20an\x20uniforms\x20group.'):ArrayBuffer[vg(0x96)](ay)?(az['boundary']=0x10,az[vg(0x29d)]=ay['byteLength']):z('WebGLRenderer:\x20Unsupported\x20uniform\x20value\x20type.',ay),az;}function aw(ay){const vh=a1;let az=ay['target'];az[vh(0x40e)]('dispose',aw);let aA=ab['indexOf'](az['__bindingPointIndex']);ab['splice'](aA,0x1),a4['deleteBuffer'](a8[az['id']]),delete a8[az['id']],delete a9[az['id']];}function ax(){const vj=a1;for(let ay in a8)a4[vj(0x452)](a8[ay]);ab=[],a8={},a9={};}return{'bind':ag,'update':ah,'dispose':ax};}var vd=new Uint16Array([0x30b5,0x3ad1,0x314c,0x3a4d,0x33d2,0x391c,0x35ef,0x3828,0x37f3,0x36a6,0x38d1,0x3539,0x3979,0x3410,0x39f8,0x3252,0x3a53,0x30f0,0x3a94,0x2fc9,0x3abf,0x2e35,0x3ada,0x2d05,0x3ae8,0x2c1f,0x3aed,0x2ae0,0x3aea,0x29d1,0x3ae1,0x28ff,0x3638,0x38e4,0x364a,0x38ce,0x3699,0x385e,0x374e,0x372c,0x3839,0x35a4,0x38dc,0x3462,0x396e,0x32c4,0x39de,0x3134,0x3a2b,0x3003,0x3a59,0x2e3a,0x3a6d,0x2ce1,0x3a6e,0x2bba,0x3a5f,0x2a33,0x3a49,0x290a,0x3a2d,0x2826,0x3a0a,0x26e8,0x3894,0x36d7,0x3897,0x36c9,0x38a3,0x3675,0x38bc,0x35ac,0x38ee,0x349c,0x393e,0x3332,0x3997,0x3186,0x39e2,0x3038,0x3a13,0x2e75,0x3a29,0x2cf5,0x3a2d,0x2bac,0x3a21,0x29ff,0x3a04,0x28bc,0x39dc,0x2790,0x39ad,0x261a,0x3978,0x24fa,0x39ac,0x34a8,0x39ac,0x34a3,0x39ae,0x3480,0x39ae,0x3423,0x39b1,0x330e,0x39c2,0x31a9,0x39e0,0x3063,0x39fc,0x2eb5,0x3a0c,0x2d1d,0x3a14,0x2bcf,0x3a07,0x29ff,0x39e9,0x28a3,0x39be,0x273c,0x3989,0x25b3,0x394a,0x2488,0x3907,0x2345,0x3a77,0x3223,0x3a76,0x321f,0x3a73,0x3204,0x3a6a,0x31b3,0x3a58,0x3114,0x3a45,0x303b,0x3a34,0x2eb6,0x3a26,0x2d31,0x3a1e,0x2bef,0x3a0b,0x2a0d,0x39ec,0x28a1,0x39c0,0x271b,0x3987,0x2580,0x3944,0x2449,0x38fa,0x22bd,0x38ac,0x2155,0x3b07,0x2fca,0x3b06,0x2fca,0x3b00,0x2fb8,0x3af4,0x2f7c,0x3adb,0x2eea,0x3ab4,0x2e00,0x3a85,0x2cec,0x3a5e,0x2bc5,0x3a36,0x2a00,0x3a0d,0x2899,0x39dc,0x2707,0x39a0,0x2562,0x395a,0x2424,0x390b,0x2268,0x38b7,0x20fd,0x385f,0x1fd1,0x3b69,0x2cb9,0x3b68,0x2cbb,0x3b62,0x2cbb,0x3b56,0x2cae,0x3b3b,0x2c78,0x3b0d,0x2c0a,0x3acf,0x2ae3,0x3a92,0x2998,0x3a54,0x2867,0x3a17,0x26d0,0x39d3,0x253c,0x3989,0x2402,0x3935,0x2226,0x38dc,0x20bd,0x387d,0x1f54,0x381d,0x1db3,0x3ba9,0x296b,0x3ba8,0x296f,0x3ba3,0x297b,0x3b98,0x2987,0x3b7f,0x2976,0x3b4e,0x2927,0x3b0e,0x2895,0x3ac2,0x27b7,0x3a73,0x263b,0x3a23,0x24e7,0x39d0,0x239b,0x3976,0x21d9,0x3917,0x207e,0x38b2,0x1ee7,0x384b,0x1d53,0x37c7,0x1c1e,0x3bd2,0x25cb,0x3bd1,0x25d3,0x3bcd,0x25f0,0x3bc2,0x261f,0x3bad,0x2645,0x3b7d,0x262d,0x3b3e,0x25c4,0x3aec,0x250f,0x3a93,0x243a,0x3a32,0x22ce,0x39d0,0x215b,0x3969,0x202a,0x38fe,0x1e6e,0x388f,0x1cf1,0x381f,0x1b9b,0x3762,0x19dd,0x3be9,0x21ab,0x3be9,0x21b7,0x3be5,0x21e5,0x3bdd,0x2241,0x3bc9,0x22a7,0x3ba0,0x22ec,0x3b62,0x22cd,0x3b0f,0x2247,0x3aae,0x2175,0x3a44,0x2088,0x39d4,0x1f49,0x3960,0x1dbe,0x38e9,0x1c77,0x3870,0x1ae8,0x37f1,0x1953,0x3708,0x181b,0x3bf6,0x1cea,0x3bf6,0x1cfb,0x3bf3,0x1d38,0x3bec,0x1dbd,0x3bda,0x1e7c,0x3bb7,0x1f25,0x3b7d,0x1f79,0x3b2c,0x1f4c,0x3ac6,0x1ea6,0x3a55,0x1dbb,0x39da,0x1cbd,0x395a,0x1b9d,0x38d8,0x1a00,0x3855,0x18ac,0x37ab,0x173c,0x36b7,0x1598,0x3bfc,0x1736,0x3bfc,0x1759,0x3bf9,0x17e7,0x3bf4,0x1896,0x3be4,0x1997,0x3bc6,0x1aa8,0x3b91,0x1b84,0x3b43,0x1bd2,0x3ade,0x1b8a,0x3a65,0x1acd,0x39e2,0x19d3,0x3957,0x18cd,0x38ca,0x17b3,0x383e,0x1613,0x376d,0x14bf,0x366f,0x135e,0x3bff,0x101b,0x3bff,0x1039,0x3bfc,0x10c8,0x3bf9,0x1226,0x3bea,0x1428,0x3bcf,0x1584,0x3b9f,0x16c5,0x3b54,0x179a,0x3af0,0x17ce,0x3a76,0x1771,0x39ea,0x16a4,0x3956,0x15a7,0x38bf,0x14a7,0x3829,0x1379,0x3735,0x11ea,0x362d,0x10a1,0x3c00,0x61b,0x3c00,0x66a,0x3bfe,0x81c,0x3bfa,0xa4c,0x3bed,0xd16,0x3bd5,0xfb3,0x3ba9,0x114d,0x3b63,0x127c,0x3b01,0x132f,0x3a85,0x1344,0x39f4,0x12d2,0x3957,0x120d,0x38b5,0x1122,0x3817,0x103c,0x3703,0xed3,0x35f0,0xd6d,0x3c00,0x7a,0x3c00,0x89,0x3bfe,0x11d,0x3bfb,0x27c,0x3bf0,0x4fa,0x3bda,0x881,0x3bb1,0xacd,0x3b6f,0xc97,0x3b10,0xd7b,0x3a93,0xdf1,0x39fe,0xdef,0x3959,0xd8a,0x38af,0xce9,0x3808,0xc31,0x36d5,0xaf0,0x35b9,0x9a3,0x3c00,0x0,0x3c00,0x1,0x3bff,0x15,0x3bfb,0x59,0x3bf2,0xfd,0x3bdd,0x1df,0x3bb7,0x31c,0x3b79,0x47c,0x3b1d,0x5d4,0x3aa0,0x6d5,0x3a08,0x75a,0x395d,0x75e,0x38aa,0x6f7,0x37f4,0x648,0x36ac,0x576,0x3586,0x49f]),yd=null;function bd(){const vk=d4;return yd===null&&(yd=new Ai(vd,0x10,0x10,P,te),yd['name']='DFG_LUT',yd['minFilter']=S,yd[vk(0x2b8)]=S,yd['wrapS']=_,yd['wrapT']=_,yd['generateMipmaps']=!0x1,yd[vk(0x3f1)]=!0x0),yd;}var xd=class{constructor(a4={}){const vm=d4;let {canvas:a5=pt(),context:a6=null,depth:a7=!0x0,stencil:a8=!0x1,alpha:a9=!0x1,antialias:ab=!0x1,premultipliedAlpha:af=!0x0,preserveDrawingBuffer:ag=!0x1,powerPreference:ah='default',failIfMajorPerformanceCaveat:aj=!0x1,reversedDepthBuffer:ak=!0x1,outputBufferType:am=T}=a4;this[vm(0x39e)]=!0x0;let ap;if(a6!==null){if(typeof WebGLRenderingContext<'u'&&a6 instanceof WebGLRenderingContext)throw Error('THREE.WebGLRenderer:\x20WebGL\x201\x20is\x20not\x20supported\x20since\x20r163.');ap=a6['getContextAttributes']()['alpha'];}else ap=a9;let aq=am,av=new Set([fe,de,ue]),aw=new Set([T,k,ee,re,j,ne]),ax=new Uint32Array(0x4),ay=new Int32Array(0x4),az=new W(),aA=null,aB=null,aC=[],aD=[],aE=null;this['domElement']=a5,this['debug']={'checkShaderErrors':!0x0,'onShaderError':null},this['autoClear']=!0x0,this['autoClearColor']=!0x0,this['autoClearDepth']=!0x0,this['autoClearStencil']=!0x0,this['sortObjects']=!0x0,this['clippingPlanes']=[],this[vm(0x178)]=!0x1,this['toneMapping']=0x0,this['toneMappingExposure']=0x1,this['transmissionResolutionScale']=0x1;let aF=this,aG=!0x1,aH=null;this['_outputColorSpace']=rt;let aI=0x0,aJ=0x0,aK=null,aL=-0x1,aM=null,aN=new q(),aO=new q(),aP=null,aQ=new Y(0x0),aR=0x0,aS=a5['width'],aT=a5['height'],aU=0x1,aV=null,aW=null,aX=new q(0x0,0x0,aS,aT),aY=new q(0x0,0x0,aS,aT),aZ=!0x1,b0=new Xi(),b1=!0x1,b2=!0x1,b3=new J(),b4=new W(),b5=new q(),b6={'background':null,'fog':null,'environment':null,'overrideMaterial':null,'isScene':!0x0},b7=!0x1;function b8(){return aK===null?aU:0x1;}let b9=a6;function bb(ch,cj){return a5['getContext'](ch,cj);}try{let ch={'alpha':!0x0,'depth':a7,'stencil':a8,'antialias':ab,'premultipliedAlpha':af,'preserveDrawingBuffer':ag,'powerPreference':ah,'failIfMajorPerformanceCaveat':aj};if('setAttribute'in a5&&a5['setAttribute']('data-engine','three.js\x20r184'),a5['addEventListener']('webglcontextlost',bM,!0x1),a5['addEventListener']('webglcontextrestored',bN,!0x1),a5['addEventListener']('webglcontextcreationerror',bO,!0x1),b9===null){let cj='webgl2';if(b9=bb(cj,ch),b9===null)throw bb(cj)?Error('Error\x20creating\x20WebGL\x20context\x20with\x20your\x20selected\x20attributes.'):Error('Error\x20creating\x20WebGL\x20context.');}}catch(ck){throw B('WebGLRenderer:\x20'+ck['message']),ck;}let bf,bg,bh,bj,bk,bm,bp,bq,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI,bJ;function bK(){const vp=vm;bf=new zc(b9),bf['init'](),bH=new ld(b9,bf),bg=new hc(b9,bf,a4,bH),bh=new sd(b9,bf),bg['reversedDepthBuffer']&&ak&&bh[vp(0x57e)]['depth']['setReversed'](!0x0),bj=new Hc(b9),bk=new Vu(),bm=new cd(b9,bf,bh,bk,bg,bH,bj),bp=new Rc(aF),bq=new sc(b9),bI=new pc(b9,bq),bv=new Bc(b9,bq,bj,bI),bw=new Wc(b9,bv,bq,bI,bj),bE=new Uc(b9,bg,bm),bB=new gc(bk),bx=new Bu(aF,bp,bf,bg,bI,bB),by=new gd(aF,bk),bz=new Gu(),bA=new Qu(bf),bD=new fc(aF,bp,bh,bw,ap,af),bC=new od(aF,bw,bg),bJ=new _d(b9,bj,bg,bh),bF=new mc(b9,bf,bj),bG=new Vc(b9,bf,bj),bj['programs']=bx['programs'],aF['capabilities']=bg,aF['extensions']=bf,aF[vp(0x2c7)]=bk,aF['renderLists']=bz,aF['shadowMap']=bC,aF['state']=bh,aF['info']=bj;}bK(),aq!==0x3f1&&(aE=new Kc(aq,a5[vm(0x426)],a5['height'],a7,a8));let bL=new pd(aF,b9);this['xr']=bL,this[vm(0x3c2)]=function(){return b9;},this['getContextAttributes']=function(){return b9['getContextAttributes']();},this['forceContextLoss']=function(){const vq=vm;let cm=bf[vq(0x2f1)]('WEBGL_lose_context');cm&&cm['loseContext']();},this[vm(0x192)]=function(){const vv=vm;let cm=bf['get']('WEBGL_lose_context');cm&&cm[vv(0x157)]();},this['getPixelRatio']=function(){return aU;},this['setPixelRatio']=function(cm){cm!==void 0x0&&(aU=cm,this['setSize'](aS,aT,!0x1));},this['getSize']=function(cm){const vw=vm;return cm[vw(0x479)](aS,aT);},this['setSize']=function(cm,cp,cq=!0x0){const vx=vm;if(bL['isPresenting']){z('WebGLRenderer:\x20Can\x27t\x20change\x20size\x20while\x20VR\x20device\x20is\x20presenting.');return;}aS=cm,aT=cp,a5['width']=Math['floor'](cm*aU),a5['height']=Math['floor'](cp*aU),cq===!0x0&&(a5['style']['width']=cm+'px',a5['style'][vx(0x45f)]=cp+'px'),aE!==null&&aE['setSize'](a5['width'],a5['height']),this['setViewport'](0x0,0x0,cm,cp);},this['getDrawingBufferSize']=function(cm){const vy=vm;return cm[vy(0x479)](aS*aU,aT*aU)['floor']();},this['setDrawingBufferSize']=function(cm,cp,cq){const vz=vm;aS=cm,aT=cp,aU=cq,a5[vz(0x426)]=Math['floor'](cm*cq),a5['height']=Math['floor'](cp*cq),this['setViewport'](0x0,0x0,cm,cp);},this['setEffects']=function(cm){const vA=vm;if(aq===0x3f1){B(vA(0x418));return;}if(cm){for(let cp=0x0;cp<cm['length'];cp++)if(cm[cp][vA(0x593)]===!0x0){z('THREE.WebGLRenderer:\x20OutputPass\x20is\x20not\x20needed\x20in\x20setEffects().\x20Tone\x20mapping\x20and\x20color\x20space\x20conversion\x20are\x20applied\x20automatically.');break;}}aE['setEffects'](cm||[]);},this['getCurrentViewport']=function(cm){return cm['copy'](aN);},this['getViewport']=function(cm){const vB=vm;return cm[vB(0x32f)](aX);},this[vm(0x4a5)]=function(cm,cp,cq,cv){const vC=vm;cm['isVector4']?aX['set'](cm['x'],cm['y'],cm['z'],cm['w']):aX['set'](cm,cp,cq,cv),bh[vC(0x1c0)](aN['copy'](aX)['multiplyScalar'](aU)[vC(0x43b)]());},this['getScissor']=function(cm){return cm['copy'](aY);},this['setScissor']=function(cm,cp,cq,cv){const vD=vm;cm['isVector4']?aY['set'](cm['x'],cm['y'],cm['z'],cm['w']):aY['set'](cm,cp,cq,cv),bh[vD(0x4db)](aO['copy'](aY)['multiplyScalar'](aU)['round']());},this['getScissorTest']=function(){return aZ;},this['setScissorTest']=function(cm){bh['setScissorTest'](aZ=cm);},this['setOpaqueSort']=function(cm){aV=cm;},this['setTransparentSort']=function(cm){aW=cm;},this['getClearColor']=function(cm){return cm['copy'](bD['getClearColor']());},this[vm(0x17a)]=function(){bD['setClearColor'](...arguments);},this['getClearAlpha']=function(){return bD['getClearAlpha']();},this['setClearAlpha']=function(){bD['setClearAlpha'](...arguments);},this['clear']=function(cm=!0x0,cp=!0x0,cq=!0x0){const vE=vm;let cv=0x0;if(cm){let cw=!0x1;if(aK!==null){let cx=aK['texture']['format'];cw=av['has'](cx);}if(cw){let cy=aK['texture']['type'],cz=aw['has'](cy),cA=bD['getClearColor'](),cB=bD['getClearAlpha'](),cC=cA['r'],cD=cA['g'],cE=cA['b'];cz?(ax[0x0]=cC,ax[0x1]=cD,ax[0x2]=cE,ax[0x3]=cB,b9['clearBufferuiv'](b9[vE(0x31b)],0x0,ax)):(ay[0x0]=cC,ay[0x1]=cD,ay[0x2]=cE,ay[0x3]=cB,b9['clearBufferiv'](b9[vE(0x31b)],0x0,ay));}else cv|=b9['COLOR_BUFFER_BIT'];}cp&&(cv|=b9['DEPTH_BUFFER_BIT'],this['state'][vE(0x57e)]['depth']['setMask'](!0x0)),cq&&(cv|=b9['STENCIL_BUFFER_BIT'],this['state']['buffers']['stencil']['setMask'](0xffffffff)),cv!==0x0&&b9[vE(0x330)](cv);},this['clearColor']=function(){this['clear'](!0x0,!0x1,!0x1);},this[vm(0x40d)]=function(){this['clear'](!0x1,!0x0,!0x1);},this['clearStencil']=function(){this['clear'](!0x1,!0x1,!0x0);},this['setNodesHandler']=function(cm){cm['setRenderer'](this),aH=cm;},this[vm(0x365)]=function(){const vF=vm;a5['removeEventListener']('webglcontextlost',bM,!0x1),a5['removeEventListener']('webglcontextrestored',bN,!0x1),a5['removeEventListener']('webglcontextcreationerror',bO,!0x1),bD['dispose'](),bz['dispose'](),bA['dispose'](),bk['dispose'](),bp[vF(0x365)](),bw[vF(0x365)](),bI['dispose'](),bJ[vF(0x365)](),bx['dispose'](),bL[vF(0x365)](),bL['removeEventListener']('sessionstart',bV),bL[vF(0x40e)]('sessionend',bW),bX['stop']();};function bM(cm){const vG=vm;cm[vG(0xfb)](),gt('WebGLRenderer:\x20Context\x20Lost.'),aG=!0x0;}function bN(){const vH=vm;gt('WebGLRenderer:\x20Context\x20Restored.'),aG=!0x1;let cm=bj['autoReset'],cp=bC['enabled'],cq=bC['autoUpdate'],cv=bC['needsUpdate'],cw=bC[vH(0x40b)];bK(),bj['autoReset']=cm,bC[vH(0x4d6)]=cp,bC['autoUpdate']=cq,bC['needsUpdate']=cv,bC['type']=cw;}function bO(cm){B('WebGLRenderer:\x20A\x20WebGL\x20context\x20could\x20not\x20be\x20created.\x20Reason:\x20',cm['statusMessage']);}function bP(cm){const vI=vm;let cp=cm[vI(0x33b)];cp['removeEventListener']('dispose',bP),bQ(cp);}function bQ(cm){bR(cm),bk['remove'](cm);}function bR(cm){const vK=vm;let cp=bk['get'](cm)['programs'];cp!==void 0x0&&(cp['forEach'](function(cq){const vJ=a1;bx[vJ(0x21d)](cq);}),cm['isShaderMaterial']&&bx[vK(0x193)](cm));}this['renderBufferDirect']=function(cm,cp,cq,cv,cw,cx){const vL=vm;cp===null&&(cp=b6);let cy=cw[vL(0x29b)]&&cw['matrixWorld']['determinant']()<0x0,cz=c7(cm,cp,cq,cv,cw);bh['setMaterial'](cv,cy);let cA=cq['index'],cB=0x1;if(cv['wireframe']===!0x0){if(cA=bv[vL(0x239)](cq),cA===void 0x0)return;cB=0x2;}let cC=cq['drawRange'],cD=cq['attributes']['position'],cE=cC['start']*cB,cF=(cC['start']+cC['count'])*cB;cx!==null&&(cE=Math['max'](cE,cx['start']*cB),cF=Math[vL(0xbb)](cF,(cx['start']+cx['count'])*cB)),cA===null?cD!=null&&(cE=Math[vL(0x360)](cE,0x0),cF=Math['min'](cF,cD['count'])):(cE=Math['max'](cE,0x0),cF=Math['min'](cF,cA['count']));let cG=cF-cE;if(cG<0x0||cG===Infinity)return;bI['setup'](cw,cv,cz,cq,cA);let cH,cI=bF;if(cA!==null&&(cH=bq['get'](cA),cI=bG,cI['setIndex'](cH)),cw['isMesh'])cv[vL(0x2ac)]===!0x0?(bh[vL(0x3cd)](cv['wireframeLinewidth']*b8()),cI['setMode'](b9['LINES'])):cI[vL(0x97)](b9['TRIANGLES']);else{if(cw['isLine']){let cJ=cv['linewidth'];cJ===void 0x0&&(cJ=0x1),bh['setLineWidth'](cJ*b8()),cw['isLineSegments']?cI[vL(0x97)](b9[vL(0xb9)]):cw['isLineLoop']?cI['setMode'](b9[vL(0x4b6)]):cI['setMode'](b9['LINE_STRIP']);}else cw['isPoints']?cI[vL(0x97)](b9['POINTS']):cw['isSprite']&&cI['setMode'](b9['TRIANGLES']);}if(cw['isBatchedMesh']){if(bf['get']('WEBGL_multi_draw'))cI['renderMultiDraw'](cw['_multiDrawStarts'],cw['_multiDrawCounts'],cw['_multiDrawCount']);else{let cK=cw[vL(0x28a)],cL=cw['_multiDrawCounts'],cM=cw[vL(0x1f9)],cN=cA?bq['get'](cA)['bytesPerElement']:0x1,cO=bk['get'](cv)['currentProgram'][vL(0x524)]();for(let cP=0x0;cP<cM;cP++)cO[vL(0x397)](b9,'_gl_DrawID',cP),cI[vL(0x37f)](cK[cP]/cN,cL[cP]);}}else{if(cw['isInstancedMesh'])cI['renderInstances'](cE,cG,cw['count']);else{if(cq['isInstancedBufferGeometry']){let cQ=cq['_maxInstanceCount']===void 0x0?Infinity:cq['_maxInstanceCount'],cR=Math['min'](cq['instanceCount'],cQ);cI['renderInstances'](cE,cG,cR);}else cI[vL(0x37f)](cE,cG);}}};function bS(cm,cp,cq){const vM=vm;cm['transparent']===!0x0&&cm['side']===0x2&&cm[vM(0x4cb)]===!0x1?(cm['side']=0x1,cm['needsUpdate']=!0x0,c3(cm,cp,cq),cm[vM(0x2e3)]=0x0,cm['needsUpdate']=!0x0,c3(cm,cp,cq),cm[vM(0x2e3)]=0x2):c3(cm,cp,cq);}this['compile']=function(cm,cp,cq=null){cq===null&&(cq=cm),aB=bA['get'](cq),aB['init'](cp),aD['push'](aB),cq['traverseVisible'](function(cw){const vN=a1;cw['isLight']&&cw[vN(0x9d)][vN(0x227)](cp['layers'])&&(aB['pushLight'](cw),cw[vN(0x1cf)]&&aB[vN(0x1d1)](cw));}),cm!==cq&&cm['traverseVisible'](function(cw){const vO=a1;cw[vO(0x495)]&&cw[vO(0x9d)][vO(0x227)](cp['layers'])&&(aB['pushLight'](cw),cw['castShadow']&&aB['pushShadow'](cw));}),aB['setupLights']();let cv=new Set();return cm['traverse'](function(cw){const vP=a1;if(!(cw['isMesh']||cw['isPoints']||cw['isLine']||cw[vP(0x187)]))return;let cx=cw['material'];if(cx){if(Array['isArray'](cx))for(let cy=0x0;cy<cx['length'];cy++){let cz=cx[cy];bS(cz,cq,cw),cv['add'](cz);}else bS(cx,cq,cw),cv['add'](cx);}}),aB=aD['pop'](),cv;},this['compileAsync']=function(cm,cp,cq=null){const vQ=vm;let cv=this[vQ(0x137)](cm,cp,cq);return new Promise(cw=>{function cx(){const vR=a1;if(cv['forEach'](function(cy){bk['get'](cy)['currentProgram']['isReady']()&&cv['delete'](cy);}),cv[vR(0x19f)]===0x0){cw(cm);return;}setTimeout(cx,0xa);}bf['get']('KHR_parallel_shader_compile')===null?setTimeout(cx,0xa):cx();});};let bT=null;function bU(cm){bT&&bT(cm);}function bV(){bX['stop']();}function bW(){bX['start']();}let bX=new oc();bX['setAnimationLoop'](bU),typeof self<'u'&&bX['setContext'](self),this['setAnimationLoop']=function(cm){bT=cm,bL['setAnimationLoop'](cm),cm===null?bX['stop']():bX['start']();},bL['addEventListener']('sessionstart',bV),bL['addEventListener'](vm(0x503),bW),this['render']=function(cm,cp){const vS=vm;if(cp!==void 0x0&&cp['isCamera']!==!0x0){B('WebGLRenderer.render:\x20camera\x20is\x20not\x20an\x20instance\x20of\x20THREE.Camera.');return;}if(aG===!0x0)return;aH!==null&&aH[vS(0xb1)](cm,cp);let cq=bL['enabled']===!0x0&&bL['isPresenting']===!0x0,cv=aE!==null&&(aK===null||cq)&&aE['begin'](aF,aK);if(cm['matrixWorldAutoUpdate']===!0x0&&cm['updateMatrixWorld'](),cp['parent']===null&&cp['matrixWorldAutoUpdate']===!0x0&&cp['updateMatrixWorld'](),bL['enabled']===!0x0&&bL['isPresenting']===!0x0&&(aE===null||aE['isCompositing']()===!0x1)&&(bL[vS(0x523)]===!0x0&&bL['updateCamera'](cp),cp=bL[vS(0x2ed)]()),cm[vS(0x272)]===!0x0&&cm['onBeforeRender'](aF,cm,cp,aK),aB=bA['get'](cm,aD[vS(0x27a)]),aB[vS(0x2fd)](cp),aB['state']['textureUnits']=bm['getTextureUnits'](),aD[vS(0x403)](aB),b3['multiplyMatrices'](cp['projectionMatrix'],cp['matrixWorldInverse']),b0['setFromProjectionMatrix'](b3,lt,cp[vS(0x335)]),b2=this[vS(0x178)],b1=bB['init'](this['clippingPlanes'],b2),aA=bz['get'](cm,aC['length']),aA[vS(0x2fd)](),aC['push'](aA),bL['enabled']===!0x0&&bL[vS(0x491)]===!0x0){let cx=aF['xr']['getDepthSensingMesh']();cx!==null&&bY(cx,cp,-Infinity,aF['sortObjects']);}bY(cm,cp,0x0,aF['sortObjects']),aA['finish'](),aF['sortObjects']===!0x0&&aA['sort'](aV,aW),b7=bL['enabled']===!0x1||bL['isPresenting']===!0x1||bL['hasDepthSensing']()===!0x1,b7&&bD['addToRenderList'](aA,cm),this['info']['render']['frame']++,b1===!0x0&&bB[vS(0x155)]();let cw=aB['state'][vS(0x5a0)];if(bC['render'](cw,cm,cp),b1===!0x0&&bB['endShadows'](),this['info']['autoReset']===!0x0&&this['info'][vS(0x54e)](),(cv&&aE['hasRenderPass']())===!0x1){let cy=aA['opaque'],cz=aA[vS(0x1d3)];if(aB['setupLights'](),cp['isArrayCamera']){let cA=cp[vS(0x1bb)];if(cz['length']>0x0)for(let cB=0x0,cC=cA[vS(0x27a)];cB<cC;cB++){let cD=cA[cB];c0(cy,cz,cm,cD);}b7&&bD['render'](cm);for(let cE=0x0,cF=cA[vS(0x27a)];cE<cF;cE++){let cG=cA[cE];bZ(aA,cm,cG,cG['viewport']);}}else cz['length']>0x0&&c0(cy,cz,cm,cp),b7&&bD['render'](cm),bZ(aA,cm,cp);}aK!==null&&aJ===0x0&&(bm['updateMultisampleRenderTarget'](aK),bm['updateRenderTargetMipmap'](aK)),cv&&aE['end'](aF),cm['isScene']===!0x0&&cm['onAfterRender'](aF,cm,cp),bI[vS(0x485)](),aL=-0x1,aM=null,aD['pop'](),aD['length']>0x0?(aB=aD[aD['length']-0x1],bm['setTextureUnits'](aB['state']['textureUnits']),b1===!0x0&&bB['setGlobalState'](aF['clippingPlanes'],aB['state']['camera'])):aB=null,aC['pop'](),aA=aC['length']>0x0?aC[aC['length']-0x1]:null,aH!==null&&aH['renderEnd']();};function bY(cm,cp,cq,cv){const vT=vm;if(cm[vT(0xa9)]===!0x1)return;if(cm['layers']['test'](cp['layers'])){if(cm['isGroup'])cq=cm['renderOrder'];else{if(cm['isLOD'])cm['autoUpdate']===!0x0&&cm['update'](cp);else{if(cm['isLightProbeGrid'])aB['pushLightProbeGrid'](cm);else{if(cm['isLight'])aB['pushLight'](cm),cm['castShadow']&&aB['pushShadow'](cm);else{if(cm['isSprite']){if(!cm['frustumCulled']||b0['intersectsSprite'](cm)){cv&&b5['setFromMatrixPosition'](cm['matrixWorld'])['applyMatrix4'](b3);let cx=bw['update'](cm),cy=cm['material'];cy[vT(0xa9)]&&aA[vT(0x403)](cm,cx,cy,cq,b5['z'],null);}}else{if((cm['isMesh']||cm['isLine']||cm['isPoints'])&&(!cm['frustumCulled']||b0[vT(0x131)](cm))){let cz=bw['update'](cm),cA=cm['material'];if(cv&&(cm[vT(0x2f0)]===void 0x0?(cz[vT(0x2f0)]===null&&cz[vT(0x3a4)](),b5['copy'](cz[vT(0x2f0)]['center'])):(cm['boundingSphere']===null&&cm['computeBoundingSphere'](),b5['copy'](cm['boundingSphere']['center'])),b5['applyMatrix4'](cm[vT(0x3b8)])['applyMatrix4'](b3)),Array['isArray'](cA)){let cB=cz['groups'];for(let cC=0x0,cD=cB[vT(0x27a)];cC<cD;cC++){let cE=cB[cC],cF=cA[cE['materialIndex']];cF&&cF['visible']&&aA['push'](cm,cz,cF,cq,b5['z'],cE);}}else cA['visible']&&aA['push'](cm,cz,cA,cq,b5['z'],null);}}}}}}}let cw=cm['children'];for(let cG=0x0,cH=cw['length'];cG<cH;cG++)bY(cw[cG],cp,cq,cv);}function bZ(cm,cp,cq,cv){const vU=vm;let {opaque:cw,transmissive:cx,transparent:cy}=cm;aB['setupLightsView'](cq),b1===!0x0&&bB['setGlobalState'](aF['clippingPlanes'],cq),cv&&bh[vU(0x1c0)](aN[vU(0x32f)](cv)),cw['length']>0x0&&c1(cw,cp,cq),cx['length']>0x0&&c1(cx,cp,cq),cy['length']>0x0&&c1(cy,cp,cq),bh['buffers']['depth']['setTest'](!0x0),bh[vU(0x57e)]['depth']['setMask'](!0x0),bh['buffers']['color']['setMask'](!0x0),bh['setPolygonOffset'](!0x1);}function c0(cm,cp,cq,cv){const vV=vm;if((cq['isScene']===!0x0?cq['overrideMaterial']:null)!==null)return;if(aB['state']['transmissionRenderTarget'][cv['id']]===void 0x0){let cD=bf['has']('EXT_color_buffer_half_float')||bf['has']('EXT_color_buffer_float');aB['state']['transmissionRenderTarget'][cv['id']]=new fn(0x1,0x1,{'generateMipmaps':!0x0,'type':cD?te:T,'minFilter':w,'samples':Math[vV(0x360)](0x4,bg['samples']),'stencilBuffer':a8,'resolveDepthBuffer':!0x1,'resolveStencilBuffer':!0x1,'colorSpace':K['workingColorSpace']});}let cw=aB['state']['transmissionRenderTarget'][cv['id']],cx=cv['viewport']||aN;cw[vV(0x41b)](cx['z']*aF['transmissionResolutionScale'],cx['w']*aF['transmissionResolutionScale']);let cy=aF['getRenderTarget'](),cz=aF[vV(0x156)](),cA=aF['getActiveMipmapLevel']();aF['setRenderTarget'](cw),aF['getClearColor'](aQ),aR=aF['getClearAlpha'](),aR<0x1&&aF['setClearColor'](0xffffff,0.5),aF['clear'](),b7&&bD['render'](cq);let cB=aF['toneMapping'];aF['toneMapping']=0x0;let cC=cv[vV(0x1c0)];if(cv['viewport']!==void 0x0&&(cv['viewport']=void 0x0),aB['setupLightsView'](cv),b1===!0x0&&bB['setGlobalState'](aF[vV(0x22f)],cv),c1(cm,cq,cv),bm['updateMultisampleRenderTarget'](cw),bm['updateRenderTargetMipmap'](cw),bf['has']('WEBGL_multisampled_render_to_texture')===!0x1){let cE=!0x1;for(let cF=0x0,cG=cp[vV(0x27a)];cF<cG;cF++){let {object:cH,geometry:cI,material:cJ,group:cK}=cp[cF];if(cJ[vV(0x2e3)]===0x2&&cH[vV(0x9d)]['test'](cv['layers'])){let cL=cJ['side'];cJ[vV(0x2e3)]=0x1,cJ['needsUpdate']=!0x0,c2(cH,cq,cv,cI,cJ,cK),cJ['side']=cL,cJ['needsUpdate']=!0x0,cE=!0x0;}}cE===!0x0&&(bm['updateMultisampleRenderTarget'](cw),bm['updateRenderTargetMipmap'](cw));}aF['setRenderTarget'](cy,cz,cA),aF['setClearColor'](aQ,aR),cC!==void 0x0&&(cv['viewport']=cC),aF['toneMapping']=cB;}function c1(cm,cp,cq){const vW=vm;let cv=cp['isScene']===!0x0?cp['overrideMaterial']:null;for(let cw=0x0,cx=cm['length'];cw<cx;cw++){let cy=cm[cw],{object:cz,geometry:cA,group:cB}=cy,cC=cy['material'];cC['allowOverride']===!0x0&&cv!==null&&(cC=cv),cz['layers']['test'](cq[vW(0x9d)])&&c2(cz,cp,cq,cA,cC,cB);}}function c2(cm,cp,cq,cv,cw,cx){const vX=vm;cm['onBeforeRender'](aF,cp,cq,cv,cw,cx),cm['modelViewMatrix'][vX(0x49c)](cq[vX(0x36d)],cm['matrixWorld']),cm['normalMatrix']['getNormalMatrix'](cm[vX(0x4b8)]),cw['onBeforeRender'](aF,cp,cq,cv,cm,cx),cw['transparent']===!0x0&&cw['side']===0x2&&cw['forceSinglePass']===!0x1?(cw['side']=0x1,cw['needsUpdate']=!0x0,aF['renderBufferDirect'](cq,cp,cv,cw,cm,cx),cw[vX(0x2e3)]=0x0,cw['needsUpdate']=!0x0,aF['renderBufferDirect'](cq,cp,cv,cw,cm,cx),cw[vX(0x2e3)]=0x2):aF['renderBufferDirect'](cq,cp,cv,cw,cm,cx),cm['onAfterRender'](aF,cp,cq,cv,cw,cx);}function c3(cm,cp,cq){const vY=vm;cp['isScene']!==!0x0&&(cp=b6);let cv=bk['get'](cm),cw=aB['state']['lights'],cx=aB[vY(0x184)]['shadowsArray'],cy=cw['state'][vY(0x2d1)],cz=bx['getParameters'](cm,cw['state'],cx,cp,cq,aB[vY(0x184)]['lightProbeGridArray']),cA=bx['getProgramCacheKey'](cz),cB=cv['programs'];cv['environment']=cm[vY(0x317)]||cm['isMeshLambertMaterial']||cm['isMeshPhongMaterial']?cp['environment']:null,cv['fog']=cp[vY(0x4e3)];let cC=cm['isMeshStandardMaterial']||cm['isMeshLambertMaterial']&&!cm['envMap']||cm[vY(0x225)]&&!cm['envMap'];cv['envMap']=bp['get'](cm[vY(0x492)]||cv['environment'],cC),cv['envMapRotation']=cv['environment']!==null&&cm['envMap']===null?cp[vY(0x89)]:cm[vY(0x4c1)],cB===void 0x0&&(cm[vY(0x151)]('dispose',bP),cB=new Map(),cv['programs']=cB);let cD=cB['get'](cA);if(cD!==void 0x0){if(cv['currentProgram']===cD&&cv['lightsStateVersion']===cy)return c5(cm,cz),cD;}else cz['uniforms']=bx[vY(0x524)](cm),aH!==null&&cm['isNodeMaterial']&&aH[vY(0x3e6)](cm,cq,cz),cm[vY(0x382)](cz,aF),cD=bx[vY(0x1e2)](cz,cA),cB[vY(0x479)](cA,cD),cv[vY(0x21c)]=cz[vY(0x21c)];let cE=cv['uniforms'];return(!cm['isShaderMaterial']&&!cm['isRawShaderMaterial']||cm['clipping']===!0x0)&&(cE[vY(0x22f)]=bB['uniform']),c5(cm,cz),cv['needsLights']=c9(cm),cv[vY(0x341)]=cy,cv['needsLights']&&(cE['ambientLightColor']['value']=cw['state']['ambient'],cE['lightProbe']['value']=cw['state']['probe'],cE['directionalLights']['value']=cw['state']['directional'],cE['directionalLightShadows']['value']=cw['state']['directionalShadow'],cE['spotLights'][vY(0x529)]=cw[vY(0x184)][vY(0x9f)],cE['spotLightShadows']['value']=cw['state']['spotShadow'],cE['rectAreaLights']['value']=cw[vY(0x184)][vY(0x30c)],cE[vY(0x47d)]['value']=cw['state']['rectAreaLTC1'],cE['ltc_2']['value']=cw['state']['rectAreaLTC2'],cE['pointLights']['value']=cw['state'][vY(0x1a3)],cE['pointLightShadows'][vY(0x529)]=cw[vY(0x184)]['pointShadow'],cE['hemisphereLights']['value']=cw['state']['hemi'],cE['directionalShadowMatrix']['value']=cw[vY(0x184)][vY(0x22b)],cE['spotLightMatrix']['value']=cw['state'][vY(0x2de)],cE[vY(0x357)]['value']=cw['state']['spotLightMap'],cE['pointShadowMatrix']['value']=cw['state']['pointShadowMatrix']),cv['lightProbeGrid']=aB[vY(0x184)][vY(0x534)]['length']>0x0,cv['currentProgram']=cD,cv['uniformsList']=null,cD;}function c4(cm){const vZ=vm;if(cm[vZ(0x4d9)]===null){let cp=cm['currentProgram']['getUniforms']();cm['uniformsList']=$l['seqWithValue'](cp['seq'],cm['uniforms']);}return cm['uniformsList'];}function c5(cm,cp){const w0=vm;let cq=bk['get'](cm);cq['outputColorSpace']=cp['outputColorSpace'],cq['batching']=cp['batching'],cq['batchingColor']=cp['batchingColor'],cq['instancing']=cp['instancing'],cq['instancingColor']=cp['instancingColor'],cq['instancingMorph']=cp[w0(0x460)],cq['skinning']=cp['skinning'],cq[w0(0x580)]=cp['morphTargets'],cq['morphNormals']=cp[w0(0x218)],cq['morphColors']=cp[w0(0x1ca)],cq['morphTargetsCount']=cp['morphTargetsCount'],cq['numClippingPlanes']=cp['numClippingPlanes'],cq['numIntersection']=cp[w0(0x462)],cq['vertexAlphas']=cp[w0(0x186)],cq['vertexTangents']=cp['vertexTangents'],cq['toneMapping']=cp['toneMapping'];}function c6(cm,cp){const w1=vm;if(cm['length']===0x0)return null;if(cm['length']===0x1)return cm[0x0]['texture']===null?null:cm[0x0];az['setFromMatrixPosition'](cp['matrixWorld']);for(let cq=0x0,cv=cm[w1(0x27a)];cq<cv;cq++){let cw=cm[cq];if(cw['texture']!==null&&cw['boundingBox']['containsPoint'](az))return cw;}return null;}function c7(cm,cp,cq,cv,cw){const w2=vm;cp['isScene']!==!0x0&&(cp=b6),bm['resetTextureUnits']();let cx=cp['fog'],cy=cv[w2(0x317)]||cv['isMeshLambertMaterial']||cv[w2(0x225)]?cp['environment']:null,cz=aK===null?aF['outputColorSpace']:aK['isXRRenderTarget']===!0x0?aK['texture'][w2(0x30e)]:K['workingColorSpace'],cA=cv['isMeshStandardMaterial']||cv['isMeshLambertMaterial']&&!cv['envMap']||cv['isMeshPhongMaterial']&&!cv['envMap'],cB=bp['get'](cv['envMap']||cy,cA),cC=cv['vertexColors']===!0x0&&!!cq[w2(0xab)][w2(0x379)]&&cq[w2(0xab)][w2(0x379)][w2(0xc2)]===0x4,cD=!!cq['attributes']['tangent']&&(!!cv['normalMap']||cv['anisotropy']>0x0),cE=!!cq['morphAttributes']['position'],cF=!!cq[w2(0x1d7)]['normal'],cG=!!cq['morphAttributes']['color'],cH=0x0;cv['toneMapped']&&(aK===null||aK['isXRRenderTarget']===!0x0)&&(cH=aF['toneMapping']);let cI=cq['morphAttributes']['position']||cq['morphAttributes']['normal']||cq[w2(0x1d7)]['color'],cJ=cI===void 0x0?0x0:cI['length'],cK=bk['get'](cv),cL=aB['state']['lights'];if(b1===!0x0&&(b2===!0x0||cm!==aM)){let cU=cm===aM&&cv['id']===aL;bB['setState'](cv,cm,cU);}let cM=!0x1;cv['version']===cK['__version']?cK[w2(0x4c6)]&&cK['lightsStateVersion']!==cL['state']['version']?cM=!0x0:cK['outputColorSpace']===cz?cw[w2(0x18d)]&&cK[w2(0x52e)]===!0x1||!cw['isBatchedMesh']&&cK['batching']===!0x0||cw['isBatchedMesh']&&cK['batchingColor']===!0x0&&cw['colorTexture']===null||cw[w2(0x18d)]&&cK['batchingColor']===!0x1&&cw['colorTexture']!==null||cw['isInstancedMesh']&&cK['instancing']===!0x1||!cw['isInstancedMesh']&&cK[w2(0x1be)]===!0x0||cw['isSkinnedMesh']&&cK['skinning']===!0x1||!cw['isSkinnedMesh']&&cK['skinning']===!0x0||cw['isInstancedMesh']&&cK[w2(0x1ba)]===!0x0&&cw['instanceColor']===null||cw['isInstancedMesh']&&cK['instancingColor']===!0x1&&cw['instanceColor']!==null||cw[w2(0x560)]&&cK['instancingMorph']===!0x0&&cw[w2(0x328)]===null||cw['isInstancedMesh']&&cK['instancingMorph']===!0x1&&cw['morphTexture']!==null?cM=!0x0:cK['envMap']===cB?cv['fog']===!0x0&&cK[w2(0x4e3)]!==cx||cK['numClippingPlanes']!==void 0x0&&(cK['numClippingPlanes']!==bB[w2(0x181)]||cK['numIntersection']!==bB['numIntersection'])?cM=!0x0:cK['vertexAlphas']===cC&&cK['vertexTangents']===cD&&cK['morphTargets']===cE&&cK['morphNormals']===cF&&cK['morphColors']===cG&&cK['toneMapping']===cH&&cK['morphTargetsCount']===cJ?!!cK[w2(0x473)]!=aB[w2(0x184)][w2(0x534)][w2(0x27a)]>0x0&&(cM=!0x0):cM=!0x0:cM=!0x0:cM=!0x0:(cM=!0x0,cK[w2(0x3f9)]=cv['version']);let cN=cK['currentProgram'];cM===!0x0&&(cN=c3(cv,cp,cw),aH&&cv['isNodeMaterial']&&aH[w2(0x51a)](cv,cN,cK));let cO=!0x1,cP=!0x1,cQ=!0x1,cR=cN['getUniforms'](),cS=cK['uniforms'];if(bh['useProgram'](cN['program'])&&(cO=!0x0,cP=!0x0,cQ=!0x0),cv['id']!==aL&&(aL=cv['id'],cP=!0x0),cK['needsLights']){let cV=c6(aB['state']['lightProbeGridArray'],cw);cK['lightProbeGrid']!==cV&&(cK[w2(0x473)]=cV,cP=!0x0);}if(cO||aM!==cm){bh['buffers']['depth']['getReversed']()&&cm['reversedDepth']!==!0x0&&(cm['_reversedDepth']=!0x0,cm['updateProjectionMatrix']()),cR['setValue'](b9,'projectionMatrix',cm['projectionMatrix']),cR['setValue'](b9,w2(0x537),cm['matrixWorldInverse']);let cW=cR['map']['cameraPosition'];cW!==void 0x0&&cW['setValue'](b9,b4[w2(0x434)](cm[w2(0x3b8)])),bg[w2(0xa7)]&&cR[w2(0x397)](b9,'logDepthBufFC',0x2/(Math['log'](cm['far']+0x1)/Math['LN2'])),(cv['isMeshPhongMaterial']||cv['isMeshToonMaterial']||cv['isMeshLambertMaterial']||cv[w2(0x2b2)]||cv['isMeshStandardMaterial']||cv['isShaderMaterial'])&&cR['setValue'](b9,'isOrthographic',cm['isOrthographicCamera']===!0x0),aM!==cm&&(aM=cm,cP=!0x0,cQ=!0x0);}if(cK['needsLights']&&(cL['state']['directionalShadowMap'][w2(0x27a)]>0x0&&cR['setValue'](b9,'directionalShadowMap',cL[w2(0x184)]['directionalShadowMap'],bm),cL['state']['spotShadowMap']['length']>0x0&&cR['setValue'](b9,'spotShadowMap',cL[w2(0x184)]['spotShadowMap'],bm),cL['state'][w2(0x4f4)][w2(0x27a)]>0x0&&cR['setValue'](b9,w2(0x4f4),cL['state']['pointShadowMap'],bm)),cw['isSkinnedMesh']){cR['setOptional'](b9,cw,w2(0x4d7)),cR[w2(0x4d2)](b9,cw,w2(0x3ac));let cX=cw['skeleton'];cX&&(cX[w2(0x507)]===null&&cX['computeBoneTexture'](),cR['setValue'](b9,'boneTexture',cX['boneTexture'],bm));}cw['isBatchedMesh']&&(cR[w2(0x4d2)](b9,cw,'batchingTexture'),cR['setValue'](b9,'batchingTexture',cw['_matricesTexture'],bm),cR['setOptional'](b9,cw,'batchingIdTexture'),cR['setValue'](b9,'batchingIdTexture',cw['_indirectTexture'],bm),cR['setOptional'](b9,cw,'batchingColorTexture'),cw['_colorsTexture']!==null&&cR['setValue'](b9,'batchingColorTexture',cw['_colorsTexture'],bm));let cT=cq['morphAttributes'];if((cT['position']!==void 0x0||cT['normal']!==void 0x0||cT['color']!==void 0x0)&&bE['update'](cw,cq,cN),(cP||cK[w2(0x1da)]!==cw['receiveShadow'])&&(cK['receiveShadow']=cw['receiveShadow'],cR['setValue'](b9,'receiveShadow',cw['receiveShadow'])),(cv['isMeshStandardMaterial']||cv['isMeshLambertMaterial']||cv['isMeshPhongMaterial'])&&cv['envMap']===null&&cp['environment']!==null&&(cS['envMapIntensity']['value']=cp['environmentIntensity']),cS['dfgLUT']!==void 0x0&&(cS['dfgLUT'][w2(0x529)]=bd()),cP){if(cR['setValue'](b9,'toneMappingExposure',aF['toneMappingExposure']),cK['needsLights']&&c8(cS,cQ),cx&&cv['fog']===!0x0&&by['refreshFogUniforms'](cS,cx),by[w2(0x40a)](cS,cv,aU,aT,aB[w2(0x184)]['transmissionRenderTarget'][cm['id']]),cK[w2(0x4c6)]&&cK[w2(0x473)]){let cY=cK['lightProbeGrid'];cS['probesSH'][w2(0x529)]=cY['texture'],cS[w2(0x364)]['value']['copy'](cY['boundingBox']['min']),cS['probesMax']['value']['copy'](cY['boundingBox'][w2(0x360)]),cS['probesResolution']['value']['copy'](cY['resolution']);}$l['upload'](b9,c4(cK),cS,bm);}if(cv[w2(0x44b)]&&cv['uniformsNeedUpdate']===!0x0&&($l['upload'](b9,c4(cK),cS,bm),cv['uniformsNeedUpdate']=!0x1),cv['isSpriteMaterial']&&cR['setValue'](b9,'center',cw['center']),cR['setValue'](b9,'modelViewMatrix',cw['modelViewMatrix']),cR['setValue'](b9,w2(0x159),cw['normalMatrix']),cR['setValue'](b9,w2(0x53f),cw[w2(0x3b8)]),cv['uniformsGroups']!==void 0x0){let cZ=cv[w2(0x85)];for(let d0=0x0,d1=cZ['length'];d0<d1;d0++){let d2=cZ[d0];bJ[w2(0x246)](d2,cN),bJ['bind'](d2,cN);}}return cN;}function c8(cm,cp){const w3=vm;cm[w3(0x3d2)]['needsUpdate']=cp,cm['lightProbe']['needsUpdate']=cp,cm['directionalLights']['needsUpdate']=cp,cm['directionalLightShadows'][w3(0x3f1)]=cp,cm['pointLights']['needsUpdate']=cp,cm['pointLightShadows']['needsUpdate']=cp,cm[w3(0x17c)]['needsUpdate']=cp,cm['spotLightShadows']['needsUpdate']=cp,cm[w3(0x387)]['needsUpdate']=cp,cm['hemisphereLights']['needsUpdate']=cp;}function c9(cm){return cm['isMeshLambertMaterial']||cm['isMeshToonMaterial']||cm['isMeshPhongMaterial']||cm['isMeshStandardMaterial']||cm['isShadowMaterial']||cm['isShaderMaterial']&&cm['lights']===!0x0;}this['getActiveCubeFace']=function(){return aI;},this['getActiveMipmapLevel']=function(){return aJ;},this['getRenderTarget']=function(){return aK;},this['setRenderTargetTextures']=function(cm,cp,cq){const w4=vm;let cv=bk['get'](cm);cv[w4(0x140)]=cm['resolveDepthBuffer']===!0x1,cv['__autoAllocateDepthBuffer']===!0x1&&(cv['__useRenderToTexture']=!0x1),bk['get'](cm['texture'])['__webglTexture']=cp,bk['get'](cm['depthTexture'])[w4(0x58f)]=cv['__autoAllocateDepthBuffer']?void 0x0:cq,cv['__hasExternalTextures']=!0x0;},this[vm(0x1b0)]=function(cm,cp){const w5=vm;let cq=bk['get'](cm);cq[w5(0x3a2)]=cp,cq[w5(0x285)]=cp===void 0x0;};let cb=b9['createFramebuffer']();this['setRenderTarget']=function(cm,cp=0x0,cq=0x0){const w6=vm;aK=cm,aI=cp,aJ=cq;let cv=null,cw=!0x1,cx=!0x1;if(cm){let cy=bk['get'](cm);if(cy['__useDefaultFramebuffer']!==void 0x0){bh['bindFramebuffer'](b9[w6(0x2c4)],cy['__webglFramebuffer']),aN['copy'](cm['viewport']),aO[w6(0x32f)](cm['scissor']),aP=cm[w6(0x115)],bh['viewport'](aN),bh['scissor'](aO),bh['setScissorTest'](aP),aL=-0x1;return;}else{if(cy['__webglFramebuffer']===void 0x0)bm[w6(0x480)](cm);else{if(cy['__hasExternalTextures'])bm['rebindTextures'](cm,bk['get'](cm['texture'])['__webglTexture'],bk['get'](cm['depthTexture'])['__webglTexture']);else{if(cm[w6(0x134)]){let cB=cm['depthTexture'];if(cy['__boundDepthTexture']!==cB){if(cB!==null&&bk['has'](cB)&&(cm['width']!==cB['image']['width']||cm['height']!==cB['image'][w6(0x45f)]))throw Error('WebGLRenderTarget:\x20Attached\x20DepthTexture\x20is\x20initialized\x20to\x20the\x20incorrect\x20size.');bm['setupDepthRenderbuffer'](cm);}}}}}let cz=cm[w6(0x2e9)];(cz['isData3DTexture']||cz['isDataArrayTexture']||cz[w6(0x38e)])&&(cx=!0x0);let cA=bk['get'](cm)['__webglFramebuffer'];cm['isWebGLCubeRenderTarget']?(cv=Array['isArray'](cA[cp])?cA[cp][cq]:cA[cp],cw=!0x0):cv=cm['samples']>0x0&&bm['useMultisampledRTT'](cm)===!0x1?bk[w6(0x2f1)](cm)['__webglMultisampledFramebuffer']:Array[w6(0x93)](cA)?cA[cq]:cA,aN['copy'](cm[w6(0x1c0)]),aO[w6(0x32f)](cm['scissor']),aP=cm['scissorTest'];}else aN['copy'](aX)['multiplyScalar'](aU)['floor'](),aO['copy'](aY)['multiplyScalar'](aU)['floor'](),aP=aZ;if(cq!==0x0&&(cv=cb),bh[w6(0x1b4)](b9['FRAMEBUFFER'],cv)&&bh['drawBuffers'](cm,cv),bh['viewport'](aN),bh['scissor'](aO),bh['setScissorTest'](aP),cw){let cC=bk['get'](cm['texture']);b9['framebufferTexture2D'](b9['FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_CUBE_MAP_POSITIVE_X']+cp,cC[w6(0x58f)],cq);}else{if(cx){let cD=cp;for(let cE=0x0;cE<cm['textures'][w6(0x27a)];cE++){let cF=bk[w6(0x2f1)](cm['textures'][cE]);b9['framebufferTextureLayer'](b9['FRAMEBUFFER'],b9['COLOR_ATTACHMENT0']+cE,cF['__webglTexture'],cq,cD);}}else{if(cm!==null&&cq!==0x0){let cG=bk['get'](cm['texture']);b9[w6(0xc9)](b9['FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_2D'],cG['__webglTexture'],cq);}}}aL=-0x1;},this['readRenderTargetPixels']=function(cm,cp,cq,cv,cw,cx,cy,cz=0x0){const w7=vm;if(!(cm&&cm['isWebGLRenderTarget'])){B('WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20THREE.WebGLRenderTarget.');return;}let cA=bk['get'](cm)['__webglFramebuffer'];if(cm['isWebGLCubeRenderTarget']&&cy!==void 0x0&&(cA=cA[cy]),cA){bh['bindFramebuffer'](b9['FRAMEBUFFER'],cA);try{let cB=cm['textures'][cz],cC=cB['format'],cD=cB['type'];if(cm['textures']['length']>0x1&&b9['readBuffer'](b9['COLOR_ATTACHMENT0']+cz),!bg['textureFormatReadable'](cC)){B(w7(0x3b1));return;}if(!bg['textureTypeReadable'](cD)){B('WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20in\x20UnsignedByteType\x20or\x20implementation\x20defined\x20type.');return;}cp>=0x0&&cp<=cm['width']-cv&&cq>=0x0&&cq<=cm['height']-cw&&b9['readPixels'](cp,cq,cv,cw,bH['convert'](cC),bH['convert'](cD),cx);}finally{let cE=aK===null?null:bk[w7(0x2f1)](aK)[w7(0x3a2)];bh['bindFramebuffer'](b9['FRAMEBUFFER'],cE);}}},this['readRenderTargetPixelsAsync']=(function(){var cm=a3(function*(cp,cq,cv,cw,cx,cy,cz,cA=0x0){const w8=a1;if(!(cp&&cp['isWebGLRenderTarget']))throw Error('THREE.WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20THREE.WebGLRenderTarget.');let cB=bk[w8(0x2f1)](cp)['__webglFramebuffer'];if(cp['isWebGLCubeRenderTarget']&&cz!==void 0x0&&(cB=cB[cz]),cB){if(cq>=0x0&&cq<=cp['width']-cw&&cv>=0x0&&cv<=cp['height']-cx){bh[w8(0x1b4)](b9['FRAMEBUFFER'],cB);let cC=cp['textures'][cA],cD=cC[w8(0x196)],cE=cC['type'];if(cp['textures']['length']>0x1&&b9['readBuffer'](b9['COLOR_ATTACHMENT0']+cA),!bg[w8(0x139)](cD))throw Error('THREE.WebGLRenderer.readRenderTargetPixelsAsync:\x20renderTarget\x20is\x20not\x20in\x20RGBA\x20or\x20implementation\x20defined\x20format.');if(!bg['textureTypeReadable'](cE))throw Error('THREE.WebGLRenderer.readRenderTargetPixelsAsync:\x20renderTarget\x20is\x20not\x20in\x20UnsignedByteType\x20or\x20implementation\x20defined\x20type.');let cF=b9['createBuffer']();b9[w8(0x3a5)](b9['PIXEL_PACK_BUFFER'],cF),b9[w8(0x375)](b9['PIXEL_PACK_BUFFER'],cy['byteLength'],b9[w8(0x521)]),b9['readPixels'](cq,cv,cw,cx,bH['convert'](cD),bH['convert'](cE),0x0);let cG=aK===null?null:bk['get'](aK)['__webglFramebuffer'];bh['bindFramebuffer'](b9['FRAMEBUFFER'],cG);let cH=b9['fenceSync'](b9['SYNC_GPU_COMMANDS_COMPLETE'],0x0);return b9['flush'](),yield yt(b9,cH,0x4),b9['bindBuffer'](b9['PIXEL_PACK_BUFFER'],cF),b9['getBufferSubData'](b9['PIXEL_PACK_BUFFER'],0x0,cy),b9['deleteBuffer'](cF),b9['deleteSync'](cH),cy;}else throw Error('THREE.WebGLRenderer.readRenderTargetPixelsAsync:\x20requested\x20read\x20bounds\x20are\x20out\x20of\x20range.');}});return function(cp,cq,cv,cw,cx,cy,cz){return cm['apply'](this,arguments);};}()),this['copyFramebufferToTexture']=function(cm,cp=null,cq=0x0){const w9=vm;let cv=Math['pow'](0x2,-cq),cw=Math['floor'](cm['image']['width']*cv),cx=Math['floor'](cm['image'][w9(0x45f)]*cv),cy=cp===null?0x0:cp['x'],cz=cp===null?0x0:cp['y'];bm['setTexture2D'](cm,0x0),b9['copyTexSubImage2D'](b9[w9(0x10c)],cq,0x0,0x0,cy,cz,cw,cx),bh['unbindTexture']();};let cf=b9['createFramebuffer'](),cg=b9[vm(0x417)]();this['copyTextureToTexture']=function(cm,cp,cq=null,cv=null,cw=0x0,cx=0x0){const wb=vm;let cy,cz,cA,cB,cC,cD,cE,cF,cG,cH=cm['isCompressedTexture']?cm['mipmaps'][cx]:cm[wb(0x251)];if(cq!==null)cy=cq[wb(0x360)]['x']-cq[wb(0xbb)]['x'],cz=cq['max']['y']-cq['min']['y'],cA=cq[wb(0x29f)]?cq['max']['z']-cq['min']['z']:0x1,cB=cq[wb(0xbb)]['x'],cC=cq[wb(0xbb)]['y'],cD=cq['isBox3']?cq['min']['z']:0x0;else{let cS=Math['pow'](0x2,-cw);cy=Math[wb(0x4ec)](cH[wb(0x426)]*cS),cz=Math['floor'](cH['height']*cS),cA=cm[wb(0x56f)]?cH['depth']:cm['isData3DTexture']?Math['floor'](cH['depth']*cS):0x1,cB=0x0,cC=0x0,cD=0x0;}cv===null?(cE=0x0,cF=0x0,cG=0x0):(cE=cv['x'],cF=cv['y'],cG=cv['z']);let cI=bH[wb(0x27c)](cp[wb(0x196)]),cJ=bH['convert'](cp['type']),cK;cp['isData3DTexture']?(bm['setTexture3D'](cp,0x0),cK=b9['TEXTURE_3D']):cp['isDataArrayTexture']||cp['isCompressedArrayTexture']?(bm['setTexture2DArray'](cp,0x0),cK=b9['TEXTURE_2D_ARRAY']):(bm['setTexture2D'](cp,0x0),cK=b9['TEXTURE_2D']),bh['activeTexture'](b9['TEXTURE0']),bh['pixelStorei'](b9['UNPACK_FLIP_Y_WEBGL'],cp['flipY']),bh['pixelStorei'](b9['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],cp['premultiplyAlpha']),bh['pixelStorei'](b9['UNPACK_ALIGNMENT'],cp[wb(0x9b)]);let cL=bh['getParameter'](b9['UNPACK_ROW_LENGTH']),cM=bh['getParameter'](b9['UNPACK_IMAGE_HEIGHT']),cN=bh['getParameter'](b9['UNPACK_SKIP_PIXELS']),cO=bh[wb(0x2cf)](b9['UNPACK_SKIP_ROWS']),cP=bh['getParameter'](b9['UNPACK_SKIP_IMAGES']);bh['pixelStorei'](b9[wb(0x535)],cH['width']),bh['pixelStorei'](b9['UNPACK_IMAGE_HEIGHT'],cH['height']),bh['pixelStorei'](b9[wb(0x1f0)],cB),bh['pixelStorei'](b9[wb(0xb7)],cC),bh['pixelStorei'](b9['UNPACK_SKIP_IMAGES'],cD);let cQ=cm['isDataArrayTexture']||cm['isData3DTexture'],cR=cp[wb(0x56f)]||cp[wb(0x3ad)];if(cm[wb(0x42e)]){let cT=bk['get'](cm),cU=bk['get'](cp),cV=bk['get'](cT[wb(0x3e2)]),cW=bk[wb(0x2f1)](cU[wb(0x3e2)]);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],cV['__webglFramebuffer']),bh['bindFramebuffer'](b9['DRAW_FRAMEBUFFER'],cW['__webglFramebuffer']);for(let cX=0x0;cX<cA;cX++)cQ&&(b9['framebufferTextureLayer'](b9[wb(0x411)],b9['COLOR_ATTACHMENT0'],bk['get'](cm)[wb(0x58f)],cw,cD+cX),b9['framebufferTextureLayer'](b9['DRAW_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],bk['get'](cp)[wb(0x58f)],cx,cG+cX)),b9['blitFramebuffer'](cB,cC,cy,cz,cE,cF,cy,cz,b9['DEPTH_BUFFER_BIT'],b9[wb(0x7f)]);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],null),bh['bindFramebuffer'](b9[wb(0x52a)],null);}else{if(cw!==0x0||cm['isRenderTargetTexture']||bk['has'](cm)){let cY=bk['get'](cm),cZ=bk[wb(0x2f1)](cp);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],cf),bh['bindFramebuffer'](b9['DRAW_FRAMEBUFFER'],cg);for(let d0=0x0;d0<cA;d0++)cQ?b9['framebufferTextureLayer'](b9['READ_FRAMEBUFFER'],b9[wb(0x4b0)],cY['__webglTexture'],cw,cD+d0):b9['framebufferTexture2D'](b9['READ_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_2D'],cY['__webglTexture'],cw),cR?b9[wb(0x2eb)](b9['DRAW_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],cZ[wb(0x58f)],cx,cG+d0):b9['framebufferTexture2D'](b9['DRAW_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_2D'],cZ[wb(0x58f)],cx),cw===0x0?cR?b9[wb(0x54c)](cK,cx,cE,cF,cG+d0,cB,cC,cy,cz):b9['copyTexSubImage2D'](cK,cx,cE,cF,cB,cC,cy,cz):b9['blitFramebuffer'](cB,cC,cy,cz,cE,cF,cy,cz,b9[wb(0xb6)],b9['NEAREST']);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],null),bh['bindFramebuffer'](b9['DRAW_FRAMEBUFFER'],null);}else cR?cm['isDataTexture']||cm[wb(0x3ad)]?b9['texSubImage3D'](cK,cx,cE,cF,cG,cy,cz,cA,cI,cJ,cH['data']):cp['isCompressedArrayTexture']?b9['compressedTexSubImage3D'](cK,cx,cE,cF,cG,cy,cz,cA,cI,cH['data']):b9['texSubImage3D'](cK,cx,cE,cF,cG,cy,cz,cA,cI,cJ,cH):cm['isDataTexture']?b9['texSubImage2D'](b9[wb(0x10c)],cx,cE,cF,cy,cz,cI,cJ,cH['data']):cm['isCompressedTexture']?b9['compressedTexSubImage2D'](b9[wb(0x10c)],cx,cE,cF,cH['width'],cH['height'],cI,cH['data']):b9['texSubImage2D'](b9['TEXTURE_2D'],cx,cE,cF,cy,cz,cI,cJ,cH);}bh['pixelStorei'](b9['UNPACK_ROW_LENGTH'],cL),bh[wb(0x263)](b9['UNPACK_IMAGE_HEIGHT'],cM),bh['pixelStorei'](b9['UNPACK_SKIP_PIXELS'],cN),bh['pixelStorei'](b9['UNPACK_SKIP_ROWS'],cO),bh['pixelStorei'](b9['UNPACK_SKIP_IMAGES'],cP),cx===0x0&&cp['generateMipmaps']&&b9['generateMipmap'](cK),bh['unbindTexture']();},this[vm(0x42a)]=function(cm){const wd=vm;bk['get'](cm)['__webglFramebuffer']===void 0x0&&bm[wd(0x480)](cm);},this['initTexture']=function(cm){const wf=vm;cm['isCubeTexture']?bm['setTextureCube'](cm,0x0):cm['isData3DTexture']?bm[wf(0x4a8)](cm,0x0):cm['isDataArrayTexture']||cm['isCompressedArrayTexture']?bm[wf(0x2ae)](cm,0x0):bm['setTexture2D'](cm,0x0),bh['unbindTexture']();},this['resetState']=function(){aI=0x0,aJ=0x0,aK=null,bh['reset'](),bI['reset']();},typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent('observe',{'detail':this}));}get['coordinateSystem'](){return lt;}get['outputColorSpace'](){const wg=d4;return this[wg(0x450)];}set['outputColorSpace'](a4){this['_outputColorSpace']=a4;let a5=this['getContext']();a5['drawingBufferColorSpace']=K['_getDrawingBufferColorSpace'](a4),a5['unpackColorSpace']=K['_getUnpackColorSpace']();}};export{J as $,Hi as A,fo as At,ua as B,W as Bt,ns as C,g as Ct,cs as D,Ni as Dt,Hn as E,so as Et,Xe as F,os as Ft,it as G,S as H,Go as Ht,qe as I,Ls as It,Zo as J,$o as K,Je as L,ur as Lt,Gr as M,Ss as Mt,qr as N,m as Nt,Ms as O,Oi as Ot,No as P,un as Pt,G as Q,aa as R,Ar as Rt,wn as S,ks as St,tc as T,Xn as Tt,w as U,la as V,q as Vt,C as W,Yr as X,p as Y,Kt as Z,Ea as _,da as _t,nc as a,Co as at,as as b,Uo as bt,Sa as c,x as ct,Ca as d,Vn as dt,gi as et,_ as f,Ts as ft,rc as g,ga as gt,Ta as h,ws as ht,$s as i,wo as it,jr as j,ec as jt,Pi as k,Ir as kt,kr as l,b as lt,K as m,Ki as mt,Os as n,Eo as nt,ki as o,v as ot,Y as p,bs as pt,As as q,Ko as r,To as rt,dr as s,y as st,xd as t,ii as tt,Wr as u,Vo as ut,wa as v,Z as vt,X as w,rt as wt,Ds as x,ri as xt,Ai as y,qt as yt,Zi as z,U as zt};
1
+ const d4=a1;(function(a4,a5){const d3=a1,a6=a4();while(!![]){try{const a7=-parseInt(d3(0x2ea))/0x1+-parseInt(d3(0x279))/0x2*(-parseInt(d3(0x1b9))/0x3)+-parseInt(d3(0x59d))/0x4*(parseInt(d3(0x46b))/0x5)+-parseInt(d3(0x551))/0x6*(parseInt(d3(0x515))/0x7)+-parseInt(d3(0x444))/0x8+parseInt(d3(0x164))/0x9+parseInt(d3(0x1f6))/0xa*(parseInt(d3(0x4b9))/0xb);if(a7===a5)break;else a6['push'](a6['shift']());}catch(a8){a6['push'](a6['shift']());}}}(a0,0x3d873));import{n as a2,t}from'./objectSpread2.js';import{n,t as a3}from'./asyncToGenerator.js';a2();var i,a,o,s,c,l,u,d,f,p={'LEFT':0x0,'MIDDLE':0x1,'RIGHT':0x2,'ROTATE':0x0,'DOLLY':0x1,'PAN':0x2},m={'ROTATE':0x0,'PAN':0x1,'DOLLY_PAN':0x2,'DOLLY_ROTATE':0x3},h=d4(0x378),g=0x3e8,_=0x3e9,v=0x3ea,y=0x3eb,b=0x3ec,x=0x3ed,S=0x3ee,C=0x3ef,w=0x3f0,T=0x3f1,E=0x3f2,D=0x3f3,ee=0x3f4,O=0x3f5,k=0x3f6,A=0x3f7,te=0x3f8,j=0x3f9,ne=0x3fa,re=0x3fc,M=0x8c3e,ie=0x8c3b,ae=0x3fd,N=0x3fe,oe=0x3ff,se=0x402,ce=0x403,le=0x404,ue=0x405,P=0x406,de=0x407,fe=0x409,pe=0x83f0,me=0x83f1,he=0x83f2,ge=0x83f3,_e=0x8c00,ve=0x8c01,ye=0x8c02,be=0x8c03,xe=0x8d64,Se=0x9274,Ce=0x9278,we=0x9270,Te=0x9271,Ee=0x9272,De=0x9273,Oe=0x93b0,ke=0x93b1,Ae=0x93b2,je=0x93b3,F=0x93b4,Me=0x93b5,Ne=0x93b6,Pe=0x93b7,I=0x93b8,Fe=0x93b9,L=0x93ba,R=0x93bb,Ie=0x93bc,Le=0x93bd,Re=0x8e8c,ze=0x8e8e,Be=0x8e8f,Ve=0x8dbb,He=0x8dbc,Ue=0x8dbd,We=0x8dbe,Ge=0x899,Ke=0x89a,qe=0x8fc,Je=0x8fd,Ye=0x8fe,Xe=0x8ff,Ze=0x960,Qe=0x961,$e=0x962,et=0x9c4,tt=0x9c5,nt=0xc80,rt='srgb',it='srgb-linear',at='linear',ot='srgb',st=0x1e00,ct=0x88e4,lt=0x7d0;function ut(a4){for(let a5=a4['length']-0x1;a5>=0x0;--a5)if(a4[a5]>=0xffff)return!0x0;return!0x1;}function dt(a4){return ArrayBuffer['isView'](a4)&&!(a4 instanceof DataView);}function ft(a4){return document['createElementNS']('http://www.w3.org/1999/xhtml',a4);}function pt(){const d5=d4;let a4=ft('canvas');return a4['style'][d5(0x2fc)]='block',a4;}var mt={},ht=null;function gt(...a4){let a5='THREE.'+a4['shift']();ht?ht('log',a5,...a4):console['log'](a5,...a4);}function _t(a4){let a5=a4[0x0];if(typeof a5=='string'&&a5['startsWith']('TSL:')){let a6=a4[0x1];a6&&a6['isStackTrace']?a4[0x0]+='\x20'+a6['getLocation']():a4[0x1]='Stack\x20trace\x20not\x20available.\x20Enable\x20\x22THREE.Node.captureStackTrace\x22\x20to\x20capture\x20stack\x20traces.';}return a4;}function z(...a4){const d6=d4;a4=_t(a4);let a5='THREE.'+a4['shift']();if(ht)ht(d6(0x528),a5,...a4);else{let a6=a4[0x0];a6&&a6['isStackTrace']?console[d6(0x528)](a6['getError'](a5)):console['warn'](a5,...a4);}}function B(...a4){const d7=d4;a4=_t(a4);let a5='THREE.'+a4['shift']();if(ht)ht(d7(0x2ce),a5,...a4);else{let a6=a4[0x0];a6&&a6['isStackTrace']?console[d7(0x2ce)](a6['getError'](a5)):console['error'](a5,...a4);}}function vt(...a4){const d8=d4;let a5=a4[d8(0x417)]('\x20');a5 in mt||(mt[a5]=!0x0,z(...a4));}function yt(a4,a5,a6){return new Promise(function(a7,a8){function a9(){const d9=a1;switch(a4['clientWaitSync'](a5,a4[d9(0x20b)],0x0)){case a4['WAIT_FAILED']:a8();break;case a4['TIMEOUT_EXPIRED']:setTimeout(a9,a6);break;default:a7();}}setTimeout(a9,a6);});}var bt={0x0:0x1,0x2:0x6,0x4:0x7,0x3:0x5,0x1:0x0,0x6:0x2,0x7:0x4,0x5:0x3},xt=class{['addEventListener'](a4,a5){const db=d4;this['_listeners']===void 0x0&&(this['_listeners']={});let a6=this['_listeners'];a6[a4]===void 0x0&&(a6[a4]=[]),a6[a4][db(0x5bd)](a5)===-0x1&&a6[a4]['push'](a5);}['hasEventListener'](a4,a5){let a6=this['_listeners'];return a6===void 0x0?!0x1:a6[a4]!==void 0x0&&a6[a4]['indexOf'](a5)!==-0x1;}['removeEventListener'](a4,a5){let a6=this['_listeners'];if(a6===void 0x0)return;let a7=a6[a4];if(a7!==void 0x0){let a8=a7['indexOf'](a5);a8!==-0x1&&a7['splice'](a8,0x1);}}['dispatchEvent'](a4){const df=d4;let a5=this[df(0x22f)];if(a5===void 0x0)return;let a6=a5[a4['type']];if(a6!==void 0x0){a4['target']=this;let a7=a6[df(0x228)](0x0);for(let a8=0x0,a9=a7['length'];a8<a9;a8++)a7[a8]['call'](this,a4);a4[df(0x44a)]=null;}}},St='00.01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f.10.11.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f.20.21.22.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f.30.31.32.33.34.35.36.37.38.39.3a.3b.3c.3d.3e.3f.40.41.42.43.44.45.46.47.48.49.4a.4b.4c.4d.4e.4f.50.51.52.53.54.55.56.57.58.59.5a.5b.5c.5d.5e.5f.60.61.62.63.64.65.66.67.68.69.6a.6b.6c.6d.6e.6f.70.71.72.73.74.75.76.77.78.79.7a.7b.7c.7d.7e.7f.80.81.82.83.84.85.86.87.88.89.8a.8b.8c.8d.8e.8f.90.91.92.93.94.95.96.97.98.99.9a.9b.9c.9d.9e.9f.a0.a1.a2.a3.a4.a5.a6.a7.a8.a9.aa.ab.ac.ad.ae.af.b0.b1.b2.b3.b4.b5.b6.b7.b8.b9.ba.bb.bc.bd.be.bf.c0.c1.c2.c3.c4.c5.c6.c7.c8.c9.ca.cb.cc.cd.ce.cf.d0.d1.d2.d3.d4.d5.d6.d7.d8.d9.da.db.dc.dd.de.df.e0.e1.e2.e3.e4.e5.e6.e7.e8.e9.ea.eb.ec.ed.ee.ef.f0.f1.f2.f3.f4.f5.f6.f7.f8.f9.fa.fb.fc.fd.fe.ff'[d4(0x125)]('.'),Ct=0x12d687,wt=Math['PI']/0xb4,Tt=0xb4/Math['PI'];function Et(){const dg=d4;let a4=Math['random']()*0xffffffff|0x0,a5=Math['random']()*0xffffffff|0x0,a6=Math[dg(0x374)]()*0xffffffff|0x0,a7=Math['random']()*0xffffffff|0x0;return(St[a4&0xff]+St[a4>>0x8&0xff]+St[a4>>0x10&0xff]+St[a4>>0x18&0xff]+'-'+St[a5&0xff]+St[a5>>0x8&0xff]+'-'+St[a5>>0x10&0xf|0x40]+St[a5>>0x18&0xff]+'-'+St[a6&0x3f|0x80]+St[a6>>0x8&0xff]+'-'+St[a6>>0x10&0xff]+St[a6>>0x18&0xff]+St[a7&0xff]+St[a7>>0x8&0xff]+St[a7>>0x10&0xff]+St[a7>>0x18&0xff])['toLowerCase']();}function V(a4,a5,a6){const dh=d4;return Math['max'](a5,Math[dh(0x5cd)](a6,a4));}function Dt(a4,a5){return(a4%a5+a5)%a5;}function Ot(a4,a5,a6,a7,a8){return a7+(a4-a5)*(a8-a7)/(a6-a5);}function kt(a4,a5,a6){return a4===a5?0x0:(a6-a4)/(a5-a4);}function At(a4,a5,a6){return(0x1-a6)*a4+a6*a5;}function jt(a4,a5,a6,a7){return At(a4,a5,0x1-Math['exp'](-a6*a7));}function Mt(a4,a5=0x1){const dj=d4;return a5-Math[dj(0x2ee)](Dt(a4,a5*0x2)-a5);}function Nt(a4,a5,a6){return a4<=a5?0x0:a4>=a6?0x1:(a4=(a4-a5)/(a6-a5),a4*a4*(0x3-0x2*a4));}function Pt(a4,a5,a6){return a4<=a5?0x0:a4>=a6?0x1:(a4=(a4-a5)/(a6-a5),a4*a4*a4*(a4*(a4*0x6-0xf)+0xa));}function Ft(a4,a5){return a4+Math['floor'](Math['random']()*(a5-a4+0x1));}function It(a4,a5){return a4+Math['random']()*(a5-a4);}function Lt(a4){const dk=d4;return a4*(0.5-Math[dk(0x374)]());}function Rt(a4){a4!==void 0x0&&(Ct=a4);let a5=Ct+=0x6d2b79f5;return a5=Math['imul'](a5^a5>>>0xf,a5|0x1),a5^=a5+Math['imul'](a5^a5>>>0x7,a5|0x3d),((a5^a5>>>0xe)>>>0x0)/0x100000000;}function zt(a4){return a4*wt;}function Bt(a4){return a4*Tt;}function Vt(a4){return(a4&a4-0x1)==0x0&&a4!==0x0;}function Ht(a4){const dm=d4;return Math[dm(0x53c)](0x2,Math[dm(0x50a)](Math['log'](a4)/Math['LN2']));}function Ut(a4){const dp=d4;return Math['pow'](0x2,Math['floor'](Math['log'](a4)/Math[dp(0x357)]));}function Wt(a4,a5,a6,a7,a8){const dq=d4;let a9=Math['cos'],ab=Math['sin'],af=a9(a6/0x2),ag=ab(a6/0x2),ah=a9((a5+a7)/0x2),aj=ab((a5+a7)/0x2),ak=a9((a5-a7)/0x2),am=ab((a5-a7)/0x2),ap=a9((a7-a5)/0x2),aq=ab((a7-a5)/0x2);switch(a8){case'XYX':a4['set'](af*aj,ag*ak,ag*am,af*ah);break;case'YZY':a4['set'](ag*am,af*aj,ag*ak,af*ah);break;case'ZXZ':a4['set'](ag*ak,ag*am,af*aj,af*ah);break;case'XZX':a4['set'](af*aj,ag*aq,ag*ap,af*ah);break;case'YXY':a4[dq(0x23a)](ag*ap,af*aj,ag*aq,af*ah);break;case'ZYZ':a4['set'](ag*aq,ag*ap,af*aj,af*ah);break;default:z('MathUtils:\x20.setQuaternionFromProperEuler()\x20encountered\x20an\x20unknown\x20order:\x20'+a8);}}function Gt(a4,a5){const dv=d4;switch(a5['constructor']){case Float32Array:return a4;case Uint32Array:return a4/0xffffffff;case Uint16Array:return a4/0xffff;case Uint8Array:return a4/0xff;case Int32Array:return Math['max'](a4/0x7fffffff,-0x1);case Int16Array:return Math['max'](a4/0x7fff,-0x1);case Int8Array:return Math['max'](a4/0x7f,-0x1);default:throw Error(dv(0x3d2));}}function H(a4,a5){const dw=d4;switch(a5['constructor']){case Float32Array:return a4;case Uint32Array:return Math['round'](a4*0xffffffff);case Uint16Array:return Math[dw(0x346)](a4*0xffff);case Uint8Array:return Math['round'](a4*0xff);case Int32Array:return Math[dw(0x346)](a4*0x7fffffff);case Int16Array:return Math['round'](a4*0x7fff);case Int8Array:return Math['round'](a4*0x7f);default:throw Error('Invalid\x20component\x20type.');}}var Kt={'DEG2RAD':wt,'RAD2DEG':Tt,'generateUUID':Et,'clamp':V,'euclideanModulo':Dt,'mapLinear':Ot,'inverseLerp':kt,'lerp':At,'damp':jt,'pingpong':Mt,'smoothstep':Nt,'smootherstep':Pt,'randInt':Ft,'randFloat':It,'randFloatSpread':Lt,'seededRandom':Rt,'degToRad':zt,'radToDeg':Bt,'isPowerOfTwo':Vt,'ceilPowerOfTwo':Ht,'floorPowerOfTwo':Ut,'setQuaternionFromProperEuler':Wt,'normalize':H,'denormalize':Gt};u=Symbol[d4(0x500)];var U=class{constructor(a4=0x0,a5=0x0){this['x']=a4,this['y']=a5;}get['width'](){return this['x'];}set['width'](a4){this['x']=a4;}get['height'](){return this['y'];}set['height'](a4){this['y']=a4;}['set'](a4,a5){return this['x']=a4,this['y']=a5,this;}['setScalar'](a4){return this['x']=a4,this['y']=a4,this;}['setX'](a4){return this['x']=a4,this;}['setY'](a4){return this['y']=a4,this;}['setComponent'](a4,a5){switch(a4){case 0x0:this['x']=a5;break;case 0x1:this['y']=a5;break;default:throw Error('index\x20is\x20out\x20of\x20range:\x20'+a4);}return this;}['getComponent'](a4){switch(a4){case 0x0:return this['x'];case 0x1:return this['y'];default:throw Error('index\x20is\x20out\x20of\x20range:\x20'+a4);}}['clone'](){return new this['constructor'](this['x'],this['y']);}['copy'](a4){return this['x']=a4['x'],this['y']=a4['y'],this;}['add'](a4){return this['x']+=a4['x'],this['y']+=a4['y'],this;}['addScalar'](a4){return this['x']+=a4,this['y']+=a4,this;}[d4(0x41f)](a4,a5){return this['x']=a4['x']+a5['x'],this['y']=a4['y']+a5['y'],this;}[d4(0x558)](a4,a5){return this['x']+=a4['x']*a5,this['y']+=a4['y']*a5,this;}['sub'](a4){return this['x']-=a4['x'],this['y']-=a4['y'],this;}['subScalar'](a4){return this['x']-=a4,this['y']-=a4,this;}['subVectors'](a4,a5){return this['x']=a4['x']-a5['x'],this['y']=a4['y']-a5['y'],this;}['multiply'](a4){return this['x']*=a4['x'],this['y']*=a4['y'],this;}['multiplyScalar'](a4){return this['x']*=a4,this['y']*=a4,this;}['divide'](a4){return this['x']/=a4['x'],this['y']/=a4['y'],this;}['divideScalar'](a4){const dx=d4;return this[dx(0x4d9)](0x1/a4);}['applyMatrix3'](a4){let a5=this['x'],a6=this['y'],a7=a4['elements'];return this['x']=a7[0x0]*a5+a7[0x3]*a6+a7[0x6],this['y']=a7[0x1]*a5+a7[0x4]*a6+a7[0x7],this;}['min'](a4){return this['x']=Math['min'](this['x'],a4['x']),this['y']=Math['min'](this['y'],a4['y']),this;}['max'](a4){const dy=d4;return this['x']=Math[dy(0x4dd)](this['x'],a4['x']),this['y']=Math['max'](this['y'],a4['y']),this;}['clamp'](a4,a5){return this['x']=V(this['x'],a4['x'],a5['x']),this['y']=V(this['y'],a4['y'],a5['y']),this;}['clampScalar'](a4,a5){return this['x']=V(this['x'],a4,a5),this['y']=V(this['y'],a4,a5),this;}['clampLength'](a4,a5){const dz=d4;let a6=this['length']();return this[dz(0x49b)](a6||0x1)['multiplyScalar'](V(a6,a4,a5));}['floor'](){return this['x']=Math['floor'](this['x']),this['y']=Math['floor'](this['y']),this;}['ceil'](){return this['x']=Math['ceil'](this['x']),this['y']=Math['ceil'](this['y']),this;}['round'](){return this['x']=Math['round'](this['x']),this['y']=Math['round'](this['y']),this;}['roundToZero'](){return this['x']=Math['trunc'](this['x']),this['y']=Math['trunc'](this['y']),this;}['negate'](){return this['x']=-this['x'],this['y']=-this['y'],this;}['dot'](a4){return this['x']*a4['x']+this['y']*a4['y'];}['cross'](a4){return this['x']*a4['y']-this['y']*a4['x'];}['lengthSq'](){return this['x']*this['x']+this['y']*this['y'];}['length'](){return Math['sqrt'](this['x']*this['x']+this['y']*this['y']);}['manhattanLength'](){const dA=d4;return Math[dA(0x2ee)](this['x'])+Math['abs'](this['y']);}['normalize'](){const dB=d4;return this[dB(0x49b)](this[dB(0x3ac)]()||0x1);}['angle'](){return Math['atan2'](-this['y'],-this['x'])+Math['PI'];}['angleTo'](a4){let a5=Math['sqrt'](this['lengthSq']()*a4['lengthSq']());if(a5===0x0)return Math['PI']/0x2;let a6=this['dot'](a4)/a5;return Math['acos'](V(a6,-0x1,0x1));}['distanceTo'](a4){const dC=d4;return Math['sqrt'](this[dC(0x4ac)](a4));}['distanceToSquared'](a4){let a5=this['x']-a4['x'],a6=this['y']-a4['y'];return a5*a5+a6*a6;}[d4(0x510)](a4){return Math['abs'](this['x']-a4['x'])+Math['abs'](this['y']-a4['y']);}['setLength'](a4){const dD=d4;return this['normalize']()[dD(0x4d9)](a4);}['lerp'](a4,a5){return this['x']+=(a4['x']-this['x'])*a5,this['y']+=(a4['y']-this['y'])*a5,this;}[d4(0x298)](a4,a5,a6){return this['x']=a4['x']+(a5['x']-a4['x'])*a6,this['y']=a4['y']+(a5['y']-a4['y'])*a6,this;}['equals'](a4){return a4['x']===this['x']&&a4['y']===this['y'];}['fromArray'](a4,a5=0x0){return this['x']=a4[a5],this['y']=a4[a5+0x1],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['x'],a4[a5+0x1]=this['y'],a4;}['fromBufferAttribute'](a4,a5){const dE=d4;return this['x']=a4[dE(0x5c8)](a5),this['y']=a4['getY'](a5),this;}['rotateAround'](a4,a5){const dF=d4;let a6=Math['cos'](a5),a7=Math[dF(0x329)](a5),a8=this['x']-a4['x'],a9=this['y']-a4['y'];return this['x']=a8*a6-a9*a7+a4['x'],this['y']=a8*a7+a9*a6+a4['y'],this;}['random'](){return this['x']=Math['random'](),this['y']=Math['random'](),this;}*[u](){yield this['x'],yield this['y'];}};i=U,i['prototype']['isVector2']=!0x0;var qt=class{constructor(a4=0x0,a5=0x0,a6=0x0,a7=0x1){this['isQuaternion']=!0x0,this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_w']=a7;}static['slerpFlat'](a4,a5,a6,a7,a8,a9,ab){const dG=d4;let af=a6[a7+0x0],ag=a6[a7+0x1],ah=a6[a7+0x2],aj=a6[a7+0x3],ak=a8[a9+0x0],am=a8[a9+0x1],ap=a8[a9+0x2],aq=a8[a9+0x3];if(aj!==aq||af!==ak||ag!==am||ah!==ap){let av=af*ak+ag*am+ah*ap+aj*aq;av<0x0&&(ak=-ak,am=-am,ap=-ap,aq=-aq,av=-av);let aw=0x1-ab;if(av<0.9995){let ax=Math['acos'](av),ay=Math['sin'](ax);aw=Math[dG(0x329)](aw*ax)/ay,ab=Math['sin'](ab*ax)/ay,af=af*aw+ak*ab,ag=ag*aw+am*ab,ah=ah*aw+ap*ab,aj=aj*aw+aq*ab;}else{af=af*aw+ak*ab,ag=ag*aw+am*ab,ah=ah*aw+ap*ab,aj=aj*aw+aq*ab;let az=0x1/Math[dG(0x395)](af*af+ag*ag+ah*ah+aj*aj);af*=az,ag*=az,ah*=az,aj*=az;}}a4[a5]=af,a4[a5+0x1]=ag,a4[a5+0x2]=ah,a4[a5+0x3]=aj;}static['multiplyQuaternionsFlat'](a4,a5,a6,a7,a8,a9){let ab=a6[a7],af=a6[a7+0x1],ag=a6[a7+0x2],ah=a6[a7+0x3],aj=a8[a9],ak=a8[a9+0x1],am=a8[a9+0x2],ap=a8[a9+0x3];return a4[a5]=ab*ap+ah*aj+af*am-ag*ak,a4[a5+0x1]=af*ap+ah*ak+ag*aj-ab*am,a4[a5+0x2]=ag*ap+ah*am+ab*ak-af*aj,a4[a5+0x3]=ah*ap-ab*aj-af*ak-ag*am,a4;}get['x'](){return this['_x'];}set['x'](a4){this['_x']=a4,this['_onChangeCallback']();}get['y'](){return this['_y'];}set['y'](a4){this['_y']=a4,this['_onChangeCallback']();}get['z'](){return this['_z'];}set['z'](a4){this['_z']=a4,this['_onChangeCallback']();}get['w'](){return this['_w'];}set['w'](a4){const dH=d4;this['_w']=a4,this[dH(0x32e)]();}['set'](a4,a5,a6,a7){const dI=d4;return this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_w']=a7,this[dI(0x32e)](),this;}['clone'](){return new this['constructor'](this['_x'],this['_y'],this['_z'],this['_w']);}['copy'](a4){return this['_x']=a4['x'],this['_y']=a4['y'],this['_z']=a4['z'],this['_w']=a4['w'],this['_onChangeCallback'](),this;}['setFromEuler'](a4,a5=!0x0){let a6=a4['_x'],a7=a4['_y'],a8=a4['_z'],a9=a4['_order'],ab=Math['cos'],af=Math['sin'],ag=ab(a6/0x2),ah=ab(a7/0x2),aj=ab(a8/0x2),ak=af(a6/0x2),am=af(a7/0x2),ap=af(a8/0x2);switch(a9){case'XYZ':this['_x']=ak*ah*aj+ag*am*ap,this['_y']=ag*am*aj-ak*ah*ap,this['_z']=ag*ah*ap+ak*am*aj,this['_w']=ag*ah*aj-ak*am*ap;break;case'YXZ':this['_x']=ak*ah*aj+ag*am*ap,this['_y']=ag*am*aj-ak*ah*ap,this['_z']=ag*ah*ap-ak*am*aj,this['_w']=ag*ah*aj+ak*am*ap;break;case'ZXY':this['_x']=ak*ah*aj-ag*am*ap,this['_y']=ag*am*aj+ak*ah*ap,this['_z']=ag*ah*ap+ak*am*aj,this['_w']=ag*ah*aj-ak*am*ap;break;case'ZYX':this['_x']=ak*ah*aj-ag*am*ap,this['_y']=ag*am*aj+ak*ah*ap,this['_z']=ag*ah*ap-ak*am*aj,this['_w']=ag*ah*aj+ak*am*ap;break;case'YZX':this['_x']=ak*ah*aj+ag*am*ap,this['_y']=ag*am*aj+ak*ah*ap,this['_z']=ag*ah*ap-ak*am*aj,this['_w']=ag*ah*aj-ak*am*ap;break;case'XZY':this['_x']=ak*ah*aj-ag*am*ap,this['_y']=ag*am*aj-ak*ah*ap,this['_z']=ag*ah*ap+ak*am*aj,this['_w']=ag*ah*aj+ak*am*ap;break;default:z('Quaternion:\x20.setFromEuler()\x20encountered\x20an\x20unknown\x20order:\x20'+a9);}return a5===!0x0&&this['_onChangeCallback'](),this;}[d4(0x47f)](a4,a5){const dJ=d4;let a6=a5/0x2,a7=Math[dJ(0x329)](a6);return this['_x']=a4['x']*a7,this['_y']=a4['y']*a7,this['_z']=a4['z']*a7,this['_w']=Math['cos'](a6),this['_onChangeCallback'](),this;}['setFromRotationMatrix'](a4){const dK=d4;let a5=a4[dK(0x633)],a6=a5[0x0],a7=a5[0x4],a8=a5[0x8],a9=a5[0x1],ab=a5[0x5],af=a5[0x9],ag=a5[0x2],ah=a5[0x6],aj=a5[0xa],ak=a6+ab+aj;if(ak>0x0){let am=0.5/Math[dK(0x395)](ak+0x1);this['_w']=0.25/am,this['_x']=(ah-af)*am,this['_y']=(a8-ag)*am,this['_z']=(a9-a7)*am;}else{if(a6>ab&&a6>aj){let ap=0x2*Math['sqrt'](0x1+a6-ab-aj);this['_w']=(ah-af)/ap,this['_x']=0.25*ap,this['_y']=(a7+a9)/ap,this['_z']=(a8+ag)/ap;}else{if(ab>aj){let aq=0x2*Math['sqrt'](0x1+ab-a6-aj);this['_w']=(a8-ag)/aq,this['_x']=(a7+a9)/aq,this['_y']=0.25*aq,this['_z']=(af+ah)/aq;}else{let av=0x2*Math[dK(0x395)](0x1+aj-a6-ab);this['_w']=(a9-a7)/av,this['_x']=(a8+ag)/av,this['_y']=(af+ah)/av,this['_z']=0.25*av;}}}return this['_onChangeCallback'](),this;}['setFromUnitVectors'](a4,a5){let a6=a4['dot'](a5)+0x1;return a6<1e-8?(a6=0x0,Math['abs'](a4['x'])>Math['abs'](a4['z'])?(this['_x']=-a4['y'],this['_y']=a4['x'],this['_z']=0x0,this['_w']=a6):(this['_x']=0x0,this['_y']=-a4['z'],this['_z']=a4['y'],this['_w']=a6)):(this['_x']=a4['y']*a5['z']-a4['z']*a5['y'],this['_y']=a4['z']*a5['x']-a4['x']*a5['z'],this['_z']=a4['x']*a5['y']-a4['y']*a5['x'],this['_w']=a6),this['normalize']();}['angleTo'](a4){return 0x2*Math['acos'](Math['abs'](V(this['dot'](a4),-0x1,0x1)));}['rotateTowards'](a4,a5){let a6=this['angleTo'](a4);if(a6===0x0)return this;let a7=Math['min'](0x1,a5/a6);return this['slerp'](a4,a7),this;}['identity'](){return this['set'](0x0,0x0,0x0,0x1);}[d4(0x545)](){const dL=d4;return this[dL(0x4bb)]();}['conjugate'](){const dM=d4;return this['_x']*=-0x1,this['_y']*=-0x1,this['_z']*=-0x1,this[dM(0x32e)](),this;}['dot'](a4){return this['_x']*a4['_x']+this['_y']*a4['_y']+this['_z']*a4['_z']+this['_w']*a4['_w'];}['lengthSq'](){return this['_x']*this['_x']+this['_y']*this['_y']+this['_z']*this['_z']+this['_w']*this['_w'];}['length'](){return Math['sqrt'](this['_x']*this['_x']+this['_y']*this['_y']+this['_z']*this['_z']+this['_w']*this['_w']);}['normalize'](){const dN=d4;let a4=this['length']();return a4===0x0?(this['_x']=0x0,this['_y']=0x0,this['_z']=0x0,this['_w']=0x1):(a4=0x1/a4,this['_x']*=a4,this['_y']*=a4,this['_z']*=a4,this['_w']*=a4),this[dN(0x32e)](),this;}['multiply'](a4){const dO=d4;return this[dO(0x439)](this,a4);}['premultiply'](a4){return this['multiplyQuaternions'](a4,this);}['multiplyQuaternions'](a4,a5){let a6=a4['_x'],a7=a4['_y'],a8=a4['_z'],a9=a4['_w'],ab=a5['_x'],af=a5['_y'],ag=a5['_z'],ah=a5['_w'];return this['_x']=a6*ah+a9*ab+a7*ag-a8*af,this['_y']=a7*ah+a9*af+a8*ab-a6*ag,this['_z']=a8*ah+a9*ag+a6*af-a7*ab,this['_w']=a9*ah-a6*ab-a7*af-a8*ag,this['_onChangeCallback'](),this;}['slerp'](a4,a5){const dP=d4;let a6=a4['_x'],a7=a4['_y'],a8=a4['_z'],a9=a4['_w'],ab=this[dP(0x4ba)](a4);ab<0x0&&(a6=-a6,a7=-a7,a8=-a8,a9=-a9,ab=-ab);let af=0x1-a5;if(ab<0.9995){let ag=Math['acos'](ab),ah=Math['sin'](ag);af=Math['sin'](af*ag)/ah,a5=Math[dP(0x329)](a5*ag)/ah,this['_x']=this['_x']*af+a6*a5,this['_y']=this['_y']*af+a7*a5,this['_z']=this['_z']*af+a8*a5,this['_w']=this['_w']*af+a9*a5,this['_onChangeCallback']();}else this['_x']=this['_x']*af+a6*a5,this['_y']=this['_y']*af+a7*a5,this['_z']=this['_z']*af+a8*a5,this['_w']=this['_w']*af+a9*a5,this['normalize']();return this;}['slerpQuaternions'](a4,a5,a6){return this['copy'](a4)['slerp'](a5,a6);}['random'](){const dQ=d4;let a4=0x2*Math['PI']*Math['random'](),a5=0x2*Math['PI']*Math[dQ(0x374)](),a6=Math[dQ(0x374)](),a7=Math['sqrt'](0x1-a6),a8=Math['sqrt'](a6);return this['set'](a7*Math[dQ(0x329)](a4),a7*Math['cos'](a4),a8*Math['sin'](a5),a8*Math[dQ(0x406)](a5));}['equals'](a4){return a4['_x']===this['_x']&&a4['_y']===this['_y']&&a4['_z']===this['_z']&&a4['_w']===this['_w'];}[d4(0x3df)](a4,a5=0x0){return this['_x']=a4[a5],this['_y']=a4[a5+0x1],this['_z']=a4[a5+0x2],this['_w']=a4[a5+0x3],this['_onChangeCallback'](),this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['_x'],a4[a5+0x1]=this['_y'],a4[a5+0x2]=this['_z'],a4[a5+0x3]=this['_w'],a4;}['fromBufferAttribute'](a4,a5){const dR=d4;return this['_x']=a4['getX'](a5),this['_y']=a4['getY'](a5),this['_z']=a4[dR(0x42d)](a5),this['_w']=a4['getW'](a5),this['_onChangeCallback'](),this;}['toJSON'](){return this['toArray']();}['_onChange'](a4){return this['_onChangeCallback']=a4,this;}['_onChangeCallback'](){}*[Symbol['iterator']](){yield this['_x'],yield this['_y'],yield this['_z'],yield this['_w'];}};d=Symbol['iterator'];var W=class{constructor(a4=0x0,a5=0x0,a6=0x0){this['x']=a4,this['y']=a5,this['z']=a6;}['set'](a4,a5,a6){return a6===void 0x0&&(a6=this['z']),this['x']=a4,this['y']=a5,this['z']=a6,this;}['setScalar'](a4){return this['x']=a4,this['y']=a4,this['z']=a4,this;}['setX'](a4){return this['x']=a4,this;}[d4(0x370)](a4){return this['y']=a4,this;}['setZ'](a4){return this['z']=a4,this;}[d4(0x501)](a4,a5){const dS=d4;switch(a4){case 0x0:this['x']=a5;break;case 0x1:this['y']=a5;break;case 0x2:this['z']=a5;break;default:throw Error(dS(0x424)+a4);}return this;}['getComponent'](a4){const dT=d4;switch(a4){case 0x0:return this['x'];case 0x1:return this['y'];case 0x2:return this['z'];default:throw Error(dT(0x424)+a4);}}['clone'](){return new this['constructor'](this['x'],this['y'],this['z']);}['copy'](a4){return this['x']=a4['x'],this['y']=a4['y'],this['z']=a4['z'],this;}['add'](a4){return this['x']+=a4['x'],this['y']+=a4['y'],this['z']+=a4['z'],this;}['addScalar'](a4){return this['x']+=a4,this['y']+=a4,this['z']+=a4,this;}['addVectors'](a4,a5){return this['x']=a4['x']+a5['x'],this['y']=a4['y']+a5['y'],this['z']=a4['z']+a5['z'],this;}['addScaledVector'](a4,a5){return this['x']+=a4['x']*a5,this['y']+=a4['y']*a5,this['z']+=a4['z']*a5,this;}['sub'](a4){return this['x']-=a4['x'],this['y']-=a4['y'],this['z']-=a4['z'],this;}['subScalar'](a4){return this['x']-=a4,this['y']-=a4,this['z']-=a4,this;}['subVectors'](a4,a5){return this['x']=a4['x']-a5['x'],this['y']=a4['y']-a5['y'],this['z']=a4['z']-a5['z'],this;}['multiply'](a4){return this['x']*=a4['x'],this['y']*=a4['y'],this['z']*=a4['z'],this;}['multiplyScalar'](a4){return this['x']*=a4,this['y']*=a4,this['z']*=a4,this;}['multiplyVectors'](a4,a5){return this['x']=a4['x']*a5['x'],this['y']=a4['y']*a5['y'],this['z']=a4['z']*a5['z'],this;}['applyEuler'](a4){return this['applyQuaternion'](Yt['setFromEuler'](a4));}[d4(0x309)](a4,a5){return this['applyQuaternion'](Yt['setFromAxisAngle'](a4,a5));}['applyMatrix3'](a4){const dU=d4;let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4[dU(0x633)];return this['x']=a8[0x0]*a5+a8[0x3]*a6+a8[0x6]*a7,this['y']=a8[0x1]*a5+a8[0x4]*a6+a8[0x7]*a7,this['z']=a8[0x2]*a5+a8[0x5]*a6+a8[0x8]*a7,this;}[d4(0x334)](a4){return this['applyMatrix3'](a4)['normalize']();}['applyMatrix4'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4['elements'],a9=0x1/(a8[0x3]*a5+a8[0x7]*a6+a8[0xb]*a7+a8[0xf]);return this['x']=(a8[0x0]*a5+a8[0x4]*a6+a8[0x8]*a7+a8[0xc])*a9,this['y']=(a8[0x1]*a5+a8[0x5]*a6+a8[0x9]*a7+a8[0xd])*a9,this['z']=(a8[0x2]*a5+a8[0x6]*a6+a8[0xa]*a7+a8[0xe])*a9,this;}['applyQuaternion'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4['x'],a9=a4['y'],ab=a4['z'],af=a4['w'],ag=0x2*(a9*a7-ab*a6),ah=0x2*(ab*a5-a8*a7),aj=0x2*(a8*a6-a9*a5);return this['x']=a5+af*ag+a9*aj-ab*ah,this['y']=a6+af*ah+ab*ag-a8*aj,this['z']=a7+af*aj+a8*ah-a9*ag,this;}['project'](a4){const dV=d4;return this['applyMatrix4'](a4['matrixWorldInverse'])[dV(0x421)](a4[dV(0x60d)]);}[d4(0x3b2)](a4){return this['applyMatrix4'](a4['projectionMatrixInverse'])['applyMatrix4'](a4['matrixWorld']);}['transformDirection'](a4){let a5=this['x'],a6=this['y'],a7=this['z'],a8=a4['elements'];return this['x']=a8[0x0]*a5+a8[0x4]*a6+a8[0x8]*a7,this['y']=a8[0x1]*a5+a8[0x5]*a6+a8[0x9]*a7,this['z']=a8[0x2]*a5+a8[0x6]*a6+a8[0xa]*a7,this['normalize']();}['divide'](a4){return this['x']/=a4['x'],this['y']/=a4['y'],this['z']/=a4['z'],this;}['divideScalar'](a4){return this['multiplyScalar'](0x1/a4);}['min'](a4){const dW=d4;return this['x']=Math['min'](this['x'],a4['x']),this['y']=Math[dW(0x5cd)](this['y'],a4['y']),this['z']=Math['min'](this['z'],a4['z']),this;}['max'](a4){const dX=d4;return this['x']=Math[dX(0x4dd)](this['x'],a4['x']),this['y']=Math['max'](this['y'],a4['y']),this['z']=Math['max'](this['z'],a4['z']),this;}[d4(0x3c9)](a4,a5){return this['x']=V(this['x'],a4['x'],a5['x']),this['y']=V(this['y'],a4['y'],a5['y']),this['z']=V(this['z'],a4['z'],a5['z']),this;}['clampScalar'](a4,a5){return this['x']=V(this['x'],a4,a5),this['y']=V(this['y'],a4,a5),this['z']=V(this['z'],a4,a5),this;}['clampLength'](a4,a5){let a6=this['length']();return this['divideScalar'](a6||0x1)['multiplyScalar'](V(a6,a4,a5));}['floor'](){return this['x']=Math['floor'](this['x']),this['y']=Math['floor'](this['y']),this['z']=Math['floor'](this['z']),this;}['ceil'](){return this['x']=Math['ceil'](this['x']),this['y']=Math['ceil'](this['y']),this['z']=Math['ceil'](this['z']),this;}['round'](){return this['x']=Math['round'](this['x']),this['y']=Math['round'](this['y']),this['z']=Math['round'](this['z']),this;}['roundToZero'](){const dY=d4;return this['x']=Math[dY(0x32a)](this['x']),this['y']=Math['trunc'](this['y']),this['z']=Math['trunc'](this['z']),this;}['negate'](){return this['x']=-this['x'],this['y']=-this['y'],this['z']=-this['z'],this;}['dot'](a4){return this['x']*a4['x']+this['y']*a4['y']+this['z']*a4['z'];}['lengthSq'](){return this['x']*this['x']+this['y']*this['y']+this['z']*this['z'];}['length'](){const dZ=d4;return Math[dZ(0x395)](this['x']*this['x']+this['y']*this['y']+this['z']*this['z']);}['manhattanLength'](){return Math['abs'](this['x'])+Math['abs'](this['y'])+Math['abs'](this['z']);}['normalize'](){return this['divideScalar'](this['length']()||0x1);}['setLength'](a4){const e0=d4;return this['normalize']()[e0(0x4d9)](a4);}[d4(0x1a5)](a4,a5){return this['x']+=(a4['x']-this['x'])*a5,this['y']+=(a4['y']-this['y'])*a5,this['z']+=(a4['z']-this['z'])*a5,this;}['lerpVectors'](a4,a5,a6){return this['x']=a4['x']+(a5['x']-a4['x'])*a6,this['y']=a4['y']+(a5['y']-a4['y'])*a6,this['z']=a4['z']+(a5['z']-a4['z'])*a6,this;}[d4(0x1ee)](a4){const e1=d4;return this[e1(0x637)](this,a4);}[d4(0x637)](a4,a5){let a6=a4['x'],a7=a4['y'],a8=a4['z'],a9=a5['x'],ab=a5['y'],af=a5['z'];return this['x']=a7*af-a8*ab,this['y']=a8*a9-a6*af,this['z']=a6*ab-a7*a9,this;}['projectOnVector'](a4){const e2=d4;let a5=a4[e2(0x170)]();if(a5===0x0)return this['set'](0x0,0x0,0x0);let a6=a4['dot'](this)/a5;return this['copy'](a4)['multiplyScalar'](a6);}['projectOnPlane'](a4){return Jt['copy'](this)['projectOnVector'](a4),this['sub'](Jt);}['reflect'](a4){const e3=d4;return this['sub'](Jt[e3(0x647)](a4)['multiplyScalar'](0x2*this['dot'](a4)));}['angleTo'](a4){const e4=d4;let a5=Math['sqrt'](this['lengthSq']()*a4[e4(0x170)]());if(a5===0x0)return Math['PI']/0x2;let a6=this[e4(0x4ba)](a4)/a5;return Math['acos'](V(a6,-0x1,0x1));}['distanceTo'](a4){const e5=d4;return Math[e5(0x395)](this['distanceToSquared'](a4));}['distanceToSquared'](a4){let a5=this['x']-a4['x'],a6=this['y']-a4['y'],a7=this['z']-a4['z'];return a5*a5+a6*a6+a7*a7;}['manhattanDistanceTo'](a4){const e6=d4;return Math['abs'](this['x']-a4['x'])+Math['abs'](this['y']-a4['y'])+Math[e6(0x2ee)](this['z']-a4['z']);}['setFromSpherical'](a4){const e7=d4;return this['setFromSphericalCoords'](a4[e7(0x263)],a4['phi'],a4['theta']);}['setFromSphericalCoords'](a4,a5,a6){let a7=Math['sin'](a5)*a4;return this['x']=a7*Math['sin'](a6),this['y']=Math['cos'](a5)*a4,this['z']=a7*Math['cos'](a6),this;}['setFromCylindrical'](a4){const e8=d4;return this[e8(0x5d8)](a4['radius'],a4['theta'],a4['y']);}['setFromCylindricalCoords'](a4,a5,a6){return this['x']=a4*Math['sin'](a5),this['y']=a6,this['z']=a4*Math['cos'](a5),this;}['setFromMatrixPosition'](a4){let a5=a4['elements'];return this['x']=a5[0xc],this['y']=a5[0xd],this['z']=a5[0xe],this;}['setFromMatrixScale'](a4){const e9=d4;let a5=this['setFromMatrixColumn'](a4,0x0)[e9(0x3ac)](),a6=this['setFromMatrixColumn'](a4,0x1)['length'](),a7=this['setFromMatrixColumn'](a4,0x2)['length']();return this['x']=a5,this['y']=a6,this['z']=a7,this;}['setFromMatrixColumn'](a4,a5){const eb=d4;return this['fromArray'](a4[eb(0x633)],a5*0x4);}['setFromMatrix3Column'](a4,a5){const ef=d4;return this[ef(0x3df)](a4[ef(0x633)],a5*0x3);}[d4(0x534)](a4){return this['x']=a4['_x'],this['y']=a4['_y'],this['z']=a4['_z'],this;}['setFromColor'](a4){return this['x']=a4['r'],this['y']=a4['g'],this['z']=a4['b'],this;}['equals'](a4){return a4['x']===this['x']&&a4['y']===this['y']&&a4['z']===this['z'];}[d4(0x3df)](a4,a5=0x0){return this['x']=a4[a5],this['y']=a4[a5+0x1],this['z']=a4[a5+0x2],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['x'],a4[a5+0x1]=this['y'],a4[a5+0x2]=this['z'],a4;}['fromBufferAttribute'](a4,a5){return this['x']=a4['getX'](a5),this['y']=a4['getY'](a5),this['z']=a4['getZ'](a5),this;}['random'](){return this['x']=Math['random'](),this['y']=Math['random'](),this['z']=Math['random'](),this;}['randomDirection'](){let a4=Math['random']()*Math['PI']*0x2,a5=Math['random']()*0x2-0x1,a6=Math['sqrt'](0x1-a5*a5);return this['x']=a6*Math['cos'](a4),this['y']=a5,this['z']=a6*Math['sin'](a4),this;}*[d](){yield this['x'],yield this['y'],yield this['z'];}};a=W,a['prototype']['isVector3']=!0x0;function a1(a,b){a=a-0x124;const c=a0();let d=c[a];return d;}var Jt=new W(),Yt=new qt(),G=class{constructor(a4,a5,a6,a7,a8,a9,ab,af,ag){this['elements']=[0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1],a4!==void 0x0&&this['set'](a4,a5,a6,a7,a8,a9,ab,af,ag);}[d4(0x23a)](a4,a5,a6,a7,a8,a9,ab,af,ag){let ah=this['elements'];return ah[0x0]=a4,ah[0x1]=a7,ah[0x2]=ab,ah[0x3]=a5,ah[0x4]=a8,ah[0x5]=af,ah[0x6]=a6,ah[0x7]=a9,ah[0x8]=ag,this;}[d4(0x3f5)](){const eg=d4;return this[eg(0x23a)](0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1),this;}[d4(0x647)](a4){let a5=this['elements'],a6=a4['elements'];return a5[0x0]=a6[0x0],a5[0x1]=a6[0x1],a5[0x2]=a6[0x2],a5[0x3]=a6[0x3],a5[0x4]=a6[0x4],a5[0x5]=a6[0x5],a5[0x6]=a6[0x6],a5[0x7]=a6[0x7],a5[0x8]=a6[0x8],this;}['extractBasis'](a4,a5,a6){return a4['setFromMatrix3Column'](this,0x0),a5['setFromMatrix3Column'](this,0x1),a6['setFromMatrix3Column'](this,0x2),this;}['setFromMatrix4'](a4){let a5=a4['elements'];return this['set'](a5[0x0],a5[0x4],a5[0x8],a5[0x1],a5[0x5],a5[0x9],a5[0x2],a5[0x6],a5[0xa]),this;}['multiply'](a4){return this['multiplyMatrices'](this,a4);}['premultiply'](a4){return this['multiplyMatrices'](a4,this);}[d4(0x369)](a4,a5){let a6=a4['elements'],a7=a5['elements'],a8=this['elements'],a9=a6[0x0],ab=a6[0x3],af=a6[0x6],ag=a6[0x1],ah=a6[0x4],aj=a6[0x7],ak=a6[0x2],am=a6[0x5],ap=a6[0x8],aq=a7[0x0],av=a7[0x3],aw=a7[0x6],ax=a7[0x1],ay=a7[0x4],az=a7[0x7],aA=a7[0x2],aB=a7[0x5],aC=a7[0x8];return a8[0x0]=a9*aq+ab*ax+af*aA,a8[0x3]=a9*av+ab*ay+af*aB,a8[0x6]=a9*aw+ab*az+af*aC,a8[0x1]=ag*aq+ah*ax+aj*aA,a8[0x4]=ag*av+ah*ay+aj*aB,a8[0x7]=ag*aw+ah*az+aj*aC,a8[0x2]=ak*aq+am*ax+ap*aA,a8[0x5]=ak*av+am*ay+ap*aB,a8[0x8]=ak*aw+am*az+ap*aC,this;}['multiplyScalar'](a4){let a5=this['elements'];return a5[0x0]*=a4,a5[0x3]*=a4,a5[0x6]*=a4,a5[0x1]*=a4,a5[0x4]*=a4,a5[0x7]*=a4,a5[0x2]*=a4,a5[0x5]*=a4,a5[0x8]*=a4,this;}['determinant'](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x1],a7=a4[0x2],a8=a4[0x3],a9=a4[0x4],ab=a4[0x5],af=a4[0x6],ag=a4[0x7],ah=a4[0x8];return a5*a9*ah-a5*ab*ag-a6*a8*ah+a6*ab*af+a7*a8*ag-a7*a9*af;}[d4(0x545)](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x1],a7=a4[0x2],a8=a4[0x3],a9=a4[0x4],ab=a4[0x5],af=a4[0x6],ag=a4[0x7],ah=a4[0x8],aj=ah*a9-ab*ag,ak=ab*af-ah*a8,am=ag*a8-a9*af,ap=a5*aj+a6*ak+a7*am;if(ap===0x0)return this['set'](0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0);let aq=0x1/ap;return a4[0x0]=aj*aq,a4[0x1]=(a7*ag-ah*a6)*aq,a4[0x2]=(ab*a6-a7*a9)*aq,a4[0x3]=ak*aq,a4[0x4]=(ah*a5-a7*af)*aq,a4[0x5]=(a7*a8-ab*a5)*aq,a4[0x6]=am*aq,a4[0x7]=(a6*af-ag*a5)*aq,a4[0x8]=(a9*a5-a6*a8)*aq,this;}['transpose'](){let a4,a5=this['elements'];return a4=a5[0x1],a5[0x1]=a5[0x3],a5[0x3]=a4,a4=a5[0x2],a5[0x2]=a5[0x6],a5[0x6]=a4,a4=a5[0x5],a5[0x5]=a5[0x7],a5[0x7]=a4,this;}['getNormalMatrix'](a4){const eh=d4;return this['setFromMatrix4'](a4)['invert']()[eh(0x188)]();}['transposeIntoArray'](a4){const ej=d4;let a5=this[ej(0x633)];return a4[0x0]=a5[0x0],a4[0x1]=a5[0x3],a4[0x2]=a5[0x6],a4[0x3]=a5[0x1],a4[0x4]=a5[0x4],a4[0x5]=a5[0x7],a4[0x6]=a5[0x2],a4[0x7]=a5[0x5],a4[0x8]=a5[0x8],this;}[d4(0x48b)](a4,a5,a6,a7,a8,a9,ab){let af=Math['cos'](a8),ag=Math['sin'](a8);return this['set'](a6*af,a6*ag,-a6*(af*a9+ag*ab)+a9+a4,-a7*ag,a7*af,-a7*(-ag*a9+af*ab)+ab+a5,0x0,0x0,0x1),this;}['scale'](a4,a5){const ek=d4;return this['premultiply'](Xt[ek(0x154)](a4,a5)),this;}['rotate'](a4){return this['premultiply'](Xt['makeRotation'](-a4)),this;}['translate'](a4,a5){const em=d4;return this[em(0x1af)](Xt['makeTranslation'](a4,a5)),this;}['makeTranslation'](a4,a5){return a4['isVector2']?this['set'](0x1,0x0,a4['x'],0x0,0x1,a4['y'],0x0,0x0,0x1):this['set'](0x1,0x0,a4,0x0,0x1,a5,0x0,0x0,0x1),this;}['makeRotation'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](a5,-a6,0x0,a6,a5,0x0,0x0,0x0,0x1),this;}['makeScale'](a4,a5){return this['set'](a4,0x0,0x0,0x0,a5,0x0,0x0,0x0,0x1),this;}['equals'](a4){const ep=d4;let a5=this[ep(0x633)],a6=a4['elements'];for(let a7=0x0;a7<0x9;a7++)if(a5[a7]!==a6[a7])return!0x1;return!0x0;}[d4(0x3df)](a4,a5=0x0){for(let a6=0x0;a6<0x9;a6++)this['elements'][a6]=a4[a6+a5];return this;}['toArray'](a4=[],a5=0x0){let a6=this['elements'];return a4[a5]=a6[0x0],a4[a5+0x1]=a6[0x1],a4[a5+0x2]=a6[0x2],a4[a5+0x3]=a6[0x3],a4[a5+0x4]=a6[0x4],a4[a5+0x5]=a6[0x5],a4[a5+0x6]=a6[0x6],a4[a5+0x7]=a6[0x7],a4[a5+0x8]=a6[0x8],a4;}['clone'](){const eq=d4;return new this[(eq(0x407))]()['fromArray'](this[eq(0x633)]);}};o=G,o['prototype']['isMatrix3']=!0x0;var Xt=new G(),Zt=new G()['set'](0.4123908,0.3575843,0.1804808,0.212639,0.7151687,0.0721923,0.0193308,0.1191948,0.9505322),Qt=new G()['set'](3.2409699,-1.5373832,-0.4986108,-0.9692436,1.8759675,0.0415551,0.0556301,-0.203977,1.0569715);function $t(){let a4={'enabled':!0x0,'workingColorSpace':it,'spaces':{},'convert':function(a8,a9,ab){const ev=a1;return this['enabled']===!0x1||a9===ab||!a9||!ab?a8:(this['spaces'][a9][ev(0x463)]==='srgb'&&(a8['r']=en(a8['r']),a8['g']=en(a8['g']),a8['b']=en(a8['b'])),this['spaces'][a9]['primaries']!==this['spaces'][ab]['primaries']&&(a8['applyMatrix3'](this['spaces'][a9]['toXYZ']),a8['applyMatrix3'](this['spaces'][ab]['fromXYZ'])),this['spaces'][ab]['transfer']==='srgb'&&(a8['r']=tn(a8['r']),a8['g']=tn(a8['g']),a8['b']=tn(a8['b'])),a8);},'workingToColorSpace':function(a8,a9){return this['convert'](a8,this['workingColorSpace'],a9);},'colorSpaceToWorking':function(a8,a9){const ew=a1;return this['convert'](a8,a9,this[ew(0x5bf)]);},'getPrimaries':function(a8){return this['spaces'][a8]['primaries'];},'getTransfer':function(a8){return a8===''?at:this['spaces'][a8]['transfer'];},'getToneMappingMode':function(a8){return this['spaces'][a8]['outputColorSpaceConfig']['toneMappingMode']||'standard';},'getLuminanceCoefficients':function(a8,a9=this['workingColorSpace']){const ex=a1;return a8['fromArray'](this[ex(0x576)][a9]['luminanceCoefficients']);},'define':function(a8){Object['assign'](this['spaces'],a8);},'_getMatrix':function(a8,a9,ab){const ey=a1;return a8['copy'](this['spaces'][a9][ey(0x3dc)])['multiply'](this[ey(0x576)][ab]['fromXYZ']);},'_getDrawingBufferColorSpace':function(a8){return this['spaces'][a8]['outputColorSpaceConfig']['drawingBufferColorSpace'];},'_getUnpackColorSpace':function(a8=this['workingColorSpace']){return this['spaces'][a8]['workingColorSpaceConfig']['unpackColorSpace'];},'fromWorkingColorSpace':function(a8,a9){return vt('ColorManagement:\x20.fromWorkingColorSpace()\x20has\x20been\x20renamed\x20to\x20.workingToColorSpace().'),a4['workingToColorSpace'](a8,a9);},'toWorkingColorSpace':function(a8,a9){const ez=a1;return vt('ColorManagement:\x20.toWorkingColorSpace()\x20has\x20been\x20renamed\x20to\x20.colorSpaceToWorking().'),a4[ez(0x168)](a8,a9);}},a5=[0.64,0.33,0.3,0.6,0.15,0.06],a6=[0.2126,0.7152,0.0722],a7=[0.3127,0.329];return a4['define']({[it]:{'primaries':a5,'whitePoint':a7,'transfer':at,'toXYZ':Zt,'fromXYZ':Qt,'luminanceCoefficients':a6,'workingColorSpaceConfig':{'unpackColorSpace':rt},'outputColorSpaceConfig':{'drawingBufferColorSpace':rt}},[rt]:{'primaries':a5,'whitePoint':a7,'transfer':ot,'toXYZ':Zt,'fromXYZ':Qt,'luminanceCoefficients':a6,'outputColorSpaceConfig':{'drawingBufferColorSpace':rt}}}),a4;}var K=$t();function en(a4){return a4<0.04045?a4*0.0773993808:Math['pow'](a4*0.9478672986+0.0521327014,2.4);}function tn(a4){return a4<0.0031308?a4*12.92:1.055*Math['pow'](a4,0.41666)-0.055;}var nn,rn=class{static[d4(0x634)](a4,a5='image/png'){const eA=d4;if(/^data:/i[eA(0x4de)](a4['src'])||typeof HTMLCanvasElement>'u')return a4['src'];let a6;if(a4 instanceof HTMLCanvasElement)a6=a4;else{nn===void 0x0&&(nn=ft('canvas')),nn['width']=a4['width'],nn['height']=a4[eA(0x260)];let a7=nn['getContext']('2d');a4 instanceof ImageData?a7['putImageData'](a4,0x0,0x0):a7['drawImage'](a4,0x0,0x0,a4['width'],a4['height']),a6=nn;}return a6['toDataURL'](a5);}static['sRGBToLinear'](a4){const eB=d4;if(typeof HTMLImageElement<'u'&&a4 instanceof HTMLImageElement||typeof HTMLCanvasElement<'u'&&a4 instanceof HTMLCanvasElement||typeof ImageBitmap<'u'&&a4 instanceof ImageBitmap){let a5=ft('canvas');a5['width']=a4['width'],a5['height']=a4['height'];let a6=a5['getContext']('2d');a6['drawImage'](a4,0x0,0x0,a4['width'],a4['height']);let a7=a6[eB(0x422)](0x0,0x0,a4['width'],a4['height']),a8=a7['data'];for(let a9=0x0;a9<a8['length'];a9++)a8[a9]=en(a8[a9]/0xff)*0xff;return a6['putImageData'](a7,0x0,0x0),a5;}else{if(a4[eB(0x36f)]){let ab=a4[eB(0x36f)]['slice'](0x0);for(let af=0x0;af<ab[eB(0x3ac)];af++)ab instanceof Uint8Array||ab instanceof Uint8ClampedArray?ab[af]=Math['floor'](en(ab[af]/0xff)*0xff):ab[af]=en(ab[af]);return{'data':ab,'width':a4[eB(0x24d)],'height':a4['height']};}else return z('ImageUtils.sRGBToLinear():\x20Unsupported\x20image\x20type.\x20No\x20color\x20space\x20conversion\x20applied.'),a4;}}},an=0x0,on=class{constructor(a4=null){this['isSource']=!0x0,Object['defineProperty'](this,'id',{'value':an++}),this['uuid']=Et(),this['data']=a4,this['dataReady']=!0x0,this['version']=0x0;}[d4(0x1bf)](a4){const eC=d4;let a5=this['data'];return typeof HTMLVideoElement<'u'&&a5 instanceof HTMLVideoElement?a4['set'](a5['videoWidth'],a5['videoHeight'],0x0):typeof VideoFrame<'u'&&a5 instanceof VideoFrame?a4['set'](a5[eC(0x4e0)],a5['displayHeight'],0x0):a5===null?a4['set'](0x0,0x0,0x0):a4['set'](a5[eC(0x24d)],a5['height'],a5['depth']||0x0),a4;}set[d4(0x55b)](a4){a4===!0x0&&this['version']++;}[d4(0x1bb)](a4){const eD=d4;let a5=a4===void 0x0||typeof a4==eD(0x124);if(!a5&&a4['images'][this['uuid']]!==void 0x0)return a4['images'][this['uuid']];let a6={'uuid':this['uuid'],'url':''},a7=this['data'];if(a7!==null){let a8;if(Array['isArray'](a7)){a8=[];for(let a9=0x0,ab=a7['length'];a9<ab;a9++)a7[a9]['isDataTexture']?a8['push'](sn(a7[a9]['image'])):a8['push'](sn(a7[a9]));}else a8=sn(a7);a6[eD(0x2dd)]=a8;}return a5||(a4['images'][this[eD(0x2a7)]]=a6),a6;}};function sn(a4){const eE=d4;return typeof HTMLImageElement<'u'&&a4 instanceof HTMLImageElement||typeof HTMLCanvasElement<'u'&&a4 instanceof HTMLCanvasElement||typeof ImageBitmap<'u'&&a4 instanceof ImageBitmap?rn['getDataURL'](a4):a4['data']?{'data':Array['from'](a4['data']),'width':a4['width'],'height':a4['height'],'type':a4[eE(0x36f)]['constructor']['name']}:(z(eE(0x60c)),{});}var cn=0x0,ln=new W(),un=class e extends xt{constructor(a4=e['DEFAULT_IMAGE'],a5=e['DEFAULT_MAPPING'],a6=_,a7=_,a8=S,a9=w,ab=oe,af=T,ag=e['DEFAULT_ANISOTROPY'],ah=''){const eF=d4;super(),this['isTexture']=!0x0,Object['defineProperty'](this,'id',{'value':cn++}),this[eF(0x2a7)]=Et(),this['name']='',this[eF(0x2f6)]=new on(a4),this['mipmaps']=[],this['mapping']=a5,this['channel']=0x0,this['wrapS']=a6,this['wrapT']=a7,this['magFilter']=a8,this['minFilter']=a9,this['anisotropy']=ag,this['format']=ab,this['internalFormat']=null,this['type']=af,this[eF(0x34a)]=new U(0x0,0x0),this['repeat']=new U(0x1,0x1),this['center']=new U(0x0,0x0),this[eF(0x58e)]=0x0,this['matrixAutoUpdate']=!0x0,this[eF(0x3ed)]=new G(),this['generateMipmaps']=!0x0,this[eF(0x1fb)]=!0x1,this['flipY']=!0x0,this['unpackAlignment']=0x4,this['colorSpace']=ah,this['userData']={},this['updateRanges']=[],this[eF(0x584)]=0x0,this[eF(0x142)]=null,this[eF(0x2a0)]=null,this['isRenderTargetTexture']=!0x1,this[eF(0x485)]=!!(a4&&a4[eF(0x47a)]&&a4['depth']>0x1),this[eF(0x144)]=0x0,this['normalized']=!0x1;}get['width'](){return this['source']['getSize'](ln)['x'];}get['height'](){return this['source']['getSize'](ln)['y'];}get[d4(0x47a)](){return this['source']['getSize'](ln)['z'];}get['image'](){return this['source']['data'];}set['image'](a4){this['source']['data']=a4;}[d4(0x19b)](){const eG=d4;this['matrix']['setUvTransform'](this['offset']['x'],this['offset']['y'],this[eG(0x18e)]['x'],this['repeat']['y'],this['rotation'],this['center']['x'],this['center']['y']);}[d4(0x2cf)](a4,a5){this['updateRanges']['push']({'start':a4,'count':a5});}['clearUpdateRanges'](){this['updateRanges']['length']=0x0;}['clone'](){return new this['constructor']()['copy'](this);}['copy'](a4){const eH=d4;return this['name']=a4['name'],this['source']=a4[eH(0x2f6)],this['mipmaps']=a4['mipmaps']['slice'](0x0),this['mapping']=a4[eH(0x397)],this['channel']=a4['channel'],this['wrapS']=a4[eH(0x58f)],this[eH(0x5dd)]=a4['wrapT'],this[eH(0x237)]=a4['magFilter'],this['minFilter']=a4['minFilter'],this['anisotropy']=a4['anisotropy'],this['format']=a4['format'],this['internalFormat']=a4['internalFormat'],this['type']=a4['type'],this['normalized']=a4['normalized'],this['offset']['copy'](a4['offset']),this['repeat']['copy'](a4['repeat']),this['center']['copy'](a4['center']),this['rotation']=a4['rotation'],this['matrixAutoUpdate']=a4['matrixAutoUpdate'],this['matrix']['copy'](a4['matrix']),this['generateMipmaps']=a4['generateMipmaps'],this['premultiplyAlpha']=a4['premultiplyAlpha'],this['flipY']=a4[eH(0x54e)],this['unpackAlignment']=a4[eH(0x1c4)],this['colorSpace']=a4['colorSpace'],this['renderTarget']=a4['renderTarget'],this['isRenderTargetTexture']=a4['isRenderTargetTexture'],this['isArrayTexture']=a4['isArrayTexture'],this['userData']=JSON['parse'](JSON['stringify'](a4['userData'])),this[eH(0x55b)]=!0x0,this;}[d4(0x252)](a4){const eI=d4;for(let a5 in a4){let a6=a4[a5];if(a6===void 0x0){z('Texture.setValues():\x20parameter\x20\x27'+a5+eI(0x5da));continue;}let a7=this[a5];if(a7===void 0x0){z('Texture.setValues():\x20property\x20\x27'+a5+eI(0x21b));continue;}a7&&a6&&a7[eI(0x1ff)]&&a6['isVector2']||a7&&a6&&a7[eI(0x63c)]&&a6['isVector3']||a7&&a6&&a7[eI(0x555)]&&a6['isMatrix3']?a7['copy'](a6):this[a5]=a6;}}['toJSON'](a4){const eJ=d4;let a5=a4===void 0x0||typeof a4=='string';if(!a5&&a4[eJ(0x3da)][this['uuid']]!==void 0x0)return a4['textures'][this[eJ(0x2a7)]];let a6={'metadata':{'version':4.7,'type':'Texture','generator':'Texture.toJSON'},'uuid':this['uuid'],'name':this[eJ(0x3bd)],'image':this[eJ(0x2f6)][eJ(0x1bb)](a4)['uuid'],'mapping':this['mapping'],'channel':this['channel'],'repeat':[this['repeat']['x'],this['repeat']['y']],'offset':[this['offset']['x'],this['offset']['y']],'center':[this['center']['x'],this['center']['y']],'rotation':this['rotation'],'wrap':[this['wrapS'],this['wrapT']],'format':this['format'],'internalFormat':this['internalFormat'],'type':this['type'],'normalized':this['normalized'],'colorSpace':this['colorSpace'],'minFilter':this['minFilter'],'magFilter':this[eJ(0x237)],'anisotropy':this['anisotropy'],'flipY':this['flipY'],'generateMipmaps':this['generateMipmaps'],'premultiplyAlpha':this['premultiplyAlpha'],'unpackAlignment':this['unpackAlignment']};return Object['keys'](this['userData'])['length']>0x0&&(a6[eJ(0x14c)]=this['userData']),a5||(a4['textures'][this['uuid']]=a6),a6;}['dispose'](){this['dispatchEvent']({'type':'dispose'});}['transformUv'](a4){const eK=d4;if(this['mapping']!==0x12c)return a4;if(a4['applyMatrix3'](this['matrix']),a4['x']<0x0||a4['x']>0x1)switch(this['wrapS']){case g:a4['x']-=Math['floor'](a4['x']);break;case _:a4['x']=a4['x']<0x0?0x0:0x1;break;case v:Math['abs'](Math['floor'](a4['x'])%0x2)===0x1?a4['x']=Math['ceil'](a4['x'])-a4['x']:a4['x']-=Math['floor'](a4['x']);break;}if(a4['y']<0x0||a4['y']>0x1)switch(this['wrapT']){case g:a4['y']-=Math['floor'](a4['y']);break;case _:a4['y']=a4['y']<0x0?0x0:0x1;break;case v:Math['abs'](Math['floor'](a4['y'])%0x2)===0x1?a4['y']=Math[eK(0x50a)](a4['y'])-a4['y']:a4['y']-=Math[eK(0x4a4)](a4['y']);break;}return this['flipY']&&(a4['y']=0x1-a4['y']),a4;}set['needsUpdate'](a4){a4===!0x0&&(this['version']++,this['source']['needsUpdate']=!0x0);}set[d4(0x468)](a4){a4===!0x0&&this['pmremVersion']++;}};un['DEFAULT_IMAGE']=null,un[d4(0x3e9)]=0x12c,un['DEFAULT_ANISOTROPY']=0x1,f=Symbol[d4(0x500)];var q=class{constructor(a4=0x0,a5=0x0,a6=0x0,a7=0x1){this['x']=a4,this['y']=a5,this['z']=a6,this['w']=a7;}get['width'](){return this['z'];}set['width'](a4){this['z']=a4;}get['height'](){return this['w'];}set[d4(0x260)](a4){this['w']=a4;}['set'](a4,a5,a6,a7){return this['x']=a4,this['y']=a5,this['z']=a6,this['w']=a7,this;}['setScalar'](a4){return this['x']=a4,this['y']=a4,this['z']=a4,this['w']=a4,this;}['setX'](a4){return this['x']=a4,this;}['setY'](a4){return this['y']=a4,this;}['setZ'](a4){return this['z']=a4,this;}[d4(0x4f8)](a4){return this['w']=a4,this;}['setComponent'](a4,a5){const eL=d4;switch(a4){case 0x0:this['x']=a5;break;case 0x1:this['y']=a5;break;case 0x2:this['z']=a5;break;case 0x3:this['w']=a5;break;default:throw Error(eL(0x424)+a4);}return this;}['getComponent'](a4){switch(a4){case 0x0:return this['x'];case 0x1:return this['y'];case 0x2:return this['z'];case 0x3:return this['w'];default:throw Error('index\x20is\x20out\x20of\x20range:\x20'+a4);}}['clone'](){return new this['constructor'](this['x'],this['y'],this['z'],this['w']);}['copy'](a4){return this['x']=a4['x'],this['y']=a4['y'],this['z']=a4['z'],this['w']=a4['w']===void 0x0?0x1:a4['w'],this;}[d4(0x232)](a4){return this['x']+=a4['x'],this['y']+=a4['y'],this['z']+=a4['z'],this['w']+=a4['w'],this;}['addScalar'](a4){return this['x']+=a4,this['y']+=a4,this['z']+=a4,this['w']+=a4,this;}['addVectors'](a4,a5){return this['x']=a4['x']+a5['x'],this['y']=a4['y']+a5['y'],this['z']=a4['z']+a5['z'],this['w']=a4['w']+a5['w'],this;}['addScaledVector'](a4,a5){return this['x']+=a4['x']*a5,this['y']+=a4['y']*a5,this['z']+=a4['z']*a5,this['w']+=a4['w']*a5,this;}['sub'](a4){return this['x']-=a4['x'],this['y']-=a4['y'],this['z']-=a4['z'],this['w']-=a4['w'],this;}['subScalar'](a4){return this['x']-=a4,this['y']-=a4,this['z']-=a4,this['w']-=a4,this;}['subVectors'](a4,a5){return this['x']=a4['x']-a5['x'],this['y']=a4['y']-a5['y'],this['z']=a4['z']-a5['z'],this['w']=a4['w']-a5['w'],this;}[d4(0x29a)](a4){return this['x']*=a4['x'],this['y']*=a4['y'],this['z']*=a4['z'],this['w']*=a4['w'],this;}['multiplyScalar'](a4){return this['x']*=a4,this['y']*=a4,this['z']*=a4,this['w']*=a4,this;}['applyMatrix4'](a4){const eM=d4;let a5=this['x'],a6=this['y'],a7=this['z'],a8=this['w'],a9=a4[eM(0x633)];return this['x']=a9[0x0]*a5+a9[0x4]*a6+a9[0x8]*a7+a9[0xc]*a8,this['y']=a9[0x1]*a5+a9[0x5]*a6+a9[0x9]*a7+a9[0xd]*a8,this['z']=a9[0x2]*a5+a9[0x6]*a6+a9[0xa]*a7+a9[0xe]*a8,this['w']=a9[0x3]*a5+a9[0x7]*a6+a9[0xb]*a7+a9[0xf]*a8,this;}['divide'](a4){return this['x']/=a4['x'],this['y']/=a4['y'],this['z']/=a4['z'],this['w']/=a4['w'],this;}['divideScalar'](a4){const eN=d4;return this[eN(0x4d9)](0x1/a4);}['setAxisAngleFromQuaternion'](a4){this['w']=0x2*Math['acos'](a4['w']);let a5=Math['sqrt'](0x1-a4['w']*a4['w']);return a5<0.0001?(this['x']=0x1,this['y']=0x0,this['z']=0x0):(this['x']=a4['x']/a5,this['y']=a4['y']/a5,this['z']=a4['z']/a5),this;}['setAxisAngleFromRotationMatrix'](a4){const eO=d4;let a5,a6,a7,a8,a9=0.01,ab=0.1,af=a4['elements'],ag=af[0x0],ah=af[0x4],aj=af[0x8],ak=af[0x1],am=af[0x5],ap=af[0x9],aq=af[0x2],av=af[0x6],aw=af[0xa];if(Math['abs'](ah-ak)<a9&&Math['abs'](aj-aq)<a9&&Math[eO(0x2ee)](ap-av)<a9){if(Math['abs'](ah+ak)<ab&&Math['abs'](aj+aq)<ab&&Math['abs'](ap+av)<ab&&Math['abs'](ag+am+aw-0x3)<ab)return this['set'](0x1,0x0,0x0,0x0),this;a5=Math['PI'];let ay=(ag+0x1)/0x2,az=(am+0x1)/0x2,aA=(aw+0x1)/0x2,aB=(ah+ak)/0x4,aC=(aj+aq)/0x4,aD=(ap+av)/0x4;return ay>az&&ay>aA?ay<a9?(a6=0x0,a7=0.707106781,a8=0.707106781):(a6=Math[eO(0x395)](ay),a7=aB/a6,a8=aC/a6):az>aA?az<a9?(a6=0.707106781,a7=0x0,a8=0.707106781):(a7=Math['sqrt'](az),a6=aB/a7,a8=aD/a7):aA<a9?(a6=0.707106781,a7=0.707106781,a8=0x0):(a8=Math[eO(0x395)](aA),a6=aC/a8,a7=aD/a8),this['set'](a6,a7,a8,a5),this;}let ax=Math['sqrt']((av-ap)*(av-ap)+(aj-aq)*(aj-aq)+(ak-ah)*(ak-ah));return Math['abs'](ax)<0.001&&(ax=0x1),this['x']=(av-ap)/ax,this['y']=(aj-aq)/ax,this['z']=(ak-ah)/ax,this['w']=Math['acos']((ag+am+aw-0x1)/0x2),this;}['setFromMatrixPosition'](a4){let a5=a4['elements'];return this['x']=a5[0xc],this['y']=a5[0xd],this['z']=a5[0xe],this['w']=a5[0xf],this;}[d4(0x5cd)](a4){const eP=d4;return this['x']=Math['min'](this['x'],a4['x']),this['y']=Math['min'](this['y'],a4['y']),this['z']=Math['min'](this['z'],a4['z']),this['w']=Math[eP(0x5cd)](this['w'],a4['w']),this;}['max'](a4){return this['x']=Math['max'](this['x'],a4['x']),this['y']=Math['max'](this['y'],a4['y']),this['z']=Math['max'](this['z'],a4['z']),this['w']=Math['max'](this['w'],a4['w']),this;}['clamp'](a4,a5){return this['x']=V(this['x'],a4['x'],a5['x']),this['y']=V(this['y'],a4['y'],a5['y']),this['z']=V(this['z'],a4['z'],a5['z']),this['w']=V(this['w'],a4['w'],a5['w']),this;}['clampScalar'](a4,a5){return this['x']=V(this['x'],a4,a5),this['y']=V(this['y'],a4,a5),this['z']=V(this['z'],a4,a5),this['w']=V(this['w'],a4,a5),this;}['clampLength'](a4,a5){const eQ=d4;let a6=this[eQ(0x3ac)]();return this['divideScalar'](a6||0x1)[eQ(0x4d9)](V(a6,a4,a5));}['floor'](){return this['x']=Math['floor'](this['x']),this['y']=Math['floor'](this['y']),this['z']=Math['floor'](this['z']),this['w']=Math['floor'](this['w']),this;}['ceil'](){const eR=d4;return this['x']=Math['ceil'](this['x']),this['y']=Math['ceil'](this['y']),this['z']=Math['ceil'](this['z']),this['w']=Math[eR(0x50a)](this['w']),this;}['round'](){return this['x']=Math['round'](this['x']),this['y']=Math['round'](this['y']),this['z']=Math['round'](this['z']),this['w']=Math['round'](this['w']),this;}['roundToZero'](){return this['x']=Math['trunc'](this['x']),this['y']=Math['trunc'](this['y']),this['z']=Math['trunc'](this['z']),this['w']=Math['trunc'](this['w']),this;}['negate'](){return this['x']=-this['x'],this['y']=-this['y'],this['z']=-this['z'],this['w']=-this['w'],this;}['dot'](a4){return this['x']*a4['x']+this['y']*a4['y']+this['z']*a4['z']+this['w']*a4['w'];}['lengthSq'](){return this['x']*this['x']+this['y']*this['y']+this['z']*this['z']+this['w']*this['w'];}['length'](){return Math['sqrt'](this['x']*this['x']+this['y']*this['y']+this['z']*this['z']+this['w']*this['w']);}['manhattanLength'](){return Math['abs'](this['x'])+Math['abs'](this['y'])+Math['abs'](this['z'])+Math['abs'](this['w']);}['normalize'](){return this['divideScalar'](this['length']()||0x1);}['setLength'](a4){return this['normalize']()['multiplyScalar'](a4);}['lerp'](a4,a5){return this['x']+=(a4['x']-this['x'])*a5,this['y']+=(a4['y']-this['y'])*a5,this['z']+=(a4['z']-this['z'])*a5,this['w']+=(a4['w']-this['w'])*a5,this;}['lerpVectors'](a4,a5,a6){return this['x']=a4['x']+(a5['x']-a4['x'])*a6,this['y']=a4['y']+(a5['y']-a4['y'])*a6,this['z']=a4['z']+(a5['z']-a4['z'])*a6,this['w']=a4['w']+(a5['w']-a4['w'])*a6,this;}['equals'](a4){return a4['x']===this['x']&&a4['y']===this['y']&&a4['z']===this['z']&&a4['w']===this['w'];}[d4(0x3df)](a4,a5=0x0){return this['x']=a4[a5],this['y']=a4[a5+0x1],this['z']=a4[a5+0x2],this['w']=a4[a5+0x3],this;}[d4(0x226)](a4=[],a5=0x0){return a4[a5]=this['x'],a4[a5+0x1]=this['y'],a4[a5+0x2]=this['z'],a4[a5+0x3]=this['w'],a4;}['fromBufferAttribute'](a4,a5){const eS=d4;return this['x']=a4['getX'](a5),this['y']=a4[eS(0x28d)](a5),this['z']=a4['getZ'](a5),this['w']=a4['getW'](a5),this;}['random'](){const eT=d4;return this['x']=Math['random'](),this['y']=Math['random'](),this['z']=Math[eT(0x374)](),this['w']=Math['random'](),this;}*[f](){yield this['x'],yield this['y'],yield this['z'],yield this['w'];}};s=q,s['prototype']['isVector4']=!0x0;var dn=class extends xt{constructor(a4=0x1,a5=0x1,a6={}){const eU=d4;super(),a6=Object['assign']({'generateMipmaps':!0x1,'internalFormat':null,'minFilter':S,'depthBuffer':!0x0,'stencilBuffer':!0x1,'resolveDepthBuffer':!0x0,'resolveStencilBuffer':!0x0,'depthTexture':null,'samples':0x0,'count':0x1,'depth':0x1,'multiview':!0x1},a6),this['isRenderTarget']=!0x0,this['width']=a4,this['height']=a5,this['depth']=a6['depth'],this['scissor']=new q(0x0,0x0,a4,a5),this['scissorTest']=!0x1,this[eU(0x4ef)]=new q(0x0,0x0,a4,a5),this['textures']=[];let a7=new un({'width':a4,'height':a5,'depth':a6['depth']}),a8=a6['count'];for(let a9=0x0;a9<a8;a9++)this['textures'][a9]=a7['clone'](),this['textures'][a9][eU(0x161)]=!0x0,this[eU(0x3da)][a9]['renderTarget']=this;this['_setTextureOptions'](a6),this['depthBuffer']=a6['depthBuffer'],this['stencilBuffer']=a6[eU(0x31e)],this['resolveDepthBuffer']=a6['resolveDepthBuffer'],this['resolveStencilBuffer']=a6['resolveStencilBuffer'],this['_depthTexture']=null,this['depthTexture']=a6['depthTexture'],this[eU(0x1fc)]=a6['samples'],this['multiview']=a6['multiview'];}[d4(0x432)](a4={}){const eV=d4;let a5={'minFilter':S,'generateMipmaps':!0x1,'flipY':!0x1,'internalFormat':null};a4['mapping']!==void 0x0&&(a5['mapping']=a4['mapping']),a4[eV(0x58f)]!==void 0x0&&(a5['wrapS']=a4['wrapS']),a4[eV(0x5dd)]!==void 0x0&&(a5[eV(0x5dd)]=a4['wrapT']),a4['wrapR']!==void 0x0&&(a5['wrapR']=a4['wrapR']),a4['magFilter']!==void 0x0&&(a5['magFilter']=a4[eV(0x237)]),a4[eV(0x62f)]!==void 0x0&&(a5['minFilter']=a4['minFilter']),a4['format']!==void 0x0&&(a5[eV(0x2d9)]=a4['format']),a4['type']!==void 0x0&&(a5[eV(0x3e0)]=a4['type']),a4['anisotropy']!==void 0x0&&(a5[eV(0x48d)]=a4['anisotropy']),a4['colorSpace']!==void 0x0&&(a5['colorSpace']=a4['colorSpace']),a4['flipY']!==void 0x0&&(a5['flipY']=a4['flipY']),a4['generateMipmaps']!==void 0x0&&(a5['generateMipmaps']=a4['generateMipmaps']),a4['internalFormat']!==void 0x0&&(a5[eV(0x14b)]=a4[eV(0x14b)]);for(let a6=0x0;a6<this['textures']['length'];a6++)this['textures'][a6]['setValues'](a5);}get['texture'](){return this['textures'][0x0];}set['texture'](a4){this['textures'][0x0]=a4;}set['depthTexture'](a4){const eW=d4;this[eW(0x45b)]!==null&&(this[eW(0x45b)]['renderTarget']=null),a4!==null&&(a4['renderTarget']=this),this[eW(0x45b)]=a4;}get['depthTexture'](){const eX=d4;return this[eX(0x45b)];}[d4(0x27f)](a4,a5,a6=0x1){const eY=d4;if(this['width']!==a4||this['height']!==a5||this['depth']!==a6){this['width']=a4,this['height']=a5,this['depth']=a6;for(let a7=0x0,a8=this['textures']['length'];a7<a8;a7++)this[eY(0x3da)][a7]['image']['width']=a4,this[eY(0x3da)][a7]['image'][eY(0x260)]=a5,this[eY(0x3da)][a7]['image'][eY(0x47a)]=a6,this[eY(0x3da)][a7]['isData3DTexture']!==!0x0&&(this['textures'][a7]['isArrayTexture']=this['textures'][a7]['image']['depth']>0x1);this[eY(0x565)]();}this['viewport']['set'](0x0,0x0,a4,a5),this['scissor']['set'](0x0,0x0,a4,a5);}['clone'](){return new this['constructor']()['copy'](this);}['copy'](a4){const eZ=d4;this['width']=a4[eZ(0x24d)],this['height']=a4['height'],this['depth']=a4['depth'],this[eZ(0x51f)]['copy'](a4[eZ(0x51f)]),this['scissorTest']=a4[eZ(0x33d)],this['viewport'][eZ(0x647)](a4['viewport']),this['textures']['length']=0x0;for(let a5=0x0,a6=a4['textures'][eZ(0x3ac)];a5<a6;a5++){this['textures'][a5]=a4['textures'][a5]['clone'](),this['textures'][a5]['isRenderTargetTexture']=!0x0,this['textures'][a5]['renderTarget']=this;let a7=Object['assign']({},a4['textures'][a5][eZ(0x262)]);this['textures'][a5][eZ(0x2f6)]=new on(a7);}return this[eZ(0x398)]=a4[eZ(0x398)],this['stencilBuffer']=a4['stencilBuffer'],this['resolveDepthBuffer']=a4['resolveDepthBuffer'],this['resolveStencilBuffer']=a4['resolveStencilBuffer'],a4['depthTexture']!==null&&(this['depthTexture']=a4[eZ(0x4e2)]['clone']()),this['samples']=a4['samples'],this['multiview']=a4['multiview'],this;}['dispose'](){this['dispatchEvent']({'type':'dispose'});}},fn=class extends dn{constructor(a4=0x1,a5=0x1,a6={}){const f0=d4;super(a4,a5,a6),this[f0(0x3ff)]=!0x0;}},pn=class extends un{constructor(a4=null,a5=0x1,a6=0x1,a7=0x1){const f1=d4;super(null),this['isDataArrayTexture']=!0x0,this['image']={'data':a4,'width':a5,'height':a6,'depth':a7},this['magFilter']=y,this[f1(0x62f)]=y,this['wrapR']=_,this['generateMipmaps']=!0x1,this['flipY']=!0x1,this['unpackAlignment']=0x1,this['layerUpdates']=new Set();}[d4(0x47b)](a4){this['layerUpdates']['add'](a4);}['clearLayerUpdates'](){this['layerUpdates']['clear']();}},mn=class extends un{constructor(a4=null,a5=0x1,a6=0x1,a7=0x1){const f2=d4;super(null),this['isData3DTexture']=!0x0,this[f2(0x262)]={'data':a4,'width':a5,'height':a6,'depth':a7},this['magFilter']=y,this[f2(0x62f)]=y,this[f2(0x491)]=_,this['generateMipmaps']=!0x1,this['flipY']=!0x1,this[f2(0x1c4)]=0x1;}},J=class e{constructor(a4,a5,a6,a7,a8,a9,ab,af,ag,ah,aj,ak,am,ap,aq,av){const f3=d4;this['elements']=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1],a4!==void 0x0&&this[f3(0x23a)](a4,a5,a6,a7,a8,a9,ab,af,ag,ah,aj,ak,am,ap,aq,av);}[d4(0x23a)](a4,a5,a6,a7,a8,a9,ab,af,ag,ah,aj,ak,am,ap,aq,av){let aw=this['elements'];return aw[0x0]=a4,aw[0x4]=a5,aw[0x8]=a6,aw[0xc]=a7,aw[0x1]=a8,aw[0x5]=a9,aw[0x9]=ab,aw[0xd]=af,aw[0x2]=ag,aw[0x6]=ah,aw[0xa]=aj,aw[0xe]=ak,aw[0x3]=am,aw[0x7]=ap,aw[0xb]=aq,aw[0xf]=av,this;}[d4(0x3f5)](){return this['set'](0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1),this;}['clone'](){const f4=d4;return new e()[f4(0x3df)](this['elements']);}['copy'](a4){const f5=d4;let a5=this[f5(0x633)],a6=a4['elements'];return a5[0x0]=a6[0x0],a5[0x1]=a6[0x1],a5[0x2]=a6[0x2],a5[0x3]=a6[0x3],a5[0x4]=a6[0x4],a5[0x5]=a6[0x5],a5[0x6]=a6[0x6],a5[0x7]=a6[0x7],a5[0x8]=a6[0x8],a5[0x9]=a6[0x9],a5[0xa]=a6[0xa],a5[0xb]=a6[0xb],a5[0xc]=a6[0xc],a5[0xd]=a6[0xd],a5[0xe]=a6[0xe],a5[0xf]=a6[0xf],this;}['copyPosition'](a4){let a5=this['elements'],a6=a4['elements'];return a5[0xc]=a6[0xc],a5[0xd]=a6[0xd],a5[0xe]=a6[0xe],this;}['setFromMatrix3'](a4){let a5=a4['elements'];return this['set'](a5[0x0],a5[0x3],a5[0x6],0x0,a5[0x1],a5[0x4],a5[0x7],0x0,a5[0x2],a5[0x5],a5[0x8],0x0,0x0,0x0,0x0,0x1),this;}['extractBasis'](a4,a5,a6){return this['determinant']()===0x0?(a4['set'](0x1,0x0,0x0),a5['set'](0x0,0x1,0x0),a6['set'](0x0,0x0,0x1),this):(a4['setFromMatrixColumn'](this,0x0),a5['setFromMatrixColumn'](this,0x1),a6['setFromMatrixColumn'](this,0x2),this);}['makeBasis'](a4,a5,a6){const f6=d4;return this[f6(0x23a)](a4['x'],a5['x'],a6['x'],0x0,a4['y'],a5['y'],a6['y'],0x0,a4['z'],a5['z'],a6['z'],0x0,0x0,0x0,0x0,0x1),this;}['extractRotation'](a4){if(a4['determinant']()===0x0)return this['identity']();let a5=this['elements'],a6=a4['elements'],a7=0x1/hn['setFromMatrixColumn'](a4,0x0)['length'](),a8=0x1/hn['setFromMatrixColumn'](a4,0x1)['length'](),a9=0x1/hn['setFromMatrixColumn'](a4,0x2)['length']();return a5[0x0]=a6[0x0]*a7,a5[0x1]=a6[0x1]*a7,a5[0x2]=a6[0x2]*a7,a5[0x3]=0x0,a5[0x4]=a6[0x4]*a8,a5[0x5]=a6[0x5]*a8,a5[0x6]=a6[0x6]*a8,a5[0x7]=0x0,a5[0x8]=a6[0x8]*a9,a5[0x9]=a6[0x9]*a9,a5[0xa]=a6[0xa]*a9,a5[0xb]=0x0,a5[0xc]=0x0,a5[0xd]=0x0,a5[0xe]=0x0,a5[0xf]=0x1,this;}['makeRotationFromEuler'](a4){const f7=d4;let a5=this['elements'],a6=a4['x'],a7=a4['y'],a8=a4['z'],a9=Math[f7(0x406)](a6),ab=Math['sin'](a6),af=Math['cos'](a7),ag=Math['sin'](a7),ah=Math['cos'](a8),aj=Math['sin'](a8);if(a4['order']==='XYZ'){let ak=a9*ah,am=a9*aj,ap=ab*ah,aq=ab*aj;a5[0x0]=af*ah,a5[0x4]=-af*aj,a5[0x8]=ag,a5[0x1]=am+ap*ag,a5[0x5]=ak-aq*ag,a5[0x9]=-ab*af,a5[0x2]=aq-ak*ag,a5[0x6]=ap+am*ag,a5[0xa]=a9*af;}else{if(a4['order']===f7(0x43e)){let av=af*ah,aw=af*aj,ax=ag*ah,ay=ag*aj;a5[0x0]=av+ay*ab,a5[0x4]=ax*ab-aw,a5[0x8]=a9*ag,a5[0x1]=a9*aj,a5[0x5]=a9*ah,a5[0x9]=-ab,a5[0x2]=aw*ab-ax,a5[0x6]=ay+av*ab,a5[0xa]=a9*af;}else{if(a4['order']==='ZXY'){let az=af*ah,aA=af*aj,aB=ag*ah,aC=ag*aj;a5[0x0]=az-aC*ab,a5[0x4]=-a9*aj,a5[0x8]=aB+aA*ab,a5[0x1]=aA+aB*ab,a5[0x5]=a9*ah,a5[0x9]=aC-az*ab,a5[0x2]=-a9*ag,a5[0x6]=ab,a5[0xa]=a9*af;}else{if(a4['order']===f7(0x3e3)){let aD=a9*ah,aE=a9*aj,aF=ab*ah,aG=ab*aj;a5[0x0]=af*ah,a5[0x4]=aF*ag-aE,a5[0x8]=aD*ag+aG,a5[0x1]=af*aj,a5[0x5]=aG*ag+aD,a5[0x9]=aE*ag-aF,a5[0x2]=-ag,a5[0x6]=ab*af,a5[0xa]=a9*af;}else{if(a4[f7(0x242)]==='YZX'){let aH=a9*af,aI=a9*ag,aJ=ab*af,aK=ab*ag;a5[0x0]=af*ah,a5[0x4]=aK-aH*aj,a5[0x8]=aJ*aj+aI,a5[0x1]=aj,a5[0x5]=a9*ah,a5[0x9]=-ab*ah,a5[0x2]=-ag*ah,a5[0x6]=aI*aj+aJ,a5[0xa]=aH-aK*aj;}else{if(a4['order']==='XZY'){let aL=a9*af,aM=a9*ag,aN=ab*af,aO=ab*ag;a5[0x0]=af*ah,a5[0x4]=-aj,a5[0x8]=ag*ah,a5[0x1]=aL*aj+aO,a5[0x5]=a9*ah,a5[0x9]=aM*aj-aN,a5[0x2]=aN*aj-aM,a5[0x6]=ab*ah,a5[0xa]=aO*aj+aL;}}}}}}return a5[0x3]=0x0,a5[0x7]=0x0,a5[0xb]=0x0,a5[0xc]=0x0,a5[0xd]=0x0,a5[0xe]=0x0,a5[0xf]=0x1,this;}['makeRotationFromQuaternion'](a4){return this['compose'](_n,a4,vn);}['lookAt'](a4,a5,a6){const f8=d4;let a7=this['elements'];return xn['subVectors'](a4,a5),xn['lengthSq']()===0x0&&(xn['z']=0x1),xn['normalize'](),yn['crossVectors'](a6,xn),yn[f8(0x170)]()===0x0&&(Math['abs'](a6['z'])===0x1?xn['x']+=0.0001:xn['z']+=0.0001,xn['normalize'](),yn['crossVectors'](a6,xn)),yn['normalize'](),bn['crossVectors'](xn,yn),a7[0x0]=yn['x'],a7[0x4]=bn['x'],a7[0x8]=xn['x'],a7[0x1]=yn['y'],a7[0x5]=bn['y'],a7[0x9]=xn['y'],a7[0x2]=yn['z'],a7[0x6]=bn['z'],a7[0xa]=xn['z'],this;}['multiply'](a4){return this['multiplyMatrices'](this,a4);}['premultiply'](a4){return this['multiplyMatrices'](a4,this);}['multiplyMatrices'](a4,a5){let a6=a4['elements'],a7=a5['elements'],a8=this['elements'],a9=a6[0x0],ab=a6[0x4],af=a6[0x8],ag=a6[0xc],ah=a6[0x1],aj=a6[0x5],ak=a6[0x9],am=a6[0xd],ap=a6[0x2],aq=a6[0x6],av=a6[0xa],aw=a6[0xe],ax=a6[0x3],ay=a6[0x7],az=a6[0xb],aA=a6[0xf],aB=a7[0x0],aC=a7[0x4],aD=a7[0x8],aE=a7[0xc],aF=a7[0x1],aG=a7[0x5],aH=a7[0x9],aI=a7[0xd],aJ=a7[0x2],aK=a7[0x6],aL=a7[0xa],aM=a7[0xe],aN=a7[0x3],aO=a7[0x7],aP=a7[0xb],aQ=a7[0xf];return a8[0x0]=a9*aB+ab*aF+af*aJ+ag*aN,a8[0x4]=a9*aC+ab*aG+af*aK+ag*aO,a8[0x8]=a9*aD+ab*aH+af*aL+ag*aP,a8[0xc]=a9*aE+ab*aI+af*aM+ag*aQ,a8[0x1]=ah*aB+aj*aF+ak*aJ+am*aN,a8[0x5]=ah*aC+aj*aG+ak*aK+am*aO,a8[0x9]=ah*aD+aj*aH+ak*aL+am*aP,a8[0xd]=ah*aE+aj*aI+ak*aM+am*aQ,a8[0x2]=ap*aB+aq*aF+av*aJ+aw*aN,a8[0x6]=ap*aC+aq*aG+av*aK+aw*aO,a8[0xa]=ap*aD+aq*aH+av*aL+aw*aP,a8[0xe]=ap*aE+aq*aI+av*aM+aw*aQ,a8[0x3]=ax*aB+ay*aF+az*aJ+aA*aN,a8[0x7]=ax*aC+ay*aG+az*aK+aA*aO,a8[0xb]=ax*aD+ay*aH+az*aL+aA*aP,a8[0xf]=ax*aE+ay*aI+az*aM+aA*aQ,this;}['multiplyScalar'](a4){const f9=d4;let a5=this[f9(0x633)];return a5[0x0]*=a4,a5[0x4]*=a4,a5[0x8]*=a4,a5[0xc]*=a4,a5[0x1]*=a4,a5[0x5]*=a4,a5[0x9]*=a4,a5[0xd]*=a4,a5[0x2]*=a4,a5[0x6]*=a4,a5[0xa]*=a4,a5[0xe]*=a4,a5[0x3]*=a4,a5[0x7]*=a4,a5[0xb]*=a4,a5[0xf]*=a4,this;}['determinant'](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x4],a7=a4[0x8],a8=a4[0xc],a9=a4[0x1],ab=a4[0x5],af=a4[0x9],ag=a4[0xd],ah=a4[0x2],aj=a4[0x6],ak=a4[0xa],am=a4[0xe],ap=a4[0x3],aq=a4[0x7],av=a4[0xb],aw=a4[0xf],ax=af*am-ag*ak,ay=ab*am-ag*aj,az=ab*ak-af*aj,aA=a9*am-ag*ah,aB=a9*ak-af*ah,aC=a9*aj-ab*ah;return a5*(aq*ax-av*ay+aw*az)-a6*(ap*ax-av*aA+aw*aB)+a7*(ap*ay-aq*aA+aw*aC)-a8*(ap*az-aq*aB+av*aC);}[d4(0x188)](){const fb=d4;let a4=this[fb(0x633)],a5;return a5=a4[0x1],a4[0x1]=a4[0x4],a4[0x4]=a5,a5=a4[0x2],a4[0x2]=a4[0x8],a4[0x8]=a5,a5=a4[0x6],a4[0x6]=a4[0x9],a4[0x9]=a5,a5=a4[0x3],a4[0x3]=a4[0xc],a4[0xc]=a5,a5=a4[0x7],a4[0x7]=a4[0xd],a4[0xd]=a5,a5=a4[0xb],a4[0xb]=a4[0xe],a4[0xe]=a5,this;}['setPosition'](a4,a5,a6){let a7=this['elements'];return a4['isVector3']?(a7[0xc]=a4['x'],a7[0xd]=a4['y'],a7[0xe]=a4['z']):(a7[0xc]=a4,a7[0xd]=a5,a7[0xe]=a6),this;}['invert'](){let a4=this['elements'],a5=a4[0x0],a6=a4[0x1],a7=a4[0x2],a8=a4[0x3],a9=a4[0x4],ab=a4[0x5],af=a4[0x6],ag=a4[0x7],ah=a4[0x8],aj=a4[0x9],ak=a4[0xa],am=a4[0xb],ap=a4[0xc],aq=a4[0xd],av=a4[0xe],aw=a4[0xf],ax=a5*ab-a6*a9,ay=a5*af-a7*a9,az=a5*ag-a8*a9,aA=a6*af-a7*ab,aB=a6*ag-a8*ab,aC=a7*ag-a8*af,aD=ah*aq-aj*ap,aE=ah*av-ak*ap,aF=ah*aw-am*ap,aG=aj*av-ak*aq,aH=aj*aw-am*aq,aI=ak*aw-am*av,aJ=ax*aI-ay*aH+az*aG+aA*aF-aB*aE+aC*aD;if(aJ===0x0)return this['set'](0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0);let aK=0x1/aJ;return a4[0x0]=(ab*aI-af*aH+ag*aG)*aK,a4[0x1]=(a7*aH-a6*aI-a8*aG)*aK,a4[0x2]=(aq*aC-av*aB+aw*aA)*aK,a4[0x3]=(ak*aB-aj*aC-am*aA)*aK,a4[0x4]=(af*aF-a9*aI-ag*aE)*aK,a4[0x5]=(a5*aI-a7*aF+a8*aE)*aK,a4[0x6]=(av*az-ap*aC-aw*ay)*aK,a4[0x7]=(ah*aC-ak*az+am*ay)*aK,a4[0x8]=(a9*aH-ab*aF+ag*aD)*aK,a4[0x9]=(a6*aF-a5*aH-a8*aD)*aK,a4[0xa]=(ap*aB-aq*az+aw*ax)*aK,a4[0xb]=(aj*az-ah*aB-am*ax)*aK,a4[0xc]=(ab*aE-a9*aG-af*aD)*aK,a4[0xd]=(a5*aG-a6*aE+a7*aD)*aK,a4[0xe]=(aq*ay-ap*aA-av*ax)*aK,a4[0xf]=(ah*aA-aj*ay+ak*ax)*aK,this;}['scale'](a4){let a5=this['elements'],a6=a4['x'],a7=a4['y'],a8=a4['z'];return a5[0x0]*=a6,a5[0x4]*=a7,a5[0x8]*=a8,a5[0x1]*=a6,a5[0x5]*=a7,a5[0x9]*=a8,a5[0x2]*=a6,a5[0x6]*=a7,a5[0xa]*=a8,a5[0x3]*=a6,a5[0x7]*=a7,a5[0xb]*=a8,this;}['getMaxScaleOnAxis'](){let a4=this['elements'],a5=a4[0x0]*a4[0x0]+a4[0x1]*a4[0x1]+a4[0x2]*a4[0x2],a6=a4[0x4]*a4[0x4]+a4[0x5]*a4[0x5]+a4[0x6]*a4[0x6],a7=a4[0x8]*a4[0x8]+a4[0x9]*a4[0x9]+a4[0xa]*a4[0xa];return Math['sqrt'](Math['max'](a5,a6,a7));}['makeTranslation'](a4,a5,a6){return a4['isVector3']?this['set'](0x1,0x0,0x0,a4['x'],0x0,0x1,0x0,a4['y'],0x0,0x0,0x1,a4['z'],0x0,0x0,0x0,0x1):this['set'](0x1,0x0,0x0,a4,0x0,0x1,0x0,a5,0x0,0x0,0x1,a6,0x0,0x0,0x0,0x1),this;}['makeRotationX'](a4){const ff=d4;let a5=Math['cos'](a4),a6=Math['sin'](a4);return this[ff(0x23a)](0x1,0x0,0x0,0x0,0x0,a5,-a6,0x0,0x0,a6,a5,0x0,0x0,0x0,0x0,0x1),this;}['makeRotationY'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](a5,0x0,a6,0x0,0x0,0x1,0x0,0x0,-a6,0x0,a5,0x0,0x0,0x0,0x0,0x1),this;}['makeRotationZ'](a4){let a5=Math['cos'](a4),a6=Math['sin'](a4);return this['set'](a5,-a6,0x0,0x0,a6,a5,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1),this;}['makeRotationAxis'](a4,a5){let a6=Math['cos'](a5),a7=Math['sin'](a5),a8=0x1-a6,a9=a4['x'],ab=a4['y'],af=a4['z'],ag=a8*a9,ah=a8*ab;return this['set'](ag*a9+a6,ag*ab-a7*af,ag*af+a7*ab,0x0,ag*ab+a7*af,ah*ab+a6,ah*af-a7*a9,0x0,ag*af-a7*ab,ah*af+a7*a9,a8*af*af+a6,0x0,0x0,0x0,0x0,0x1),this;}['makeScale'](a4,a5,a6){const fg=d4;return this[fg(0x23a)](a4,0x0,0x0,0x0,0x0,a5,0x0,0x0,0x0,0x0,a6,0x0,0x0,0x0,0x0,0x1),this;}['makeShear'](a4,a5,a6,a7,a8,a9){return this['set'](0x1,a6,a8,0x0,a4,0x1,a9,0x0,a5,a7,0x1,0x0,0x0,0x0,0x0,0x1),this;}['compose'](a4,a5,a6){let a7=this['elements'],a8=a5['_x'],a9=a5['_y'],ab=a5['_z'],af=a5['_w'],ag=a8+a8,ah=a9+a9,aj=ab+ab,ak=a8*ag,am=a8*ah,ap=a8*aj,aq=a9*ah,av=a9*aj,aw=ab*aj,ax=af*ag,ay=af*ah,az=af*aj,aA=a6['x'],aB=a6['y'],aC=a6['z'];return a7[0x0]=(0x1-(aq+aw))*aA,a7[0x1]=(am+az)*aA,a7[0x2]=(ap-ay)*aA,a7[0x3]=0x0,a7[0x4]=(am-az)*aB,a7[0x5]=(0x1-(ak+aw))*aB,a7[0x6]=(av+ax)*aB,a7[0x7]=0x0,a7[0x8]=(ap+ay)*aC,a7[0x9]=(av-ax)*aC,a7[0xa]=(0x1-(ak+aq))*aC,a7[0xb]=0x0,a7[0xc]=a4['x'],a7[0xd]=a4['y'],a7[0xe]=a4['z'],a7[0xf]=0x1,this;}['decompose'](a4,a5,a6){const fh=d4;let a7=this['elements'];a4['x']=a7[0xc],a4['y']=a7[0xd],a4['z']=a7[0xe];let a8=this['determinant']();if(a8===0x0)return a6['set'](0x1,0x1,0x1),a5['identity'](),this;let a9=hn['set'](a7[0x0],a7[0x1],a7[0x2])['length'](),ab=hn['set'](a7[0x4],a7[0x5],a7[0x6])['length'](),af=hn['set'](a7[0x8],a7[0x9],a7[0xa])['length']();a8<0x0&&(a9=-a9),gn['copy'](this);let ag=0x1/a9,ah=0x1/ab,aj=0x1/af;return gn['elements'][0x0]*=ag,gn['elements'][0x1]*=ag,gn[fh(0x633)][0x2]*=ag,gn[fh(0x633)][0x4]*=ah,gn['elements'][0x5]*=ah,gn['elements'][0x6]*=ah,gn['elements'][0x8]*=aj,gn['elements'][0x9]*=aj,gn['elements'][0xa]*=aj,a5['setFromRotationMatrix'](gn),a6['x']=a9,a6['y']=ab,a6['z']=af,this;}[d4(0x27a)](a4,a5,a6,a7,a8,a9,ab=lt,af=!0x1){let ag=this['elements'],ah=0x2*a8/(a5-a4),aj=0x2*a8/(a6-a7),ak=(a5+a4)/(a5-a4),am=(a6+a7)/(a6-a7),ap,aq;if(af)ap=a8/(a9-a8),aq=a9*a8/(a9-a8);else{if(ab===0x7d0)ap=-(a9+a8)/(a9-a8),aq=-0x2*a9*a8/(a9-a8);else{if(ab===0x7d1)ap=-a9/(a9-a8),aq=-a9*a8/(a9-a8);else throw Error('THREE.Matrix4.makePerspective():\x20Invalid\x20coordinate\x20system:\x20'+ab);}}return ag[0x0]=ah,ag[0x4]=0x0,ag[0x8]=ak,ag[0xc]=0x0,ag[0x1]=0x0,ag[0x5]=aj,ag[0x9]=am,ag[0xd]=0x0,ag[0x2]=0x0,ag[0x6]=0x0,ag[0xa]=ap,ag[0xe]=aq,ag[0x3]=0x0,ag[0x7]=0x0,ag[0xb]=-0x1,ag[0xf]=0x0,this;}['makeOrthographic'](a4,a5,a6,a7,a8,a9,ab=lt,af=!0x1){const fj=d4;let ag=this[fj(0x633)],ah=0x2/(a5-a4),aj=0x2/(a6-a7),ak=-(a5+a4)/(a5-a4),am=-(a6+a7)/(a6-a7),ap,aq;if(af)ap=0x1/(a9-a8),aq=a9/(a9-a8);else{if(ab===0x7d0)ap=-0x2/(a9-a8),aq=-(a9+a8)/(a9-a8);else{if(ab===0x7d1)ap=-0x1/(a9-a8),aq=-a8/(a9-a8);else throw Error('THREE.Matrix4.makeOrthographic():\x20Invalid\x20coordinate\x20system:\x20'+ab);}}return ag[0x0]=ah,ag[0x4]=0x0,ag[0x8]=0x0,ag[0xc]=ak,ag[0x1]=0x0,ag[0x5]=aj,ag[0x9]=0x0,ag[0xd]=am,ag[0x2]=0x0,ag[0x6]=0x0,ag[0xa]=ap,ag[0xe]=aq,ag[0x3]=0x0,ag[0x7]=0x0,ag[0xb]=0x0,ag[0xf]=0x1,this;}['equals'](a4){const fk=d4;let a5=this[fk(0x633)],a6=a4['elements'];for(let a7=0x0;a7<0x10;a7++)if(a5[a7]!==a6[a7])return!0x1;return!0x0;}[d4(0x3df)](a4,a5=0x0){const fm=d4;for(let a6=0x0;a6<0x10;a6++)this[fm(0x633)][a6]=a4[a6+a5];return this;}['toArray'](a4=[],a5=0x0){const fp=d4;let a6=this[fp(0x633)];return a4[a5]=a6[0x0],a4[a5+0x1]=a6[0x1],a4[a5+0x2]=a6[0x2],a4[a5+0x3]=a6[0x3],a4[a5+0x4]=a6[0x4],a4[a5+0x5]=a6[0x5],a4[a5+0x6]=a6[0x6],a4[a5+0x7]=a6[0x7],a4[a5+0x8]=a6[0x8],a4[a5+0x9]=a6[0x9],a4[a5+0xa]=a6[0xa],a4[a5+0xb]=a6[0xb],a4[a5+0xc]=a6[0xc],a4[a5+0xd]=a6[0xd],a4[a5+0xe]=a6[0xe],a4[a5+0xf]=a6[0xf],a4;}};c=J,c['prototype']['isMatrix4']=!0x0;var hn=new W(),gn=new J(),_n=new W(0x0,0x0,0x0),vn=new W(0x1,0x1,0x1),yn=new W(),bn=new W(),xn=new W(),Sn=new J(),Cn=new qt(),wn=class e{constructor(a4=0x0,a5=0x0,a6=0x0,a7=e['DEFAULT_ORDER']){this['isEuler']=!0x0,this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_order']=a7;}get['x'](){return this['_x'];}set['x'](a4){const fq=d4;this['_x']=a4,this[fq(0x32e)]();}get['y'](){return this['_y'];}set['y'](a4){this['_y']=a4,this['_onChangeCallback']();}get['z'](){return this['_z'];}set['z'](a4){this['_z']=a4,this['_onChangeCallback']();}get[d4(0x242)](){return this['_order'];}set['order'](a4){this['_order']=a4,this['_onChangeCallback']();}['set'](a4,a5,a6,a7=this['_order']){return this['_x']=a4,this['_y']=a5,this['_z']=a6,this['_order']=a7,this['_onChangeCallback'](),this;}[d4(0x2d8)](){return new this['constructor'](this['_x'],this['_y'],this['_z'],this['_order']);}['copy'](a4){return this['_x']=a4['_x'],this['_y']=a4['_y'],this['_z']=a4['_z'],this['_order']=a4['_order'],this['_onChangeCallback'](),this;}['setFromRotationMatrix'](a4,a5=this['_order'],a6=!0x0){const fv=d4;let a7=a4['elements'],a8=a7[0x0],a9=a7[0x4],ab=a7[0x8],af=a7[0x1],ag=a7[0x5],ah=a7[0x9],aj=a7[0x2],ak=a7[0x6],am=a7[0xa];switch(a5){case'XYZ':this['_y']=Math[fv(0x31d)](V(ab,-0x1,0x1)),Math[fv(0x2ee)](ab)<0.9999999?(this['_x']=Math['atan2'](-ah,am),this['_z']=Math['atan2'](-a9,a8)):(this['_x']=Math['atan2'](ak,ag),this['_z']=0x0);break;case'YXZ':this['_x']=Math['asin'](-V(ah,-0x1,0x1)),Math['abs'](ah)<0.9999999?(this['_y']=Math[fv(0x221)](ab,am),this['_z']=Math['atan2'](af,ag)):(this['_y']=Math['atan2'](-aj,a8),this['_z']=0x0);break;case fv(0x36a):this['_x']=Math['asin'](V(ak,-0x1,0x1)),Math[fv(0x2ee)](ak)<0.9999999?(this['_y']=Math['atan2'](-aj,am),this['_z']=Math['atan2'](-a9,ag)):(this['_y']=0x0,this['_z']=Math['atan2'](af,a8));break;case'ZYX':this['_y']=Math['asin'](-V(aj,-0x1,0x1)),Math['abs'](aj)<0.9999999?(this['_x']=Math['atan2'](ak,am),this['_z']=Math[fv(0x221)](af,a8)):(this['_x']=0x0,this['_z']=Math['atan2'](-a9,ag));break;case'YZX':this['_z']=Math[fv(0x31d)](V(af,-0x1,0x1)),Math['abs'](af)<0.9999999?(this['_x']=Math['atan2'](-ah,ag),this['_y']=Math['atan2'](-aj,a8)):(this['_x']=0x0,this['_y']=Math['atan2'](ab,am));break;case'XZY':this['_z']=Math[fv(0x31d)](-V(a9,-0x1,0x1)),Math['abs'](a9)<0.9999999?(this['_x']=Math['atan2'](ak,ag),this['_y']=Math['atan2'](ab,a8)):(this['_x']=Math[fv(0x221)](-ah,am),this['_y']=0x0);break;default:z(fv(0x34b)+a5);}return this['_order']=a5,a6===!0x0&&this['_onChangeCallback'](),this;}[d4(0x348)](a4,a5,a6){return Sn['makeRotationFromQuaternion'](a4),this['setFromRotationMatrix'](Sn,a5,a6);}['setFromVector3'](a4,a5=this['_order']){return this['set'](a4['x'],a4['y'],a4['z'],a5);}['reorder'](a4){return Cn['setFromEuler'](this),this['setFromQuaternion'](Cn,a4);}['equals'](a4){return a4['_x']===this['_x']&&a4['_y']===this['_y']&&a4['_z']===this['_z']&&a4['_order']===this['_order'];}['fromArray'](a4){return this['_x']=a4[0x0],this['_y']=a4[0x1],this['_z']=a4[0x2],a4[0x3]!==void 0x0&&(this['_order']=a4[0x3]),this['_onChangeCallback'](),this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['_x'],a4[a5+0x1]=this['_y'],a4[a5+0x2]=this['_z'],a4[a5+0x3]=this['_order'],a4;}['_onChange'](a4){return this['_onChangeCallback']=a4,this;}['_onChangeCallback'](){}*[Symbol['iterator']](){const fw=d4;yield this['_x'],yield this['_y'],yield this['_z'],yield this[fw(0x43b)];}};wn[d4(0x391)]='XYZ';var Tn=class{constructor(){this['mask']=0x1;}[d4(0x23a)](a4){this['mask']=(0x1<<a4|0x0)>>>0x0;}['enable'](a4){this['mask']|=0x1<<a4|0x0;}['enableAll'](){this['mask']=-0x1;}['toggle'](a4){this['mask']^=0x1<<a4|0x0;}['disable'](a4){this['mask']&=~(0x1<<a4|0x0);}['disableAll'](){this['mask']=0x0;}['test'](a4){return(this['mask']&a4['mask'])!==0x0;}['isEnabled'](a4){return(this['mask']&(0x1<<a4|0x0))!=0x0;}},En=0x0,Dn=new W(),On=new qt(),kn=new J(),An=new W(),jn=new W(),Mn=new W(),Nn=new qt(),Pn=new W(0x1,0x0,0x0),Fn=new W(0x0,0x1,0x0),In=new W(0x0,0x0,0x1),Ln={'type':'added'},Rn={'type':'removed'},zn={'type':'childadded','child':null},Bn={'type':'childremoved','child':null},Vn=class e extends xt{constructor(){const fx=d4;super(),this['isObject3D']=!0x0,Object['defineProperty'](this,'id',{'value':En++}),this['uuid']=Et(),this[fx(0x3bd)]='',this[fx(0x3e0)]='Object3D',this['parent']=null,this[fx(0x1b8)]=[],this['up']=e['DEFAULT_UP'][fx(0x2d8)]();let a4=new W(),a5=new wn(),a6=new qt(),a7=new W(0x1,0x1,0x1);function a8(){a6['setFromEuler'](a5,!0x1);}function a9(){a5['setFromQuaternion'](a6,void 0x0,!0x1);}a5['_onChange'](a8),a6['_onChange'](a9),Object['defineProperties'](this,{'position':{'configurable':!0x0,'enumerable':!0x0,'value':a4},'rotation':{'configurable':!0x0,'enumerable':!0x0,'value':a5},'quaternion':{'configurable':!0x0,'enumerable':!0x0,'value':a6},'scale':{'configurable':!0x0,'enumerable':!0x0,'value':a7},'modelViewMatrix':{'value':new J()},'normalMatrix':{'value':new G()}}),this[fx(0x3ed)]=new J(),this['matrixWorld']=new J(),this[fx(0x3b4)]=e['DEFAULT_MATRIX_AUTO_UPDATE'],this['matrixWorldAutoUpdate']=e['DEFAULT_MATRIX_WORLD_AUTO_UPDATE'],this['matrixWorldNeedsUpdate']=!0x1,this['layers']=new Tn(),this['visible']=!0x0,this['castShadow']=!0x1,this['receiveShadow']=!0x1,this[fx(0x3bc)]=!0x0,this[fx(0x3f0)]=0x0,this['animations']=[],this[fx(0x202)]=void 0x0,this['customDistanceMaterial']=void 0x0,this['static']=!0x1,this['userData']={},this['pivot']=null;}['onBeforeShadow'](){}['onAfterShadow'](){}['onBeforeRender'](){}['onAfterRender'](){}['applyMatrix4'](a4){const fy=d4;this['matrixAutoUpdate']&&this['updateMatrix'](),this['matrix']['premultiply'](a4),this['matrix'][fy(0x26a)](this[fy(0x4ed)],this[fy(0x446)],this['scale']);}['applyQuaternion'](a4){const fz=d4;return this[fz(0x446)]['premultiply'](a4),this;}['setRotationFromAxisAngle'](a4,a5){this['quaternion']['setFromAxisAngle'](a4,a5);}['setRotationFromEuler'](a4){const fA=d4;this[fA(0x446)]['setFromEuler'](a4,!0x0);}[d4(0x513)](a4){this['quaternion']['setFromRotationMatrix'](a4);}['setRotationFromQuaternion'](a4){this['quaternion']['copy'](a4);}['rotateOnAxis'](a4,a5){const fB=d4;return On['setFromAxisAngle'](a4,a5),this[fB(0x446)]['multiply'](On),this;}['rotateOnWorldAxis'](a4,a5){return On['setFromAxisAngle'](a4,a5),this['quaternion']['premultiply'](On),this;}['rotateX'](a4){return this['rotateOnAxis'](Pn,a4);}[d4(0x2f0)](a4){return this['rotateOnAxis'](Fn,a4);}['rotateZ'](a4){return this['rotateOnAxis'](In,a4);}[d4(0x239)](a4,a5){const fC=d4;return Dn['copy'](a4)[fC(0x4ce)](this['quaternion']),this['position']['add'](Dn['multiplyScalar'](a5)),this;}['translateX'](a4){const fD=d4;return this[fD(0x239)](Pn,a4);}['translateY'](a4){return this['translateOnAxis'](Fn,a4);}[d4(0x41c)](a4){const fE=d4;return this[fE(0x239)](In,a4);}['localToWorld'](a4){const fF=d4;return this[fF(0x61d)](!0x0,!0x1),a4['applyMatrix4'](this['matrixWorld']);}['worldToLocal'](a4){const fG=d4;return this['updateWorldMatrix'](!0x0,!0x1),a4['applyMatrix4'](kn['copy'](this[fG(0x3cd)])['invert']());}['lookAt'](a4,a5,a6){const fH=d4;a4['isVector3']?An[fH(0x647)](a4):An['set'](a4,a5,a6);let a7=this['parent'];this['updateWorldMatrix'](!0x0,!0x1),jn['setFromMatrixPosition'](this['matrixWorld']),this['isCamera']||this['isLight']?kn['lookAt'](jn,An,this['up']):kn['lookAt'](An,jn,this['up']),this[fH(0x446)]['setFromRotationMatrix'](kn),a7&&(kn['extractRotation'](a7['matrixWorld']),On[fH(0x4e7)](kn),this[fH(0x446)]['premultiply'](On['invert']()));}['add'](a4){const fI=d4;if(arguments['length']>0x1){for(let a5=0x0;a5<arguments['length'];a5++)this['add'](arguments[a5]);return this;}return a4===this?(B('Object3D.add:\x20object\x20can\x27t\x20be\x20added\x20as\x20a\x20child\x20of\x20itself.',a4),this):(a4&&a4['isObject3D']?(a4['removeFromParent'](),a4['parent']=this,this[fI(0x1b8)]['push'](a4),a4['dispatchEvent'](Ln),zn['child']=a4,this['dispatchEvent'](zn),zn[fI(0x176)]=null):B('Object3D.add:\x20object\x20not\x20an\x20instance\x20of\x20THREE.Object3D.',a4),this);}['remove'](a4){const fJ=d4;if(arguments['length']>0x1){for(let a6=0x0;a6<arguments['length'];a6++)this['remove'](arguments[a6]);return this;}let a5=this[fJ(0x1b8)][fJ(0x5bd)](a4);return a5!==-0x1&&(a4['parent']=null,this['children']['splice'](a5,0x1),a4['dispatchEvent'](Rn),Bn[fJ(0x176)]=a4,this['dispatchEvent'](Bn),Bn['child']=null),this;}[d4(0x5d3)](){let a4=this['parent'];return a4!==null&&a4['remove'](this),this;}['clear'](){return this['remove'](...this['children']);}['attach'](a4){const fK=d4;return this['updateWorldMatrix'](!0x0,!0x1),kn['copy'](this['matrixWorld'])[fK(0x545)](),a4['parent']!==null&&(a4['parent']['updateWorldMatrix'](!0x0,!0x1),kn['multiply'](a4[fK(0x20e)]['matrixWorld'])),a4['applyMatrix4'](kn),a4['removeFromParent'](),a4['parent']=this,this['children']['push'](a4),a4['updateWorldMatrix'](!0x1,!0x0),a4['dispatchEvent'](Ln),zn['child']=a4,this['dispatchEvent'](zn),zn['child']=null,this;}['getObjectById'](a4){const fL=d4;return this[fL(0x2bd)]('id',a4);}['getObjectByName'](a4){return this['getObjectByProperty']('name',a4);}['getObjectByProperty'](a4,a5){const fM=d4;if(this[a4]===a5)return this;for(let a6=0x0,a7=this['children'][fM(0x3ac)];a6<a7;a6++){let a8=this['children'][a6]['getObjectByProperty'](a4,a5);if(a8!==void 0x0)return a8;}}['getObjectsByProperty'](a4,a5,a6=[]){const fN=d4;this[a4]===a5&&a6['push'](this);let a7=this['children'];for(let a8=0x0,a9=a7['length'];a8<a9;a8++)a7[a8][fN(0x179)](a4,a5,a6);return a6;}['getWorldPosition'](a4){const fO=d4;return this['updateWorldMatrix'](!0x0,!0x1),a4['setFromMatrixPosition'](this[fO(0x3cd)]);}['getWorldQuaternion'](a4){return this['updateWorldMatrix'](!0x0,!0x1),this['matrixWorld']['decompose'](jn,a4,Mn),a4;}['getWorldScale'](a4){const fP=d4;return this[fP(0x61d)](!0x0,!0x1),this['matrixWorld']['decompose'](jn,Nn,a4),a4;}['getWorldDirection'](a4){const fQ=d4;this['updateWorldMatrix'](!0x0,!0x1);let a5=this['matrixWorld'][fQ(0x633)];return a4['set'](a5[0x8],a5[0x9],a5[0xa])['normalize']();}['raycast'](){}['traverse'](a4){a4(this);let a5=this['children'];for(let a6=0x0,a7=a5['length'];a6<a7;a6++)a5[a6]['traverse'](a4);}['traverseVisible'](a4){const fR=d4;if(this[fR(0x181)]===!0x1)return;a4(this);let a5=this[fR(0x1b8)];for(let a6=0x0,a7=a5[fR(0x3ac)];a6<a7;a6++)a5[a6]['traverseVisible'](a4);}[d4(0x5f2)](a4){const fS=d4;let a5=this['parent'];a5!==null&&(a4(a5),a5[fS(0x5f2)](a4));}['updateMatrix'](){const fT=d4;this['matrix']['compose'](this['position'],this['quaternion'],this['scale']);let a4=this['pivot'];if(a4!==null){let a5=a4['x'],a6=a4['y'],a7=a4['z'],a8=this[fT(0x3ed)][fT(0x633)];a8[0xc]+=a5-a8[0x0]*a5-a8[0x4]*a6-a8[0x8]*a7,a8[0xd]+=a6-a8[0x1]*a5-a8[0x5]*a6-a8[0x9]*a7,a8[0xe]+=a7-a8[0x2]*a5-a8[0x6]*a6-a8[0xa]*a7;}this['matrixWorldNeedsUpdate']=!0x0;}['updateMatrixWorld'](a4){const fU=d4;this['matrixAutoUpdate']&&this['updateMatrix'](),(this['matrixWorldNeedsUpdate']||a4)&&(this['matrixWorldAutoUpdate']===!0x0&&(this[fU(0x20e)]===null?this['matrixWorld']['copy'](this[fU(0x3ed)]):this['matrixWorld']['multiplyMatrices'](this['parent'][fU(0x3cd)],this['matrix'])),this['matrixWorldNeedsUpdate']=!0x1,a4=!0x0);let a5=this['children'];for(let a6=0x0,a7=a5[fU(0x3ac)];a6<a7;a6++)a5[a6][fU(0x5d0)](a4);}['updateWorldMatrix'](a4,a5){const fV=d4;let a6=this['parent'];if(a4===!0x0&&a6!==null&&a6['updateWorldMatrix'](!0x0,!0x1),this['matrixAutoUpdate']&&this[fV(0x19b)](),this['matrixWorldAutoUpdate']===!0x0&&(this[fV(0x20e)]===null?this['matrixWorld']['copy'](this[fV(0x3ed)]):this['matrixWorld']['multiplyMatrices'](this['parent']['matrixWorld'],this['matrix'])),a5===!0x0){let a7=this['children'];for(let a8=0x0,a9=a7['length'];a8<a9;a8++)a7[a8]['updateWorldMatrix'](!0x1,!0x0);}}['toJSON'](a4){const fW=d4;let a5=a4===void 0x0||typeof a4==fW(0x124),a6={};a5&&(a4={'geometries':{},'materials':{},'textures':{},'images':{},'shapes':{},'skeletons':{},'animations':{},'nodes':{}},a6['metadata']={'version':4.7,'type':'Object','generator':'Object3D.toJSON'});let a7={};a7['uuid']=this['uuid'],a7['type']=this['type'],this['name']!==''&&(a7[fW(0x3bd)]=this['name']),this[fW(0x594)]===!0x0&&(a7['castShadow']=!0x0),this['receiveShadow']===!0x0&&(a7['receiveShadow']=!0x0),this['visible']===!0x1&&(a7['visible']=!0x1),this[fW(0x3bc)]===!0x1&&(a7[fW(0x3bc)]=!0x1),this['renderOrder']!==0x0&&(a7['renderOrder']=this['renderOrder']),this['static']!==!0x1&&(a7['static']=this['static']),Object['keys'](this['userData'])['length']>0x0&&(a7['userData']=this[fW(0x14c)]),a7[fW(0x1aa)]=this['layers']['mask'],a7['matrix']=this[fW(0x3ed)]['toArray'](),a7['up']=this['up'][fW(0x226)](),this[fW(0x314)]!==null&&(a7[fW(0x314)]=this['pivot']['toArray']()),this['matrixAutoUpdate']===!0x1&&(a7['matrixAutoUpdate']=!0x1),this['morphTargetDictionary']!==void 0x0&&(a7['morphTargetDictionary']=Object['assign']({},this['morphTargetDictionary'])),this['morphTargetInfluences']!==void 0x0&&(a7[fW(0x43a)]=this['morphTargetInfluences'][fW(0x228)]()),this[fW(0x624)]&&(a7[fW(0x3e0)]='InstancedMesh',a7['count']=this['count'],a7['instanceMatrix']=this['instanceMatrix']['toJSON'](),this['instanceColor']!==null&&(a7['instanceColor']=this['instanceColor']['toJSON']())),this['isBatchedMesh']&&(a7['type']='BatchedMesh',a7['perObjectFrustumCulled']=this['perObjectFrustumCulled'],a7['sortObjects']=this['sortObjects'],a7['drawRanges']=this['_drawRanges'],a7['reservedRanges']=this['_reservedRanges'],a7['geometryInfo']=this['_geometryInfo']['map'](ab=>t(t({},ab),{},{'boundingBox':ab['boundingBox']?ab[fW(0x4c6)]['toJSON']():void 0x0,'boundingSphere':ab[fW(0x1db)]?ab['boundingSphere']['toJSON']():void 0x0})),a7['instanceInfo']=this['_instanceInfo'][fW(0x2db)](ab=>t({},ab)),a7[fW(0x16a)]=this['_availableInstanceIds']['slice'](),a7[fW(0x44f)]=this['_availableGeometryIds']['slice'](),a7['nextIndexStart']=this['_nextIndexStart'],a7[fW(0x616)]=this['_nextVertexStart'],a7['geometryCount']=this['_geometryCount'],a7[fW(0x238)]=this['_maxInstanceCount'],a7['maxVertexCount']=this[fW(0x5a3)],a7['maxIndexCount']=this['_maxIndexCount'],a7['geometryInitialized']=this['_geometryInitialized'],a7['matricesTexture']=this[fW(0x3e4)]['toJSON'](a4),a7['indirectTexture']=this['_indirectTexture']['toJSON'](a4),this['_colorsTexture']!==null&&(a7['colorsTexture']=this['_colorsTexture'][fW(0x1bb)](a4)),this[fW(0x1db)]!==null&&(a7['boundingSphere']=this[fW(0x1db)]['toJSON']()),this[fW(0x4c6)]!==null&&(a7['boundingBox']=this['boundingBox'][fW(0x1bb)]()));function a8(ab,af){const fX=fW;return ab[af['uuid']]===void 0x0&&(ab[af['uuid']]=af['toJSON'](a4)),af[fX(0x2a7)];}if(this['isScene'])this[fW(0x4eb)]&&(this['background']['isColor']?a7['background']=this['background'][fW(0x1bb)]():this['background']['isTexture']&&(a7['background']=this['background']['toJSON'](a4)['uuid'])),this['environment']&&this['environment']['isTexture']&&this['environment'][fW(0x161)]!==!0x0&&(a7['environment']=this['environment']['toJSON'](a4)['uuid']);else{if(this['isMesh']||this['isLine']||this[fW(0x332)]){a7['geometry']=a8(a4['geometries'],this[fW(0x1c9)]);let ab=this[fW(0x1c9)]['parameters'];if(ab!==void 0x0&&ab['shapes']!==void 0x0){let af=ab['shapes'];if(Array[fW(0x571)](af))for(let ag=0x0,ah=af[fW(0x3ac)];ag<ah;ag++){let aj=af[ag];a8(a4['shapes'],aj);}else a8(a4['shapes'],af);}}}if(this['isSkinnedMesh']&&(a7['bindMode']=this['bindMode'],a7['bindMatrix']=this['bindMatrix']['toArray'](),this[fW(0x280)]!==void 0x0&&(a8(a4['skeletons'],this['skeleton']),a7[fW(0x280)]=this['skeleton']['uuid'])),this[fW(0x22b)]!==void 0x0){if(Array['isArray'](this['material'])){let ak=[];for(let am=0x0,ap=this['material']['length'];am<ap;am++)ak['push'](a8(a4['materials'],this['material'][am]));a7['material']=ak;}else a7['material']=a8(a4['materials'],this['material']);}if(this['children']['length']>0x0){a7['children']=[];for(let aq=0x0;aq<this['children'][fW(0x3ac)];aq++)a7['children']['push'](this['children'][aq]['toJSON'](a4)[fW(0x32c)]);}if(this['animations']['length']>0x0){a7['animations']=[];for(let av=0x0;av<this['animations']['length'];av++){let aw=this[fW(0x527)][av];a7[fW(0x527)][fW(0x5d4)](a8(a4['animations'],aw));}}if(a5){let ax=a9(a4['geometries']),ay=a9(a4['materials']),az=a9(a4['textures']),aA=a9(a4['images']),aB=a9(a4['shapes']),aC=a9(a4['skeletons']),aD=a9(a4['animations']),aE=a9(a4[fW(0x3b3)]);ax['length']>0x0&&(a6['geometries']=ax),ay['length']>0x0&&(a6['materials']=ay),az['length']>0x0&&(a6['textures']=az),aA['length']>0x0&&(a6['images']=aA),aB['length']>0x0&&(a6['shapes']=aB),aC['length']>0x0&&(a6[fW(0x5f5)]=aC),aD[fW(0x3ac)]>0x0&&(a6['animations']=aD),aE['length']>0x0&&(a6['nodes']=aE);}return a6[fW(0x32c)]=a7,a6;function a9(aF){let aG=[];for(let aH in aF){let aI=aF[aH];delete aI['metadata'],aG['push'](aI);}return aG;}}[d4(0x2d8)](a4){const fY=d4;return new this[(fY(0x407))]()['copy'](this,a4);}['copy'](a4,a5=!0x0){const fZ=d4;if(this['name']=a4['name'],this['up']['copy'](a4['up']),this['position']['copy'](a4['position']),this['rotation']['order']=a4['rotation']['order'],this['quaternion']['copy'](a4['quaternion']),this['scale']['copy'](a4['scale']),this['pivot']=a4[fZ(0x314)]===null?null:a4['pivot']['clone'](),this['matrix']['copy'](a4[fZ(0x3ed)]),this['matrixWorld'][fZ(0x647)](a4['matrixWorld']),this[fZ(0x3b4)]=a4['matrixAutoUpdate'],this['matrixWorldAutoUpdate']=a4[fZ(0x51d)],this['matrixWorldNeedsUpdate']=a4['matrixWorldNeedsUpdate'],this['layers']['mask']=a4['layers']['mask'],this[fZ(0x181)]=a4['visible'],this['castShadow']=a4['castShadow'],this[fZ(0x373)]=a4['receiveShadow'],this['frustumCulled']=a4[fZ(0x3bc)],this['renderOrder']=a4['renderOrder'],this[fZ(0x557)]=a4['static'],this[fZ(0x527)]=a4['animations'][fZ(0x228)](),this['userData']=JSON['parse'](JSON['stringify'](a4['userData'])),a5===!0x0)for(let a6=0x0;a6<a4[fZ(0x1b8)]['length'];a6++){let a7=a4['children'][a6];this['add'](a7['clone']());}return this;}};Vn['DEFAULT_UP']=new W(0x0,0x1,0x0),Vn['DEFAULT_MATRIX_AUTO_UPDATE']=!0x0,Vn['DEFAULT_MATRIX_WORLD_AUTO_UPDATE']=!0x0;var Hn=class extends Vn{constructor(){super(),this['isGroup']=!0x0,this['type']='Group';}},Un={'type':d4(0x27e)},Wn=class{constructor(){this['_targetRay']=null,this['_grip']=null,this['_hand']=null;}['getHandSpace'](){const g0=d4;return this['_hand']===null&&(this['_hand']=new Hn(),this['_hand']['matrixAutoUpdate']=!0x1,this['_hand']['visible']=!0x1,this['_hand']['joints']={},this['_hand'][g0(0x379)]={'pinching':!0x1}),this['_hand'];}['getTargetRaySpace'](){const g1=d4;return this['_targetRay']===null&&(this['_targetRay']=new Hn(),this['_targetRay']['matrixAutoUpdate']=!0x1,this['_targetRay']['visible']=!0x1,this['_targetRay']['hasLinearVelocity']=!0x1,this[g1(0x4f7)]['linearVelocity']=new W(),this['_targetRay']['hasAngularVelocity']=!0x1,this['_targetRay'][g1(0x45a)]=new W()),this['_targetRay'];}['getGripSpace'](){const g2=d4;return this['_grip']===null&&(this['_grip']=new Hn(),this['_grip']['matrixAutoUpdate']=!0x1,this[g2(0x385)]['visible']=!0x1,this['_grip']['hasLinearVelocity']=!0x1,this['_grip']['linearVelocity']=new W(),this['_grip'][g2(0x632)]=!0x1,this['_grip']['angularVelocity']=new W(),this['_grip']['eventsEnabled']=!0x1),this['_grip'];}['dispatchEvent'](a4){const g3=d4;return this['_targetRay']!==null&&this['_targetRay']['dispatchEvent'](a4),this['_grip']!==null&&this['_grip']['dispatchEvent'](a4),this[g3(0x149)]!==null&&this['_hand']['dispatchEvent'](a4),this;}['connect'](a4){const g4=d4;if(a4&&a4['hand']){let a5=this['_hand'];if(a5){for(let a6 of a4['hand']['values']())this[g4(0x22e)](a5,a6);}}return this[g4(0x3de)]({'type':'connected','data':a4}),this;}['disconnect'](a4){const g5=d4;return this[g5(0x3de)]({'type':'disconnected','data':a4}),this['_targetRay']!==null&&(this['_targetRay']['visible']=!0x1),this[g5(0x385)]!==null&&(this[g5(0x385)][g5(0x181)]=!0x1),this['_hand']!==null&&(this[g5(0x149)]['visible']=!0x1),this;}['update'](a4,a5,a6){const g6=d4;let a7=null,a8=null,a9=null,ab=this['_targetRay'],af=this['_grip'],ag=this[g6(0x149)];if(a4&&a5['session']['visibilityState']!=='visible-blurred'){if(ag&&a4['hand']){a9=!0x0;for(let aq of a4['hand']['values']()){let av=a5['getJointPose'](aq,a6),aw=this['_getHandJoint'](ag,aq);av!==null&&(aw['matrix']['fromArray'](av['transform']['matrix']),aw['matrix'][g6(0x26a)](aw['position'],aw['rotation'],aw['scale']),aw['matrixWorldNeedsUpdate']=!0x0,aw['jointRadius']=av['radius']),aw['visible']=av!==null;}let ah=ag['joints']['index-finger-tip'],aj=ag['joints']['thumb-tip'],ak=ah['position']['distanceTo'](aj['position']),am=0.02,ap=0.005;ag['inputState']['pinching']&&ak>am+ap?(ag['inputState']['pinching']=!0x1,this[g6(0x3de)]({'type':g6(0x38a),'handedness':a4['handedness'],'target':this})):!ag['inputState']['pinching']&&ak<=am-ap&&(ag[g6(0x379)]['pinching']=!0x0,this['dispatchEvent']({'type':g6(0x5c9),'handedness':a4['handedness'],'target':this}));}else af!==null&&a4['gripSpace']&&(a8=a5['getPose'](a4['gripSpace'],a6),a8!==null&&(af['matrix']['fromArray'](a8['transform']['matrix']),af['matrix']['decompose'](af['position'],af['rotation'],af['scale']),af[g6(0x153)]=!0x0,a8['linearVelocity']?(af['hasLinearVelocity']=!0x0,af['linearVelocity']['copy'](a8[g6(0x2b3)])):af[g6(0x152)]=!0x1,a8['angularVelocity']?(af['hasAngularVelocity']=!0x0,af['angularVelocity'][g6(0x647)](a8['angularVelocity'])):af['hasAngularVelocity']=!0x1,af['eventsEnabled']&&af['dispatchEvent']({'type':g6(0x61b),'data':a4,'target':this})));ab!==null&&(a7=a5['getPose'](a4['targetRaySpace'],a6),a7===null&&a8!==null&&(a7=a8),a7!==null&&(ab['matrix'][g6(0x3df)](a7['transform'][g6(0x3ed)]),ab['matrix']['decompose'](ab['position'],ab['rotation'],ab['scale']),ab['matrixWorldNeedsUpdate']=!0x0,a7[g6(0x2b3)]?(ab['hasLinearVelocity']=!0x0,ab['linearVelocity']['copy'](a7['linearVelocity'])):ab['hasLinearVelocity']=!0x1,a7['angularVelocity']?(ab['hasAngularVelocity']=!0x0,ab['angularVelocity']['copy'](a7['angularVelocity'])):ab['hasAngularVelocity']=!0x1,this['dispatchEvent'](Un)));}return ab!==null&&(ab['visible']=a7!==null),af!==null&&(af['visible']=a8!==null),ag!==null&&(ag['visible']=a9!==null),this;}['_getHandJoint'](a4,a5){const g7=d4;if(a4['joints'][a5['jointName']]===void 0x0){let a6=new Hn();a6[g7(0x3b4)]=!0x1,a6['visible']=!0x1,a4['joints'][a5['jointName']]=a6,a4['add'](a6);}return a4[g7(0x2d5)][a5['jointName']];}},Gn={'aliceblue':0xf0f8ff,'antiquewhite':0xfaebd7,'aqua':0xffff,'aquamarine':0x7fffd4,'azure':0xf0ffff,'beige':0xf5f5dc,'bisque':0xffe4c4,'black':0x0,'blanchedalmond':0xffebcd,'blue':0xff,'blueviolet':0x8a2be2,'brown':0xa52a2a,'burlywood':0xdeb887,'cadetblue':0x5f9ea0,'chartreuse':0x7fff00,'chocolate':0xd2691e,'coral':0xff7f50,'cornflowerblue':0x6495ed,'cornsilk':0xfff8dc,'crimson':0xdc143c,'cyan':0xffff,'darkblue':0x8b,'darkcyan':0x8b8b,'darkgoldenrod':0xb8860b,'darkgray':0xa9a9a9,'darkgreen':0x6400,'darkgrey':0xa9a9a9,'darkkhaki':0xbdb76b,'darkmagenta':0x8b008b,'darkolivegreen':0x556b2f,'darkorange':0xff8c00,'darkorchid':0x9932cc,'darkred':0x8b0000,'darksalmon':0xe9967a,'darkseagreen':0x8fbc8f,'darkslateblue':0x483d8b,'darkslategray':0x2f4f4f,'darkslategrey':0x2f4f4f,'darkturquoise':0xced1,'darkviolet':0x9400d3,'deeppink':0xff1493,'deepskyblue':0xbfff,'dimgray':0x696969,'dimgrey':0x696969,'dodgerblue':0x1e90ff,'firebrick':0xb22222,'floralwhite':0xfffaf0,'forestgreen':0x228b22,'fuchsia':0xff00ff,'gainsboro':0xdcdcdc,'ghostwhite':0xf8f8ff,'gold':0xffd700,'goldenrod':0xdaa520,'gray':0x808080,'green':0x8000,'greenyellow':0xadff2f,'grey':0x808080,'honeydew':0xf0fff0,'hotpink':0xff69b4,'indianred':0xcd5c5c,'indigo':0x4b0082,'ivory':0xfffff0,'khaki':0xf0e68c,'lavender':0xe6e6fa,'lavenderblush':0xfff0f5,'lawngreen':0x7cfc00,'lemonchiffon':0xfffacd,'lightblue':0xadd8e6,'lightcoral':0xf08080,'lightcyan':0xe0ffff,'lightgoldenrodyellow':0xfafad2,'lightgray':0xd3d3d3,'lightgreen':0x90ee90,'lightgrey':0xd3d3d3,'lightpink':0xffb6c1,'lightsalmon':0xffa07a,'lightseagreen':0x20b2aa,'lightskyblue':0x87cefa,'lightslategray':0x778899,'lightslategrey':0x778899,'lightsteelblue':0xb0c4de,'lightyellow':0xffffe0,'lime':0xff00,'limegreen':0x32cd32,'linen':0xfaf0e6,'magenta':0xff00ff,'maroon':0x800000,'mediumaquamarine':0x66cdaa,'mediumblue':0xcd,'mediumorchid':0xba55d3,'mediumpurple':0x9370db,'mediumseagreen':0x3cb371,'mediumslateblue':0x7b68ee,'mediumspringgreen':0xfa9a,'mediumturquoise':0x48d1cc,'mediumvioletred':0xc71585,'midnightblue':0x191970,'mintcream':0xf5fffa,'mistyrose':0xffe4e1,'moccasin':0xffe4b5,'navajowhite':0xffdead,'navy':0x80,'oldlace':0xfdf5e6,'olive':0x808000,'olivedrab':0x6b8e23,'orange':0xffa500,'orangered':0xff4500,'orchid':0xda70d6,'palegoldenrod':0xeee8aa,'palegreen':0x98fb98,'paleturquoise':0xafeeee,'palevioletred':0xdb7093,'papayawhip':0xffefd5,'peachpuff':0xffdab9,'peru':0xcd853f,'pink':0xffc0cb,'plum':0xdda0dd,'powderblue':0xb0e0e6,'purple':0x800080,'rebeccapurple':0x663399,'red':0xff0000,'rosybrown':0xbc8f8f,'royalblue':0x4169e1,'saddlebrown':0x8b4513,'salmon':0xfa8072,'sandybrown':0xf4a460,'seagreen':0x2e8b57,'seashell':0xfff5ee,'sienna':0xa0522d,'silver':0xc0c0c0,'skyblue':0x87ceeb,'slateblue':0x6a5acd,'slategray':0x708090,'slategrey':0x708090,'snow':0xfffafa,'springgreen':0xff7f,'steelblue':0x4682b4,'tan':0xd2b48c,'teal':0x8080,'thistle':0xd8bfd8,'tomato':0xff6347,'turquoise':0x40e0d0,'violet':0xee82ee,'wheat':0xf5deb3,'white':0xffffff,'whitesmoke':0xf5f5f5,'yellow':0xffff00,'yellowgreen':0x9acd32},Kn={'h':0x0,'s':0x0,'l':0x0},qn={'h':0x0,'s':0x0,'l':0x0};function Jn(a4,a5,a6){return a6<0x0&&(a6+=0x1),a6>0x1&&--a6,a6<0x1/0x6?a4+(a5-a4)*0x6*a6:a6<0x1/0x2?a5:a6<0x2/0x3?a4+(a5-a4)*0x6*(0x2/0x3-a6):a4;}var Y=class{constructor(a4,a5,a6){const g8=d4;return this['isColor']=!0x0,this['r']=0x1,this['g']=0x1,this['b']=0x1,this[g8(0x23a)](a4,a5,a6);}[d4(0x23a)](a4,a5,a6){const g9=d4;if(a5===void 0x0&&a6===void 0x0){let a7=a4;a7&&a7[g9(0x16d)]?this[g9(0x647)](a7):typeof a7=='number'?this['setHex'](a7):typeof a7=='string'&&this[g9(0x388)](a7);}else this['setRGB'](a4,a5,a6);return this;}['setScalar'](a4){return this['r']=a4,this['g']=a4,this['b']=a4,this;}[d4(0x1b0)](a4,a5=rt){return a4=Math['floor'](a4),this['r']=(a4>>0x10&0xff)/0xff,this['g']=(a4>>0x8&0xff)/0xff,this['b']=(a4&0xff)/0xff,K['colorSpaceToWorking'](this,a5),this;}[d4(0x420)](a4,a5,a6,a7=K[d4(0x5bf)]){return this['r']=a4,this['g']=a5,this['b']=a6,K['colorSpaceToWorking'](this,a7),this;}['setHSL'](a4,a5,a6,a7=K[d4(0x5bf)]){if(a4=Dt(a4,0x1),a5=V(a5,0x0,0x1),a6=V(a6,0x0,0x1),a5===0x0)this['r']=this['g']=this['b']=a6;else{let a8=a6<=0.5?a6*(0x1+a5):a6+a5-a6*a5,a9=0x2*a6-a8;this['r']=Jn(a9,a8,a4+0x1/0x3),this['g']=Jn(a9,a8,a4),this['b']=Jn(a9,a8,a4-0x1/0x3);}return K['colorSpaceToWorking'](this,a7),this;}['setStyle'](a4,a5=rt){const gf=d4;function a6(a8){const gb=a1;a8!==void 0x0&&parseFloat(a8)<0x1&&z(gb(0x562)+a4+'\x20will\x20be\x20ignored.');}let a7;if(a7=/^(\w+)\(([^\)]*)\)/['exec'](a4)){let a8,a9=a7[0x1],ab=a7[0x2];switch(a9){case'rgb':case'rgba':if(a8=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/['exec'](ab))return a6(a8[0x4]),this['setRGB'](Math['min'](0xff,parseInt(a8[0x1],0xa))/0xff,Math['min'](0xff,parseInt(a8[0x2],0xa))/0xff,Math['min'](0xff,parseInt(a8[0x3],0xa))/0xff,a5);if(a8=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/['exec'](ab))return a6(a8[0x4]),this['setRGB'](Math[gf(0x5cd)](0x64,parseInt(a8[0x1],0xa))/0x64,Math['min'](0x64,parseInt(a8[0x2],0xa))/0x64,Math['min'](0x64,parseInt(a8[0x3],0xa))/0x64,a5);break;case'hsl':case'hsla':if(a8=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/[gf(0x14a)](ab))return a6(a8[0x4]),this['setHSL'](parseFloat(a8[0x1])/0x168,parseFloat(a8[0x2])/0x64,parseFloat(a8[0x3])/0x64,a5);break;default:z('Color:\x20Unknown\x20color\x20model\x20'+a4);}}else{if(a7=/^\#([A-Fa-f\d]+)$/['exec'](a4)){let af=a7[0x1],ag=af[gf(0x3ac)];if(ag===0x3)return this[gf(0x420)](parseInt(af['charAt'](0x0),0x10)/0xf,parseInt(af[gf(0x5a7)](0x1),0x10)/0xf,parseInt(af['charAt'](0x2),0x10)/0xf,a5);if(ag===0x6)return this[gf(0x1b0)](parseInt(af,0x10),a5);z('Color:\x20Invalid\x20hex\x20color\x20'+a4);}else{if(a4&&a4['length']>0x0)return this['setColorName'](a4,a5);}}return this;}['setColorName'](a4,a5=rt){let a6=Gn[a4['toLowerCase']()];return a6===void 0x0?z('Color:\x20Unknown\x20color\x20'+a4):this['setHex'](a6,a5),this;}['clone'](){return new this['constructor'](this['r'],this['g'],this['b']);}['copy'](a4){return this['r']=a4['r'],this['g']=a4['g'],this['b']=a4['b'],this;}['copySRGBToLinear'](a4){return this['r']=en(a4['r']),this['g']=en(a4['g']),this['b']=en(a4['b']),this;}[d4(0x29b)](a4){return this['r']=tn(a4['r']),this['g']=tn(a4['g']),this['b']=tn(a4['b']),this;}['convertSRGBToLinear'](){return this['copySRGBToLinear'](this),this;}['convertLinearToSRGB'](){return this['copyLinearToSRGB'](this),this;}[d4(0x506)](a4=rt){const gg=d4;return K['workingToColorSpace'](Yn[gg(0x647)](this),a4),Math['round'](V(Yn['r']*0xff,0x0,0xff))*0x10000+Math['round'](V(Yn['g']*0xff,0x0,0xff))*0x100+Math['round'](V(Yn['b']*0xff,0x0,0xff));}['getHexString'](a4=rt){const gh=d4;return(gh(0x48a)+this['getHex'](a4)['toString'](0x10))['slice'](-0x6);}['getHSL'](a4,a5=K['workingColorSpace']){const gj=d4;K['workingToColorSpace'](Yn['copy'](this),a5);let a6=Yn['r'],a7=Yn['g'],a8=Yn['b'],a9=Math['max'](a6,a7,a8),ab=Math[gj(0x5cd)](a6,a7,a8),af,ag,ah=(ab+a9)/0x2;if(ab===a9)af=0x0,ag=0x0;else{let aj=a9-ab;switch(ag=ah<=0.5?aj/(a9+ab):aj/(0x2-a9-ab),a9){case a6:af=(a7-a8)/aj+(a7<a8?0x6:0x0);break;case a7:af=(a8-a6)/aj+0x2;break;case a8:af=(a6-a7)/aj+0x4;break;}af/=0x6;}return a4['h']=af,a4['s']=ag,a4['l']=ah,a4;}['getRGB'](a4,a5=K['workingColorSpace']){const gk=d4;return K['workingToColorSpace'](Yn[gk(0x647)](this),a5),a4['r']=Yn['r'],a4['g']=Yn['g'],a4['b']=Yn['b'],a4;}['getStyle'](a4=rt){const gm=d4;K['workingToColorSpace'](Yn[gm(0x647)](this),a4);let a5=Yn['r'],a6=Yn['g'],a7=Yn['b'];return a4===gm(0x38e)?'rgb('+Math[gm(0x346)](a5*0xff)+','+Math['round'](a6*0xff)+','+Math[gm(0x346)](a7*0xff)+')':'color('+a4+'\x20'+a5['toFixed'](0x3)+'\x20'+a6['toFixed'](0x3)+'\x20'+a7['toFixed'](0x3)+')';}[d4(0x605)](a4,a5,a6){const gp=d4;return this[gp(0x3c2)](Kn),this['setHSL'](Kn['h']+a4,Kn['s']+a5,Kn['l']+a6);}[d4(0x232)](a4){return this['r']+=a4['r'],this['g']+=a4['g'],this['b']+=a4['b'],this;}[d4(0x33a)](a4,a5){return this['r']=a4['r']+a5['r'],this['g']=a4['g']+a5['g'],this['b']=a4['b']+a5['b'],this;}['addScalar'](a4){return this['r']+=a4,this['g']+=a4,this['b']+=a4,this;}['sub'](a4){return this['r']=Math['max'](0x0,this['r']-a4['r']),this['g']=Math['max'](0x0,this['g']-a4['g']),this['b']=Math['max'](0x0,this['b']-a4['b']),this;}['multiply'](a4){return this['r']*=a4['r'],this['g']*=a4['g'],this['b']*=a4['b'],this;}['multiplyScalar'](a4){return this['r']*=a4,this['g']*=a4,this['b']*=a4,this;}['lerp'](a4,a5){return this['r']+=(a4['r']-this['r'])*a5,this['g']+=(a4['g']-this['g'])*a5,this['b']+=(a4['b']-this['b'])*a5,this;}['lerpColors'](a4,a5,a6){return this['r']=a4['r']+(a5['r']-a4['r'])*a6,this['g']=a4['g']+(a5['g']-a4['g'])*a6,this['b']=a4['b']+(a5['b']-a4['b'])*a6,this;}['lerpHSL'](a4,a5){this['getHSL'](Kn),a4['getHSL'](qn);let a6=At(Kn['h'],qn['h'],a5),a7=At(Kn['s'],qn['s'],a5),a8=At(Kn['l'],qn['l'],a5);return this['setHSL'](a6,a7,a8),this;}['setFromVector3'](a4){return this['r']=a4['x'],this['g']=a4['y'],this['b']=a4['z'],this;}['applyMatrix3'](a4){let a5=this['r'],a6=this['g'],a7=this['b'],a8=a4['elements'];return this['r']=a8[0x0]*a5+a8[0x3]*a6+a8[0x6]*a7,this['g']=a8[0x1]*a5+a8[0x4]*a6+a8[0x7]*a7,this['b']=a8[0x2]*a5+a8[0x5]*a6+a8[0x8]*a7,this;}[d4(0x5b9)](a4){return a4['r']===this['r']&&a4['g']===this['g']&&a4['b']===this['b'];}['fromArray'](a4,a5=0x0){return this['r']=a4[a5],this['g']=a4[a5+0x1],this['b']=a4[a5+0x2],this;}['toArray'](a4=[],a5=0x0){return a4[a5]=this['r'],a4[a5+0x1]=this['g'],a4[a5+0x2]=this['b'],a4;}[d4(0x2ba)](a4,a5){const gq=d4;return this['r']=a4['getX'](a5),this['g']=a4['getY'](a5),this['b']=a4[gq(0x42d)](a5),this;}[d4(0x1bb)](){const gv=d4;return this[gv(0x506)]();}*[Symbol[d4(0x500)]](){yield this['r'],yield this['g'],yield this['b'];}},Yn=new Y();Y['NAMES']=Gn;var Xn=class extends Vn{constructor(){const gw=d4;super(),this['isScene']=!0x0,this[gw(0x3e0)]='Scene',this[gw(0x4eb)]=null,this['environment']=null,this[gw(0x5b2)]=null,this['backgroundBlurriness']=0x0,this['backgroundIntensity']=0x1,this['backgroundRotation']=new wn(),this[gw(0x612)]=0x1,this['environmentRotation']=new wn(),this['overrideMaterial']=null,typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__[gw(0x3de)](new CustomEvent(gw(0x466),{'detail':this}));}['copy'](a4,a5){const gx=d4;return super[gx(0x647)](a4,a5),a4['background']!==null&&(this[gx(0x4eb)]=a4['background']['clone']()),a4['environment']!==null&&(this[gx(0x628)]=a4['environment']['clone']()),a4['fog']!==null&&(this['fog']=a4[gx(0x5b2)]['clone']()),this[gx(0x61c)]=a4['backgroundBlurriness'],this['backgroundIntensity']=a4['backgroundIntensity'],this[gx(0x266)]['copy'](a4[gx(0x266)]),this[gx(0x612)]=a4['environmentIntensity'],this['environmentRotation'][gx(0x647)](a4['environmentRotation']),a4['overrideMaterial']!==null&&(this['overrideMaterial']=a4['overrideMaterial']['clone']()),this['matrixAutoUpdate']=a4['matrixAutoUpdate'],this;}['toJSON'](a4){const gy=d4;let a5=super[gy(0x1bb)](a4);return this['fog']!==null&&(a5['object'][gy(0x5b2)]=this['fog']['toJSON']()),this['backgroundBlurriness']>0x0&&(a5['object']['backgroundBlurriness']=this[gy(0x61c)]),this['backgroundIntensity']!==0x1&&(a5['object']['backgroundIntensity']=this['backgroundIntensity']),a5['object']['backgroundRotation']=this['backgroundRotation']['toArray'](),this[gy(0x612)]!==0x1&&(a5['object'][gy(0x612)]=this[gy(0x612)]),a5['object']['environmentRotation']=this['environmentRotation']['toArray'](),a5;}},Zn=new W(),Qn=new W(),$n=new W(),er=new W(),tr=new W(),nr=new W(),rr=new W(),ir=new W(),ar=new W(),or=new W(),sr=new q(),cr=new q(),lr=new q(),ur=class e{constructor(a4=new W(),a5=new W(),a6=new W()){this['a']=a4,this['b']=a5,this['c']=a6;}static['getNormal'](a4,a5,a6,a7){a7['subVectors'](a6,a5),Zn['subVectors'](a4,a5),a7['cross'](Zn);let a8=a7['lengthSq']();return a8>0x0?a7['multiplyScalar'](0x1/Math['sqrt'](a8)):a7['set'](0x0,0x0,0x0);}static[d4(0x5aa)](a4,a5,a6,a7,a8){const gz=d4;Zn['subVectors'](a7,a5),Qn['subVectors'](a6,a5),$n[gz(0x618)](a4,a5);let a9=Zn['dot'](Zn),ab=Zn[gz(0x4ba)](Qn),af=Zn['dot']($n),ag=Qn['dot'](Qn),ah=Qn['dot']($n),aj=a9*ag-ab*ab;if(aj===0x0)return a8['set'](0x0,0x0,0x0),null;let ak=0x1/aj,am=(ag*af-ab*ah)*ak,ap=(a9*ah-ab*af)*ak;return a8[gz(0x23a)](0x1-am-ap,ap,am);}static[d4(0x502)](a4,a5,a6,a7){return this['getBarycoord'](a4,a5,a6,a7,er)===null?!0x1:er['x']>=0x0&&er['y']>=0x0&&er['x']+er['y']<=0x1;}static['getInterpolation'](a4,a5,a6,a7,a8,a9,ab,af){const gA=d4;return this['getBarycoord'](a4,a5,a6,a7,er)===null?(af['x']=0x0,af['y']=0x0,'z'in af&&(af['z']=0x0),'w'in af&&(af['w']=0x0),null):(af[gA(0x5f1)](0x0),af['addScaledVector'](a8,er['x']),af['addScaledVector'](a9,er['y']),af[gA(0x558)](ab,er['z']),af);}static['getInterpolatedAttribute'](a4,a5,a6,a7,a8,a9){const gB=d4;return sr[gB(0x5f1)](0x0),cr[gB(0x5f1)](0x0),lr['setScalar'](0x0),sr['fromBufferAttribute'](a4,a5),cr['fromBufferAttribute'](a4,a6),lr['fromBufferAttribute'](a4,a7),a9['setScalar'](0x0),a9['addScaledVector'](sr,a8['x']),a9[gB(0x558)](cr,a8['y']),a9['addScaledVector'](lr,a8['z']),a9;}static['isFrontFacing'](a4,a5,a6,a7){return Zn['subVectors'](a6,a5),Qn['subVectors'](a4,a5),Zn['cross'](Qn)['dot'](a7)<0x0;}['set'](a4,a5,a6){return this['a']['copy'](a4),this['b']['copy'](a5),this['c']['copy'](a6),this;}['setFromPointsAndIndices'](a4,a5,a6,a7){const gC=d4;return this['a'][gC(0x647)](a4[a5]),this['b'][gC(0x647)](a4[a6]),this['c']['copy'](a4[a7]),this;}['setFromAttributeAndIndices'](a4,a5,a6,a7){return this['a']['fromBufferAttribute'](a4,a5),this['b']['fromBufferAttribute'](a4,a6),this['c']['fromBufferAttribute'](a4,a7),this;}['clone'](){return new this['constructor']()['copy'](this);}['copy'](a4){const gD=d4;return this['a']['copy'](a4['a']),this['b']['copy'](a4['b']),this['c'][gD(0x647)](a4['c']),this;}['getArea'](){const gE=d4;return Zn['subVectors'](this['c'],this['b']),Qn['subVectors'](this['a'],this['b']),Zn[gE(0x1ee)](Qn)[gE(0x3ac)]()*0.5;}['getMidpoint'](a4){return a4['addVectors'](this['a'],this['b'])['add'](this['c'])['multiplyScalar'](0x1/0x3);}['getNormal'](a4){return e['getNormal'](this['a'],this['b'],this['c'],a4);}['getPlane'](a4){return a4['setFromCoplanarPoints'](this['a'],this['b'],this['c']);}['getBarycoord'](a4,a5){return e['getBarycoord'](a4,this['a'],this['b'],this['c'],a5);}[d4(0x14f)](a4,a5,a6,a7,a8){return e['getInterpolation'](a4,this['a'],this['b'],this['c'],a5,a6,a7,a8);}[d4(0x502)](a4){return e['containsPoint'](a4,this['a'],this['b'],this['c']);}['isFrontFacing'](a4){return e['isFrontFacing'](this['a'],this['b'],this['c'],a4);}['intersectsBox'](a4){const gF=d4;return a4[gF(0x23f)](this);}[d4(0x321)](a4,a5){const gG=d4;let a6=this['a'],a7=this['b'],a8=this['c'],a9,ab;tr['subVectors'](a7,a6),nr['subVectors'](a8,a6),ir['subVectors'](a4,a6);let af=tr['dot'](ir),ag=nr['dot'](ir);if(af<=0x0&&ag<=0x0)return a5['copy'](a6);ar[gG(0x618)](a4,a7);let ah=tr['dot'](ar),aj=nr['dot'](ar);if(ah>=0x0&&aj<=ah)return a5['copy'](a7);let ak=af*aj-ah*ag;if(ak<=0x0&&af>=0x0&&ah<=0x0)return a9=af/(af-ah),a5['copy'](a6)['addScaledVector'](tr,a9);or['subVectors'](a4,a8);let am=tr[gG(0x4ba)](or),ap=nr['dot'](or);if(ap>=0x0&&am<=ap)return a5['copy'](a8);let aq=am*ag-af*ap;if(aq<=0x0&&ag>=0x0&&ap<=0x0)return ab=ag/(ag-ap),a5['copy'](a6)['addScaledVector'](nr,ab);let av=ah*ap-am*aj;if(av<=0x0&&aj-ah>=0x0&&am-ap>=0x0)return rr['subVectors'](a8,a7),ab=(aj-ah)/(aj-ah+(am-ap)),a5['copy'](a7)['addScaledVector'](rr,ab);let aw=0x1/(av+aq+ak);return a9=aq*aw,ab=ak*aw,a5['copy'](a6)['addScaledVector'](tr,a9)['addScaledVector'](nr,ab);}['equals'](a4){return a4['a']['equals'](this['a'])&&a4['b']['equals'](this['b'])&&a4['c']['equals'](this['c']);}},dr=class{constructor(a4=new W(Infinity,Infinity,Infinity),a5=new W(-Infinity,-Infinity,-Infinity)){this['isBox3']=!0x0,this['min']=a4,this['max']=a5;}['set'](a4,a5){const gH=d4;return this[gH(0x5cd)]['copy'](a4),this['max']['copy'](a5),this;}['setFromArray'](a4){const gI=d4;this['makeEmpty']();for(let a5=0x0,a6=a4['length'];a5<a6;a5+=0x3)this['expandByPoint'](pr[gI(0x3df)](a4,a5));return this;}['setFromBufferAttribute'](a4){const gJ=d4;this[gJ(0x42c)]();for(let a5=0x0,a6=a4['count'];a5<a6;a5++)this['expandByPoint'](pr['fromBufferAttribute'](a4,a5));return this;}['setFromPoints'](a4){const gK=d4;this['makeEmpty']();for(let a5=0x0,a6=a4[gK(0x3ac)];a5<a6;a5++)this['expandByPoint'](a4[a5]);return this;}['setFromCenterAndSize'](a4,a5){const gL=d4;let a6=pr['copy'](a5)[gL(0x4d9)](0.5);return this[gL(0x5cd)]['copy'](a4)['sub'](a6),this['max'][gL(0x647)](a4)['add'](a6),this;}['setFromObject'](a4,a5=!0x1){return this['makeEmpty'](),this['expandByObject'](a4,a5);}['clone'](){const gM=d4;return new this['constructor']()[gM(0x647)](this);}['copy'](a4){const gN=d4;return this['min']['copy'](a4['min']),this['max'][gN(0x647)](a4['max']),this;}['makeEmpty'](){const gO=d4;return this[gO(0x5cd)]['x']=this['min']['y']=this['min']['z']=Infinity,this['max']['x']=this['max']['y']=this['max']['z']=-Infinity,this;}[d4(0x3aa)](){const gP=d4;return this['max']['x']<this['min']['x']||this[gP(0x4dd)]['y']<this['min']['y']||this['max']['z']<this['min']['z'];}['getCenter'](a4){const gQ=d4;return this['isEmpty']()?a4['set'](0x0,0x0,0x0):a4['addVectors'](this['min'],this['max'])[gQ(0x4d9)](0.5);}['getSize'](a4){const gR=d4;return this[gR(0x3aa)]()?a4[gR(0x23a)](0x0,0x0,0x0):a4['subVectors'](this['max'],this['min']);}['expandByPoint'](a4){const gS=d4;return this[gS(0x5cd)][gS(0x5cd)](a4),this['max']['max'](a4),this;}['expandByVector'](a4){const gT=d4;return this[gT(0x5cd)]['sub'](a4),this[gT(0x4dd)]['add'](a4),this;}['expandByScalar'](a4){return this['min']['addScalar'](-a4),this['max']['addScalar'](a4),this;}['expandByObject'](a4,a5=!0x1){const gU=d4;a4['updateWorldMatrix'](!0x1,!0x1);let a6=a4['geometry'];if(a6!==void 0x0){let a8=a6['getAttribute'](gU(0x4ed));if(a5===!0x0&&a8!==void 0x0&&a4['isInstancedMesh']!==!0x0){for(let a9=0x0,ab=a8[gU(0x218)];a9<ab;a9++)a4['isMesh']===!0x0?a4['getVertexPosition'](a9,pr):pr['fromBufferAttribute'](a8,a9),pr['applyMatrix4'](a4['matrixWorld']),this['expandByPoint'](pr);}else a4[gU(0x4c6)]===void 0x0?(a6['boundingBox']===null&&a6['computeBoundingBox'](),mr['copy'](a6['boundingBox'])):(a4['boundingBox']===null&&a4['computeBoundingBox'](),mr[gU(0x647)](a4['boundingBox'])),mr['applyMatrix4'](a4['matrixWorld']),this[gU(0x63a)](mr);}let a7=a4['children'];for(let af=0x0,ag=a7['length'];af<ag;af++)this['expandByObject'](a7[af],a5);return this;}[d4(0x502)](a4){return a4['x']>=this['min']['x']&&a4['x']<=this['max']['x']&&a4['y']>=this['min']['y']&&a4['y']<=this['max']['y']&&a4['z']>=this['min']['z']&&a4['z']<=this['max']['z'];}[d4(0x511)](a4){const gV=d4;return this['min']['x']<=a4[gV(0x5cd)]['x']&&a4['max']['x']<=this['max']['x']&&this['min']['y']<=a4['min']['y']&&a4['max']['y']<=this['max']['y']&&this[gV(0x5cd)]['z']<=a4['min']['z']&&a4['max']['z']<=this['max']['z'];}[d4(0x2d0)](a4,a5){const gW=d4;return a5[gW(0x23a)]((a4['x']-this['min']['x'])/(this['max']['x']-this['min']['x']),(a4['y']-this['min']['y'])/(this['max']['y']-this['min']['y']),(a4['z']-this['min']['z'])/(this['max']['z']-this['min']['z']));}[d4(0x222)](a4){const gX=d4;return a4[gX(0x4dd)]['x']>=this['min']['x']&&a4[gX(0x5cd)]['x']<=this['max']['x']&&a4['max']['y']>=this[gX(0x5cd)]['y']&&a4['min']['y']<=this['max']['y']&&a4['max']['z']>=this['min']['z']&&a4['min']['z']<=this[gX(0x4dd)]['z'];}['intersectsSphere'](a4){const gY=d4;return this['clampPoint'](a4['center'],pr),pr['distanceToSquared'](a4['center'])<=a4['radius']*a4[gY(0x263)];}[d4(0x1cc)](a4){const gZ=d4;let a5,a6;return a4['normal']['x']>0x0?(a5=a4['normal']['x']*this['min']['x'],a6=a4['normal']['x']*this['max']['x']):(a5=a4['normal']['x']*this['max']['x'],a6=a4['normal']['x']*this['min']['x']),a4[gZ(0x171)]['y']>0x0?(a5+=a4['normal']['y']*this['min']['y'],a6+=a4['normal']['y']*this[gZ(0x4dd)]['y']):(a5+=a4['normal']['y']*this['max']['y'],a6+=a4['normal']['y']*this['min']['y']),a4['normal']['z']>0x0?(a5+=a4['normal']['z']*this['min']['z'],a6+=a4[gZ(0x171)]['z']*this['max']['z']):(a5+=a4[gZ(0x171)]['z']*this['max']['z'],a6+=a4['normal']['z']*this['min']['z']),a5<=-a4['constant']&&a6>=-a4['constant'];}['intersectsTriangle'](a4){const h0=d4;if(this['isEmpty']())return!0x1;this['getCenter'](xr),Sr['subVectors'](this['max'],xr),hr['subVectors'](a4['a'],xr),gr['subVectors'](a4['b'],xr),_r['subVectors'](a4['c'],xr),vr['subVectors'](gr,hr),yr[h0(0x618)](_r,gr),br['subVectors'](hr,_r);let a5=[0x0,-vr['z'],vr['y'],0x0,-yr['z'],yr['y'],0x0,-br['z'],br['y'],vr['z'],0x0,-vr['x'],yr['z'],0x0,-yr['x'],br['z'],0x0,-br['x'],-vr['y'],vr['x'],0x0,-yr['y'],yr['x'],0x0,-br['y'],br['x'],0x0];return!Tr(a5,hr,gr,_r,Sr)||(a5=[0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1],!Tr(a5,hr,gr,_r,Sr))?!0x1:(Cr['crossVectors'](vr,yr),a5=[Cr['x'],Cr['y'],Cr['z']],Tr(a5,hr,gr,_r,Sr));}['clampPoint'](a4,a5){const h1=d4;return a5['copy'](a4)[h1(0x3c9)](this['min'],this['max']);}[d4(0x1a2)](a4){const h2=d4;return this[h2(0x598)](a4,pr)['distanceTo'](a4);}['getBoundingSphere'](a4){const h3=d4;return this['isEmpty']()?a4[h3(0x42c)]():(this['getCenter'](a4['center']),a4['radius']=this['getSize'](pr)['length']()*0.5),a4;}[d4(0x3ce)](a4){const h4=d4;return this['min']['max'](a4['min']),this['max'][h4(0x5cd)](a4['max']),this['isEmpty']()&&this['makeEmpty'](),this;}['union'](a4){const h5=d4;return this['min']['min'](a4['min']),this['max'][h5(0x4dd)](a4['max']),this;}['applyMatrix4'](a4){const h6=d4;return this[h6(0x3aa)]()?this:(fr[0x0]['set'](this['min']['x'],this['min']['y'],this['min']['z'])['applyMatrix4'](a4),fr[0x1][h6(0x23a)](this['min']['x'],this['min']['y'],this[h6(0x4dd)]['z'])[h6(0x421)](a4),fr[0x2]['set'](this['min']['x'],this['max']['y'],this['min']['z'])[h6(0x421)](a4),fr[0x3]['set'](this['min']['x'],this['max']['y'],this['max']['z'])['applyMatrix4'](a4),fr[0x4][h6(0x23a)](this['max']['x'],this[h6(0x5cd)]['y'],this[h6(0x5cd)]['z'])['applyMatrix4'](a4),fr[0x5]['set'](this['max']['x'],this['min']['y'],this['max']['z'])[h6(0x421)](a4),fr[0x6]['set'](this['max']['x'],this['max']['y'],this['min']['z'])['applyMatrix4'](a4),fr[0x7]['set'](this['max']['x'],this['max']['y'],this[h6(0x4dd)]['z'])[h6(0x421)](a4),this['setFromPoints'](fr),this);}['translate'](a4){return this['min']['add'](a4),this['max']['add'](a4),this;}['equals'](a4){const h7=d4;return a4['min'][h7(0x5b9)](this['min'])&&a4['max']['equals'](this['max']);}['toJSON'](){return{'min':this['min']['toArray'](),'max':this['max']['toArray']()};}['fromJSON'](a4){return this['min']['fromArray'](a4['min']),this['max']['fromArray'](a4['max']),this;}},fr=[new W(),new W(),new W(),new W(),new W(),new W(),new W(),new W()],pr=new W(),mr=new dr(),hr=new W(),gr=new W(),_r=new W(),vr=new W(),yr=new W(),br=new W(),xr=new W(),Sr=new W(),Cr=new W(),wr=new W();function Tr(a4,a5,a6,a7,a8){const h8=d4;for(let a9=0x0,ab=a4['length']-0x3;a9<=ab;a9+=0x3){wr['fromArray'](a4,a9);let af=a8['x']*Math['abs'](wr['x'])+a8['y']*Math['abs'](wr['y'])+a8['z']*Math['abs'](wr['z']),ag=a5['dot'](wr),ah=a6['dot'](wr),aj=a7[h8(0x4ba)](wr);if(Math['max'](-Math['max'](ag,ah,aj),Math[h8(0x5cd)](ag,ah,aj))>af)return!0x1;}return!0x0;}var Er=new W(),Dr=new U(),Or=0x0,kr=class extends xt{constructor(a4,a5,a6=!0x1){const h9=d4;if(super(),Array['isArray'](a4))throw TypeError('THREE.BufferAttribute:\x20array\x20should\x20be\x20a\x20Typed\x20Array.');this['isBufferAttribute']=!0x0,Object['defineProperty'](this,'id',{'value':Or++}),this['name']='',this['array']=a4,this[h9(0x55e)]=a5,this['count']=a4===void 0x0?0x0:a4['length']/a5,this[h9(0x20f)]=a6,this[h9(0x17d)]=ct,this['updateRanges']=[],this['gpuType']=A,this[h9(0x584)]=0x0;}['onUploadCallback'](){}set[d4(0x55b)](a4){a4===!0x0&&this['version']++;}['setUsage'](a4){return this['usage']=a4,this;}[d4(0x2cf)](a4,a5){this['updateRanges']['push']({'start':a4,'count':a5});}['clearUpdateRanges'](){const hb=d4;this[hb(0x36b)][hb(0x3ac)]=0x0;}['copy'](a4){const hf=d4;return this[hf(0x3bd)]=a4['name'],this[hf(0x5a4)]=new a4['array']['constructor'](a4['array']),this['itemSize']=a4['itemSize'],this[hf(0x218)]=a4[hf(0x218)],this['normalized']=a4['normalized'],this['usage']=a4['usage'],this[hf(0x2f3)]=a4['gpuType'],this;}['copyAt'](a4,a5,a6){const hg=d4;a4*=this['itemSize'],a6*=a5['itemSize'];for(let a7=0x0,a8=this['itemSize'];a7<a8;a7++)this['array'][a4+a7]=a5[hg(0x5a4)][a6+a7];return this;}['copyArray'](a4){return this['array']['set'](a4),this;}['applyMatrix3'](a4){const hh=d4;if(this['itemSize']===0x2){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Dr['fromBufferAttribute'](this,a5),Dr['applyMatrix3'](a4),this[hh(0x26e)](a5,Dr['x'],Dr['y']);}else{if(this['itemSize']===0x3){for(let a7=0x0,a8=this['count'];a7<a8;a7++)Er['fromBufferAttribute'](this,a7),Er['applyMatrix3'](a4),this[hh(0x38b)](a7,Er['x'],Er['y'],Er['z']);}}return this;}['applyMatrix4'](a4){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Er['fromBufferAttribute'](this,a5),Er['applyMatrix4'](a4),this['setXYZ'](a5,Er['x'],Er['y'],Er['z']);return this;}['applyNormalMatrix'](a4){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Er['fromBufferAttribute'](this,a5),Er['applyNormalMatrix'](a4),this['setXYZ'](a5,Er['x'],Er['y'],Er['z']);return this;}['transformDirection'](a4){const hj=d4;for(let a5=0x0,a6=this[hj(0x218)];a5<a6;a5++)Er['fromBufferAttribute'](this,a5),Er['transformDirection'](a4),this['setXYZ'](a5,Er['x'],Er['y'],Er['z']);return this;}['set'](a4,a5=0x0){return this['array']['set'](a4,a5),this;}['getComponent'](a4,a5){const hk=d4;let a6=this[hk(0x5a4)][a4*this['itemSize']+a5];return this['normalized']&&(a6=Gt(a6,this[hk(0x5a4)])),a6;}['setComponent'](a4,a5,a6){const hm=d4;return this[hm(0x20f)]&&(a6=H(a6,this[hm(0x5a4)])),this[hm(0x5a4)][a4*this['itemSize']+a5]=a6,this;}[d4(0x5c8)](a4){const hp=d4;let a5=this['array'][a4*this['itemSize']];return this[hp(0x20f)]&&(a5=Gt(a5,this['array'])),a5;}['setX'](a4,a5){const hq=d4;return this['normalized']&&(a5=H(a5,this[hq(0x5a4)])),this[hq(0x5a4)][a4*this['itemSize']]=a5,this;}['getY'](a4){const hv=d4;let a5=this['array'][a4*this['itemSize']+0x1];return this['normalized']&&(a5=Gt(a5,this[hv(0x5a4)])),a5;}['setY'](a4,a5){const hw=d4;return this['normalized']&&(a5=H(a5,this['array'])),this['array'][a4*this[hw(0x55e)]+0x1]=a5,this;}['getZ'](a4){let a5=this['array'][a4*this['itemSize']+0x2];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}[d4(0x610)](a4,a5){const hx=d4;return this[hx(0x20f)]&&(a5=H(a5,this[hx(0x5a4)])),this['array'][a4*this['itemSize']+0x2]=a5,this;}['getW'](a4){const hy=d4;let a5=this['array'][a4*this['itemSize']+0x3];return this[hy(0x20f)]&&(a5=Gt(a5,this[hy(0x5a4)])),a5;}['setW'](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['array'][a4*this['itemSize']+0x3]=a5,this;}[d4(0x26e)](a4,a5,a6){return a4*=this['itemSize'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this['array'])),this['array'][a4+0x0]=a5,this['array'][a4+0x1]=a6,this;}['setXYZ'](a4,a5,a6,a7){const hz=d4;return a4*=this['itemSize'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this['array']),a7=H(a7,this['array'])),this[hz(0x5a4)][a4+0x0]=a5,this['array'][a4+0x1]=a6,this['array'][a4+0x2]=a7,this;}['setXYZW'](a4,a5,a6,a7,a8){const hA=d4;return a4*=this['itemSize'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this['array']),a7=H(a7,this['array']),a8=H(a8,this[hA(0x5a4)])),this['array'][a4+0x0]=a5,this[hA(0x5a4)][a4+0x1]=a6,this['array'][a4+0x2]=a7,this['array'][a4+0x3]=a8,this;}['onUpload'](a4){return this['onUploadCallback']=a4,this;}[d4(0x2d8)](){return new this['constructor'](this['array'],this['itemSize'])['copy'](this);}['toJSON'](){const hB=d4;let a4={'itemSize':this['itemSize'],'type':this['array']['constructor']['name'],'array':Array[hB(0x3ba)](this['array']),'normalized':this['normalized']};return this['name']!==''&&(a4[hB(0x3bd)]=this['name']),this[hB(0x17d)]!==0x88e4&&(a4['usage']=this['usage']),a4;}['dispose'](){const hC=d4;this['dispatchEvent']({'type':hC(0x565)});}},Ar=class extends kr{constructor(a4,a5,a6){super(new Uint16Array(a4),a5,a6);}},jr=class extends kr{constructor(a4,a5,a6){super(new Int32Array(a4),a5,a6);}},Mr=class extends kr{constructor(a4,a5,a6){super(new Uint32Array(a4),a5,a6);}},X=class extends kr{constructor(a4,a5,a6){super(new Float32Array(a4),a5,a6);}},Nr=new dr(),Pr=new W(),Fr=new W(),Ir=class{constructor(a4=new W(),a5=-0x1){this['isSphere']=!0x0,this['center']=a4,this['radius']=a5;}['set'](a4,a5){const hD=d4;return this['center'][hD(0x647)](a4),this[hD(0x263)]=a5,this;}['setFromPoints'](a4,a5){const hE=d4;let a6=this['center'];a5===void 0x0?Nr[hE(0x38c)](a4)[hE(0x25d)](a6):a6[hE(0x647)](a5);let a7=0x0;for(let a8=0x0,a9=a4['length'];a8<a9;a8++)a7=Math['max'](a7,a6['distanceToSquared'](a4[a8]));return this['radius']=Math['sqrt'](a7),this;}['copy'](a4){return this['center']['copy'](a4['center']),this['radius']=a4['radius'],this;}['isEmpty'](){return this['radius']<0x0;}['makeEmpty'](){const hF=d4;return this['center'][hF(0x23a)](0x0,0x0,0x0),this[hF(0x263)]=-0x1,this;}['containsPoint'](a4){const hG=d4;return a4['distanceToSquared'](this[hG(0x39c)])<=this['radius']*this[hG(0x263)];}['distanceToPoint'](a4){return a4['distanceTo'](this['center'])-this['radius'];}['intersectsSphere'](a4){let a5=this['radius']+a4['radius'];return a4['center']['distanceToSquared'](this['center'])<=a5*a5;}['intersectsBox'](a4){return a4['intersectsSphere'](this);}['intersectsPlane'](a4){return Math['abs'](a4['distanceToPoint'](this['center']))<=this['radius'];}[d4(0x598)](a4,a5){const hH=d4;let a6=this['center']['distanceToSquared'](a4);return a5['copy'](a4),a6>this[hH(0x263)]*this['radius']&&(a5['sub'](this['center'])['normalize'](),a5['multiplyScalar'](this['radius'])['add'](this['center'])),a5;}['getBoundingBox'](a4){const hI=d4;return this['isEmpty']()?(a4['makeEmpty'](),a4):(a4['set'](this['center'],this['center']),a4['expandByScalar'](this[hI(0x263)]),a4);}['applyMatrix4'](a4){return this['center']['applyMatrix4'](a4),this['radius']*=a4['getMaxScaleOnAxis'](),this;}[d4(0x35f)](a4){const hJ=d4;return this['center'][hJ(0x232)](a4),this;}['expandByPoint'](a4){const hK=d4;if(this[hK(0x3aa)]())return this['center']['copy'](a4),this['radius']=0x0,this;Pr['subVectors'](a4,this[hK(0x39c)]);let a5=Pr[hK(0x170)]();if(a5>this['radius']*this['radius']){let a6=Math['sqrt'](a5),a7=(a6-this[hK(0x263)])*0.5;this['center']['addScaledVector'](Pr,a7/a6),this['radius']+=a7;}return this;}['union'](a4){const hL=d4;return a4['isEmpty']()?this:this['isEmpty']()?(this['copy'](a4),this):(this['center'][hL(0x5b9)](a4['center'])===!0x0?this[hL(0x263)]=Math['max'](this[hL(0x263)],a4['radius']):(Fr['subVectors'](a4[hL(0x39c)],this['center'])['setLength'](a4['radius']),this['expandByPoint'](Pr['copy'](a4['center'])['add'](Fr)),this[hL(0x4e1)](Pr['copy'](a4['center'])['sub'](Fr))),this);}[d4(0x5b9)](a4){const hM=d4;return a4[hM(0x39c)]['equals'](this['center'])&&a4['radius']===this[hM(0x263)];}[d4(0x2d8)](){const hN=d4;return new this['constructor']()[hN(0x647)](this);}['toJSON'](){return{'radius':this['radius'],'center':this['center']['toArray']()};}['fromJSON'](a4){const hO=d4;return this['radius']=a4[hO(0x263)],this['center']['fromArray'](a4['center']),this;}},Lr=0x0,Rr=new J(),zr=new Vn(),Br=new W(),Vr=new dr(),Hr=new dr(),Ur=new W(),Wr=class e extends xt{constructor(){const hP=d4;super(),this[hP(0x270)]=!0x0,Object['defineProperty'](this,'id',{'value':Lr++}),this['uuid']=Et(),this['name']='',this['type']='BufferGeometry',this['index']=null,this[hP(0x639)]=null,this[hP(0x2a3)]=0x0,this['attributes']={},this['morphAttributes']={},this['morphTargetsRelative']=!0x1,this['groups']=[],this['boundingBox']=null,this['boundingSphere']=null,this['drawRange']={'start':0x0,'count':Infinity},this[hP(0x14c)]={};}['getIndex'](){return this['index'];}[d4(0x347)](a4){const hQ=d4;return Array[hQ(0x571)](a4)?this['index']=new((ut(a4))?Mr:Ar)(a4,0x1):this[hQ(0x434)]=a4,this;}[d4(0x204)](a4,a5=0x0){return this['indirect']=a4,this['indirectOffset']=a5,this;}[d4(0x193)](){return this['indirect'];}['getAttribute'](a4){const hR=d4;return this[hR(0x1b6)][a4];}['setAttribute'](a4,a5){const hS=d4;return this[hS(0x1b6)][a4]=a5,this;}['deleteAttribute'](a4){const hT=d4;return delete this[hT(0x1b6)][a4],this;}['hasAttribute'](a4){const hU=d4;return this[hU(0x1b6)][a4]!==void 0x0;}[d4(0x3d5)](a4,a5,a6=0x0){const hV=d4;this[hV(0x256)]['push']({'start':a4,'count':a5,'materialIndex':a6});}[d4(0x5f0)](){this['groups']=[];}[d4(0x32b)](a4,a5){this['drawRange']['start']=a4,this['drawRange']['count']=a5;}['applyMatrix4'](a4){const hW=d4;let a5=this['attributes']['position'];a5!==void 0x0&&(a5['applyMatrix4'](a4),a5[hW(0x55b)]=!0x0);let a6=this['attributes']['normal'];if(a6!==void 0x0){let a8=new G()['getNormalMatrix'](a4);a6['applyNormalMatrix'](a8),a6['needsUpdate']=!0x0;}let a7=this['attributes']['tangent'];return a7!==void 0x0&&(a7['transformDirection'](a4),a7['needsUpdate']=!0x0),this['boundingBox']!==null&&this['computeBoundingBox'](),this['boundingSphere']!==null&&this['computeBoundingSphere'](),this;}['applyQuaternion'](a4){return Rr['makeRotationFromQuaternion'](a4),this['applyMatrix4'](Rr),this;}['rotateX'](a4){const hX=d4;return Rr['makeRotationX'](a4),this[hX(0x421)](Rr),this;}['rotateY'](a4){return Rr['makeRotationY'](a4),this['applyMatrix4'](Rr),this;}['rotateZ'](a4){const hY=d4;return Rr[hY(0x617)](a4),this[hY(0x421)](Rr),this;}['translate'](a4,a5,a6){return Rr['makeTranslation'](a4,a5,a6),this['applyMatrix4'](Rr),this;}['scale'](a4,a5,a6){return Rr['makeScale'](a4,a5,a6),this['applyMatrix4'](Rr),this;}['lookAt'](a4){return zr['lookAt'](a4),zr['updateMatrix'](),this['applyMatrix4'](zr['matrix']),this;}['center'](){const hZ=d4;return this['computeBoundingBox'](),this[hZ(0x4c6)]['getCenter'](Br)['negate'](),this[hZ(0x35f)](Br['x'],Br['y'],Br['z']),this;}[d4(0x38c)](a4){const i0=d4;let a5=this['getAttribute']('position');if(a5===void 0x0){let a6=[];for(let a7=0x0,a8=a4[i0(0x3ac)];a7<a8;a7++){let a9=a4[a7];a6['push'](a9['x'],a9['y'],a9['z']||0x0);}this['setAttribute']('position',new X(a6,0x3));}else{let ab=Math[i0(0x5cd)](a4['length'],a5['count']);for(let af=0x0;af<ab;af++){let ag=a4[af];a5['setXYZ'](af,ag['x'],ag['y'],ag['z']||0x0);}a4['length']>a5[i0(0x218)]&&z('BufferGeometry:\x20Buffer\x20size\x20too\x20small\x20for\x20points\x20data.\x20Use\x20.dispose()\x20and\x20create\x20a\x20new\x20geometry.'),a5[i0(0x55b)]=!0x0;}return this;}[d4(0x413)](){const i1=d4;this['boundingBox']===null&&(this['boundingBox']=new dr());let a4=this['attributes']['position'],a5=this['morphAttributes'][i1(0x4ed)];if(a4&&a4[i1(0x643)]){B('BufferGeometry.computeBoundingBox():\x20GLBufferAttribute\x20requires\x20a\x20manual\x20bounding\x20box.',this),this[i1(0x4c6)]['set'](new W(-Infinity,-Infinity,-Infinity),new W(Infinity,Infinity,Infinity));return;}if(a4!==void 0x0){if(this[i1(0x4c6)]['setFromBufferAttribute'](a4),a5)for(let a6=0x0,a7=a5['length'];a6<a7;a6++){let a8=a5[a6];Vr['setFromBufferAttribute'](a8),this['morphTargetsRelative']?(Ur[i1(0x41f)](this['boundingBox']['min'],Vr['min']),this['boundingBox']['expandByPoint'](Ur),Ur['addVectors'](this[i1(0x4c6)][i1(0x4dd)],Vr['max']),this['boundingBox']['expandByPoint'](Ur)):(this['boundingBox']['expandByPoint'](Vr['min']),this['boundingBox'][i1(0x4e1)](Vr['max']));}}else this['boundingBox']['makeEmpty']();(isNaN(this['boundingBox'][i1(0x5cd)]['x'])||isNaN(this['boundingBox']['min']['y'])||isNaN(this['boundingBox']['min']['z']))&&B('BufferGeometry.computeBoundingBox():\x20Computed\x20min/max\x20have\x20NaN\x20values.\x20The\x20\x22position\x22\x20attribute\x20is\x20likely\x20to\x20have\x20NaN\x20values.',this);}['computeBoundingSphere'](){const i2=d4;this['boundingSphere']===null&&(this['boundingSphere']=new Ir());let a4=this['attributes']['position'],a5=this['morphAttributes']['position'];if(a4&&a4['isGLBufferAttribute']){B('BufferGeometry.computeBoundingSphere():\x20GLBufferAttribute\x20requires\x20a\x20manual\x20bounding\x20sphere.',this),this['boundingSphere']['set'](new W(),Infinity);return;}if(a4){let a6=this['boundingSphere'][i2(0x39c)];if(Vr[i2(0x62a)](a4),a5)for(let a8=0x0,a9=a5[i2(0x3ac)];a8<a9;a8++){let ab=a5[a8];Hr['setFromBufferAttribute'](ab),this['morphTargetsRelative']?(Ur['addVectors'](Vr['min'],Hr[i2(0x5cd)]),Vr['expandByPoint'](Ur),Ur['addVectors'](Vr['max'],Hr['max']),Vr['expandByPoint'](Ur)):(Vr[i2(0x4e1)](Hr['min']),Vr['expandByPoint'](Hr['max']));}Vr['getCenter'](a6);let a7=0x0;for(let af=0x0,ag=a4['count'];af<ag;af++)Ur['fromBufferAttribute'](a4,af),a7=Math['max'](a7,a6[i2(0x4ac)](Ur));if(a5)for(let ah=0x0,aj=a5[i2(0x3ac)];ah<aj;ah++){let ak=a5[ah],am=this['morphTargetsRelative'];for(let ap=0x0,aq=ak[i2(0x218)];ap<aq;ap++)Ur['fromBufferAttribute'](ak,ap),am&&(Br[i2(0x2ba)](a4,ap),Ur['add'](Br)),a7=Math[i2(0x4dd)](a7,a6['distanceToSquared'](Ur));}this['boundingSphere']['radius']=Math['sqrt'](a7),isNaN(this['boundingSphere'][i2(0x263)])&&B('BufferGeometry.computeBoundingSphere():\x20Computed\x20radius\x20is\x20NaN.\x20The\x20\x22position\x22\x20attribute\x20is\x20likely\x20to\x20have\x20NaN\x20values.',this);}}[d4(0x2ad)](){const i3=d4;let a4=this['index'],a5=this['attributes'];if(a4===null||a5[i3(0x4ed)]===void 0x0||a5['normal']===void 0x0||a5['uv']===void 0x0){B('BufferGeometry:\x20.computeTangents()\x20failed.\x20Missing\x20required\x20attributes\x20(index,\x20position,\x20normal\x20or\x20uv)');return;}let a6=a5[i3(0x4ed)],a7=a5['normal'],a8=a5['uv'];this['hasAttribute'](i3(0x427))===!0x1&&this[i3(0x5ae)]('tangent',new kr(new Float32Array(0x4*a6[i3(0x218)]),0x4));let a9=this['getAttribute']('tangent'),ab=[],af=[];for(let aD=0x0;aD<a6[i3(0x218)];aD++)ab[aD]=new W(),af[aD]=new W();let ag=new W(),ah=new W(),aj=new W(),ak=new U(),am=new U(),ap=new U(),aq=new W(),av=new W();function aw(aE,aF,aG){const i4=i3;ag['fromBufferAttribute'](a6,aE),ah['fromBufferAttribute'](a6,aF),aj['fromBufferAttribute'](a6,aG),ak['fromBufferAttribute'](a8,aE),am['fromBufferAttribute'](a8,aF),ap[i4(0x2ba)](a8,aG),ah['sub'](ag),aj[i4(0x4cb)](ag),am['sub'](ak),ap['sub'](ak);let aH=0x1/(am['x']*ap['y']-ap['x']*am['y']);isFinite(aH)&&(aq['copy'](ah)['multiplyScalar'](ap['y'])['addScaledVector'](aj,-am['y'])['multiplyScalar'](aH),av[i4(0x647)](aj)['multiplyScalar'](am['x'])['addScaledVector'](ah,-ap['x'])[i4(0x4d9)](aH),ab[aE]['add'](aq),ab[aF]['add'](aq),ab[aG][i4(0x232)](aq),af[aE]['add'](av),af[aF]['add'](av),af[aG]['add'](av));}let ax=this['groups'];ax['length']===0x0&&(ax=[{'start':0x0,'count':a4['count']}]);for(let aE=0x0,aF=ax['length'];aE<aF;++aE){let aG=ax[aE],aH=aG['start'],aI=aG['count'];for(let aJ=aH,aK=aH+aI;aJ<aK;aJ+=0x3)aw(a4['getX'](aJ+0x0),a4[i3(0x5c8)](aJ+0x1),a4['getX'](aJ+0x2));}let ay=new W(),az=new W(),aA=new W(),aB=new W();function aC(aL){const i5=i3;aA['fromBufferAttribute'](a7,aL),aB['copy'](aA);let aM=ab[aL];ay['copy'](aM),ay['sub'](aA[i5(0x4d9)](aA['dot'](aM)))['normalize'](),az['crossVectors'](aB,aM);let aN=az['dot'](af[aL])<0x0?-0x1:0x1;a9[i5(0x5c3)](aL,ay['x'],ay['y'],ay['z'],aN);}for(let aL=0x0,aM=ax[i3(0x3ac)];aL<aM;++aL){let aN=ax[aL],aO=aN['start'],aP=aN['count'];for(let aQ=aO,aR=aO+aP;aQ<aR;aQ+=0x3)aC(a4['getX'](aQ+0x0)),aC(a4['getX'](aQ+0x1)),aC(a4['getX'](aQ+0x2));}}['computeVertexNormals'](){const i6=d4;let a4=this['index'],a5=this['getAttribute']('position');if(a5!==void 0x0){let a6=this['getAttribute']('normal');if(a6===void 0x0)a6=new kr(new Float32Array(a5['count']*0x3),0x3),this['setAttribute'](i6(0x171),a6);else{for(let ak=0x0,am=a6[i6(0x218)];ak<am;ak++)a6['setXYZ'](ak,0x0,0x0,0x0);}let a7=new W(),a8=new W(),a9=new W(),ab=new W(),af=new W(),ag=new W(),ah=new W(),aj=new W();if(a4)for(let ap=0x0,aq=a4['count'];ap<aq;ap+=0x3){let av=a4['getX'](ap+0x0),aw=a4['getX'](ap+0x1),ax=a4['getX'](ap+0x2);a7['fromBufferAttribute'](a5,av),a8['fromBufferAttribute'](a5,aw),a9['fromBufferAttribute'](a5,ax),ah['subVectors'](a9,a8),aj['subVectors'](a7,a8),ah['cross'](aj),ab[i6(0x2ba)](a6,av),af['fromBufferAttribute'](a6,aw),ag['fromBufferAttribute'](a6,ax),ab[i6(0x232)](ah),af[i6(0x232)](ah),ag['add'](ah),a6['setXYZ'](av,ab['x'],ab['y'],ab['z']),a6['setXYZ'](aw,af['x'],af['y'],af['z']),a6['setXYZ'](ax,ag['x'],ag['y'],ag['z']);}else{for(let ay=0x0,az=a5['count'];ay<az;ay+=0x3)a7['fromBufferAttribute'](a5,ay+0x0),a8[i6(0x2ba)](a5,ay+0x1),a9['fromBufferAttribute'](a5,ay+0x2),ah['subVectors'](a9,a8),aj[i6(0x618)](a7,a8),ah['cross'](aj),a6['setXYZ'](ay+0x0,ah['x'],ah['y'],ah['z']),a6['setXYZ'](ay+0x1,ah['x'],ah['y'],ah['z']),a6['setXYZ'](ay+0x2,ah['x'],ah['y'],ah['z']);}this['normalizeNormals'](),a6['needsUpdate']=!0x0;}}['normalizeNormals'](){const i7=d4;let a4=this[i7(0x1b6)]['normal'];for(let a5=0x0,a6=a4[i7(0x218)];a5<a6;a5++)Ur['fromBufferAttribute'](a4,a5),Ur['normalize'](),a4[i7(0x38b)](a5,Ur['x'],Ur['y'],Ur['z']);}['toNonIndexed'](){const i9=d4;function a4(ab,af){const i8=a1;let ag=ab[i8(0x5a4)],ah=ab['itemSize'],aj=ab['normalized'],ak=new ag['constructor'](af['length']*ah),am=0x0,ap=0x0;for(let aq=0x0,av=af[i8(0x3ac)];aq<av;aq++){am=ab['isInterleavedBufferAttribute']?af[aq]*ab['data']['stride']+ab['offset']:af[aq]*ah;for(let aw=0x0;aw<ah;aw++)ak[ap++]=ag[am++];}return new kr(ak,ah,aj);}if(this['index']===null)return z('BufferGeometry.toNonIndexed():\x20BufferGeometry\x20is\x20already\x20non-indexed.'),this;let a5=new e(),a6=this['index'][i9(0x5a4)],a7=this['attributes'];for(let ab in a7){let af=a7[ab],ag=a4(af,a6);a5['setAttribute'](ab,ag);}let a8=this[i9(0x4da)];for(let ah in a8){let aj=[],ak=a8[ah];for(let am=0x0,ap=ak['length'];am<ap;am++){let aq=ak[am],av=a4(aq,a6);aj['push'](av);}a5['morphAttributes'][ah]=aj;}a5['morphTargetsRelative']=this['morphTargetsRelative'];let a9=this['groups'];for(let aw=0x0,ax=a9['length'];aw<ax;aw++){let ay=a9[aw];a5['addGroup'](ay[i9(0x29e)],ay['count'],ay['materialIndex']);}return a5;}['toJSON'](){const ib=d4;let a4={'metadata':{'version':4.7,'type':'BufferGeometry','generator':'BufferGeometry.toJSON'}};if(a4['uuid']=this['uuid'],a4['type']=this['type'],this['name']!==''&&(a4['name']=this['name']),Object['keys'](this['userData'])['length']>0x0&&(a4[ib(0x14c)]=this['userData']),this['parameters']!==void 0x0){let af=this['parameters'];for(let ag in af)af[ag]!==void 0x0&&(a4[ag]=af[ag]);return a4;}a4['data']={'attributes':{}};let a5=this[ib(0x434)];a5!==null&&(a4['data']['index']={'type':a5['array']['constructor']['name'],'array':Array[ib(0x156)]['slice'][ib(0x308)](a5['array'])});let a6=this['attributes'];for(let ah in a6){let aj=a6[ah];a4['data']['attributes'][ah]=aj['toJSON'](a4['data']);}let a7={},a8=!0x1;for(let ak in this['morphAttributes']){let am=this['morphAttributes'][ak],ap=[];for(let aq=0x0,av=am[ib(0x3ac)];aq<av;aq++){let aw=am[aq];ap[ib(0x5d4)](aw['toJSON'](a4['data']));}ap['length']>0x0&&(a7[ak]=ap,a8=!0x0);}a8&&(a4['data']['morphAttributes']=a7,a4[ib(0x36f)]['morphTargetsRelative']=this[ib(0x3a4)]);let a9=this[ib(0x256)];a9['length']>0x0&&(a4[ib(0x36f)]['groups']=JSON['parse'](JSON[ib(0x5d9)](a9)));let ab=this['boundingSphere'];return ab!==null&&(a4['data']['boundingSphere']=ab['toJSON']()),a4;}['clone'](){const ig=d4;return new this[(ig(0x407))]()['copy'](this);}[d4(0x647)](a4){const ih=d4;this['index']=null,this['attributes']={},this['morphAttributes']={},this['groups']=[],this[ih(0x4c6)]=null,this['boundingSphere']=null;let a5={};this['name']=a4['name'];let a6=a4['index'];a6!==null&&this['setIndex'](a6['clone']());let a7=a4['attributes'];for(let ag in a7){let ah=a7[ag];this['setAttribute'](ag,ah['clone'](a5));}let a8=a4['morphAttributes'];for(let aj in a8){let ak=[],am=a8[aj];for(let ap=0x0,aq=am['length'];ap<aq;ap++)ak[ih(0x5d4)](am[ap]['clone'](a5));this['morphAttributes'][aj]=ak;}this[ih(0x3a4)]=a4['morphTargetsRelative'];let a9=a4['groups'];for(let av=0x0,aw=a9['length'];av<aw;av++){let ax=a9[av];this['addGroup'](ax['start'],ax['count'],ax['materialIndex']);}let ab=a4[ih(0x4c6)];ab!==null&&(this['boundingBox']=ab['clone']());let af=a4[ih(0x1db)];return af!==null&&(this['boundingSphere']=af['clone']()),this['drawRange']['start']=a4[ih(0x303)]['start'],this[ih(0x303)]['count']=a4['drawRange']['count'],this[ih(0x14c)]=a4['userData'],this;}['dispose'](){this['dispatchEvent']({'type':'dispose'});}},Gr=class{constructor(a4,a5){this['isInterleavedBuffer']=!0x0,this['array']=a4,this['stride']=a5,this['count']=a4===void 0x0?0x0:a4['length']/a5,this['usage']=ct,this['updateRanges']=[],this['version']=0x0,this['uuid']=Et();}['onUploadCallback'](){}set['needsUpdate'](a4){a4===!0x0&&this['version']++;}['setUsage'](a4){return this['usage']=a4,this;}['addUpdateRange'](a4,a5){this['updateRanges']['push']({'start':a4,'count':a5});}[d4(0x3cf)](){this['updateRanges']['length']=0x0;}['copy'](a4){const ij=d4;return this['array']=new a4['array']['constructor'](a4['array']),this[ij(0x218)]=a4['count'],this['stride']=a4['stride'],this['usage']=a4[ij(0x17d)],this;}['copyAt'](a4,a5,a6){a4*=this['stride'],a6*=a5['stride'];for(let a7=0x0,a8=this['stride'];a7<a8;a7++)this['array'][a4+a7]=a5['array'][a6+a7];return this;}['set'](a4,a5=0x0){const ik=d4;return this[ik(0x5a4)]['set'](a4,a5),this;}['clone'](a4){const im=d4;a4['arrayBuffers']===void 0x0&&(a4['arrayBuffers']={}),this['array']['buffer']['_uuid']===void 0x0&&(this['array']['buffer'][im(0x40b)]=Et()),a4[im(0x483)][this['array']['buffer']['_uuid']]===void 0x0&&(a4[im(0x483)][this['array']['buffer']['_uuid']]=this['array']['slice'](0x0)['buffer']);let a5=new this[(im(0x5a4))]['constructor'](a4[im(0x483)][this['array']['buffer']['_uuid']]),a6=new this['constructor'](a5,this['stride']);return a6['setUsage'](this['usage']),a6;}['onUpload'](a4){return this['onUploadCallback']=a4,this;}['toJSON'](a4){const ip=d4;return a4['arrayBuffers']===void 0x0&&(a4['arrayBuffers']={}),this['array']['buffer']['_uuid']===void 0x0&&(this['array']['buffer']['_uuid']=Et()),a4[ip(0x483)][this['array'][ip(0x1be)][ip(0x40b)]]===void 0x0&&(a4['arrayBuffers'][this['array']['buffer']['_uuid']]=Array['from'](new Uint32Array(this['array']['buffer']))),{'uuid':this['uuid'],'buffer':this['array']['buffer']['_uuid'],'type':this['array']['constructor']['name'],'stride':this['stride']};}},Kr=new W(),qr=class e{constructor(a4,a5,a6,a7=!0x1){const iq=d4;this['isInterleavedBufferAttribute']=!0x0,this['name']='',this[iq(0x36f)]=a4,this['itemSize']=a5,this[iq(0x34a)]=a6,this['normalized']=a7;}get['count'](){const iv=d4;return this['data'][iv(0x218)];}get['array'](){return this['data']['array'];}set['needsUpdate'](a4){this['data']['needsUpdate']=a4;}[d4(0x421)](a4){for(let a5=0x0,a6=this['data']['count'];a5<a6;a5++)Kr['fromBufferAttribute'](this,a5),Kr['applyMatrix4'](a4),this['setXYZ'](a5,Kr['x'],Kr['y'],Kr['z']);return this;}['applyNormalMatrix'](a4){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Kr['fromBufferAttribute'](this,a5),Kr['applyNormalMatrix'](a4),this['setXYZ'](a5,Kr['x'],Kr['y'],Kr['z']);return this;}['transformDirection'](a4){for(let a5=0x0,a6=this['count'];a5<a6;a5++)Kr['fromBufferAttribute'](this,a5),Kr['transformDirection'](a4),this['setXYZ'](a5,Kr['x'],Kr['y'],Kr['z']);return this;}['getComponent'](a4,a5){let a6=this['array'][a4*this['data']['stride']+this['offset']+a5];return this['normalized']&&(a6=Gt(a6,this['array'])),a6;}[d4(0x501)](a4,a5,a6){const iw=d4;return this['normalized']&&(a6=H(a6,this[iw(0x5a4)])),this['data']['array'][a4*this[iw(0x36f)]['stride']+this['offset']+a5]=a6,this;}['setX'](a4,a5){const ix=d4;return this[ix(0x20f)]&&(a5=H(a5,this['array'])),this['data'][ix(0x5a4)][a4*this['data']['stride']+this['offset']]=a5,this;}['setY'](a4,a5){const iy=d4;return this[iy(0x20f)]&&(a5=H(a5,this['array'])),this[iy(0x36f)][iy(0x5a4)][a4*this['data']['stride']+this['offset']+0x1]=a5,this;}[d4(0x610)](a4,a5){return this['normalized']&&(a5=H(a5,this['array'])),this['data']['array'][a4*this['data']['stride']+this['offset']+0x2]=a5,this;}[d4(0x4f8)](a4,a5){const iz=d4;return this['normalized']&&(a5=H(a5,this['array'])),this['data'][iz(0x5a4)][a4*this['data']['stride']+this['offset']+0x3]=a5,this;}['getX'](a4){const iA=d4;let a5=this['data']['array'][a4*this['data'][iA(0x3c1)]+this['offset']];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}[d4(0x28d)](a4){const iB=d4;let a5=this[iB(0x36f)]['array'][a4*this['data']['stride']+this['offset']+0x1];return this[iB(0x20f)]&&(a5=Gt(a5,this['array'])),a5;}['getZ'](a4){const iC=d4;let a5=this['data']['array'][a4*this['data'][iC(0x3c1)]+this['offset']+0x2];return this[iC(0x20f)]&&(a5=Gt(a5,this['array'])),a5;}[d4(0x517)](a4){let a5=this['data']['array'][a4*this['data']['stride']+this['offset']+0x3];return this['normalized']&&(a5=Gt(a5,this['array'])),a5;}['setXY'](a4,a5,a6){const iD=d4;return a4=a4*this['data']['stride']+this['offset'],this[iD(0x20f)]&&(a5=H(a5,this['array']),a6=H(a6,this['array'])),this['data']['array'][a4+0x0]=a5,this['data']['array'][a4+0x1]=a6,this;}['setXYZ'](a4,a5,a6,a7){const iE=d4;return a4=a4*this[iE(0x36f)]['stride']+this[iE(0x34a)],this[iE(0x20f)]&&(a5=H(a5,this['array']),a6=H(a6,this['array']),a7=H(a7,this['array'])),this['data']['array'][a4+0x0]=a5,this[iE(0x36f)]['array'][a4+0x1]=a6,this['data'][iE(0x5a4)][a4+0x2]=a7,this;}['setXYZW'](a4,a5,a6,a7,a8){const iF=d4;return a4=a4*this['data']['stride']+this['offset'],this['normalized']&&(a5=H(a5,this['array']),a6=H(a6,this['array']),a7=H(a7,this[iF(0x5a4)]),a8=H(a8,this['array'])),this['data']['array'][a4+0x0]=a5,this['data'][iF(0x5a4)][a4+0x1]=a6,this['data']['array'][a4+0x2]=a7,this['data']['array'][a4+0x3]=a8,this;}['clone'](a4){const iG=d4;if(a4===void 0x0){gt('InterleavedBufferAttribute.clone():\x20Cloning\x20an\x20interleaved\x20buffer\x20attribute\x20will\x20de-interleave\x20buffer\x20data.');let a5=[];for(let a6=0x0;a6<this['count'];a6++){let a7=a6*this['data']['stride']+this['offset'];for(let a8=0x0;a8<this['itemSize'];a8++)a5['push'](this['data']['array'][a7+a8]);}return new kr(new this['array']['constructor'](a5),this[iG(0x55e)],this[iG(0x20f)]);}else return a4['interleavedBuffers']===void 0x0&&(a4['interleavedBuffers']={}),a4[iG(0x556)][this[iG(0x36f)]['uuid']]===void 0x0&&(a4['interleavedBuffers'][this[iG(0x36f)]['uuid']]=this['data']['clone'](a4)),new e(a4['interleavedBuffers'][this['data']['uuid']],this[iG(0x55e)],this['offset'],this[iG(0x20f)]);}['toJSON'](a4){const iH=d4;if(a4===void 0x0){gt('InterleavedBufferAttribute.toJSON():\x20Serializing\x20an\x20interleaved\x20buffer\x20attribute\x20will\x20de-interleave\x20buffer\x20data.');let a5=[];for(let a6=0x0;a6<this['count'];a6++){let a7=a6*this['data'][iH(0x3c1)]+this[iH(0x34a)];for(let a8=0x0;a8<this['itemSize'];a8++)a5['push'](this['data']['array'][a7+a8]);}return{'itemSize':this[iH(0x55e)],'type':this['array'][iH(0x407)]['name'],'array':a5,'normalized':this['normalized']};}else return a4['interleavedBuffers']===void 0x0&&(a4['interleavedBuffers']={}),a4['interleavedBuffers'][this[iH(0x36f)][iH(0x2a7)]]===void 0x0&&(a4['interleavedBuffers'][this[iH(0x36f)][iH(0x2a7)]]=this[iH(0x36f)]['toJSON'](a4)),{'isInterleavedBufferAttribute':!0x0,'itemSize':this[iH(0x55e)],'data':this['data']['uuid'],'offset':this['offset'],'normalized':this['normalized']};}},Jr=0x0,Yr=class extends xt{constructor(){const iI=d4;super(),this[iI(0x4db)]=!0x0,Object['defineProperty'](this,'id',{'value':Jr++}),this[iI(0x2a7)]=Et(),this['name']='',this[iI(0x3e0)]='Material',this['blending']=0x1,this['side']=0x0,this['vertexColors']=!0x1,this['opacity']=0x1,this['transparent']=!0x1,this['alphaHash']=!0x1,this['blendSrc']=0xcc,this['blendDst']=0xcd,this['blendEquation']=0x64,this['blendSrcAlpha']=null,this[iI(0x475)]=null,this['blendEquationAlpha']=null,this['blendColor']=new Y(0x0,0x0,0x0),this['blendAlpha']=0x0,this['depthFunc']=0x3,this['depthTest']=!0x0,this['depthWrite']=!0x0,this['stencilWriteMask']=0xff,this['stencilFunc']=0x207,this['stencilRef']=0x0,this['stencilFuncMask']=0xff,this['stencilFail']=st,this['stencilZFail']=st,this['stencilZPass']=st,this['stencilWrite']=!0x1,this['clippingPlanes']=null,this['clipIntersection']=!0x1,this[iI(0x441)]=!0x1,this[iI(0x323)]=null,this['colorWrite']=!0x0,this['precision']=null,this[iI(0x16f)]=!0x1,this['polygonOffsetFactor']=0x0,this['polygonOffsetUnits']=0x0,this['dithering']=!0x1,this['alphaToCoverage']=!0x1,this['premultipliedAlpha']=!0x1,this['forceSinglePass']=!0x1,this['allowOverride']=!0x0,this['visible']=!0x0,this['toneMapped']=!0x0,this['userData']={},this['version']=0x0,this['_alphaTest']=0x0;}get['alphaTest'](){const iJ=d4;return this[iJ(0x278)];}set[d4(0x5e2)](a4){this['_alphaTest']>0x0!=a4>0x0&&this['version']++,this['_alphaTest']=a4;}['onBeforeRender'](){}['onBeforeCompile'](){}['customProgramCacheKey'](){return this['onBeforeCompile']['toString']();}['setValues'](a4){if(a4!==void 0x0)for(let a5 in a4){let a6=a4[a5];if(a6===void 0x0){z('Material:\x20parameter\x20\x27'+a5+'\x27\x20has\x20value\x20of\x20undefined.');continue;}let a7=this[a5];if(a7===void 0x0){z('Material:\x20\x27'+a5+'\x27\x20is\x20not\x20a\x20property\x20of\x20THREE.'+this['type']+'.');continue;}a7&&a7['isColor']?a7['set'](a6):a7&&a7['isVector3']&&a6&&a6['isVector3']?a7['copy'](a6):this[a5]=a6;}}['toJSON'](a4){const iK=d4;let a5=a4===void 0x0||typeof a4==iK(0x124);a5&&(a4={'textures':{},'images':{}});let a6={'metadata':{'version':4.7,'type':'Material','generator':'Material.toJSON'}};a6[iK(0x2a7)]=this['uuid'],a6['type']=this['type'],this['name']!==''&&(a6['name']=this['name']),this['color']&&this['color']['isColor']&&(a6[iK(0x180)]=this['color'][iK(0x506)]()),this[iK(0x312)]!==void 0x0&&(a6['roughness']=this['roughness']),this['metalness']!==void 0x0&&(a6['metalness']=this['metalness']),this['sheen']!==void 0x0&&(a6['sheen']=this['sheen']),this[iK(0x410)]&&this['sheenColor']['isColor']&&(a6['sheenColor']=this['sheenColor']['getHex']()),this['sheenRoughness']!==void 0x0&&(a6[iK(0x519)]=this[iK(0x519)]),this['emissive']&&this[iK(0x2d1)]['isColor']&&(a6['emissive']=this['emissive']['getHex']()),this['emissiveIntensity']!==void 0x0&&this['emissiveIntensity']!==0x1&&(a6['emissiveIntensity']=this[iK(0x155)]),this['specular']&&this['specular'][iK(0x16d)]&&(a6[iK(0x162)]=this['specular']['getHex']()),this['specularIntensity']!==void 0x0&&(a6['specularIntensity']=this[iK(0x295)]),this['specularColor']&&this['specularColor']['isColor']&&(a6['specularColor']=this[iK(0x437)]['getHex']()),this[iK(0x600)]!==void 0x0&&(a6['shininess']=this[iK(0x600)]),this['clearcoat']!==void 0x0&&(a6['clearcoat']=this[iK(0x381)]),this['clearcoatRoughness']!==void 0x0&&(a6['clearcoatRoughness']=this['clearcoatRoughness']),this[iK(0x1f2)]&&this['clearcoatMap']['isTexture']&&(a6['clearcoatMap']=this[iK(0x1f2)]['toJSON'](a4)['uuid']),this['clearcoatRoughnessMap']&&this['clearcoatRoughnessMap']['isTexture']&&(a6['clearcoatRoughnessMap']=this['clearcoatRoughnessMap'][iK(0x1bb)](a4)['uuid']),this['clearcoatNormalMap']&&this[iK(0x508)]['isTexture']&&(a6['clearcoatNormalMap']=this[iK(0x508)]['toJSON'](a4)[iK(0x2a7)],a6['clearcoatNormalScale']=this['clearcoatNormalScale']['toArray']()),this[iK(0x425)]&&this[iK(0x425)]['isTexture']&&(a6[iK(0x425)]=this['sheenColorMap']['toJSON'](a4)['uuid']),this['sheenRoughnessMap']&&this['sheenRoughnessMap']['isTexture']&&(a6['sheenRoughnessMap']=this['sheenRoughnessMap']['toJSON'](a4)['uuid']),this['dispersion']!==void 0x0&&(a6['dispersion']=this['dispersion']),this['iridescence']!==void 0x0&&(a6[iK(0x399)]=this['iridescence']),this['iridescenceIOR']!==void 0x0&&(a6['iridescenceIOR']=this[iK(0x4e5)]),this['iridescenceThicknessRange']!==void 0x0&&(a6[iK(0x56d)]=this['iridescenceThicknessRange']),this[iK(0x5c0)]&&this['iridescenceMap']['isTexture']&&(a6['iridescenceMap']=this['iridescenceMap']['toJSON'](a4)[iK(0x2a7)]),this['iridescenceThicknessMap']&&this['iridescenceThicknessMap']['isTexture']&&(a6['iridescenceThicknessMap']=this['iridescenceThicknessMap']['toJSON'](a4)[iK(0x2a7)]),this['anisotropy']!==void 0x0&&(a6[iK(0x48d)]=this['anisotropy']),this[iK(0x364)]!==void 0x0&&(a6['anisotropyRotation']=this[iK(0x364)]),this['anisotropyMap']&&this[iK(0x184)]['isTexture']&&(a6[iK(0x184)]=this['anisotropyMap'][iK(0x1bb)](a4)['uuid']),this['map']&&this['map']['isTexture']&&(a6['map']=this['map']['toJSON'](a4)[iK(0x2a7)]),this['matcap']&&this['matcap']['isTexture']&&(a6['matcap']=this['matcap'][iK(0x1bb)](a4)['uuid']),this['alphaMap']&&this['alphaMap'][iK(0x3ca)]&&(a6['alphaMap']=this['alphaMap'][iK(0x1bb)](a4)['uuid']),this['lightMap']&&this[iK(0x1e6)]['isTexture']&&(a6['lightMap']=this['lightMap']['toJSON'](a4)['uuid'],a6['lightMapIntensity']=this['lightMapIntensity']),this['aoMap']&&this['aoMap']['isTexture']&&(a6['aoMap']=this['aoMap']['toJSON'](a4)[iK(0x2a7)],a6['aoMapIntensity']=this[iK(0x45d)]),this['bumpMap']&&this['bumpMap']['isTexture']&&(a6['bumpMap']=this['bumpMap']['toJSON'](a4)['uuid'],a6['bumpScale']=this[iK(0x4c8)]),this['normalMap']&&this['normalMap']['isTexture']&&(a6['normalMap']=this['normalMap'][iK(0x1bb)](a4)['uuid'],a6[iK(0x595)]=this[iK(0x595)],a6['normalScale']=this['normalScale'][iK(0x226)]()),this['displacementMap']&&this['displacementMap'][iK(0x3ca)]&&(a6[iK(0x489)]=this[iK(0x489)]['toJSON'](a4)['uuid'],a6['displacementScale']=this['displacementScale'],a6[iK(0x505)]=this['displacementBias']),this['roughnessMap']&&this['roughnessMap']['isTexture']&&(a6['roughnessMap']=this['roughnessMap'][iK(0x1bb)](a4)[iK(0x2a7)]),this[iK(0x3e2)]&&this[iK(0x3e2)]['isTexture']&&(a6['metalnessMap']=this[iK(0x3e2)]['toJSON'](a4)[iK(0x2a7)]),this['emissiveMap']&&this['emissiveMap'][iK(0x3ca)]&&(a6['emissiveMap']=this['emissiveMap'][iK(0x1bb)](a4)['uuid']),this['specularMap']&&this['specularMap']['isTexture']&&(a6['specularMap']=this['specularMap']['toJSON'](a4)['uuid']),this['specularIntensityMap']&&this['specularIntensityMap'][iK(0x3ca)]&&(a6['specularIntensityMap']=this['specularIntensityMap']['toJSON'](a4)['uuid']),this['specularColorMap']&&this['specularColorMap'][iK(0x3ca)]&&(a6[iK(0x542)]=this['specularColorMap']['toJSON'](a4)['uuid']),this['envMap']&&this['envMap']['isTexture']&&(a6['envMap']=this['envMap']['toJSON'](a4)['uuid'],this['combine']!==void 0x0&&(a6[iK(0x1cf)]=this['combine'])),this['envMapRotation']!==void 0x0&&(a6['envMapRotation']=this[iK(0x52b)]['toArray']()),this['envMapIntensity']!==void 0x0&&(a6['envMapIntensity']=this['envMapIntensity']),this['reflectivity']!==void 0x0&&(a6['reflectivity']=this['reflectivity']),this['refractionRatio']!==void 0x0&&(a6['refractionRatio']=this['refractionRatio']),this['gradientMap']&&this['gradientMap']['isTexture']&&(a6['gradientMap']=this['gradientMap']['toJSON'](a4)['uuid']),this['transmission']!==void 0x0&&(a6['transmission']=this['transmission']),this['transmissionMap']&&this['transmissionMap']['isTexture']&&(a6[iK(0x1d7)]=this['transmissionMap']['toJSON'](a4)[iK(0x2a7)]),this['thickness']!==void 0x0&&(a6['thickness']=this[iK(0x5dc)]),this['thicknessMap']&&this['thicknessMap']['isTexture']&&(a6[iK(0x5e0)]=this['thicknessMap']['toJSON'](a4)['uuid']),this['attenuationDistance']!==void 0x0&&this['attenuationDistance']!==Infinity&&(a6['attenuationDistance']=this[iK(0x297)]),this['attenuationColor']!==void 0x0&&(a6['attenuationColor']=this['attenuationColor']['getHex']()),this['size']!==void 0x0&&(a6['size']=this['size']),this[iK(0x323)]!==null&&(a6['shadowSide']=this['shadowSide']),this['sizeAttenuation']!==void 0x0&&(a6['sizeAttenuation']=this['sizeAttenuation']),this['blending']!==0x1&&(a6['blending']=this['blending']),this['side']!==0x0&&(a6['side']=this['side']),this[iK(0x549)]===!0x0&&(a6['vertexColors']=!0x0),this[iK(0x5b6)]<0x1&&(a6['opacity']=this['opacity']),this['transparent']===!0x0&&(a6['transparent']=!0x0),this['blendSrc']!==0xcc&&(a6['blendSrc']=this['blendSrc']),this['blendDst']!==0xcd&&(a6['blendDst']=this['blendDst']),this['blendEquation']!==0x64&&(a6['blendEquation']=this['blendEquation']),this['blendSrcAlpha']!==null&&(a6['blendSrcAlpha']=this[iK(0x1f9)]),this['blendDstAlpha']!==null&&(a6['blendDstAlpha']=this['blendDstAlpha']),this['blendEquationAlpha']!==null&&(a6['blendEquationAlpha']=this['blendEquationAlpha']),this['blendColor']&&this['blendColor'][iK(0x16d)]&&(a6['blendColor']=this[iK(0x2d3)]['getHex']()),this['blendAlpha']!==0x0&&(a6['blendAlpha']=this['blendAlpha']),this['depthFunc']!==0x3&&(a6['depthFunc']=this['depthFunc']),this[iK(0x3ab)]===!0x1&&(a6['depthTest']=this['depthTest']),this['depthWrite']===!0x1&&(a6[iK(0x2cb)]=this['depthWrite']),this['colorWrite']===!0x1&&(a6['colorWrite']=this[iK(0x455)]),this['stencilWriteMask']!==0xff&&(a6['stencilWriteMask']=this['stencilWriteMask']),this['stencilFunc']!==0x207&&(a6[iK(0x367)]=this['stencilFunc']),this['stencilRef']!==0x0&&(a6['stencilRef']=this['stencilRef']),this['stencilFuncMask']!==0xff&&(a6['stencilFuncMask']=this['stencilFuncMask']),this[iK(0x408)]!==0x1e00&&(a6['stencilFail']=this['stencilFail']),this['stencilZFail']!==0x1e00&&(a6['stencilZFail']=this['stencilZFail']),this['stencilZPass']!==0x1e00&&(a6['stencilZPass']=this['stencilZPass']),this['stencilWrite']===!0x0&&(a6['stencilWrite']=this['stencilWrite']),this['rotation']!==void 0x0&&this['rotation']!==0x0&&(a6[iK(0x58e)]=this['rotation']),this['polygonOffset']===!0x0&&(a6['polygonOffset']=!0x0),this['polygonOffsetFactor']!==0x0&&(a6['polygonOffsetFactor']=this[iK(0x3d1)]),this['polygonOffsetUnits']!==0x0&&(a6[iK(0x61f)]=this['polygonOffsetUnits']),this['linewidth']!==void 0x0&&this['linewidth']!==0x1&&(a6['linewidth']=this['linewidth']),this[iK(0x587)]!==void 0x0&&(a6['dashSize']=this['dashSize']),this['gapSize']!==void 0x0&&(a6['gapSize']=this['gapSize']),this['scale']!==void 0x0&&(a6['scale']=this['scale']),this['dithering']===!0x0&&(a6['dithering']=!0x0),this['alphaTest']>0x0&&(a6['alphaTest']=this['alphaTest']),this['alphaHash']===!0x0&&(a6['alphaHash']=!0x0),this[iK(0x326)]===!0x0&&(a6['alphaToCoverage']=!0x0),this[iK(0x481)]===!0x0&&(a6['premultipliedAlpha']=!0x0),this['forceSinglePass']===!0x0&&(a6['forceSinglePass']=!0x0),this['allowOverride']===!0x1&&(a6['allowOverride']=!0x1),this['wireframe']===!0x0&&(a6['wireframe']=!0x0),this['wireframeLinewidth']>0x1&&(a6['wireframeLinewidth']=this['wireframeLinewidth']),this['wireframeLinecap']!=='round'&&(a6['wireframeLinecap']=this['wireframeLinecap']),this['wireframeLinejoin']!=='round'&&(a6['wireframeLinejoin']=this['wireframeLinejoin']),this[iK(0x636)]===!0x0&&(a6['flatShading']=!0x0),this[iK(0x181)]===!0x1&&(a6['visible']=!0x1),this['toneMapped']===!0x1&&(a6['toneMapped']=!0x1),this['fog']===!0x1&&(a6['fog']=!0x1),Object['keys'](this[iK(0x14c)])['length']>0x0&&(a6['userData']=this['userData']);function a7(a8){const iL=iK;let a9=[];for(let ab in a8){let af=a8[ab];delete af['metadata'],a9[iL(0x5d4)](af);}return a9;}if(a5){let a8=a7(a4[iK(0x3da)]),a9=a7(a4['images']);a8['length']>0x0&&(a6['textures']=a8),a9['length']>0x0&&(a6['images']=a9);}return a6;}[d4(0x2d8)](){return new this['constructor']()['copy'](this);}['copy'](a4){const iM=d4;this['name']=a4['name'],this['blending']=a4['blending'],this['side']=a4['side'],this['vertexColors']=a4[iM(0x549)],this['opacity']=a4['opacity'],this['transparent']=a4[iM(0x362)],this['blendSrc']=a4['blendSrc'],this[iM(0x206)]=a4['blendDst'],this['blendEquation']=a4['blendEquation'],this['blendSrcAlpha']=a4[iM(0x1f9)],this['blendDstAlpha']=a4[iM(0x475)],this['blendEquationAlpha']=a4['blendEquationAlpha'],this[iM(0x2d3)]['copy'](a4['blendColor']),this['blendAlpha']=a4[iM(0x274)],this['depthFunc']=a4['depthFunc'],this['depthTest']=a4[iM(0x3ab)],this[iM(0x2cb)]=a4['depthWrite'],this['stencilWriteMask']=a4['stencilWriteMask'],this['stencilFunc']=a4['stencilFunc'],this['stencilRef']=a4[iM(0x322)],this['stencilFuncMask']=a4[iM(0x255)],this['stencilFail']=a4['stencilFail'],this[iM(0x166)]=a4['stencilZFail'],this['stencilZPass']=a4['stencilZPass'],this[iM(0x523)]=a4['stencilWrite'];let a5=a4['clippingPlanes'],a6=null;if(a5!==null){let a7=a5['length'];a6=Array(a7);for(let a8=0x0;a8!==a7;++a8)a6[a8]=a5[a8][iM(0x2d8)]();}return this['clippingPlanes']=a6,this['clipIntersection']=a4['clipIntersection'],this['clipShadows']=a4['clipShadows'],this['shadowSide']=a4['shadowSide'],this['colorWrite']=a4['colorWrite'],this[iM(0x157)]=a4['precision'],this['polygonOffset']=a4['polygonOffset'],this['polygonOffsetFactor']=a4['polygonOffsetFactor'],this['polygonOffsetUnits']=a4['polygonOffsetUnits'],this['dithering']=a4['dithering'],this[iM(0x5e2)]=a4['alphaTest'],this['alphaHash']=a4['alphaHash'],this['alphaToCoverage']=a4['alphaToCoverage'],this['premultipliedAlpha']=a4['premultipliedAlpha'],this['forceSinglePass']=a4['forceSinglePass'],this['allowOverride']=a4[iM(0x5f6)],this['visible']=a4['visible'],this['toneMapped']=a4['toneMapped'],this['userData']=JSON['parse'](JSON['stringify'](a4['userData'])),this;}['dispose'](){const iN=d4;this['dispatchEvent']({'type':iN(0x565)});}set[d4(0x55b)](a4){a4===!0x0&&this['version']++;}},Xr=new W(),Zr=new W(),Qr=new W(),$r=new W(),ei=new W(),ti=new W(),ni=new W(),ri=class{constructor(a4=new W(),a5=new W(0x0,0x0,-0x1)){const iO=d4;this[iO(0x28e)]=a4,this['direction']=a5;}['set'](a4,a5){return this['origin']['copy'](a4),this['direction']['copy'](a5),this;}['copy'](a4){const iP=d4;return this['origin']['copy'](a4[iP(0x28e)]),this['direction']['copy'](a4['direction']),this;}['at'](a4,a5){return a5['copy'](this['origin'])['addScaledVector'](this['direction'],a4);}['lookAt'](a4){const iQ=d4;return this['direction']['copy'](a4)[iQ(0x4cb)](this['origin'])['normalize'](),this;}['recast'](a4){const iR=d4;return this[iR(0x28e)][iR(0x647)](this['at'](a4,Xr)),this;}['closestPointToPoint'](a4,a5){const iS=d4;a5['subVectors'](a4,this[iS(0x28e)]);let a6=a5['dot'](this['direction']);return a6<0x0?a5['copy'](this['origin']):a5[iS(0x647)](this['origin'])['addScaledVector'](this['direction'],a6);}[d4(0x1a2)](a4){return Math['sqrt'](this['distanceSqToPoint'](a4));}['distanceSqToPoint'](a4){const iT=d4;let a5=Xr['subVectors'](a4,this['origin'])['dot'](this['direction']);return a5<0x0?this['origin']['distanceToSquared'](a4):(Xr[iT(0x647)](this['origin'])['addScaledVector'](this['direction'],a5),Xr['distanceToSquared'](a4));}[d4(0x3fe)](a4,a5,a6,a7){const iU=d4;Zr['copy'](a4)['add'](a5)['multiplyScalar'](0.5),Qr['copy'](a5)['sub'](a4)['normalize'](),$r['copy'](this['origin'])['sub'](Zr);let a8=a4['distanceTo'](a5)*0.5,a9=-this[iU(0x13c)]['dot'](Qr),ab=$r['dot'](this['direction']),af=-$r['dot'](Qr),ag=$r['lengthSq'](),ah=Math[iU(0x2ee)](0x1-a9*a9),aj,ak,am,ap;if(ah>0x0){if(aj=a9*af-ab,ak=a9*ab-af,ap=a8*ah,aj>=0x0){if(ak>=-ap){if(ak<=ap){let aq=0x1/ah;aj*=aq,ak*=aq,am=aj*(aj+a9*ak+0x2*ab)+ak*(a9*aj+ak+0x2*af)+ag;}else ak=a8,aj=Math['max'](0x0,-(a9*ak+ab)),am=-aj*aj+ak*(ak+0x2*af)+ag;}else ak=-a8,aj=Math['max'](0x0,-(a9*ak+ab)),am=-aj*aj+ak*(ak+0x2*af)+ag;}else ak<=-ap?(aj=Math['max'](0x0,-(-a9*a8+ab)),ak=aj>0x0?-a8:Math['min'](Math['max'](-a8,-af),a8),am=-aj*aj+ak*(ak+0x2*af)+ag):ak<=ap?(aj=0x0,ak=Math['min'](Math[iU(0x4dd)](-a8,-af),a8),am=ak*(ak+0x2*af)+ag):(aj=Math[iU(0x4dd)](0x0,-(a9*a8+ab)),ak=aj>0x0?a8:Math['min'](Math['max'](-a8,-af),a8),am=-aj*aj+ak*(ak+0x2*af)+ag);}else ak=a9>0x0?-a8:a8,aj=Math[iU(0x4dd)](0x0,-(a9*ak+ab)),am=-aj*aj+ak*(ak+0x2*af)+ag;return a6&&a6['copy'](this[iU(0x28e)])['addScaledVector'](this['direction'],aj),a7&&a7['copy'](Zr)['addScaledVector'](Qr,ak),am;}['intersectSphere'](a4,a5){Xr['subVectors'](a4['center'],this['origin']);let a6=Xr['dot'](this['direction']),a7=Xr['dot'](Xr)-a6*a6,a8=a4['radius']*a4['radius'];if(a7>a8)return null;let a9=Math['sqrt'](a8-a7),ab=a6-a9,af=a6+a9;return af<0x0?null:ab<0x0?this['at'](af,a5):this['at'](ab,a5);}[d4(0x57a)](a4){return a4['radius']<0x0?!0x1:this['distanceSqToPoint'](a4['center'])<=a4['radius']*a4['radius'];}['distanceToPlane'](a4){let a5=a4['normal']['dot'](this['direction']);if(a5===0x0)return a4['distanceToPoint'](this['origin'])===0x0?0x0:null;let a6=-(this['origin']['dot'](a4['normal'])+a4['constant'])/a5;return a6>=0x0?a6:null;}[d4(0x5cc)](a4,a5){let a6=this['distanceToPlane'](a4);return a6===null?null:this['at'](a6,a5);}[d4(0x1cc)](a4){let a5=a4['distanceToPoint'](this['origin']);return a5===0x0||a4['normal']['dot'](this['direction'])*a5<0x0;}['intersectBox'](a4,a5){const iV=d4;let a6,a7,a8,a9,ab,af,ag=0x1/this[iV(0x13c)]['x'],ah=0x1/this['direction']['y'],aj=0x1/this['direction']['z'],ak=this['origin'];return ag>=0x0?(a6=(a4[iV(0x5cd)]['x']-ak['x'])*ag,a7=(a4['max']['x']-ak['x'])*ag):(a6=(a4['max']['x']-ak['x'])*ag,a7=(a4['min']['x']-ak['x'])*ag),ah>=0x0?(a8=(a4['min']['y']-ak['y'])*ah,a9=(a4['max']['y']-ak['y'])*ah):(a8=(a4['max']['y']-ak['y'])*ah,a9=(a4['min']['y']-ak['y'])*ah),a6>a9||a8>a7||((a8>a6||isNaN(a6))&&(a6=a8),(a9<a7||isNaN(a7))&&(a7=a9),aj>=0x0?(ab=(a4['min']['z']-ak['z'])*aj,af=(a4['max']['z']-ak['z'])*aj):(ab=(a4['max']['z']-ak['z'])*aj,af=(a4['min']['z']-ak['z'])*aj),a6>af||ab>a7)||((ab>a6||a6!==a6)&&(a6=ab),(af<a7||a7!==a7)&&(a7=af),a7<0x0)?null:this['at'](a6>=0x0?a6:a7,a5);}['intersectsBox'](a4){return this['intersectBox'](a4,Xr)!==null;}['intersectTriangle'](a4,a5,a6,a7,a8){const iW=d4;ei['subVectors'](a5,a4),ti['subVectors'](a6,a4),ni['crossVectors'](ei,ti);let a9=this['direction']['dot'](ni),ab;if(a9>0x0){if(a7)return null;ab=0x1;}else{if(a9<0x0)ab=-0x1,a9=-a9;else return null;}$r['subVectors'](this['origin'],a4);let af=ab*this['direction']['dot'](ti[iW(0x637)]($r,ti));if(af<0x0)return null;let ag=ab*this['direction']['dot'](ei['cross']($r));if(ag<0x0||af+ag>a9)return null;let ah=-ab*$r['dot'](ni);return ah<0x0?null:this['at'](ah/a9,a8);}['applyMatrix4'](a4){const iX=d4;return this[iX(0x28e)][iX(0x421)](a4),this['direction']['transformDirection'](a4),this;}['equals'](a4){const iY=d4;return a4['origin']['equals'](this['origin'])&&a4[iY(0x13c)][iY(0x5b9)](this['direction']);}['clone'](){return new this['constructor']()['copy'](this);}},ii=class extends Yr{constructor(a4){const iZ=d4;super(),this['isMeshBasicMaterial']=!0x0,this['type']=iZ(0x23d),this[iZ(0x180)]=new Y(0xffffff),this['map']=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this['aoMap']=null,this['aoMapIntensity']=0x1,this[iZ(0x3f8)]=null,this[iZ(0x2d6)]=null,this['envMap']=null,this['envMapRotation']=new wn(),this['combine']=0x0,this['reflectivity']=0x1,this['refractionRatio']=0.98,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['wireframeLinecap']='round',this['wireframeLinejoin']='round',this[iZ(0x5b2)]=!0x0,this['setValues'](a4);}[d4(0x647)](a4){const j0=d4;return super[j0(0x647)](a4),this['color'][j0(0x647)](a4[j0(0x180)]),this['map']=a4['map'],this['lightMap']=a4['lightMap'],this['lightMapIntensity']=a4['lightMapIntensity'],this['aoMap']=a4['aoMap'],this['aoMapIntensity']=a4['aoMapIntensity'],this['specularMap']=a4['specularMap'],this['alphaMap']=a4['alphaMap'],this['envMap']=a4['envMap'],this['envMapRotation']['copy'](a4['envMapRotation']),this['combine']=a4['combine'],this[j0(0x337)]=a4['reflectivity'],this['refractionRatio']=a4['refractionRatio'],this['wireframe']=a4[j0(0x4f1)],this['wireframeLinewidth']=a4['wireframeLinewidth'],this[j0(0x30c)]=a4[j0(0x30c)],this['wireframeLinejoin']=a4['wireframeLinejoin'],this['fog']=a4[j0(0x5b2)],this;}},ai=new J(),oi=new ri(),si=new Ir(),ci=new W(),li=new W(),ui=new W(),di=new W(),fi=new W(),pi=new W(),mi=new W(),hi=new W(),gi=class extends Vn{constructor(a4=new Wr(),a5=new ii()){const j1=d4;super(),this['isMesh']=!0x0,this['type']='Mesh',this['geometry']=a4,this['material']=a5,this['morphTargetDictionary']=void 0x0,this['morphTargetInfluences']=void 0x0,this['count']=0x1,this[j1(0x443)]();}['copy'](a4,a5){const j2=d4;return super['copy'](a4,a5),a4['morphTargetInfluences']!==void 0x0&&(this[j2(0x43a)]=a4[j2(0x43a)]['slice']()),a4['morphTargetDictionary']!==void 0x0&&(this['morphTargetDictionary']=Object[j2(0x451)]({},a4['morphTargetDictionary'])),this['material']=Array[j2(0x571)](a4['material'])?a4['material'][j2(0x228)]():a4['material'],this[j2(0x1c9)]=a4['geometry'],this;}[d4(0x443)](){const j3=d4;let a4=this['geometry']['morphAttributes'],a5=Object['keys'](a4);if(a5['length']>0x0){let a6=a4[a5[0x0]];if(a6!==void 0x0){this['morphTargetInfluences']=[],this['morphTargetDictionary']={};for(let a7=0x0,a8=a6['length'];a7<a8;a7++){let a9=a6[a7]['name']||String(a7);this[j3(0x43a)]['push'](0x0),this[j3(0x291)][a9]=a7;}}}}['getVertexPosition'](a4,a5){const j4=d4;let a6=this[j4(0x1c9)],a7=a6['attributes']['position'],a8=a6['morphAttributes']['position'],a9=a6['morphTargetsRelative'];a5['fromBufferAttribute'](a7,a4);let ab=this[j4(0x43a)];if(a8&&ab){pi['set'](0x0,0x0,0x0);for(let af=0x0,ag=a8['length'];af<ag;af++){let ah=ab[af],aj=a8[af];ah!==0x0&&(fi[j4(0x2ba)](aj,a4),a9?pi['addScaledVector'](fi,ah):pi['addScaledVector'](fi[j4(0x4cb)](a5),ah));}a5[j4(0x232)](pi);}return a5;}['raycast'](a4,a5){const j5=d4;let a6=this['geometry'],a7=this['material'],a8=this['matrixWorld'];a7!==void 0x0&&(a6['boundingSphere']===null&&a6['computeBoundingSphere'](),si['copy'](a6['boundingSphere']),si[j5(0x421)](a8),oi['copy'](a4[j5(0x54c)])[j5(0x229)](a4['near']),!(si['containsPoint'](oi['origin'])===!0x1&&(oi[j5(0x299)](si,ci)===null||oi['origin']['distanceToSquared'](ci)>Math['pow'](a4['far']-a4['near'],0x2)))&&(ai['copy'](a8)['invert'](),oi['copy'](a4['ray'])['applyMatrix4'](ai),!(a6['boundingBox']!==null&&oi['intersectsBox'](a6['boundingBox'])===!0x1)&&this['_computeIntersections'](a4,a5,oi)));}['_computeIntersections'](a4,a5,a6){const j6=d4;let a7,a8=this['geometry'],a9=this['material'],ab=a8['index'],af=a8['attributes']['position'],ag=a8['attributes']['uv'],ah=a8['attributes']['uv1'],aj=a8['attributes']['normal'],ak=a8['groups'],am=a8['drawRange'];if(ab!==null){if(Array['isArray'](a9))for(let ap=0x0,aq=ak['length'];ap<aq;ap++){let av=ak[ap],aw=a9[av['materialIndex']],ax=Math['max'](av['start'],am['start']),ay=Math['min'](ab['count'],Math[j6(0x5cd)](av[j6(0x29e)]+av['count'],am['start']+am[j6(0x218)]));for(let az=ax,aA=ay;az<aA;az+=0x3){let aB=ab['getX'](az),aC=ab['getX'](az+0x1),aD=ab['getX'](az+0x2);a7=vi(this,aw,a4,a6,ag,ah,aj,aB,aC,aD),a7&&(a7['faceIndex']=Math['floor'](az/0x3),a7[j6(0x24f)]['materialIndex']=av['materialIndex'],a5['push'](a7));}}else{let aE=Math['max'](0x0,am['start']),aF=Math[j6(0x5cd)](ab['count'],am['start']+am['count']);for(let aG=aE,aH=aF;aG<aH;aG+=0x3){let aI=ab[j6(0x5c8)](aG),aJ=ab[j6(0x5c8)](aG+0x1),aK=ab['getX'](aG+0x2);a7=vi(this,a9,a4,a6,ag,ah,aj,aI,aJ,aK),a7&&(a7['faceIndex']=Math['floor'](aG/0x3),a5['push'](a7));}}}else{if(af!==void 0x0){if(Array['isArray'](a9))for(let aL=0x0,aM=ak['length'];aL<aM;aL++){let aN=ak[aL],aO=a9[aN[j6(0x2a9)]],aP=Math[j6(0x4dd)](aN['start'],am['start']),aQ=Math['min'](af[j6(0x218)],Math['min'](aN['start']+aN['count'],am['start']+am['count']));for(let aR=aP,aS=aQ;aR<aS;aR+=0x3){let aT=aR,aU=aR+0x1,aV=aR+0x2;a7=vi(this,aO,a4,a6,ag,ah,aj,aT,aU,aV),a7&&(a7['faceIndex']=Math['floor'](aR/0x3),a7['face']['materialIndex']=aN['materialIndex'],a5['push'](a7));}}else{let aW=Math[j6(0x4dd)](0x0,am['start']),aX=Math['min'](af['count'],am['start']+am[j6(0x218)]);for(let aY=aW,aZ=aX;aY<aZ;aY+=0x3){let b0=aY,b1=aY+0x1,b2=aY+0x2;a7=vi(this,a9,a4,a6,ag,ah,aj,b0,b1,b2),a7&&(a7['faceIndex']=Math[j6(0x4a4)](aY/0x3),a5['push'](a7));}}}}}};function _i(a4,a5,a6,a7,a8,a9,ab,af){const j7=d4;let ag;if(ag=a5['side']===0x1?a7['intersectTriangle'](ab,a9,a8,!0x0,af):a7[j7(0x199)](a8,a9,ab,a5[j7(0x53d)]===0x0,af),ag===null)return null;hi['copy'](af),hi['applyMatrix4'](a4['matrixWorld']);let ah=a6['ray']['origin']['distanceTo'](hi);return ah<a6['near']||ah>a6['far']?null:{'distance':ah,'point':hi['clone'](),'object':a4};}function vi(a4,a5,a6,a7,a8,a9,ab,af,ag,ah){const j8=d4;a4[j8(0x342)](af,li),a4['getVertexPosition'](ag,ui),a4['getVertexPosition'](ah,di);let aj=_i(a4,a5,a6,a7,li,ui,di,mi);if(aj){let ak=new W();ur['getBarycoord'](mi,li,ui,di,ak),a8&&(aj['uv']=ur['getInterpolatedAttribute'](a8,af,ag,ah,ak,new U())),a9&&(aj['uv1']=ur['getInterpolatedAttribute'](a9,af,ag,ah,ak,new U())),ab&&(aj[j8(0x171)]=ur['getInterpolatedAttribute'](ab,af,ag,ah,ak,new W()),aj['normal']['dot'](a7['direction'])>0x0&&aj['normal']['multiplyScalar'](-0x1));let am={'a':af,'b':ag,'c':ah,'normal':new W(),'materialIndex':0x0};ur['getNormal'](li,ui,di,am['normal']),aj['face']=am,aj['barycoord']=ak;}return aj;}var yi=new q(),bi=new q(),xi=new q(),Si=new q(),Ci=new J(),wi=new W(),Ti=new Ir(),Ei=new J(),Di=new ri(),Oi=class extends gi{constructor(a4,a5){super(a4,a5),this['isSkinnedMesh']=!0x0,this['type']='SkinnedMesh',this['bindMode']=h,this['bindMatrix']=new J(),this['bindMatrixInverse']=new J(),this['boundingBox']=null,this['boundingSphere']=null;}[d4(0x413)](){const j9=d4;let a4=this['geometry'];this['boundingBox']===null&&(this[j9(0x4c6)]=new dr()),this['boundingBox']['makeEmpty']();let a5=a4['getAttribute']('position');for(let a6=0x0;a6<a5['count'];a6++)this['getVertexPosition'](a6,wi),this['boundingBox'][j9(0x4e1)](wi);}['computeBoundingSphere'](){const jb=d4;let a4=this[jb(0x1c9)];this[jb(0x1db)]===null&&(this['boundingSphere']=new Ir()),this['boundingSphere']['makeEmpty']();let a5=a4[jb(0x177)]('position');for(let a6=0x0;a6<a5['count'];a6++)this['getVertexPosition'](a6,wi),this['boundingSphere']['expandByPoint'](wi);}['copy'](a4,a5){const jd=d4;return super['copy'](a4,a5),this['bindMode']=a4['bindMode'],this['bindMatrix']['copy'](a4['bindMatrix']),this['bindMatrixInverse']['copy'](a4['bindMatrixInverse']),this['skeleton']=a4['skeleton'],a4['boundingBox']!==null&&(this['boundingBox']=a4[jd(0x4c6)][jd(0x2d8)]()),a4['boundingSphere']!==null&&(this['boundingSphere']=a4['boundingSphere']['clone']()),this;}['raycast'](a4,a5){const jf=d4;let a6=this['material'],a7=this[jf(0x3cd)];a6!==void 0x0&&(this[jf(0x1db)]===null&&this['computeBoundingSphere'](),Ti['copy'](this[jf(0x1db)]),Ti['applyMatrix4'](a7),a4['ray']['intersectsSphere'](Ti)!==!0x1&&(Ei['copy'](a7)[jf(0x545)](),Di['copy'](a4[jf(0x54c)])['applyMatrix4'](Ei),!(this['boundingBox']!==null&&Di['intersectsBox'](this[jf(0x4c6)])===!0x1)&&this['_computeIntersections'](a4,a5,Di)));}['getVertexPosition'](a4,a5){return super['getVertexPosition'](a4,a5),this['applyBoneTransform'](a4,a5),a5;}[d4(0x494)](a4,a5){const jg=d4;this['skeleton']=a4,a5===void 0x0&&(this[jg(0x5d0)](!0x0),this['skeleton'][jg(0x63e)](),a5=this['matrixWorld']),this['bindMatrix']['copy'](a5),this['bindMatrixInverse']['copy'](a5)['invert']();}['pose'](){this['skeleton']['pose']();}['normalizeSkinWeights'](){const jh=d4;let a4=new q(),a5=this['geometry']['attributes']['skinWeight'];for(let a6=0x0,a7=a5[jh(0x218)];a6<a7;a6++){a4['fromBufferAttribute'](a5,a6);let a8=0x1/a4['manhattanLength']();a8===Infinity?a4['set'](0x1,0x0,0x0,0x0):a4['multiplyScalar'](a8),a5['setXYZW'](a6,a4['x'],a4['y'],a4['z'],a4['w']);}}[d4(0x5d0)](a4){const jj=d4;super['updateMatrixWorld'](a4),this['bindMode']==='attached'?this['bindMatrixInverse']['copy'](this['matrixWorld'])[jj(0x545)]():this['bindMode']==='detached'?this['bindMatrixInverse']['copy'](this['bindMatrix'])['invert']():z('SkinnedMesh:\x20Unrecognized\x20bindMode:\x20'+this['bindMode']);}['applyBoneTransform'](a4,a5){const jk=d4;let a6=this['skeleton'],a7=this['geometry'];bi['fromBufferAttribute'](a7['attributes']['skinIndex'],a4),xi['fromBufferAttribute'](a7['attributes']['skinWeight'],a4),a5['isVector4']?(yi['copy'](a5),a5['set'](0x0,0x0,0x0,0x0)):(yi[jk(0x23a)](...a5,0x1),a5['set'](0x0,0x0,0x0)),yi['applyMatrix4'](this['bindMatrix']);for(let a8=0x0;a8<0x4;a8++){let a9=xi['getComponent'](a8);if(a9!==0x0){let ab=bi['getComponent'](a8);Ci['multiplyMatrices'](a6['bones'][ab]['matrixWorld'],a6[jk(0x5a1)][ab]),a5['addScaledVector'](Si['copy'](yi)['applyMatrix4'](Ci),a9);}}return a5['isVector4']&&(a5['w']=yi['w']),a5['applyMatrix4'](this['bindMatrixInverse']);}},ki=class extends Vn{constructor(){super(),this['isBone']=!0x0,this['type']='Bone';}},Ai=class extends un{constructor(a4=null,a5=0x1,a6=0x1,a7,a8,a9,ab,af,ag=y,ah=y,aj,ak){const jm=d4;super(null,a9,ab,af,ag,ah,a7,a8,aj,ak),this['isDataTexture']=!0x0,this[jm(0x262)]={'data':a4,'width':a5,'height':a6},this['generateMipmaps']=!0x1,this['flipY']=!0x1,this['unpackAlignment']=0x1;}},ji=new J(),Mi=new J(),Ni=class e{constructor(a4=[],a5=[]){this['uuid']=Et(),this['bones']=a4['slice'](0x0),this['boneInverses']=a5,this['boneMatrices']=null,this['previousBoneMatrices']=null,this['boneTexture']=null,this['init']();}[d4(0x4ae)](){const jp=d4;let a4=this['bones'],a5=this['boneInverses'];if(this['boneMatrices']=new Float32Array(a4['length']*0x10),a5[jp(0x3ac)]===0x0)this['calculateInverses']();else{if(a4['length']!==a5['length']){z(jp(0x306)),this['boneInverses']=[];for(let a6=0x0,a7=this['bones']['length'];a6<a7;a6++)this['boneInverses']['push'](new J());}}}['calculateInverses'](){const jq=d4;this['boneInverses'][jq(0x3ac)]=0x0;for(let a4=0x0,a5=this['bones']['length'];a4<a5;a4++){let a6=new J();this['bones'][a4]&&a6['copy'](this['bones'][a4]['matrixWorld'])['invert'](),this['boneInverses']['push'](a6);}}['pose'](){const jv=d4;for(let a4=0x0,a5=this['bones']['length'];a4<a5;a4++){let a6=this[jv(0x167)][a4];a6&&a6[jv(0x3cd)]['copy'](this['boneInverses'][a4])['invert']();}for(let a7=0x0,a8=this[jv(0x167)]['length'];a7<a8;a7++){let a9=this['bones'][a7];a9&&(a9[jv(0x20e)]&&a9[jv(0x20e)]['isBone']?(a9[jv(0x3ed)]['copy'](a9['parent']['matrixWorld'])['invert'](),a9['matrix'][jv(0x29a)](a9['matrixWorld'])):a9['matrix']['copy'](a9['matrixWorld']),a9[jv(0x3ed)]['decompose'](a9['position'],a9['quaternion'],a9['scale']));}}[d4(0x26f)](){const jw=d4;let a4=this['bones'],a5=this['boneInverses'],a6=this['boneMatrices'],a7=this['boneTexture'];for(let a8=0x0,a9=a4['length'];a8<a9;a8++){let ab=a4[a8]?a4[a8]['matrixWorld']:Mi;ji['multiplyMatrices'](ab,a5[a8]),ji[jw(0x226)](a6,a8*0x10);}a7!==null&&(a7[jw(0x55b)]=!0x0);}['clone'](){return new e(this['bones'],this['boneInverses']);}[d4(0x25c)](){let a4=Math['sqrt'](this['bones']['length']*0x4);a4=Math['ceil'](a4/0x4)*0x4,a4=Math['max'](a4,0x4);let a5=new Float32Array(a4*a4*0x4);a5['set'](this['boneMatrices']);let a6=new Ai(a5,a4,a4,oe,A);return a6['needsUpdate']=!0x0,this['boneMatrices']=a5,this['boneTexture']=a6,this;}[d4(0x37c)](a4){const jx=d4;for(let a5=0x0,a6=this[jx(0x167)]['length'];a5<a6;a5++){let a7=this['bones'][a5];if(a7['name']===a4)return a7;}}['dispose'](){const jy=d4;this[jy(0x55f)]!==null&&(this['boneTexture'][jy(0x565)](),this['boneTexture']=null);}['fromJSON'](a4,a5){const jz=d4;this['uuid']=a4['uuid'];for(let a6=0x0,a7=a4['bones']['length'];a6<a7;a6++){let a8=a4['bones'][a6],a9=a5[a8];a9===void 0x0&&(z('Skeleton:\x20No\x20bone\x20found\x20with\x20UUID:',a8),a9=new ki()),this['bones']['push'](a9),this['boneInverses']['push'](new J()[jz(0x3df)](a4[jz(0x5a1)][a6]));}return this['init'](),this;}['toJSON'](){const jA=d4;let a4={'metadata':{'version':4.7,'type':'Skeleton','generator':'Skeleton.toJSON'},'bones':[],'boneInverses':[]};a4[jA(0x2a7)]=this['uuid'];let a5=this['bones'],a6=this['boneInverses'];for(let a7=0x0,a8=a5['length'];a7<a8;a7++){let a9=a5[a7];a4[jA(0x167)]['push'](a9['uuid']);let ab=a6[a7];a4['boneInverses']['push'](ab[jA(0x226)]());}return a4;}},Pi=class extends kr{constructor(a4,a5,a6,a7=0x1){super(a4,a5,a6),this['isInstancedBufferAttribute']=!0x0,this['meshPerAttribute']=a7;}['copy'](a4){return super['copy'](a4),this['meshPerAttribute']=a4['meshPerAttribute'],this;}['toJSON'](){let a4=super['toJSON']();return a4['meshPerAttribute']=this['meshPerAttribute'],a4['isInstancedBufferAttribute']=!0x0,a4;}},Fi=new J(),Ii=new J(),Li=[],Ri=new dr(),zi=new J(),Bi=new gi(),Vi=new Ir(),Hi=class extends gi{constructor(a4,a5,a6){const jB=d4;super(a4,a5),this['isInstancedMesh']=!0x0,this[jB(0x248)]=new Pi(new Float32Array(a6*0x10),0x10),this['previousInstanceMatrix']=null,this['instanceColor']=null,this[jB(0x553)]=null,this[jB(0x218)]=a6,this[jB(0x4c6)]=null,this['boundingSphere']=null;for(let a7=0x0;a7<a6;a7++)this['setMatrixAt'](a7,zi);}['computeBoundingBox'](){const jC=d4;let a4=this['geometry'],a5=this['count'];this['boundingBox']===null&&(this['boundingBox']=new dr()),a4['boundingBox']===null&&a4['computeBoundingBox'](),this['boundingBox']['makeEmpty']();for(let a6=0x0;a6<a5;a6++)this['getMatrixAt'](a6,Fi),Ri['copy'](a4[jC(0x4c6)])['applyMatrix4'](Fi),this['boundingBox']['union'](Ri);}['computeBoundingSphere'](){const jD=d4;let a4=this['geometry'],a5=this['count'];this[jD(0x1db)]===null&&(this['boundingSphere']=new Ir()),a4['boundingSphere']===null&&a4['computeBoundingSphere'](),this['boundingSphere']['makeEmpty']();for(let a6=0x0;a6<a5;a6++)this['getMatrixAt'](a6,Fi),Vi[jD(0x647)](a4['boundingSphere'])['applyMatrix4'](Fi),this['boundingSphere']['union'](Vi);}['copy'](a4,a5){const jE=d4;return super['copy'](a4,a5),this['instanceMatrix']['copy'](a4[jE(0x248)]),a4['previousInstanceMatrix']!==null&&(this['previousInstanceMatrix']=a4['previousInstanceMatrix']['clone']()),a4[jE(0x553)]!==null&&(this['morphTexture']=a4['morphTexture']['clone']()),a4['instanceColor']!==null&&(this['instanceColor']=a4['instanceColor']['clone']()),this[jE(0x218)]=a4['count'],a4['boundingBox']!==null&&(this[jE(0x4c6)]=a4['boundingBox']['clone']()),a4['boundingSphere']!==null&&(this['boundingSphere']=a4['boundingSphere'][jE(0x2d8)]()),this;}[d4(0x3af)](a4,a5){const jF=d4;return this[jF(0x3fa)]===null?a5['setRGB'](0x1,0x1,0x1):a5[jF(0x3df)](this[jF(0x3fa)]['array'],a4*0x3);}['getMatrixAt'](a4,a5){const jG=d4;return a5['fromArray'](this[jG(0x248)]['array'],a4*0x10);}['getMorphAt'](a4,a5){const jH=d4;let a6=a5[jH(0x43a)],a7=this[jH(0x553)]['source']['data']['data'],a8=a4*(a6['length']+0x1)+0x1;for(let a9=0x0;a9<a6['length'];a9++)a6[a9]=a7[a8+a9];}['raycast'](a4,a5){const jI=d4;let a6=this['matrixWorld'],a7=this[jI(0x218)];if(Bi['geometry']=this['geometry'],Bi['material']=this['material'],Bi['material']!==void 0x0&&(this['boundingSphere']===null&&this['computeBoundingSphere'](),Vi['copy'](this['boundingSphere']),Vi['applyMatrix4'](a6),a4['ray']['intersectsSphere'](Vi)!==!0x1))for(let a8=0x0;a8<a7;a8++){this['getMatrixAt'](a8,Fi),Ii['multiplyMatrices'](a6,Fi),Bi['matrixWorld']=Ii,Bi[jI(0x2fe)](a4,Li);for(let a9=0x0,ab=Li['length'];a9<ab;a9++){let af=Li[a9];af['instanceId']=a8,af['object']=this,a5['push'](af);}Li['length']=0x0;}}['setColorAt'](a4,a5){const jJ=d4;return this['instanceColor']===null&&(this[jJ(0x3fa)]=new Pi(new Float32Array(this['instanceMatrix']['count']*0x3)['fill'](0x1),0x3)),a5['toArray'](this['instanceColor']['array'],a4*0x3),this;}['setMatrixAt'](a4,a5){const jK=d4;return a5['toArray'](this[jK(0x248)]['array'],a4*0x10),this;}['setMorphAt'](a4,a5){const jL=d4;let a6=a5['morphTargetInfluences'],a7=a6['length']+0x1;this[jL(0x553)]===null&&(this['morphTexture']=new Ai(new Float32Array(a7*this['count']),a7,this['count'],le,A));let a8=this['morphTexture']['source']['data']['data'],a9=0x0;for(let ag=0x0;ag<a6['length'];ag++)a9+=a6[ag];let ab=this['geometry']['morphTargetsRelative']?0x1:0x1-a9,af=a7*a4;return a8[af]=ab,a8[jL(0x23a)](a6,af+0x1),this;}['updateMorphTargets'](){}['dispose'](){const jM=d4;this[jM(0x3de)]({'type':'dispose'}),this['morphTexture']!==null&&(this['morphTexture'][jM(0x565)](),this['morphTexture']=null);}},Ui=new W(),Wi=new W(),Gi=new G(),Ki=class{constructor(a4=new W(0x1,0x0,0x0),a5=0x0){this['isPlane']=!0x0,this['normal']=a4,this['constant']=a5;}['set'](a4,a5){return this['normal']['copy'](a4),this['constant']=a5,this;}['setComponents'](a4,a5,a6,a7){return this['normal']['set'](a4,a5,a6),this['constant']=a7,this;}['setFromNormalAndCoplanarPoint'](a4,a5){return this['normal']['copy'](a4),this['constant']=-a5['dot'](this['normal']),this;}['setFromCoplanarPoints'](a4,a5,a6){let a7=Ui['subVectors'](a6,a5)['cross'](Wi['subVectors'](a4,a5))['normalize']();return this['setFromNormalAndCoplanarPoint'](a7,a4),this;}['copy'](a4){const jN=d4;return this['normal']['copy'](a4[jN(0x171)]),this['constant']=a4['constant'],this;}[d4(0x349)](){const jO=d4;let a4=0x1/this['normal'][jO(0x3ac)]();return this['normal']['multiplyScalar'](a4),this['constant']*=a4,this;}['negate'](){const jP=d4;return this[jP(0x2f9)]*=-0x1,this[jP(0x171)][jP(0x13d)](),this;}[d4(0x1a2)](a4){const jQ=d4;return this['normal']['dot'](a4)+this[jQ(0x2f9)];}[d4(0x3a1)](a4){return this['distanceToPoint'](a4['center'])-a4['radius'];}['projectPoint'](a4,a5){const jR=d4;return a5[jR(0x647)](a4)['addScaledVector'](this['normal'],-this[jR(0x1a2)](a4));}['intersectLine'](a4,a5,a6=!0x0){const jS=d4;let a7=a4['delta'](Ui),a8=this['normal']['dot'](a7);if(a8===0x0)return this['distanceToPoint'](a4['start'])===0x0?a5['copy'](a4['start']):null;let a9=-(a4['start']['dot'](this['normal'])+this['constant'])/a8;return a6===!0x0&&(a9<0x0||a9>0x1)?null:a5['copy'](a4['start'])[jS(0x558)](a7,a9);}['intersectsLine'](a4){let a5=this['distanceToPoint'](a4['start']),a6=this['distanceToPoint'](a4['end']);return a5<0x0&&a6>0x0||a6<0x0&&a5>0x0;}['intersectsBox'](a4){const jT=d4;return a4[jT(0x1cc)](this);}['intersectsSphere'](a4){return a4['intersectsPlane'](this);}['coplanarPoint'](a4){const jU=d4;return a4[jU(0x647)](this['normal'])['multiplyScalar'](-this['constant']);}['applyMatrix4'](a4,a5){const jV=d4;let a6=a5||Gi['getNormalMatrix'](a4),a7=this['coplanarPoint'](Ui)['applyMatrix4'](a4),a8=this['normal']['applyMatrix3'](a6)['normalize']();return this['constant']=-a7[jV(0x4ba)](a8),this;}['translate'](a4){const jW=d4;return this['constant']-=a4[jW(0x4ba)](this['normal']),this;}['equals'](a4){return a4['normal']['equals'](this['normal'])&&a4['constant']===this['constant'];}['clone'](){return new this['constructor']()['copy'](this);}},qi=new Ir(),Ji=new U(0.5,0.5),Yi=new W(),Xi=class{constructor(a4=new Ki(),a5=new Ki(),a6=new Ki(),a7=new Ki(),a8=new Ki(),a9=new Ki()){this['planes']=[a4,a5,a6,a7,a8,a9];}['set'](a4,a5,a6,a7,a8,a9){const jX=d4;let ab=this['planes'];return ab[0x0][jX(0x647)](a4),ab[0x1]['copy'](a5),ab[0x2]['copy'](a6),ab[0x3]['copy'](a7),ab[0x4][jX(0x647)](a8),ab[0x5]['copy'](a9),this;}['copy'](a4){const jY=d4;let a5=this['planes'];for(let a6=0x0;a6<0x6;a6++)a5[a6][jY(0x647)](a4['planes'][a6]);return this;}['setFromProjectionMatrix'](a4,a5=lt,a6=!0x1){const jZ=d4;let a7=this['planes'],a8=a4[jZ(0x633)],a9=a8[0x0],ab=a8[0x1],af=a8[0x2],ag=a8[0x3],ah=a8[0x4],aj=a8[0x5],ak=a8[0x6],am=a8[0x7],ap=a8[0x8],aq=a8[0x9],av=a8[0xa],aw=a8[0xb],ax=a8[0xc],ay=a8[0xd],az=a8[0xe],aA=a8[0xf];if(a7[0x0]['setComponents'](ag-a9,am-ah,aw-ap,aA-ax)['normalize'](),a7[0x1]['setComponents'](ag+a9,am+ah,aw+ap,aA+ax)['normalize'](),a7[0x2]['setComponents'](ag+ab,am+aj,aw+aq,aA+ay)['normalize'](),a7[0x3]['setComponents'](ag-ab,am-aj,aw-aq,aA-ay)['normalize'](),a6)a7[0x4]['setComponents'](af,ak,av,az)['normalize'](),a7[0x5]['setComponents'](ag-af,am-ak,aw-av,aA-az)['normalize']();else{if(a7[0x4][jZ(0x227)](ag-af,am-ak,aw-av,aA-az)['normalize'](),a5===0x7d0)a7[0x5]['setComponents'](ag+af,am+ak,aw+av,aA+az)['normalize']();else{if(a5===0x7d1)a7[0x5]['setComponents'](af,ak,av,az)['normalize']();else throw Error('THREE.Frustum.setFromProjectionMatrix():\x20Invalid\x20coordinate\x20system:\x20'+a5);}}return this;}['intersectsObject'](a4){const k0=d4;if(a4['boundingSphere']!==void 0x0)a4['boundingSphere']===null&&a4['computeBoundingSphere'](),qi[k0(0x647)](a4['boundingSphere'])['applyMatrix4'](a4['matrixWorld']);else{let a5=a4['geometry'];a5['boundingSphere']===null&&a5['computeBoundingSphere'](),qi['copy'](a5['boundingSphere'])[k0(0x421)](a4['matrixWorld']);}return this['intersectsSphere'](qi);}['intersectsSprite'](a4){const k1=d4;return qi['center'][k1(0x23a)](0x0,0x0,0x0),qi['radius']=0.7071067811865476+Ji[k1(0x1ac)](a4['center']),qi['applyMatrix4'](a4['matrixWorld']),this['intersectsSphere'](qi);}['intersectsSphere'](a4){const k2=d4;let a5=this['planes'],a6=a4[k2(0x39c)],a7=-a4['radius'];for(let a8=0x0;a8<0x6;a8++)if(a5[a8][k2(0x1a2)](a6)<a7)return!0x1;return!0x0;}['intersectsBox'](a4){const k3=d4;let a5=this['planes'];for(let a6=0x0;a6<0x6;a6++){let a7=a5[a6];if(Yi['x']=a7['normal']['x']>0x0?a4[k3(0x4dd)]['x']:a4['min']['x'],Yi['y']=a7['normal']['y']>0x0?a4['max']['y']:a4['min']['y'],Yi['z']=a7['normal']['z']>0x0?a4['max']['z']:a4['min']['z'],a7['distanceToPoint'](Yi)<0x0)return!0x1;}return!0x0;}['containsPoint'](a4){let a5=this['planes'];for(let a6=0x0;a6<0x6;a6++)if(a5[a6]['distanceToPoint'](a4)<0x0)return!0x1;return!0x0;}['clone'](){const k4=d4;return new this[(k4(0x407))]()['copy'](this);}},Zi=class extends Yr{constructor(a4){super(),this['isLineBasicMaterial']=!0x0,this['type']='LineBasicMaterial',this['color']=new Y(0xffffff),this['map']=null,this['linewidth']=0x1,this['linecap']='round',this['linejoin']='round',this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){return super['copy'](a4),this['color']['copy'](a4['color']),this['map']=a4['map'],this['linewidth']=a4['linewidth'],this['linecap']=a4['linecap'],this['linejoin']=a4['linejoin'],this['fog']=a4['fog'],this;}},Qi=new W(),$i=new W(),ea=new J(),ta=new ri(),na=new Ir(),ra=new W(),ia=new W(),aa=class extends Vn{constructor(a4=new Wr(),a5=new Zi()){const k5=d4;super(),this['isLine']=!0x0,this[k5(0x3e0)]='Line',this[k5(0x1c9)]=a4,this['material']=a5,this['morphTargetDictionary']=void 0x0,this['morphTargetInfluences']=void 0x0,this['updateMorphTargets']();}['copy'](a4,a5){const k6=d4;return super['copy'](a4,a5),this['material']=Array[k6(0x571)](a4['material'])?a4['material'][k6(0x228)]():a4['material'],this[k6(0x1c9)]=a4['geometry'],this;}['computeLineDistances'](){const k7=d4;let a4=this['geometry'];if(a4[k7(0x434)]===null){let a5=a4['attributes'][k7(0x4ed)],a6=[0x0];for(let a7=0x1,a8=a5['count'];a7<a8;a7++)Qi['fromBufferAttribute'](a5,a7-0x1),$i[k7(0x2ba)](a5,a7),a6[a7]=a6[a7-0x1],a6[a7]+=Qi['distanceTo']($i);a4['setAttribute']('lineDistance',new X(a6,0x1));}else z('Line.computeLineDistances():\x20Computation\x20only\x20possible\x20with\x20non-indexed\x20BufferGeometry.');return this;}[d4(0x2fe)](a4,a5){const k8=d4;let a6=this['geometry'],a7=this['matrixWorld'],a8=a4['params']['Line']['threshold'],a9=a6['drawRange'];if(a6['boundingSphere']===null&&a6['computeBoundingSphere'](),na['copy'](a6['boundingSphere']),na['applyMatrix4'](a7),na['radius']+=a8,a4['ray']['intersectsSphere'](na)===!0x1)return;ea[k8(0x647)](a7)['invert'](),ta['copy'](a4[k8(0x54c)])['applyMatrix4'](ea);let ab=a8/((this['scale']['x']+this['scale']['y']+this['scale']['z'])/0x3),af=ab*ab,ag=this['isLineSegments']?0x2:0x1,ah=a6['index'],aj=a6['attributes']['position'];if(ah!==null){let ak=Math[k8(0x4dd)](0x0,a9['start']),am=Math['min'](ah['count'],a9[k8(0x29e)]+a9['count']);for(let ap=ak,aq=am-0x1;ap<aq;ap+=ag){let av=ah['getX'](ap),aw=ah['getX'](ap+0x1),ax=oa(this,a4,ta,af,av,aw,ap);ax&&a5['push'](ax);}if(this['isLineLoop']){let ay=ah[k8(0x5c8)](am-0x1),az=ah['getX'](ak),aA=oa(this,a4,ta,af,ay,az,am-0x1);aA&&a5['push'](aA);}}else{let aB=Math['max'](0x0,a9['start']),aC=Math['min'](aj[k8(0x218)],a9['start']+a9['count']);for(let aD=aB,aE=aC-0x1;aD<aE;aD+=ag){let aF=oa(this,a4,ta,af,aD,aD+0x1,aD);aF&&a5['push'](aF);}if(this[k8(0x48f)]){let aG=oa(this,a4,ta,af,aC-0x1,aB,aC-0x1);aG&&a5['push'](aG);}}}['updateMorphTargets'](){const k9=d4;let a4=this['geometry']['morphAttributes'],a5=Object['keys'](a4);if(a5['length']>0x0){let a6=a4[a5[0x0]];if(a6!==void 0x0){this['morphTargetInfluences']=[],this['morphTargetDictionary']={};for(let a7=0x0,a8=a6['length'];a7<a8;a7++){let a9=a6[a7][k9(0x3bd)]||String(a7);this['morphTargetInfluences']['push'](0x0),this['morphTargetDictionary'][a9]=a7;}}}}};function oa(a4,a5,a6,a7,a8,a9,ab){const kb=d4;let af=a4[kb(0x1c9)]['attributes']['position'];if(Qi[kb(0x2ba)](af,a8),$i['fromBufferAttribute'](af,a9),a6[kb(0x3fe)](Qi,$i,ra,ia)>a7)return;ra['applyMatrix4'](a4['matrixWorld']);let ag=a5['ray']['origin']['distanceTo'](ra);if(!(ag<a5['near']||ag>a5['far']))return{'distance':ag,'point':ia['clone']()['applyMatrix4'](a4['matrixWorld']),'index':ab,'face':null,'faceIndex':null,'barycoord':null,'object':a4};}var sa=new W(),ca=new W(),la=class extends aa{constructor(a4,a5){const kd=d4;super(a4,a5),this['isLineSegments']=!0x0,this['type']=kd(0x453);}['computeLineDistances'](){const kf=d4;let a4=this['geometry'];if(a4['index']===null){let a5=a4[kf(0x1b6)]['position'],a6=[];for(let a7=0x0,a8=a5['count'];a7<a8;a7+=0x2)sa[kf(0x2ba)](a5,a7),ca[kf(0x2ba)](a5,a7+0x1),a6[a7]=a7===0x0?0x0:a6[a7-0x1],a6[a7+0x1]=a6[a7]+sa['distanceTo'](ca);a4[kf(0x5ae)]('lineDistance',new X(a6,0x1));}else z(kf(0x433));return this;}},ua=class extends aa{constructor(a4,a5){super(a4,a5),this['isLineLoop']=!0x0,this['type']='LineLoop';}},da=class extends Yr{constructor(a4){const kg=d4;super(),this['isPointsMaterial']=!0x0,this['type']='PointsMaterial',this[kg(0x180)]=new Y(0xffffff),this['map']=null,this['alphaMap']=null,this[kg(0x60e)]=0x1,this[kg(0x25f)]=!0x0,this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const kh=d4;return super['copy'](a4),this['color']['copy'](a4[kh(0x180)]),this[kh(0x2db)]=a4['map'],this[kh(0x2d6)]=a4[kh(0x2d6)],this['size']=a4[kh(0x60e)],this['sizeAttenuation']=a4['sizeAttenuation'],this['fog']=a4['fog'],this;}},fa=new J(),pa=new ri(),ma=new Ir(),ha=new W(),ga=class extends Vn{constructor(a4=new Wr(),a5=new da()){const kj=d4;super(),this['isPoints']=!0x0,this['type']='Points',this['geometry']=a4,this['material']=a5,this[kj(0x291)]=void 0x0,this['morphTargetInfluences']=void 0x0,this[kj(0x443)]();}['copy'](a4,a5){const kk=d4;return super[kk(0x647)](a4,a5),this[kk(0x22b)]=Array['isArray'](a4['material'])?a4[kk(0x22b)]['slice']():a4['material'],this[kk(0x1c9)]=a4['geometry'],this;}['raycast'](a4,a5){const km=d4;let a6=this['geometry'],a7=this[km(0x3cd)],a8=a4['params'][km(0x3b0)]['threshold'],a9=a6['drawRange'];if(a6['boundingSphere']===null&&a6['computeBoundingSphere'](),ma['copy'](a6['boundingSphere']),ma['applyMatrix4'](a7),ma['radius']+=a8,a4[km(0x54c)]['intersectsSphere'](ma)===!0x1)return;fa[km(0x647)](a7)['invert'](),pa['copy'](a4['ray'])[km(0x421)](fa);let ab=a8/((this['scale']['x']+this['scale']['y']+this['scale']['z'])/0x3),af=ab*ab,ag=a6['index'],ah=a6['attributes']['position'];if(ag!==null){let aj=Math['max'](0x0,a9['start']),ak=Math['min'](ag['count'],a9['start']+a9['count']);for(let am=aj,ap=ak;am<ap;am++){let aq=ag[km(0x5c8)](am);ha['fromBufferAttribute'](ah,aq),_a(ha,aq,af,a7,a4,a5,this);}}else{let av=Math['max'](0x0,a9['start']),aw=Math['min'](ah['count'],a9['start']+a9[km(0x218)]);for(let ax=av,ay=aw;ax<ay;ax++)ha['fromBufferAttribute'](ah,ax),_a(ha,ax,af,a7,a4,a5,this);}}['updateMorphTargets'](){const kp=d4;let a4=this['geometry']['morphAttributes'],a5=Object['keys'](a4);if(a5['length']>0x0){let a6=a4[a5[0x0]];if(a6!==void 0x0){this['morphTargetInfluences']=[],this['morphTargetDictionary']={};for(let a7=0x0,a8=a6['length'];a7<a8;a7++){let a9=a6[a7][kp(0x3bd)]||String(a7);this[kp(0x43a)]['push'](0x0),this['morphTargetDictionary'][a9]=a7;}}}}};function _a(a4,a5,a6,a7,a8,a9,ab){const kq=d4;let af=pa['distanceSqToPoint'](a4);if(af<a6){let ag=new W();pa['closestPointToPoint'](a4,ag),ag['applyMatrix4'](a7);let ah=a8['ray']['origin']['distanceTo'](ag);if(ah<a8[kq(0x492)]||ah>a8['far'])return;a9[kq(0x5d4)]({'distance':ah,'distanceToRay':Math['sqrt'](af),'point':ag,'index':a5,'face':null,'faceIndex':null,'barycoord':null,'object':ab});}}var va=class extends un{constructor(a4=[],a5=0x12d,a6,a7,a8,a9,ab,af,ag,ah){super(a4,a5,a6,a7,a8,a9,ab,af,ag,ah),this['isCubeTexture']=!0x0,this['flipY']=!0x1;}get['images'](){return this['image'];}set['images'](a4){this['image']=a4;}},ya=class extends un{constructor(a4,a5,a6=k,a7,a8,a9,ab=y,af=y,ag,ah=se,aj=0x1){const kv=d4;if(ah!==0x402&&ah!==0x403)throw Error('DepthTexture\x20format\x20must\x20be\x20either\x20THREE.DepthFormat\x20or\x20THREE.DepthStencilFormat');super({'width':a4,'height':a5,'depth':aj},a7,a8,a9,ab,af,ah,a6,ag),this['isDepthTexture']=!0x0,this['flipY']=!0x1,this['generateMipmaps']=!0x1,this[kv(0x52a)]=null;}['copy'](a4){const kw=d4;return super['copy'](a4),this['source']=new on(Object['assign']({},a4['image'])),this['compareFunction']=a4[kw(0x52a)],this;}['toJSON'](a4){let a5=super['toJSON'](a4);return this['compareFunction']!==null&&(a5['compareFunction']=this['compareFunction']),a5;}},ba=class extends ya{constructor(a4,a5=k,a6=0x12d,a7,a8,a9=y,ab=y,af,ag=se){let ah={'width':a4,'height':a4,'depth':0x1},aj=[ah,ah,ah,ah,ah,ah];super(a4,a4,a5,a6,a7,a8,a9,ab,af,ag),this['image']=aj,this['isCubeDepthTexture']=!0x0,this['isCubeTexture']=!0x0;}get['images'](){return this['image'];}set['images'](a4){const kx=d4;this[kx(0x262)]=a4;}},xa=class extends un{constructor(a4=null){const ky=d4;super(),this['sourceTexture']=a4,this[ky(0x210)]=!0x0;}['copy'](a4){const kz=d4;return super[kz(0x647)](a4),this['sourceTexture']=a4['sourceTexture'],this;}},Sa=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x1,a7=0x1,a8=0x1,a9=0x1){const kA=d4;super(),this['type']='BoxGeometry',this['parameters']={'width':a4,'height':a5,'depth':a6,'widthSegments':a7,'heightSegments':a8,'depthSegments':a9};let ab=this;a7=Math['floor'](a7),a8=Math['floor'](a8),a9=Math['floor'](a9);let af=[],ag=[],ah=[],aj=[],ak=0x0,am=0x0;ap('z','y','x',-0x1,-0x1,a6,a5,a4,a9,a8,0x0),ap('z','y','x',0x1,-0x1,a6,a5,-a4,a9,a8,0x1),ap('x','z','y',0x1,0x1,a4,a6,a5,a7,a9,0x2),ap('x','z','y',0x1,-0x1,a4,a6,-a5,a7,a9,0x3),ap('x','y','z',0x1,-0x1,a4,a5,a6,a7,a8,0x4),ap('x','y','z',-0x1,-0x1,a4,a5,-a6,a7,a8,0x5),this['setIndex'](af),this['setAttribute'](kA(0x4ed),new X(ag,0x3)),this['setAttribute']('normal',new X(ah,0x3)),this['setAttribute']('uv',new X(aj,0x2));function ap(aq,av,aw,ax,ay,az,aA,aB,aC,aD,aE){const kB=kA;let aF=az/aC,aG=aA/aD,aH=az/0x2,aI=aA/0x2,aJ=aB/0x2,aK=aC+0x1,aL=aD+0x1,aM=0x0,aN=0x0,aO=new W();for(let aP=0x0;aP<aL;aP++){let aQ=aP*aG-aI;for(let aR=0x0;aR<aK;aR++)aO[aq]=(aR*aF-aH)*ax,aO[av]=aQ*ay,aO[aw]=aJ,ag['push'](aO['x'],aO['y'],aO['z']),aO[aq]=0x0,aO[av]=0x0,aO[aw]=aB>0x0?0x1:-0x1,ah['push'](aO['x'],aO['y'],aO['z']),aj['push'](aR/aC),aj[kB(0x5d4)](0x1-aP/aD),aM+=0x1;}for(let aS=0x0;aS<aD;aS++)for(let aT=0x0;aT<aC;aT++){let aU=ak+aT+aK*aS,aV=ak+aT+aK*(aS+0x1),aW=ak+(aT+0x1)+aK*(aS+0x1),aX=ak+(aT+0x1)+aK*aS;af['push'](aU,aV,aX),af[kB(0x5d4)](aV,aW,aX),aN+=0x6;}ab['addGroup'](am,aN,aE),am+=aN,ak+=aM;}}['copy'](a4){return super['copy'](a4),this['parameters']=Object['assign']({},a4['parameters']),this;}static[d4(0x2e6)](a4){const kC=d4;return new e(a4['width'],a4['height'],a4[kC(0x47a)],a4['widthSegments'],a4['heightSegments'],a4['depthSegments']);}},Ca=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x4,a7=0x8,a8=0x1){const kD=d4;super(),this[kD(0x3e0)]='CapsuleGeometry',this['parameters']={'radius':a4,'height':a5,'capSegments':a6,'radialSegments':a7,'heightSegments':a8},a5=Math[kD(0x4dd)](0x0,a5),a6=Math['max'](0x1,Math['floor'](a6)),a7=Math['max'](0x3,Math['floor'](a7)),a8=Math[kD(0x4dd)](0x1,Math['floor'](a8));let a9=[],ab=[],af=[],ag=[],ah=a5/0x2,aj=Math['PI']/0x2*a4,ak=a5,am=0x2*aj+ak,ap=a6*0x2+a8,aq=a7+0x1,av=new W(),aw=new W();for(let ax=0x0;ax<=ap;ax++){let ay=0x0,az=0x0,aA=0x0,aB=0x0;if(ax<=a6){let aE=ax/a6,aF=aE*Math['PI']/0x2;az=-ah-a4*Math['cos'](aF),aA=a4*Math['sin'](aF),aB=-a4*Math['cos'](aF),ay=aE*aj;}else{if(ax<=a6+a8){let aG=(ax-a6)/a8;az=-ah+aG*a5,aA=a4,aB=0x0,ay=aj+aG*ak;}else{let aH=(ax-a6-a8)/a6,aI=aH*Math['PI']/0x2;az=ah+a4*Math['sin'](aI),aA=a4*Math['cos'](aI),aB=a4*Math[kD(0x329)](aI),ay=aj+ak+aH*aj;}}let aC=Math['max'](0x0,Math['min'](0x1,ay/am)),aD=0x0;ax===0x0?aD=0.5/a7:ax===ap&&(aD=-0.5/a7);for(let aJ=0x0;aJ<=a7;aJ++){let aK=aJ/a7,aL=aK*Math['PI']*0x2,aM=Math['sin'](aL),aN=Math[kD(0x406)](aL);aw['x']=-aA*aN,aw['y']=az,aw['z']=aA*aM,ab['push'](aw['x'],aw['y'],aw['z']),av['set'](-aA*aN,aB,aA*aM),av['normalize'](),af[kD(0x5d4)](av['x'],av['y'],av['z']),ag[kD(0x5d4)](aK+aD,aC);}if(ax>0x0){let aO=(ax-0x1)*aq;for(let aP=0x0;aP<a7;aP++){let aQ=aO+aP,aR=aO+aP+0x1,aS=ax*aq+aP,aT=ax*aq+aP+0x1;a9[kD(0x5d4)](aQ,aR,aS),a9['push'](aR,aT,aS);}}}this['setIndex'](a9),this['setAttribute']('position',new X(ab,0x3)),this['setAttribute']('normal',new X(af,0x3)),this['setAttribute']('uv',new X(ag,0x2));}['copy'](a4){return super['copy'](a4),this['parameters']=Object['assign']({},a4['parameters']),this;}static['fromJSON'](a4){return new e(a4['radius'],a4['height'],a4['capSegments'],a4['radialSegments'],a4['heightSegments']);}},wa=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x1,a7=0x20,a8=0x1,a9=!0x1,ab=0x0,af=Math['PI']*0x2){const kE=d4;super(),this['type']='CylinderGeometry',this[kE(0x28b)]={'radiusTop':a4,'radiusBottom':a5,'height':a6,'radialSegments':a7,'heightSegments':a8,'openEnded':a9,'thetaStart':ab,'thetaLength':af};let ag=this;a7=Math['floor'](a7),a8=Math['floor'](a8);let ah=[],aj=[],ak=[],am=[],ap=0x0,aq=[],av=a6/0x2,aw=0x0;ax(),a9===!0x1&&(a4>0x0&&ay(!0x0),a5>0x0&&ay(!0x1)),this['setIndex'](ah),this['setAttribute']('position',new X(aj,0x3)),this['setAttribute'](kE(0x171),new X(ak,0x3)),this['setAttribute']('uv',new X(am,0x2));function ax(){const kF=kE;let az=new W(),aA=new W(),aB=0x0,aC=(a5-a4)/a6;for(let aD=0x0;aD<=a8;aD++){let aE=[],aF=aD/a8,aG=aF*(a5-a4)+a4;for(let aH=0x0;aH<=a7;aH++){let aI=aH/a7,aJ=aI*af+ab,aK=Math[kF(0x329)](aJ),aL=Math['cos'](aJ);aA['x']=aG*aK,aA['y']=-aF*a6+av,aA['z']=aG*aL,aj['push'](aA['x'],aA['y'],aA['z']),az['set'](aK,aC,aL)[kF(0x349)](),ak['push'](az['x'],az['y'],az['z']),am[kF(0x5d4)](aI,0x1-aF),aE['push'](ap++);}aq['push'](aE);}for(let aM=0x0;aM<a7;aM++)for(let aN=0x0;aN<a8;aN++){let aO=aq[aN][aM],aP=aq[aN+0x1][aM],aQ=aq[aN+0x1][aM+0x1],aR=aq[aN][aM+0x1];(a4>0x0||aN!==0x0)&&(ah['push'](aO,aP,aR),aB+=0x3),(a5>0x0||aN!==a8-0x1)&&(ah['push'](aP,aQ,aR),aB+=0x3);}ag['addGroup'](aw,aB,0x0),aw+=aB;}function ay(az){const kG=kE;let aA=ap,aB=new U(),aC=new W(),aD=0x0,aE=az===!0x0?a4:a5,aF=az===!0x0?0x1:-0x1;for(let aH=0x1;aH<=a7;aH++)aj['push'](0x0,av*aF,0x0),ak[kG(0x5d4)](0x0,aF,0x0),am['push'](0.5,0.5),ap++;let aG=ap;for(let aI=0x0;aI<=a7;aI++){let aJ=aI/a7*af+ab,aK=Math['cos'](aJ),aL=Math['sin'](aJ);aC['x']=aE*aL,aC['y']=av*aF,aC['z']=aE*aK,aj['push'](aC['x'],aC['y'],aC['z']),ak['push'](0x0,aF,0x0),aB['x']=aK*0.5+0.5,aB['y']=aL*0.5*aF+0.5,am['push'](aB['x'],aB['y']),ap++;}for(let aM=0x0;aM<a7;aM++){let aN=aA+aM,aO=aG+aM;az===!0x0?ah['push'](aO,aO+0x1,aN):ah['push'](aO+0x1,aO,aN),aD+=0x3;}ag[kG(0x3d5)](aw,aD,az===!0x0?0x1:0x2),aw+=aD;}}['copy'](a4){return super['copy'](a4),this['parameters']=Object['assign']({},a4['parameters']),this;}static[d4(0x2e6)](a4){return new e(a4['radiusTop'],a4['radiusBottom'],a4['height'],a4['radialSegments'],a4['heightSegments'],a4['openEnded'],a4['thetaStart'],a4['thetaLength']);}},Ta=class e extends wa{constructor(a4=0x1,a5=0x1,a6=0x20,a7=0x1,a8=!0x1,a9=0x0,ab=Math['PI']*0x2){super(0x0,a4,a5,a6,a7,a8,a9,ab),this['type']='ConeGeometry',this['parameters']={'radius':a4,'height':a5,'radialSegments':a6,'heightSegments':a7,'openEnded':a8,'thetaStart':a9,'thetaLength':ab};}static[d4(0x2e6)](a4){return new e(a4['radius'],a4['height'],a4['radialSegments'],a4['heightSegments'],a4['openEnded'],a4['thetaStart'],a4['thetaLength']);}},Ea=class{constructor(){const kH=d4;this[kH(0x3e0)]='Curve',this['arcLengthDivisions']=0xc8,this['needsUpdate']=!0x1,this[kH(0x561)]=null;}['getPoint'](){z('Curve:\x20.getPoint()\x20not\x20implemented.');}['getPointAt'](a4,a5){let a6=this['getUtoTmapping'](a4);return this['getPoint'](a6,a5);}['getPoints'](a4=0x5){let a5=[];for(let a6=0x0;a6<=a4;a6++)a5['push'](this['getPoint'](a6/a4));return a5;}['getSpacedPoints'](a4=0x5){const kI=d4;let a5=[];for(let a6=0x0;a6<=a4;a6++)a5['push'](this[kI(0x143)](a6/a4));return a5;}['getLength'](){const kJ=d4;let a4=this['getLengths']();return a4[a4[kJ(0x3ac)]-0x1];}['getLengths'](a4=this['arcLengthDivisions']){const kK=d4;if(this['cacheArcLengths']&&this[kK(0x561)]['length']===a4+0x1&&!this['needsUpdate'])return this['cacheArcLengths'];this['needsUpdate']=!0x1;let a5=[],a6,a7=this['getPoint'](0x0),a8=0x0;a5['push'](0x0);for(let a9=0x1;a9<=a4;a9++)a6=this['getPoint'](a9/a4),a8+=a6['distanceTo'](a7),a5['push'](a8),a7=a6;return this['cacheArcLengths']=a5,a5;}[d4(0x22a)](){this['needsUpdate']=!0x0,this['getLengths']();}['getUtoTmapping'](a4,a5=null){let a6=this['getLengths'](),a7=0x0,a8=a6['length'],a9;a9=a5||a4*a6[a8-0x1];let ab=0x0,af=a8-0x1,ag;for(;ab<=af;)if(a7=Math['floor'](ab+(af-ab)/0x2),ag=a6[a7]-a9,ag<0x0)ab=a7+0x1;else{if(ag>0x0)af=a7-0x1;else{af=a7;break;}}if(a7=af,a6[a7]===a9)return a7/(a8-0x1);let ah=a6[a7],aj=a6[a7+0x1]-ah,ak=(a9-ah)/aj;return(a7+ak)/(a8-0x1);}['getTangent'](a4,a5){let a6=0.0001,a7=a4-a6,a8=a4+a6;a7<0x0&&(a7=0x0),a8>0x1&&(a8=0x1);let a9=this['getPoint'](a7),ab=this['getPoint'](a8),af=a5||(a9['isVector2']?new U():new W());return af['copy'](ab)['sub'](a9)['normalize'](),af;}['getTangentAt'](a4,a5){let a6=this['getUtoTmapping'](a4);return this['getTangent'](a6,a5);}['computeFrenetFrames'](a4,a5=!0x1){const kL=d4;let a6=new W(),a7=[],a8=[],a9=[],ab=new W(),af=new J();for(let am=0x0;am<=a4;am++){let ap=am/a4;a7[am]=this[kL(0x1f8)](ap,new W());}a8[0x0]=new W(),a9[0x0]=new W();let ag=Number['MAX_VALUE'],ah=Math[kL(0x2ee)](a7[0x0]['x']),aj=Math['abs'](a7[0x0]['y']),ak=Math['abs'](a7[0x0]['z']);ah<=ag&&(ag=ah,a6['set'](0x1,0x0,0x0)),aj<=ag&&(ag=aj,a6['set'](0x0,0x1,0x0)),ak<=ag&&a6['set'](0x0,0x0,0x1),ab['crossVectors'](a7[0x0],a6)['normalize'](),a8[0x0][kL(0x637)](a7[0x0],ab),a9[0x0]['crossVectors'](a7[0x0],a8[0x0]);for(let aq=0x1;aq<=a4;aq++){if(a8[aq]=a8[aq-0x1]['clone'](),a9[aq]=a9[aq-0x1]['clone'](),ab['crossVectors'](a7[aq-0x1],a7[aq]),ab[kL(0x3ac)]()>Number['EPSILON']){ab['normalize']();let av=Math['acos'](V(a7[aq-0x1]['dot'](a7[aq]),-0x1,0x1));a8[aq][kL(0x421)](af[kL(0x38f)](ab,av));}a9[aq][kL(0x637)](a7[aq],a8[aq]);}if(a5===!0x0){let aw=Math['acos'](V(a8[0x0][kL(0x4ba)](a8[a4]),-0x1,0x1));aw/=a4,a7[0x0]['dot'](ab['crossVectors'](a8[0x0],a8[a4]))>0x0&&(aw=-aw);for(let ax=0x1;ax<=a4;ax++)a8[ax][kL(0x421)](af['makeRotationAxis'](a7[ax],aw*ax)),a9[ax]['crossVectors'](a7[ax],a8[ax]);}return{'tangents':a7,'normals':a8,'binormals':a9};}[d4(0x2d8)](){const kM=d4;return new this['constructor']()[kM(0x647)](this);}['copy'](a4){return this['arcLengthDivisions']=a4['arcLengthDivisions'],this;}['toJSON'](){let a4={'metadata':{'version':4.7,'type':'Curve','generator':'Curve.toJSON'}};return a4['arcLengthDivisions']=this['arcLengthDivisions'],a4['type']=this['type'],a4;}['fromJSON'](a4){const kN=d4;return this['arcLengthDivisions']=a4[kN(0x15f)],this;}};function Da(a4,a5,a6=0x2){let a7=a5&&a5['length'],a8=a7?a5[0x0]*a6:a4['length'],a9=Oa(a4,0x0,a8,a6,!0x0),ab=[];if(!a9||a9['next']===a9['prev'])return ab;let af,ag,ah;if(a7&&(a9=Fa(a4,a5,a9,a6)),a4['length']>0x50*a6){af=a4[0x0],ag=a4[0x1];let aj=af,ak=ag;for(let am=a6;am<a8;am+=a6){let ap=a4[am],aq=a4[am+0x1];ap<af&&(af=ap),aq<ag&&(ag=aq),ap>aj&&(aj=ap),aq>ak&&(ak=aq);}ah=Math['max'](aj-af,ak-ag),ah=ah===0x0?0x0:0x7fff/ah;}return Aa(a9,ab,a6,af,ag,ah,0x0),ab;}function Oa(a4,a5,a6,a7,a8){let a9;if(a8===ao(a4,a5,a6,a7)>0x0){for(let ab=a5;ab<a6;ab+=a7)a9=no(ab/a7|0x0,a4[ab],a4[ab+0x1],a9);}else{for(let af=a6-a7;af>=a5;af-=a7)a9=no(af/a7|0x0,a4[af],a4[af+0x1],a9);}return a9&&Ja(a9,a9['next'])&&(ro(a9),a9=a9['next']),a9;}function ka(a4,a5){const kO=d4;if(!a4)return a4;a5||(a5=a4);let a6=a4,a7;do if(a7=!0x1,!a6['steiner']&&(Ja(a6,a6['next'])||qa(a6['prev'],a6,a6[kO(0x22d)])===0x0)){if(ro(a6),a6=a5=a6['prev'],a6===a6['next'])break;a7=!0x0;}else a6=a6[kO(0x22d)];while(a7||a6!==a5);return a5;}function Aa(a4,a5,a6,a7,a8,a9,ab){const kP=d4;if(!a4)return;!ab&&a9&&Ba(a4,a7,a8,a9);let af=a4;for(;a4[kP(0x504)]!==a4[kP(0x22d)];){let ag=a4['prev'],ah=a4['next'];if(a9?Ma(a4,a7,a8,a9):ja(a4)){a5[kP(0x5d4)](ag['i'],a4['i'],ah['i']),ro(a4),a4=ah['next'],af=ah[kP(0x22d)];continue;}if(a4=ah,a4===af){ab?ab===0x1?(a4=Na(ka(a4),a5),Aa(a4,a5,a6,a7,a8,a9,0x2)):ab===0x2&&Pa(a4,a5,a6,a7,a8,a9):Aa(ka(a4),a5,a6,a7,a8,a9,0x1);break;}}}function ja(a4){const kQ=d4;let a5=a4['prev'],a6=a4,a7=a4['next'];if(qa(a5,a6,a7)>=0x0)return!0x1;let a8=a5['x'],a9=a6['x'],ab=a7['x'],af=a5['y'],ag=a6['y'],ah=a7['y'],aj=Math['min'](a8,a9,ab),ak=Math['min'](af,ag,ah),am=Math[kQ(0x4dd)](a8,a9,ab),ap=Math['max'](af,ag,ah),aq=a7['next'];for(;aq!==a5;){if(aq['x']>=aj&&aq['x']<=am&&aq['y']>=ak&&aq['y']<=ap&&Ga(a8,af,a9,ag,ab,ah,aq['x'],aq['y'])&&qa(aq[kQ(0x504)],aq,aq['next'])>=0x0)return!0x1;aq=aq['next'];}return!0x0;}function Ma(a4,a5,a6,a7){const kR=d4;let a8=a4['prev'],a9=a4,ab=a4['next'];if(qa(a8,a9,ab)>=0x0)return!0x1;let af=a8['x'],ag=a9['x'],ah=ab['x'],aj=a8['y'],ak=a9['y'],am=ab['y'],ap=Math[kR(0x5cd)](af,ag,ah),aq=Math['min'](aj,ak,am),av=Math['max'](af,ag,ah),aw=Math['max'](aj,ak,am),ax=Ha(ap,aq,a5,a6,a7),ay=Ha(av,aw,a5,a6,a7),az=a4['prevZ'],aA=a4['nextZ'];for(;az&&az['z']>=ax&&aA&&aA['z']<=ay;){if(az['x']>=ap&&az['x']<=av&&az['y']>=aq&&az['y']<=aw&&az!==a8&&az!==ab&&Ga(af,aj,ag,ak,ah,am,az['x'],az['y'])&&qa(az['prev'],az,az['next'])>=0x0||(az=az['prevZ'],aA['x']>=ap&&aA['x']<=av&&aA['y']>=aq&&aA['y']<=aw&&aA!==a8&&aA!==ab&&Ga(af,aj,ag,ak,ah,am,aA['x'],aA['y'])&&qa(aA['prev'],aA,aA['next'])>=0x0))return!0x1;aA=aA['nextZ'];}for(;az&&az['z']>=ax;){if(az['x']>=ap&&az['x']<=av&&az['y']>=aq&&az['y']<=aw&&az!==a8&&az!==ab&&Ga(af,aj,ag,ak,ah,am,az['x'],az['y'])&&qa(az['prev'],az,az['next'])>=0x0)return!0x1;az=az['prevZ'];}for(;aA&&aA['z']<=ay;){if(aA['x']>=ap&&aA['x']<=av&&aA['y']>=aq&&aA['y']<=aw&&aA!==a8&&aA!==ab&&Ga(af,aj,ag,ak,ah,am,aA['x'],aA['y'])&&qa(aA['prev'],aA,aA['next'])>=0x0)return!0x1;aA=aA['nextZ'];}return!0x0;}function Na(a4,a5){const kS=d4;let a6=a4;do{let a7=a6[kS(0x504)],a8=a6[kS(0x22d)]['next'];!Ja(a7,a8)&&Ya(a7,a6,a6[kS(0x22d)],a8)&&$a(a7,a8)&&$a(a8,a7)&&(a5[kS(0x5d4)](a7['i'],a6['i'],a8['i']),ro(a6),ro(a6['next']),a6=a4=a8),a6=a6['next'];}while(a6!==a4);return ka(a6);}function Pa(a4,a5,a6,a7,a8,a9){const kT=d4;let ab=a4;do{let af=ab[kT(0x22d)][kT(0x22d)];for(;af!==ab['prev'];){if(ab['i']!==af['i']&&Ka(ab,af)){let ag=to(ab,af);ab=ka(ab,ab['next']),ag=ka(ag,ag[kT(0x22d)]),Aa(ab,a5,a6,a7,a8,a9,0x0),Aa(ag,a5,a6,a7,a8,a9,0x0);return;}af=af['next'];}ab=ab['next'];}while(ab!==a4);}function Fa(a4,a5,a6,a7){let a8=[];for(let a9=0x0,ab=a5['length'];a9<ab;a9++){let af=Oa(a4,a5[a9]*a7,a9<ab-0x1?a5[a9+0x1]*a7:a4['length'],a7,!0x1);af===af['next']&&(af['steiner']=!0x0),a8['push'](Ua(af));}a8['sort'](Ia);for(let ag=0x0;ag<a8['length'];ag++)a6=La(a8[ag],a6);return a6;}function Ia(a4,a5){let a6=a4['x']-a5['x'];return a6===0x0&&(a6=a4['y']-a5['y'],a6===0x0&&(a6=(a4['next']['y']-a4['y'])/(a4['next']['x']-a4['x'])-(a5['next']['y']-a5['y'])/(a5['next']['x']-a5['x']))),a6;}function La(a4,a5){const kU=d4;let a6=Ra(a4,a5);if(!a6)return a5;let a7=to(a6,a4);return ka(a7,a7[kU(0x22d)]),ka(a6,a6['next']);}function Ra(a4,a5){const kV=d4;let a6=a5,a7=a4['x'],a8=a4['y'],a9=-Infinity,ab;if(Ja(a4,a6))return a6;do{if(Ja(a4,a6['next']))return a6['next'];if(a8<=a6['y']&&a8>=a6[kV(0x22d)]['y']&&a6[kV(0x22d)]['y']!==a6['y']){let ak=a6['x']+(a8-a6['y'])*(a6['next']['x']-a6['x'])/(a6['next']['y']-a6['y']);if(ak<=a7&&ak>a9&&(a9=ak,ab=a6['x']<a6['next']['x']?a6:a6['next'],ak===a7))return ab;}a6=a6['next'];}while(a6!==a5);if(!ab)return null;let af=ab,ag=ab['x'],ah=ab['y'],aj=Infinity;a6=ab;do{if(a7>=a6['x']&&a6['x']>=ag&&a7!==a6['x']&&Wa(a8<ah?a7:a9,a8,ag,ah,a8<ah?a9:a7,a8,a6['x'],a6['y'])){let am=Math['abs'](a8-a6['y'])/(a7-a6['x']);$a(a6,a4)&&(am<aj||am===aj&&(a6['x']>ab['x']||a6['x']===ab['x']&&za(ab,a6)))&&(ab=a6,aj=am);}a6=a6['next'];}while(a6!==af);return ab;}function za(a4,a5){return qa(a4['prev'],a4,a5['prev'])<0x0&&qa(a5['next'],a4,a4['next'])<0x0;}function Ba(a4,a5,a6,a7){const kW=d4;let a8=a4;do a8['z']===0x0&&(a8['z']=Ha(a8['x'],a8['y'],a5,a6,a7)),a8['prevZ']=a8['prev'],a8[kW(0x1d1)]=a8['next'],a8=a8['next'];while(a8!==a4);a8['prevZ'][kW(0x1d1)]=null,a8['prevZ']=null,Va(a8);}function Va(a4){const kX=d4;let a5,a6=0x1;do{let a7=a4,a8;a4=null;let a9=null;for(a5=0x0;a7;){a5++;let ab=a7,af=0x0;for(let ah=0x0;ah<a6&&(af++,ab=ab['nextZ'],ab);ah++);let ag=a6;for(;af>0x0||ag>0x0&&ab;)af!==0x0&&(ag===0x0||!ab||a7['z']<=ab['z'])?(a8=a7,a7=a7['nextZ'],af--):(a8=ab,ab=ab[kX(0x1d1)],ag--),a9?a9['nextZ']=a8:a4=a8,a8[kX(0x215)]=a9,a9=a8;a7=ab;}a9['nextZ']=null,a6*=0x2;}while(a5>0x1);return a4;}function Ha(a4,a5,a6,a7,a8){return a4=(a4-a6)*a8|0x0,a5=(a5-a7)*a8|0x0,a4=(a4|a4<<0x8)&0xff00ff,a4=(a4|a4<<0x4)&0xf0f0f0f,a4=(a4|a4<<0x2)&0x33333333,a4=(a4|a4<<0x1)&0x55555555,a5=(a5|a5<<0x8)&0xff00ff,a5=(a5|a5<<0x4)&0xf0f0f0f,a5=(a5|a5<<0x2)&0x33333333,a5=(a5|a5<<0x1)&0x55555555,a4|a5<<0x1;}function Ua(a4){let a5=a4,a6=a4;do(a5['x']<a6['x']||a5['x']===a6['x']&&a5['y']<a6['y'])&&(a6=a5),a5=a5['next'];while(a5!==a4);return a6;}function Wa(a4,a5,a6,a7,a8,a9,ab,af){return(a8-ab)*(a5-af)>=(a4-ab)*(a9-af)&&(a4-ab)*(a7-af)>=(a6-ab)*(a5-af)&&(a6-ab)*(a9-af)>=(a8-ab)*(a7-af);}function Ga(a4,a5,a6,a7,a8,a9,ab,af){return!(a4===ab&&a5===af)&&Wa(a4,a5,a6,a7,a8,a9,ab,af);}function Ka(a4,a5){const kY=d4;return a4[kY(0x22d)]['i']!==a5['i']&&a4['prev']['i']!==a5['i']&&!Qa(a4,a5)&&($a(a4,a5)&&$a(a5,a4)&&eo(a4,a5)&&(qa(a4[kY(0x504)],a4,a5['prev'])||qa(a4,a5['prev'],a5))||Ja(a4,a5)&&qa(a4['prev'],a4,a4['next'])>0x0&&qa(a5['prev'],a5,a5['next'])>0x0);}function qa(a4,a5,a6){return(a5['y']-a4['y'])*(a6['x']-a5['x'])-(a5['x']-a4['x'])*(a6['y']-a5['y']);}function Ja(a4,a5){return a4['x']===a5['x']&&a4['y']===a5['y'];}function Ya(a4,a5,a6,a7){let a8=Za(qa(a4,a5,a6)),a9=Za(qa(a4,a5,a7)),ab=Za(qa(a6,a7,a4)),af=Za(qa(a6,a7,a5));return!!(a8!==a9&&ab!==af||a8===0x0&&Xa(a4,a6,a5)||a9===0x0&&Xa(a4,a7,a5)||ab===0x0&&Xa(a6,a4,a7)||af===0x0&&Xa(a6,a5,a7));}function Xa(a4,a5,a6){return a5['x']<=Math['max'](a4['x'],a6['x'])&&a5['x']>=Math['min'](a4['x'],a6['x'])&&a5['y']<=Math['max'](a4['y'],a6['y'])&&a5['y']>=Math['min'](a4['y'],a6['y']);}function Za(a4){return a4>0x0?0x1:a4<0x0?-0x1:0x0;}function Qa(a4,a5){const kZ=d4;let a6=a4;do{if(a6['i']!==a4['i']&&a6['next']['i']!==a4['i']&&a6['i']!==a5['i']&&a6['next']['i']!==a5['i']&&Ya(a6,a6['next'],a4,a5))return!0x0;a6=a6[kZ(0x22d)];}while(a6!==a4);return!0x1;}function $a(a4,a5){const l0=d4;return qa(a4['prev'],a4,a4['next'])<0x0?qa(a4,a5,a4['next'])>=0x0&&qa(a4,a4[l0(0x504)],a5)>=0x0:qa(a4,a5,a4['prev'])<0x0||qa(a4,a4['next'],a5)<0x0;}function eo(a4,a5){const l1=d4;let a6=a4,a7=!0x1,a8=(a4['x']+a5['x'])/0x2,a9=(a4['y']+a5['y'])/0x2;do a6['y']>a9!=a6[l1(0x22d)]['y']>a9&&a6['next']['y']!==a6['y']&&a8<(a6['next']['x']-a6['x'])*(a9-a6['y'])/(a6[l1(0x22d)]['y']-a6['y'])+a6['x']&&(a7=!a7),a6=a6['next'];while(a6!==a4);return a7;}function to(a4,a5){const l2=d4;let a6=io(a4['i'],a4['x'],a4['y']),a7=io(a5['i'],a5['x'],a5['y']),a8=a4['next'],a9=a5['prev'];return a4[l2(0x22d)]=a5,a5['prev']=a4,a6['next']=a8,a8[l2(0x504)]=a6,a7[l2(0x22d)]=a6,a6['prev']=a7,a9['next']=a7,a7['prev']=a9,a7;}function no(a4,a5,a6,a7){const l3=d4;let a8=io(a4,a5,a6);return a7?(a8['next']=a7['next'],a8['prev']=a7,a7['next'][l3(0x504)]=a8,a7[l3(0x22d)]=a8):(a8['prev']=a8,a8['next']=a8),a8;}function ro(a4){const l4=d4;a4['next']['prev']=a4['prev'],a4[l4(0x504)]['next']=a4['next'],a4[l4(0x215)]&&(a4['prevZ']['nextZ']=a4['nextZ']),a4['nextZ']&&(a4[l4(0x1d1)]['prevZ']=a4['prevZ']);}function io(a4,a5,a6){return{'i':a4,'x':a5,'y':a6,'prev':null,'next':null,'z':0x0,'prevZ':null,'nextZ':null,'steiner':!0x1};}function ao(a4,a5,a6,a7){let a8=0x0;for(let a9=a5,ab=a6-a7;a9<a6;a9+=a7)a8+=(a4[ab]-a4[a9])*(a4[a9+0x1]+a4[ab+0x1]),ab=a9;return a8;}var oo=class{static['triangulate'](a4,a5,a6=0x2){return Da(a4,a5,a6);}},so=class e{static[d4(0x28c)](a4){let a5=a4['length'],a6=0x0;for(let a7=a5-0x1,a8=0x0;a8<a5;a7=a8++)a6+=a4[a7]['x']*a4[a8]['y']-a4[a8]['x']*a4[a7]['y'];return a6*0.5;}static['isClockWise'](a4){return e['area'](a4)<0x0;}static['triangulateShape'](a4,a5){const l5=d4;let a6=[],a7=[],a8=[];co(a4),lo(a6,a4);let a9=a4['length'];a5['forEach'](co);for(let af=0x0;af<a5['length'];af++)a7['push'](a9),a9+=a5[af][l5(0x3ac)],lo(a6,a5[af]);let ab=oo['triangulate'](a6,a7);for(let ag=0x0;ag<ab[l5(0x3ac)];ag+=0x3)a8['push'](ab['slice'](ag,ag+0x3));return a8;}};function co(a4){let a5=a4['length'];a5>0x2&&a4[a5-0x1]['equals'](a4[0x0])&&a4['pop']();}function lo(a4,a5){const l6=d4;for(let a6=0x0;a6<a5['length'];a6++)a4[l6(0x5d4)](a5[a6]['x']),a4[l6(0x5d4)](a5[a6]['y']);}var uo=class e extends Wr{constructor(a4=0x1,a5=0x1,a6=0x1,a7=0x1){const l7=d4;super(),this[l7(0x3e0)]='PlaneGeometry',this[l7(0x28b)]={'width':a4,'height':a5,'widthSegments':a6,'heightSegments':a7};let a8=a4/0x2,a9=a5/0x2,ab=Math['floor'](a6),af=Math['floor'](a7),ag=ab+0x1,ah=af+0x1,aj=a4/ab,ak=a5/af,am=[],ap=[],aq=[],av=[];for(let aw=0x0;aw<ah;aw++){let ax=aw*ak-a9;for(let ay=0x0;ay<ag;ay++){let az=ay*aj-a8;ap[l7(0x5d4)](az,-ax,0x0),aq['push'](0x0,0x0,0x1),av['push'](ay/ab),av['push'](0x1-aw/af);}}for(let aA=0x0;aA<af;aA++)for(let aB=0x0;aB<ab;aB++){let aC=aB+ag*aA,aD=aB+ag*(aA+0x1),aE=aB+0x1+ag*(aA+0x1),aF=aB+0x1+ag*aA;am['push'](aC,aD,aF),am[l7(0x5d4)](aD,aE,aF);}this['setIndex'](am),this['setAttribute']('position',new X(ap,0x3)),this['setAttribute']('normal',new X(aq,0x3)),this['setAttribute']('uv',new X(av,0x2));}[d4(0x647)](a4){return super['copy'](a4),this['parameters']=Object['assign']({},a4['parameters']),this;}static[d4(0x2e6)](a4){return new e(a4['width'],a4['height'],a4['widthSegments'],a4['heightSegments']);}},fo=class e extends Wr{constructor(a4=0x1,a5=0x20,a6=0x10,a7=0x0,a8=Math['PI']*0x2,a9=0x0,ab=Math['PI']){const l8=d4;super(),this['type']='SphereGeometry',this[l8(0x28b)]={'radius':a4,'widthSegments':a5,'heightSegments':a6,'phiStart':a7,'phiLength':a8,'thetaStart':a9,'thetaLength':ab},a5=Math['max'](0x3,Math['floor'](a5)),a6=Math['max'](0x2,Math['floor'](a6));let af=Math[l8(0x5cd)](a9+ab,Math['PI']),ag=0x0,ah=[],aj=new W(),ak=new W(),am=[],ap=[],aq=[],av=[];for(let aw=0x0;aw<=a6;aw++){let ax=[],ay=aw/a6,az=0x0;aw===0x0&&a9===0x0?az=0.5/a5:aw===a6&&af===Math['PI']&&(az=-0.5/a5);for(let aA=0x0;aA<=a5;aA++){let aB=aA/a5;aj['x']=-a4*Math['cos'](a7+aB*a8)*Math['sin'](a9+ay*ab),aj['y']=a4*Math['cos'](a9+ay*ab),aj['z']=a4*Math['sin'](a7+aB*a8)*Math['sin'](a9+ay*ab),ap['push'](aj['x'],aj['y'],aj['z']),ak['copy'](aj)['normalize'](),aq[l8(0x5d4)](ak['x'],ak['y'],ak['z']),av['push'](aB+az,0x1-ay),ax['push'](ag++);}ah[l8(0x5d4)](ax);}for(let aC=0x0;aC<a6;aC++)for(let aD=0x0;aD<a5;aD++){let aE=ah[aC][aD+0x1],aF=ah[aC][aD],aG=ah[aC+0x1][aD],aH=ah[aC+0x1][aD+0x1];(aC!==0x0||a9>0x0)&&am['push'](aE,aF,aH),(aC!==a6-0x1||af<Math['PI'])&&am['push'](aF,aG,aH);}this['setIndex'](am),this['setAttribute']('position',new X(ap,0x3)),this[l8(0x5ae)]('normal',new X(aq,0x3)),this[l8(0x5ae)]('uv',new X(av,0x2));}[d4(0x647)](a4){const l9=d4;return super[l9(0x647)](a4),this[l9(0x28b)]=Object['assign']({},a4['parameters']),this;}static['fromJSON'](a4){const lb=d4;return new e(a4[lb(0x263)],a4['widthSegments'],a4[lb(0x1b4)],a4['phiStart'],a4['phiLength'],a4['thetaStart'],a4[lb(0x2a5)]);}};function po(a4){const lf=d4;let a5={};for(let a6 in a4){a5[a6]={};for(let a7 in a4[a6]){let a8=a4[a6][a7];if(ho(a8))a8[lf(0x161)]?(z('UniformsUtils:\x20Textures\x20of\x20render\x20targets\x20cannot\x20be\x20cloned\x20via\x20cloneUniforms()\x20or\x20mergeUniforms().'),a5[a6][a7]=null):a5[a6][a7]=a8['clone']();else{if(Array['isArray'](a8)){if(ho(a8[0x0])){let a9=[];for(let ab=0x0,af=a8['length'];ab<af;ab++)a9[ab]=a8[ab][lf(0x2d8)]();a5[a6][a7]=a9;}else a5[a6][a7]=a8['slice']();}else a5[a6][a7]=a8;}}}return a5;}function mo(a4){let a5={};for(let a6=0x0;a6<a4['length'];a6++){let a7=po(a4[a6]);for(let a8 in a7)a5[a8]=a7[a8];}return a5;}function ho(a4){const lg=d4;return a4&&(a4['isColor']||a4['isMatrix3']||a4['isMatrix4']||a4['isVector2']||a4['isVector3']||a4[lg(0x330)]||a4['isTexture']||a4['isQuaternion']);}function go(a4){let a5=[];for(let a6=0x0;a6<a4['length'];a6++)a5['push'](a4[a6]['clone']());return a5;}function _o(a4){let a5=a4['getRenderTarget']();return a5===null?a4['outputColorSpace']:a5['isXRRenderTarget']===!0x0?a5['texture']['colorSpace']:K['workingColorSpace'];}var vo={'clone':po,'merge':mo},yo='void\x20main()\x20{\x0a\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a}',bo='void\x20main()\x20{\x0a\x09gl_FragColor\x20=\x20vec4(\x201.0,\x200.0,\x200.0,\x201.0\x20);\x0a}',xo=class extends Yr{constructor(a4){const lh=d4;super(),this['isShaderMaterial']=!0x0,this[lh(0x3e0)]=lh(0x333),this['defines']={},this[lh(0x4d5)]={},this[lh(0x294)]=[],this['vertexShader']=yo,this['fragmentShader']=bo,this['linewidth']=0x1,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['fog']=!0x1,this[lh(0x622)]=!0x1,this['clipping']=!0x1,this['forceSinglePass']=!0x0,this['extensions']={'clipCullDistance':!0x1,'multiDraw':!0x1},this['defaultAttributeValues']={'color':[0x1,0x1,0x1],'uv':[0x0,0x0],'uv1':[0x0,0x0]},this['index0AttributeName']=void 0x0,this['uniformsNeedUpdate']=!0x1,this['glslVersion']=null,a4!==void 0x0&&this[lh(0x252)](a4);}['copy'](a4){const lj=d4;return super['copy'](a4),this['fragmentShader']=a4['fragmentShader'],this[lj(0x175)]=a4['vertexShader'],this['uniforms']=po(a4['uniforms']),this['uniformsGroups']=go(a4['uniformsGroups']),this['defines']=Object['assign']({},a4['defines']),this['wireframe']=a4['wireframe'],this['wireframeLinewidth']=a4[lj(0x209)],this['fog']=a4[lj(0x5b2)],this['lights']=a4['lights'],this['clipping']=a4['clipping'],this['extensions']=Object['assign']({},a4[lj(0x52e)]),this['glslVersion']=a4['glslVersion'],this['defaultAttributeValues']=Object['assign']({},a4['defaultAttributeValues']),this['index0AttributeName']=a4['index0AttributeName'],this['uniformsNeedUpdate']=a4['uniformsNeedUpdate'],this;}['toJSON'](a4){const lk=d4;let a5=super['toJSON'](a4);a5['glslVersion']=this['glslVersion'],a5['uniforms']={};for(let a7 in this[lk(0x4d5)]){let a8=this['uniforms'][a7][lk(0x4ad)];a8&&a8[lk(0x3ca)]?a5[lk(0x4d5)][a7]={'type':'t','value':a8['toJSON'](a4)[lk(0x2a7)]}:a8&&a8['isColor']?a5['uniforms'][a7]={'type':'c','value':a8['getHex']()}:a8&&a8[lk(0x1ff)]?a5['uniforms'][a7]={'type':'v2','value':a8['toArray']()}:a8&&a8['isVector3']?a5[lk(0x4d5)][a7]={'type':'v3','value':a8['toArray']()}:a8&&a8['isVector4']?a5['uniforms'][a7]={'type':'v4','value':a8[lk(0x226)]()}:a8&&a8['isMatrix3']?a5['uniforms'][a7]={'type':'m3','value':a8['toArray']()}:a8&&a8['isMatrix4']?a5[lk(0x4d5)][a7]={'type':'m4','value':a8[lk(0x226)]()}:a5['uniforms'][a7]={'value':a8};}Object['keys'](this['defines'])[lk(0x3ac)]>0x0&&(a5['defines']=this['defines']),a5['vertexShader']=this['vertexShader'],a5['fragmentShader']=this['fragmentShader'],a5[lk(0x622)]=this['lights'],a5['clipping']=this['clipping'];let a6={};for(let a9 in this['extensions'])this['extensions'][a9]===!0x0&&(a6[a9]=!0x0);return Object['keys'](a6)['length']>0x0&&(a5['extensions']=a6),a5;}},So=class extends xo{constructor(a4){const lm=d4;super(a4),this['isRawShaderMaterial']=!0x0,this['type']=lm(0x2c7);}},Co=class extends Yr{constructor(a4){const lp=d4;super(),this['isMeshStandardMaterial']=!0x0,this['type']='MeshStandardMaterial',this['defines']={'STANDARD':''},this['color']=new Y(0xffffff),this['roughness']=0x1,this['metalness']=0x0,this['map']=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this[lp(0x5b1)]=null,this['aoMapIntensity']=0x1,this['emissive']=new Y(0x0),this['emissiveIntensity']=0x1,this['emissiveMap']=null,this['bumpMap']=null,this['bumpScale']=0x1,this['normalMap']=null,this['normalMapType']=0x0,this['normalScale']=new U(0x1,0x1),this['displacementMap']=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this[lp(0x4b7)]=null,this['metalnessMap']=null,this['alphaMap']=null,this['envMap']=null,this['envMapRotation']=new wn(),this['envMapIntensity']=0x1,this[lp(0x4f1)]=!0x1,this['wireframeLinewidth']=0x1,this['wireframeLinecap']=lp(0x346),this[lp(0x4ca)]='round',this['flatShading']=!0x1,this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const lq=d4;return super[lq(0x647)](a4),this[lq(0x54b)]={'STANDARD':''},this['color']['copy'](a4['color']),this[lq(0x312)]=a4['roughness'],this['metalness']=a4[lq(0x1e4)],this[lq(0x2db)]=a4['map'],this['lightMap']=a4['lightMap'],this['lightMapIntensity']=a4[lq(0x1bc)],this['aoMap']=a4['aoMap'],this['aoMapIntensity']=a4['aoMapIntensity'],this[lq(0x2d1)]['copy'](a4['emissive']),this['emissiveMap']=a4[lq(0x5d1)],this[lq(0x155)]=a4['emissiveIntensity'],this['bumpMap']=a4['bumpMap'],this[lq(0x4c8)]=a4['bumpScale'],this['normalMap']=a4['normalMap'],this['normalMapType']=a4[lq(0x595)],this['normalScale'][lq(0x647)](a4[lq(0x368)]),this['displacementMap']=a4['displacementMap'],this[lq(0x187)]=a4['displacementScale'],this['displacementBias']=a4['displacementBias'],this[lq(0x4b7)]=a4['roughnessMap'],this[lq(0x3e2)]=a4['metalnessMap'],this['alphaMap']=a4['alphaMap'],this[lq(0x393)]=a4['envMap'],this['envMapRotation']['copy'](a4[lq(0x52b)]),this['envMapIntensity']=a4['envMapIntensity'],this[lq(0x4f1)]=a4['wireframe'],this['wireframeLinewidth']=a4['wireframeLinewidth'],this[lq(0x30c)]=a4['wireframeLinecap'],this[lq(0x4ca)]=a4[lq(0x4ca)],this[lq(0x636)]=a4['flatShading'],this['fog']=a4['fog'],this;}},wo=class extends Co{constructor(a4){const lv=d4;super(),this['isMeshPhysicalMaterial']=!0x0,this[lv(0x54b)]={'STANDARD':'','PHYSICAL':''},this['type']=lv(0x356),this['anisotropyRotation']=0x0,this['anisotropyMap']=null,this['clearcoatMap']=null,this['clearcoatRoughness']=0x0,this[lv(0x343)]=null,this['clearcoatNormalScale']=new U(0x1,0x1),this['clearcoatNormalMap']=null,this['ior']=1.5,Object['defineProperty'](this,'reflectivity',{'get':function(){return V(2.5*(this['ior']-0x1)/(this['ior']+0x1),0x0,0x1);},'set':function(a5){const lw=lv;this[lw(0x459)]=(0x1+0.4*a5)/(0x1-0.4*a5);}}),this[lv(0x5c0)]=null,this[lv(0x4e5)]=1.3,this['iridescenceThicknessRange']=[0x64,0x190],this['iridescenceThicknessMap']=null,this['sheenColor']=new Y(0x0),this['sheenColorMap']=null,this[lv(0x519)]=0x1,this['sheenRoughnessMap']=null,this['transmissionMap']=null,this['thickness']=0x0,this['thicknessMap']=null,this['attenuationDistance']=Infinity,this[lv(0x476)]=new Y(0x1,0x1,0x1),this['specularIntensity']=0x1,this[lv(0x570)]=null,this['specularColor']=new Y(0x1,0x1,0x1),this['specularColorMap']=null,this['_anisotropy']=0x0,this['_clearcoat']=0x0,this[lv(0x212)]=0x0,this['_iridescence']=0x0,this['_sheen']=0x0,this[lv(0x354)]=0x0,this['setValues'](a4);}get['anisotropy'](){const lx=d4;return this[lx(0x13a)];}set['anisotropy'](a4){const ly=d4;this['_anisotropy']>0x0!=a4>0x0&&this[ly(0x584)]++,this['_anisotropy']=a4;}get['clearcoat'](){return this['_clearcoat'];}set['clearcoat'](a4){this['_clearcoat']>0x0!=a4>0x0&&this['version']++,this['_clearcoat']=a4;}get['iridescence'](){return this['_iridescence'];}set['iridescence'](a4){this['_iridescence']>0x0!=a4>0x0&&this['version']++,this['_iridescence']=a4;}get[d4(0x30a)](){const lz=d4;return this[lz(0x212)];}set['dispersion'](a4){const lA=d4;this[lA(0x212)]>0x0!=a4>0x0&&this['version']++,this['_dispersion']=a4;}get[d4(0x57e)](){return this['_sheen'];}set['sheen'](a4){const lB=d4;this['_sheen']>0x0!=a4>0x0&&this['version']++,this[lB(0x126)]=a4;}get[d4(0x195)](){return this['_transmission'];}set['transmission'](a4){this['_transmission']>0x0!=a4>0x0&&this['version']++,this['_transmission']=a4;}['copy'](a4){const lC=d4;return super['copy'](a4),this['defines']={'STANDARD':'','PHYSICAL':''},this[lC(0x48d)]=a4['anisotropy'],this['anisotropyRotation']=a4['anisotropyRotation'],this['anisotropyMap']=a4['anisotropyMap'],this[lC(0x381)]=a4['clearcoat'],this[lC(0x1f2)]=a4['clearcoatMap'],this['clearcoatRoughness']=a4['clearcoatRoughness'],this['clearcoatRoughnessMap']=a4['clearcoatRoughnessMap'],this['clearcoatNormalMap']=a4['clearcoatNormalMap'],this['clearcoatNormalScale']['copy'](a4[lC(0x12a)]),this['dispersion']=a4['dispersion'],this['ior']=a4['ior'],this[lC(0x399)]=a4['iridescence'],this['iridescenceMap']=a4['iridescenceMap'],this['iridescenceIOR']=a4['iridescenceIOR'],this['iridescenceThicknessRange']=[...a4['iridescenceThicknessRange']],this['iridescenceThicknessMap']=a4['iridescenceThicknessMap'],this['sheen']=a4[lC(0x57e)],this['sheenColor']['copy'](a4['sheenColor']),this['sheenColorMap']=a4['sheenColorMap'],this['sheenRoughness']=a4['sheenRoughness'],this['sheenRoughnessMap']=a4['sheenRoughnessMap'],this[lC(0x195)]=a4['transmission'],this[lC(0x1d7)]=a4['transmissionMap'],this['thickness']=a4['thickness'],this['thicknessMap']=a4['thicknessMap'],this['attenuationDistance']=a4['attenuationDistance'],this['attenuationColor']['copy'](a4[lC(0x476)]),this['specularIntensity']=a4['specularIntensity'],this[lC(0x570)]=a4['specularIntensityMap'],this['specularColor']['copy'](a4['specularColor']),this['specularColorMap']=a4['specularColorMap'],this;}},To=class extends Yr{constructor(a4){const lD=d4;super(),this['isMeshPhongMaterial']=!0x0,this[lD(0x3e0)]='MeshPhongMaterial',this['color']=new Y(0xffffff),this[lD(0x162)]=new Y(0x111111),this['shininess']=0x1e,this['map']=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this['aoMap']=null,this[lD(0x45d)]=0x1,this['emissive']=new Y(0x0),this['emissiveIntensity']=0x1,this['emissiveMap']=null,this['bumpMap']=null,this['bumpScale']=0x1,this[lD(0x360)]=null,this['normalMapType']=0x0,this['normalScale']=new U(0x1,0x1),this[lD(0x489)]=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this[lD(0x3f8)]=null,this['alphaMap']=null,this['envMap']=null,this['envMapRotation']=new wn(),this['combine']=0x0,this['reflectivity']=0x1,this['envMapIntensity']=0x1,this['refractionRatio']=0.98,this['wireframe']=!0x1,this[lD(0x209)]=0x1,this['wireframeLinecap']='round',this['wireframeLinejoin']=lD(0x346),this['flatShading']=!0x1,this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const lE=d4;return super['copy'](a4),this[lE(0x180)]['copy'](a4[lE(0x180)]),this['specular']['copy'](a4['specular']),this[lE(0x600)]=a4['shininess'],this['map']=a4['map'],this['lightMap']=a4['lightMap'],this['lightMapIntensity']=a4[lE(0x1bc)],this[lE(0x5b1)]=a4['aoMap'],this['aoMapIntensity']=a4['aoMapIntensity'],this['emissive']['copy'](a4['emissive']),this['emissiveMap']=a4['emissiveMap'],this['emissiveIntensity']=a4['emissiveIntensity'],this['bumpMap']=a4['bumpMap'],this[lE(0x4c8)]=a4['bumpScale'],this['normalMap']=a4['normalMap'],this['normalMapType']=a4['normalMapType'],this['normalScale']['copy'](a4['normalScale']),this['displacementMap']=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this['displacementBias']=a4[lE(0x505)],this['specularMap']=a4[lE(0x3f8)],this['alphaMap']=a4[lE(0x2d6)],this[lE(0x393)]=a4['envMap'],this['envMapRotation']['copy'](a4['envMapRotation']),this['combine']=a4['combine'],this['reflectivity']=a4['reflectivity'],this[lE(0x1a0)]=a4['envMapIntensity'],this['refractionRatio']=a4['refractionRatio'],this['wireframe']=a4[lE(0x4f1)],this['wireframeLinewidth']=a4[lE(0x209)],this['wireframeLinecap']=a4[lE(0x30c)],this[lE(0x4ca)]=a4['wireframeLinejoin'],this[lE(0x636)]=a4['flatShading'],this['fog']=a4['fog'],this;}},Eo=class extends Yr{constructor(a4){const lF=d4;super(),this['isMeshLambertMaterial']=!0x0,this['type']=lF(0x59c),this['color']=new Y(0xffffff),this[lF(0x2db)]=null,this['lightMap']=null,this['lightMapIntensity']=0x1,this['aoMap']=null,this['aoMapIntensity']=0x1,this['emissive']=new Y(0x0),this['emissiveIntensity']=0x1,this[lF(0x5d1)]=null,this['bumpMap']=null,this['bumpScale']=0x1,this[lF(0x360)]=null,this['normalMapType']=0x0,this['normalScale']=new U(0x1,0x1),this[lF(0x489)]=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this[lF(0x3f8)]=null,this['alphaMap']=null,this['envMap']=null,this[lF(0x52b)]=new wn(),this['combine']=0x0,this[lF(0x337)]=0x1,this['envMapIntensity']=0x1,this['refractionRatio']=0.98,this['wireframe']=!0x1,this[lF(0x209)]=0x1,this['wireframeLinecap']='round',this[lF(0x4ca)]=lF(0x346),this['flatShading']=!0x1,this['fog']=!0x0,this['setValues'](a4);}['copy'](a4){const lG=d4;return super['copy'](a4),this['color'][lG(0x647)](a4['color']),this['map']=a4['map'],this['lightMap']=a4[lG(0x1e6)],this['lightMapIntensity']=a4['lightMapIntensity'],this['aoMap']=a4['aoMap'],this['aoMapIntensity']=a4['aoMapIntensity'],this[lG(0x2d1)][lG(0x647)](a4['emissive']),this['emissiveMap']=a4[lG(0x5d1)],this['emissiveIntensity']=a4['emissiveIntensity'],this['bumpMap']=a4['bumpMap'],this['bumpScale']=a4['bumpScale'],this['normalMap']=a4['normalMap'],this[lG(0x595)]=a4['normalMapType'],this['normalScale'][lG(0x647)](a4['normalScale']),this['displacementMap']=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this[lG(0x505)]=a4['displacementBias'],this['specularMap']=a4['specularMap'],this['alphaMap']=a4['alphaMap'],this[lG(0x393)]=a4['envMap'],this['envMapRotation']['copy'](a4['envMapRotation']),this['combine']=a4['combine'],this['reflectivity']=a4['reflectivity'],this['envMapIntensity']=a4['envMapIntensity'],this['refractionRatio']=a4['refractionRatio'],this['wireframe']=a4[lG(0x4f1)],this['wireframeLinewidth']=a4['wireframeLinewidth'],this[lG(0x30c)]=a4[lG(0x30c)],this[lG(0x4ca)]=a4['wireframeLinejoin'],this['flatShading']=a4['flatShading'],this['fog']=a4['fog'],this;}},Do=class extends Yr{constructor(a4){const lH=d4;super(),this['isMeshDepthMaterial']=!0x0,this['type']=lH(0x601),this['depthPacking']=nt,this['map']=null,this['alphaMap']=null,this[lH(0x489)]=null,this['displacementScale']=0x1,this['displacementBias']=0x0,this['wireframe']=!0x1,this['wireframeLinewidth']=0x1,this['setValues'](a4);}['copy'](a4){const lI=d4;return super[lI(0x647)](a4),this['depthPacking']=a4['depthPacking'],this[lI(0x2db)]=a4['map'],this['alphaMap']=a4['alphaMap'],this['displacementMap']=a4['displacementMap'],this['displacementScale']=a4['displacementScale'],this['displacementBias']=a4['displacementBias'],this[lI(0x4f1)]=a4['wireframe'],this[lI(0x209)]=a4['wireframeLinewidth'],this;}},Oo=class extends Yr{constructor(a4){const lJ=d4;super(),this['isMeshDistanceMaterial']=!0x0,this['type']='MeshDistanceMaterial',this['map']=null,this[lJ(0x2d6)]=null,this['displacementMap']=null,this['displacementScale']=0x1,this[lJ(0x505)]=0x0,this[lJ(0x252)](a4);}['copy'](a4){const lK=d4;return super['copy'](a4),this['map']=a4[lK(0x2db)],this['alphaMap']=a4['alphaMap'],this['displacementMap']=a4[lK(0x489)],this[lK(0x187)]=a4[lK(0x187)],this[lK(0x505)]=a4['displacementBias'],this;}};function ko(a4,a5){const lL=d4;return!a4||a4['constructor']===a5?a4:typeof a5['BYTES_PER_ELEMENT']=='number'?new a5(a4):Array['prototype']['slice'][lL(0x308)](a4);}function Ao(a4){const lM=d4;function a5(a8,a9){return a4[a8]-a4[a9];}let a6=a4[lM(0x3ac)],a7=Array(a6);for(let a8=0x0;a8!==a6;++a8)a7[a8]=a8;return a7['sort'](a5),a7;}function jo(a4,a5,a6){const lN=d4;let a7=a4[lN(0x3ac)],a8=new a4['constructor'](a7);for(let a9=0x0,ab=0x0;ab!==a7;++a9){let af=a6[a9]*a5;for(let ag=0x0;ag!==a5;++ag)a8[ab++]=a4[af+ag];}return a8;}function Mo(a4,a5,a6,a7){const lO=d4;let a8=0x1,a9=a4[0x0];for(;a9!==void 0x0&&a9[a7]===void 0x0;)a9=a4[a8++];if(a9===void 0x0)return;let ab=a9[a7];if(ab!==void 0x0){if(Array['isArray'](ab)){do ab=a9[a7],ab!==void 0x0&&(a5['push'](a9[lO(0x311)]),a6['push'](...ab)),a9=a4[a8++];while(a9!==void 0x0);}else{if(ab['toArray']!==void 0x0){do ab=a9[a7],ab!==void 0x0&&(a5[lO(0x5d4)](a9['time']),ab[lO(0x226)](a6,a6['length'])),a9=a4[a8++];while(a9!==void 0x0);}else{do ab=a9[a7],ab!==void 0x0&&(a5[lO(0x5d4)](a9['time']),a6['push'](ab)),a9=a4[a8++];while(a9!==void 0x0);}}}}var No=class{constructor(a4,a5,a6,a7){const lP=d4;this['parameterPositions']=a4,this[lP(0x4ee)]=0x0,this['resultBuffer']=a7===void 0x0?new a5['constructor'](a6):a7,this['sampleValues']=a5,this['valueSize']=a6,this[lP(0x5ce)]=null,this[lP(0x15d)]={};}['evaluate'](a4){const lQ=d4;let a5=this[lQ(0x4b8)],a6=this['_cachedIndex'],a7=a5[a6],a8=a5[a6-0x1];aj:{ak:{let a9;am:{ap:if(!(a4<a7)){for(let ab=a6+0x2;;){if(a7===void 0x0){if(a4<a8)break ap;return a6=a5['length'],this['_cachedIndex']=a6,this['copySampleValue_'](a6-0x1);}if(a6===ab)break;if(a8=a7,a7=a5[++a6],a4<a7)break ak;}a9=a5['length'];break am;}if(!(a4>=a8)){let af=a5[0x1];a4<af&&(a6=0x2,a8=af);for(let ag=a6-0x2;;){if(a8===void 0x0)return this[lQ(0x4ee)]=0x0,this['copySampleValue_'](0x0);if(a6===ag)break;if(a7=a8,a8=a5[--a6-0x1],a4>=a8)break ak;}a9=a6,a6=0x0;break am;}break aj;}for(;a6<a9;){let ah=a6+a9>>>0x1;a4<a5[ah]?a9=ah:a6=ah+0x1;}if(a7=a5[a6],a8=a5[a6-0x1],a8===void 0x0)return this['_cachedIndex']=0x0,this[lQ(0x182)](0x0);if(a7===void 0x0)return a6=a5['length'],this[lQ(0x4ee)]=a6,this['copySampleValue_'](a6-0x1);}this['_cachedIndex']=a6,this['intervalChanged_'](a6,a8,a7);}return this['interpolate_'](a6,a8,a4,a7);}['getSettings_'](){return this['settings']||this['DefaultSettings_'];}['copySampleValue_'](a4){const lR=d4;let a5=this['resultBuffer'],a6=this['sampleValues'],a7=this[lR(0x4a5)],a8=a4*a7;for(let a9=0x0;a9!==a7;++a9)a5[a9]=a6[a8+a9];return a5;}['interpolate_'](){throw Error('call\x20to\x20abstract\x20method');}['intervalChanged_'](){}},Po=class extends No{constructor(a4,a5,a6,a7){const lS=d4;super(a4,a5,a6,a7),this[lS(0x609)]=-0x0,this['_offsetPrev']=-0x0,this['_weightNext']=-0x0,this['_offsetNext']=-0x0,this['DefaultSettings_']={'endingStart':Ze,'endingEnd':Ze};}[d4(0x53f)](a4,a5,a6){const lT=d4;let a7=this[lT(0x4b8)],a8=a4-0x2,a9=a4+0x1,ab=a7[a8],af=a7[a9];if(ab===void 0x0)switch(this['getSettings_']()['endingStart']){case Qe:a8=a4,ab=0x2*a5-a6;break;case $e:a8=a7['length']-0x2,ab=a5+a7[a8]-a7[a8+0x1];break;default:a8=a4,ab=a6;}if(af===void 0x0)switch(this['getSettings_']()['endingEnd']){case Qe:a9=a4,af=0x2*a6-a5;break;case $e:a9=0x1,af=a6+a7[0x1]-a7[0x0];break;default:a9=a4-0x1,af=a5;}let ag=(a6-a5)*0.5,ah=this['valueSize'];this['_weightPrev']=ag/(a5-ab),this['_weightNext']=ag/(af-a6),this['_offsetPrev']=a8*ah,this[lT(0x539)]=a9*ah;}['interpolate_'](a4,a5,a6,a7){const lU=d4;let a8=this['resultBuffer'],a9=this['sampleValues'],ab=this['valueSize'],af=a4*ab,ag=af-ab,ah=this['_offsetPrev'],aj=this['_offsetNext'],ak=this[lU(0x609)],am=this['_weightNext'],ap=(a6-a5)/(a7-a5),aq=ap*ap,av=aq*ap,aw=-ak*av+0x2*ak*aq-ak*ap,ax=(0x1+ak)*av+(-1.5-0x2*ak)*aq+(-0.5+ak)*ap+0x1,ay=(-0x1-am)*av+(1.5+am)*aq+0.5*ap,az=am*av-am*aq;for(let aA=0x0;aA!==ab;++aA)a8[aA]=aw*a9[ah+aA]+ax*a9[ag+aA]+ay*a9[af+aA]+az*a9[aj+aA];return a8;}},Fo=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}['interpolate_'](a4,a5,a6,a7){const lV=d4;let a8=this['resultBuffer'],a9=this['sampleValues'],ab=this[lV(0x4a5)],af=a4*ab,ag=af-ab,ah=(a6-a5)/(a7-a5),aj=0x1-ah;for(let ak=0x0;ak!==ab;++ak)a8[ak]=a9[ag+ak]*aj+a9[af+ak]*ah;return a8;}},Io=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}['interpolate_'](a4){return this['copySampleValue_'](a4-0x1);}},Lo=class extends No{['interpolate_'](a4,a5,a6,a7){const lW=d4;let a8=this['resultBuffer'],a9=this[lW(0x440)],ab=this[lW(0x4a5)],af=a4*ab,ag=af-ab,ah=this[lW(0x5ce)]||this['DefaultSettings_'],aj=ah['inTangents'],ak=ah[lW(0x516)];if(!aj||!ak){let aq=(a6-a5)/(a7-a5),av=0x1-aq;for(let aw=0x0;aw!==ab;++aw)a8[aw]=a9[ag+aw]*av+a9[af+aw]*aq;return a8;}let am=ab*0x2,ap=a4-0x1;for(let ax=0x0;ax!==ab;++ax){let ay=a9[ag+ax],az=a9[af+ax],aA=ap*am+ax*0x2,aB=ak[aA],aC=ak[aA+0x1],aD=a4*am+ax*0x2,aE=aj[aD],aF=aj[aD+0x1],aG=(a6-a5)/(a7-a5),aH,aI,aJ,aK,aL;for(let aM=0x0;aM<0x8;aM++){aH=aG*aG,aI=aH*aG,aJ=0x1-aG,aK=aJ*aJ,aL=aK*aJ;let aN=aL*a5+0x3*aK*aG*aB+0x3*aJ*aH*aE+aI*a7-a6;if(Math['abs'](aN)<1e-10)break;let aO=0x3*aK*(aB-a5)+0x6*aJ*aG*(aE-aB)+0x3*aH*(a7-aE);if(Math['abs'](aO)<1e-10)break;aG-=aN/aO,aG=Math['max'](0x0,Math[lW(0x5cd)](0x1,aG));}a8[ax]=aL*ay+0x3*aK*aG*aC+0x3*aJ*aH*aF+aI*az;}return a8;}},Ro=class{constructor(a4,a5,a6,a7){const lX=d4;if(a4===void 0x0)throw Error(lX(0x46f));if(a5===void 0x0||a5['length']===0x0)throw Error('THREE.KeyframeTrack:\x20no\x20keyframes\x20in\x20track\x20named\x20'+a4);this['name']=a4,this['times']=ko(a5,this['TimeBufferType']),this['values']=ko(a6,this['ValueBufferType']),this['setInterpolation'](a7||this['DefaultInterpolation']);}static['toJSON'](a4){const lY=d4;let a5=a4[lY(0x407)],a6;if(a5[lY(0x1bb)]!==this[lY(0x1bb)])a6=a5['toJSON'](a4);else{a6={'name':a4['name'],'times':ko(a4['times'],Array),'values':ko(a4['values'],Array)};let a7=a4['getInterpolation']();a7!==a4[lY(0x5be)]&&(a6['interpolation']=a7);}return a6[lY(0x3e0)]=a4['ValueTypeName'],a6;}['InterpolantFactoryMethodDiscrete'](a4){const lZ=d4;return new Io(this[lZ(0x3fd)],this['values'],this[lZ(0x30f)](),a4);}[d4(0x596)](a4){const m0=d4;return new Fo(this['times'],this[m0(0x2e5)],this[m0(0x30f)](),a4);}['InterpolantFactoryMethodSmooth'](a4){const m1=d4;return new Po(this['times'],this[m1(0x2e5)],this[m1(0x30f)](),a4);}['InterpolantFactoryMethodBezier'](a4){const m2=d4;let a5=new Lo(this['times'],this[m2(0x2e5)],this['getValueSize'](),a4);return this['settings']&&(a5['settings']=this[m2(0x5ce)]),a5;}['setInterpolation'](a4){const m3=d4;let a5;switch(a4){case qe:a5=this['InterpolantFactoryMethodDiscrete'];break;case Je:a5=this['InterpolantFactoryMethodLinear'];break;case Ye:a5=this['InterpolantFactoryMethodSmooth'];break;case Xe:a5=this['InterpolantFactoryMethodBezier'];break;}if(a5===void 0x0){let a6='unsupported\x20interpolation\x20for\x20'+this['ValueTypeName']+'\x20keyframe\x20track\x20named\x20'+this['name'];if(this[m3(0x272)]===void 0x0){if(a4!==this['DefaultInterpolation'])this['setInterpolation'](this['DefaultInterpolation']);else throw Error(a6);}return z('KeyframeTrack:',a6),this;}return this['createInterpolant']=a5,this;}[d4(0x14f)](){const m4=d4;switch(this['createInterpolant']){case this['InterpolantFactoryMethodDiscrete']:return qe;case this['InterpolantFactoryMethodLinear']:return Je;case this[m4(0x1b7)]:return Ye;case this['InterpolantFactoryMethodBezier']:return Xe;}}['getValueSize'](){return this['values']['length']/this['times']['length'];}['shift'](a4){if(a4!==0x0){let a5=this['times'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6)a5[a6]+=a4;}return this;}['scale'](a4){if(a4!==0x1){let a5=this['times'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6)a5[a6]*=a4;}return this;}['trim'](a4,a5){const m5=d4;let a6=this['times'],a7=a6['length'],a8=0x0,a9=a7-0x1;for(;a8!==a7&&a6[a8]<a4;)++a8;for(;a9!==-0x1&&a6[a9]>a5;)--a9;if(++a9,a8!==0x0||a9!==a7){a8>=a9&&(a9=Math['max'](a9,0x1),a8=a9-0x1);let ab=this['getValueSize']();this['times']=a6['slice'](a8,a9),this[m5(0x2e5)]=this['values']['slice'](a8*ab,a9*ab);}return this;}['validate'](){const m6=d4;let a4=!0x0,a5=this['getValueSize']();a5-Math['floor'](a5)!==0x0&&(B('KeyframeTrack:\x20Invalid\x20value\x20size\x20in\x20track.',this),a4=!0x1);let a6=this[m6(0x3fd)],a7=this['values'],a8=a6['length'];a8===0x0&&(B('KeyframeTrack:\x20Track\x20is\x20empty.',this),a4=!0x1);let a9=null;for(let ab=0x0;ab!==a8;ab++){let af=a6[ab];if(typeof af==m6(0x51b)&&isNaN(af)){B('KeyframeTrack:\x20Time\x20is\x20not\x20a\x20valid\x20number.',this,ab,af),a4=!0x1;break;}if(a9!==null&&a9>af){B('KeyframeTrack:\x20Out\x20of\x20order\x20keys.',this,ab,af,a9),a4=!0x1;break;}a9=af;}if(a7!==void 0x0&&dt(a7))for(let ag=0x0,ah=a7['length'];ag!==ah;++ag){let aj=a7[ag];if(isNaN(aj)){B('KeyframeTrack:\x20Value\x20is\x20not\x20a\x20valid\x20number.',this,ag,aj),a4=!0x1;break;}}return a4;}[d4(0x19e)](){const m7=d4;let a4=this[m7(0x3fd)]['slice'](),a5=this[m7(0x2e5)]['slice'](),a6=this['getValueSize'](),a7=this['getInterpolation']()===Ye,a8=a4['length']-0x1,a9=0x1;for(let ab=0x1;ab<a8;++ab){let af=!0x1,ag=a4[ab];if(ag!==a4[ab+0x1]&&(ab!==0x1||ag!==a4[0x0])){if(a7)af=!0x0;else{let ah=ab*a6,aj=ah-a6,ak=ah+a6;for(let am=0x0;am!==a6;++am){let ap=a5[ah+am];if(ap!==a5[aj+am]||ap!==a5[ak+am]){af=!0x0;break;}}}}if(af){if(ab!==a9){a4[a9]=a4[ab];let aq=ab*a6,av=a9*a6;for(let aw=0x0;aw!==a6;++aw)a5[av+aw]=a5[aq+aw];}++a9;}}if(a8>0x0){a4[a9]=a4[a8];for(let ax=a8*a6,ay=a9*a6,az=0x0;az!==a6;++az)a5[ay+az]=a5[ax+az];++a9;}return a9===a4['length']?(this[m7(0x3fd)]=a4,this['values']=a5):(this['times']=a4['slice'](0x0,a9),this[m7(0x2e5)]=a5['slice'](0x0,a9*a6)),this;}[d4(0x2d8)](){let a4=this['times']['slice'](),a5=this['values']['slice'](),a6=this['constructor'],a7=new a6(this['name'],a4,a5);return a7['createInterpolant']=this['createInterpolant'],a7;}};Ro[d4(0x156)]['ValueTypeName']='',Ro['prototype'][d4(0x43c)]=Float32Array,Ro[d4(0x156)][d4(0x261)]=Float32Array,Ro[d4(0x156)]['DefaultInterpolation']=Je;var zo=class extends Ro{constructor(a4,a5,a6){super(a4,a5,a6);}};zo[d4(0x156)]['ValueTypeName']='bool',zo[d4(0x156)]['ValueBufferType']=Array,zo['prototype']['DefaultInterpolation']=qe,zo['prototype']['InterpolantFactoryMethodLinear']=void 0x0,zo['prototype']['InterpolantFactoryMethodSmooth']=void 0x0;var Bo=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}};Bo[d4(0x156)]['ValueTypeName']='color';var Vo=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}};Vo['prototype'][d4(0x2ff)]='number';var Ho=class extends No{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}[d4(0x583)](a4,a5,a6,a7){let a8=this['resultBuffer'],a9=this['sampleValues'],ab=this['valueSize'],af=(a6-a5)/(a7-a5),ag=a4*ab;for(let ah=ag+ab;ag!==ah;ag+=0x4)qt['slerpFlat'](a8,0x0,a9,ag-ab,a9,ag,af);return a8;}},Uo=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}['InterpolantFactoryMethodLinear'](a4){return new Ho(this['times'],this['values'],this['getValueSize'](),a4);}};Uo[d4(0x156)]['ValueTypeName']='quaternion',Uo['prototype']['InterpolantFactoryMethodSmooth']=void 0x0;var Wo=class extends Ro{constructor(a4,a5,a6){super(a4,a5,a6);}};Wo['prototype']['ValueTypeName']='string',Wo['prototype']['ValueBufferType']=Array,Wo['prototype']['DefaultInterpolation']=qe,Wo['prototype']['InterpolantFactoryMethodLinear']=void 0x0,Wo['prototype']['InterpolantFactoryMethodSmooth']=void 0x0;var Go=class extends Ro{constructor(a4,a5,a6,a7){super(a4,a5,a6,a7);}};Go['prototype']['ValueTypeName']=d4(0x59e);var Ko=class{constructor(a4='',a5=-0x1,a6=[],a7=et){const m8=d4;this[m8(0x3bd)]=a4,this['tracks']=a6,this['duration']=a5,this[m8(0x12f)]=a7,this['uuid']=Et(),this['userData']={},this[m8(0x5ef)]<0x0&&this['resetDuration']();}static['parse'](a4){const m9=d4;let a5=[],a6=a4['tracks'],a7=0x1/(a4['fps']||0x1);for(let a9=0x0,ab=a6[m9(0x3ac)];a9!==ab;++a9)a5[m9(0x5d4)](Jo(a6[a9])['scale'](a7));let a8=new this(a4['name'],a4['duration'],a5,a4['blendMode']);return a8['uuid']=a4['uuid'],a8[m9(0x14c)]=JSON[m9(0x2ac)](a4['userData']||'{}'),a8;}static['toJSON'](a4){const mb=d4;let a5=[],a6=a4['tracks'],a7={'name':a4['name'],'duration':a4['duration'],'tracks':a5,'uuid':a4[mb(0x2a7)],'blendMode':a4[mb(0x12f)],'userData':JSON['stringify'](a4['userData'])};for(let a8=0x0,a9=a6['length'];a8!==a9;++a8)a5['push'](Ro['toJSON'](a6[a8]));return a7;}static['CreateFromMorphTargetSequence'](a4,a5,a6,a7){const mf=d4;let a8=a5['length'],a9=[];for(let ab=0x0;ab<a8;ab++){let af=[],ag=[];af['push']((ab+a8-0x1)%a8,ab,(ab+0x1)%a8),ag['push'](0x0,0x1,0x0);let ah=Ao(af);af=jo(af,0x1,ah),ag=jo(ag,0x1,ah),!a7&&af[0x0]===0x0&&(af['push'](a8),ag['push'](ag[0x0])),a9[mf(0x5d4)](new Vo('.morphTargetInfluences['+a5[ab]['name']+']',af,ag)['scale'](0x1/a6));}return new this(a4,-0x1,a9);}static['findByName'](a4,a5){let a6=a4;if(!Array['isArray'](a4)){let a7=a4;a6=a7['geometry']&&a7['geometry']['animations']||a7['animations'];}for(let a8=0x0;a8<a6['length'];a8++)if(a6[a8]['name']===a5)return a6[a8];return null;}static['CreateClipsFromMorphTargetSequences'](a4,a5,a6){const mg=d4;let a7={},a8=/^([\w-]*?)([\d]+)$/;for(let ab=0x0,af=a4['length'];ab<af;ab++){let ag=a4[ab],ah=ag['name'][mg(0x197)](a8);if(ah&&ah['length']>0x1){let aj=ah[0x1],ak=a7[aj];ak||(a7[aj]=ak=[]),ak['push'](ag);}}let a9=[];for(let am in a7)a9['push'](this[mg(0x21f)](am,a7[am],a5,a6));return a9;}static[d4(0x46e)](a4,a5){const mh=d4;if(z('AnimationClip:\x20parseAnimation()\x20is\x20deprecated\x20and\x20will\x20be\x20removed\x20with\x20r185'),!a4)return B('AnimationClip:\x20No\x20animation\x20in\x20JSONLoader\x20data.'),null;let a6=function(ah,aj,ak,am,ap){if(ak['length']!==0x0){let aq=[],av=[];Mo(ak,aq,av,am),aq['length']!==0x0&&ap['push'](new ah(aj,aq,av));}},a7=[],a8=a4['name']||'default',a9=a4['fps']||0x1e,ab=a4[mh(0x12f)],af=a4['length']||-0x1,ag=a4['hierarchy']||[];for(let ah=0x0;ah<ag[mh(0x3ac)];ah++){let aj=ag[ah]['keys'];if(!(!aj||aj['length']===0x0)){if(aj[0x0]['morphTargets']){let ak={},am;for(am=0x0;am<aj['length'];am++)if(aj[am]['morphTargets']){for(let ap=0x0;ap<aj[am]['morphTargets']['length'];ap++)ak[aj[am]['morphTargets'][ap]]=-0x1;}for(let aq in ak){let av=[],aw=[];for(let ax=0x0;ax!==aj[am]['morphTargets'][mh(0x3ac)];++ax){let ay=aj[am];av[mh(0x5d4)](ay['time']),aw['push'](+(ay['morphTarget']===aq));}a7['push'](new Vo('.morphTargetInfluence['+aq+']',av,aw));}af=ak['length']*a9;}else{let az='.bones['+a5[ah]['name']+']';a6(Go,az+mh(0x1ce),aj,'pos',a7),a6(Uo,az+'.quaternion',aj,'rot',a7),a6(Go,az+'.scale',aj,'scl',a7);}}}return a7['length']===0x0?null:new this(a8,af,a7,ab);}['resetDuration'](){const mj=d4;let a4=this['tracks'],a5=0x0;for(let a6=0x0,a7=a4['length'];a6!==a7;++a6){let a8=this[mj(0x35a)][a6];a5=Math['max'](a5,a8['times'][a8['times'][mj(0x3ac)]-0x1]);}return this[mj(0x5ef)]=a5,this;}[d4(0x50f)](){const mk=d4;for(let a4=0x0;a4<this[mk(0x35a)]['length'];a4++)this['tracks'][a4][mk(0x50f)](0x0,this['duration']);return this;}[d4(0x50b)](){const mm=d4;let a4=!0x0;for(let a5=0x0;a5<this['tracks']['length'];a5++)a4=a4&&this['tracks'][a5][mm(0x50b)]();return a4;}['optimize'](){const mp=d4;for(let a4=0x0;a4<this[mp(0x35a)]['length'];a4++)this['tracks'][a4][mp(0x19e)]();return this;}['clone'](){let a4=[];for(let a6=0x0;a6<this['tracks']['length'];a6++)a4['push'](this['tracks'][a6]['clone']());let a5=new this['constructor'](this['name'],this['duration'],a4,this['blendMode']);return a5['userData']=JSON['parse'](JSON['stringify'](this['userData'])),a5;}['toJSON'](){return this['constructor']['toJSON'](this);}};function qo(a4){const mq=d4;switch(a4['toLowerCase']()){case mq(0x472):case'double':case'float':case'number':case'integer':return Vo;case'vector':case'vector2':case'vector3':case'vector4':return Go;case mq(0x180):return Bo;case'quaternion':return Uo;case'bool':case mq(0x213):return zo;case'string':return Wo;}throw Error('THREE.KeyframeTrack:\x20Unsupported\x20typeName:\x20'+a4);}function Jo(a4){const mv=d4;if(a4['type']===void 0x0)throw Error('THREE.KeyframeTrack:\x20track\x20type\x20undefined,\x20can\x20not\x20parse');let a5=qo(a4['type']);if(a4['times']===void 0x0){let a6=[],a7=[];Mo(a4['keys'],a6,a7,'value'),a4['times']=a6,a4[mv(0x2e5)]=a7;}return a5['parse']===void 0x0?new a5(a4['name'],a4['times'],a4['values'],a4[mv(0x62e)]):a5['parse'](a4);}var Yo={'enabled':!0x1,'files':{},'add':function(a4,a5){const mw=d4;this[mw(0x2b4)]!==!0x1&&(Xo(a4)||(this['files'][a4]=a5));},'get':function(a4){if(this['enabled']!==!0x1&&!Xo(a4))return this['files'][a4];},'remove':function(a4){delete this['files'][a4];},'clear':function(){const mx=d4;this[mx(0x3dd)]={};}};function Xo(a4){const my=d4;try{let a5=a4[my(0x228)](a4['indexOf'](':')+0x1);return new URL(a5)[my(0x1d0)]==='blob:';}catch(a6){return!0x1;}}var Zo=class{constructor(a4,a5,a6){const mz=d4;let a7=this,a8=!0x1,a9=0x0,ab=0x0,af,ag=[];this[mz(0x319)]=void 0x0,this[mz(0x630)]=a4,this['onProgress']=a5,this['onError']=a6,this['_abortController']=null,this['itemStart']=function(ah){ab++,a8===!0x1&&a7['onStart']!==void 0x0&&a7['onStart'](ah,a9,ab),a8=!0x0;},this[mz(0x544)]=function(ah){a9++,a7['onProgress']!==void 0x0&&a7['onProgress'](ah,a9,ab),a9===ab&&(a8=!0x1,a7['onLoad']!==void 0x0&&a7['onLoad']());},this['itemError']=function(ah){const mA=mz;a7[mA(0x3ea)]!==void 0x0&&a7['onError'](ah);},this['resolveURL']=function(ah){return af?af(ah):ah;},this['setURLModifier']=function(ah){return af=ah,this;},this['addHandler']=function(ah,aj){const mB=mz;return ag[mB(0x5d4)](ah,aj),this;},this[mz(0x296)]=function(ah){const mC=mz;let aj=ag['indexOf'](ah);return aj!==-0x1&&ag[mC(0x4d0)](aj,0x2),this;},this['getHandler']=function(ah){for(let aj=0x0,ak=ag['length'];aj<ak;aj+=0x2){let am=ag[aj],ap=ag[aj+0x1];if(am['global']&&(am['lastIndex']=0x0),am['test'](ah))return ap;}return null;},this['abort']=function(){return this['abortController']['abort'](),this['_abortController']=null,this;};}get['abortController'](){return this['_abortController']||(this['_abortController']=new AbortController()),this['_abortController'];}},Qo=new Zo(),$o=class{constructor(a4){const mD=d4;this['manager']=a4===void 0x0?Qo:a4,this['crossOrigin']='anonymous',this[mD(0x58c)]=!0x1,this['path']='',this['resourcePath']='',this[mD(0x4c9)]={},typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent('observe',{'detail':this}));}['load'](){}['loadAsync'](a4,a5){let a6=this;return new Promise(function(a7,a8){a6['load'](a4,a7,a5,a8);});}['parse'](){}['setCrossOrigin'](a4){return this['crossOrigin']=a4,this;}['setWithCredentials'](a4){return this['withCredentials']=a4,this;}[d4(0x200)](a4){return this['path']=a4,this;}['setResourcePath'](a4){const mE=d4;return this[mE(0x1c3)]=a4,this;}[d4(0x2f5)](a4){const mF=d4;return this[mF(0x4c9)]=a4,this;}['abort'](){return this;}};$o[d4(0x3e6)]='__DEFAULT';var es={},ts=class extends Error{constructor(a4,a5){super(a4),this['response']=a5;}},ns=class extends $o{constructor(a4){const mG=d4;super(a4),this[mG(0x22c)]='',this['responseType']='',this['_abortController']=new AbortController();}['load'](a4,a5,a6,a7){const mH=d4;a4===void 0x0&&(a4=''),this['path']!==void 0x0&&(a4=this['path']+a4),a4=this['manager']['resolveURL'](a4);let a8=Yo['get'](mH(0x132)+a4);if(a8!==void 0x0){this['manager']['itemStart'](a4),setTimeout(()=>{a5&&a5(a8),this['manager']['itemEnd'](a4);},0x0);return;}if(es[a4]!==void 0x0){es[a4][mH(0x5d4)]({'onLoad':a5,'onProgress':a6,'onError':a7});return;}es[a4]=[],es[a4]['push']({'onLoad':a5,'onProgress':a6,'onError':a7});let a9=new Request(a4,{'headers':new Headers(this['requestHeader']),'credentials':this['withCredentials']?mH(0x599):'same-origin','signal':typeof AbortSignal['any']=='function'?AbortSignal[mH(0x5ba)]([this['_abortController']['signal'],this['manager'][mH(0x2aa)]['signal']]):this[mH(0x450)]['signal']}),ab=this['mimeType'],af=this['responseType'];fetch(a9)['then'](ag=>{const mI=mH;if(ag[mI(0x530)]===0xc8||ag['status']===0x0){if(ag[mI(0x530)]===0x0&&z('FileLoader:\x20HTTP\x20Status\x200\x20received.'),typeof ReadableStream>'u'||ag['body']===void 0x0||ag['body']['getReader']===void 0x0)return ag;let ah=es[a4],aj=ag['body']['getReader'](),ak=ag['headers']['get']('X-File-Size')||ag['headers']['get']('Content-Length'),am=ak?parseInt(ak):0x0,ap=am!==0x0,aq=0x0,av=new ReadableStream({'start'(aw){ax();function ax(){const mJ=a1;aj['read']()[mJ(0x1a6)](({done:ay,value:az})=>{const mK=mJ;if(ay)aw[mK(0x55a)]();else{aq+=az['byteLength'];let aA=new ProgressEvent(mK(0x1c6),{'lengthComputable':ap,'loaded':aq,'total':am});for(let aB=0x0,aC=ah['length'];aB<aC;aB++){let aD=ah[aB];aD['onProgress']&&aD['onProgress'](aA);}aw[mK(0x48e)](az),ax();}},ay=>{aw['error'](ay);});}}});return new Response(av);}else throw new ts('fetch\x20for\x20\x22'+ag['url']+'\x22\x20responded\x20with\x20'+ag['status']+':\x20'+ag['statusText'],ag);})['then'](ag=>{const mL=mH;switch(af){case'arraybuffer':return ag[mL(0x49d)]();case'blob':return ag['blob']();case mL(0x325):return ag['text']()['then'](ah=>new DOMParser()['parseFromString'](ah,ab));case'json':return ag['json']();default:if(ab==='')return ag['text']();{let ah=/charset="?([^;"\s]*)"?/i['exec'](ab),aj=ah&&ah[0x1]?ah[0x1]['toLowerCase']():void 0x0,ak=new TextDecoder(aj);return ag['arrayBuffer']()['then'](am=>ak['decode'](am));}}})['then'](ag=>{Yo['add']('file:'+a4,ag);let ah=es[a4];delete es[a4];for(let aj=0x0,ak=ah['length'];aj<ak;aj++){let am=ah[aj];am['onLoad']&&am['onLoad'](ag);}})['catch'](ag=>{const mM=mH;let ah=es[a4];if(ah===void 0x0)throw this['manager'][mM(0x39d)](a4),ag;delete es[a4];for(let aj=0x0,ak=ah[mM(0x3ac)];aj<ak;aj++){let am=ah[aj];am['onError']&&am[mM(0x3ea)](ag);}this['manager'][mM(0x39d)](a4);})['finally'](()=>{const mN=mH;this['manager'][mN(0x544)](a4);}),this['manager']['itemStart'](a4);}['setResponseType'](a4){return this['responseType']=a4,this;}['setMimeType'](a4){return this['mimeType']=a4,this;}['abort'](){return this['_abortController']['abort'](),this['_abortController']=new AbortController(),this;}},rs=new WeakMap(),is=class extends $o{constructor(a4){super(a4);}[d4(0x46d)](a4,a5,a6,a7){const mO=d4;this['path']!==void 0x0&&(a4=this[mO(0x4a9)]+a4),a4=this['manager']['resolveURL'](a4);let a8=this,a9=Yo['get']('image:'+a4);if(a9!==void 0x0){if(a9[mO(0x2e1)]===!0x0)a8['manager']['itemStart'](a4),setTimeout(function(){const mP=mO;a5&&a5(a9),a8[mP(0x1a7)]['itemEnd'](a4);},0x0);else{let aj=rs[mO(0x61a)](a9);aj===void 0x0&&(aj=[],rs['set'](a9,aj)),aj[mO(0x5d4)]({'onLoad':a5,'onError':a7});}return a9;}let ab=ft('img');function af(){const mQ=mO;ah(),a5&&a5(this);let ak=rs['get'](this)||[];for(let am=0x0;am<ak[mQ(0x3ac)];am++){let ap=ak[am];ap['onLoad']&&ap['onLoad'](this);}rs['delete'](this),a8['manager']['itemEnd'](a4);}function ag(ak){const mR=mO;ah(),a7&&a7(ak),Yo[mR(0x57b)]('image:'+a4);let am=rs[mR(0x61a)](this)||[];for(let ap=0x0;ap<am[mR(0x3ac)];ap++){let aq=am[ap];aq[mR(0x3ea)]&&aq['onError'](ak);}rs['delete'](this),a8['manager']['itemError'](a4),a8[mR(0x1a7)]['itemEnd'](a4);}function ah(){ab['removeEventListener']('load',af,!0x1),ab['removeEventListener']('error',ag,!0x1);}return ab['addEventListener']('load',af,!0x1),ab['addEventListener']('error',ag,!0x1),a4['slice'](0x0,0x5)!=='data:'&&this['crossOrigin']!==void 0x0&&(ab['crossOrigin']=this['crossOrigin']),Yo['add']('image:'+a4,ab),a8[mO(0x1a7)]['itemStart'](a4),ab['src']=a4,ab;}},as=class extends $o{constructor(a4){super(a4);}['load'](a4,a5,a6,a7){const mS=d4;let a8=this,a9=new Ai(),ab=new ns(this['manager']);return ab[mS(0x24e)](mS(0x4f5)),ab['setRequestHeader'](this['requestHeader']),ab['setPath'](this[mS(0x4a9)]),ab['setWithCredentials'](a8['withCredentials']),ab['load'](a4,function(af){const mT=mS;let ag;try{ag=a8['parse'](af);}catch(ah){a7===void 0x0?B(ah):a7(ah);return;}ag['image']===void 0x0?ag['data']!==void 0x0&&(a9['image'][mT(0x24d)]=ag['width'],a9['image']['height']=ag['height'],a9['image']['data']=ag['data']):a9['image']=ag['image'],a9['wrapS']=ag['wrapS']===void 0x0?_:ag['wrapS'],a9['wrapT']=ag['wrapT']===void 0x0?_:ag['wrapT'],a9['magFilter']=ag['magFilter']===void 0x0?S:ag['magFilter'],a9['minFilter']=ag['minFilter']===void 0x0?S:ag['minFilter'],a9['anisotropy']=ag['anisotropy']===void 0x0?0x1:ag['anisotropy'],ag['colorSpace']!==void 0x0&&(a9['colorSpace']=ag['colorSpace']),ag['flipY']!==void 0x0&&(a9['flipY']=ag[mT(0x54e)]),ag[mT(0x2d9)]!==void 0x0&&(a9[mT(0x2d9)]=ag['format']),ag[mT(0x3e0)]!==void 0x0&&(a9['type']=ag['type']),ag['mipmaps']!==void 0x0&&(a9['mipmaps']=ag['mipmaps'],a9['minFilter']=w),ag['mipmapCount']===0x1&&(a9['minFilter']=S),ag['generateMipmaps']!==void 0x0&&(a9['generateMipmaps']=ag['generateMipmaps']),a9['needsUpdate']=!0x0,a5&&a5(a9,ag);},a6,a7),a9;}},os=class extends $o{constructor(a4){super(a4);}[d4(0x46d)](a4,a5,a6,a7){const mU=d4;let a8=new un(),a9=new is(this['manager']);return a9['setCrossOrigin'](this['crossOrigin']),a9[mU(0x200)](this['path']),a9['load'](a4,function(ab){a8['image']=ab,a8['needsUpdate']=!0x0,a5!==void 0x0&&a5(a8);},a6,a7),a8;}},ss=class extends Vn{constructor(a4,a5=0x1){super(),this['isLight']=!0x0,this['type']='Light',this['color']=new Y(a4),this['intensity']=a5;}['dispose'](){this['dispatchEvent']({'type':'dispose'});}[d4(0x647)](a4,a5){const mV=d4;return super['copy'](a4,a5),this['color']['copy'](a4[mV(0x180)]),this['intensity']=a4['intensity'],this;}[d4(0x1bb)](a4){const mW=d4;let a5=super['toJSON'](a4);return a5['object']['color']=this['color']['getHex'](),a5['object']['intensity']=this[mW(0x134)],a5;}},cs=class extends ss{constructor(a4,a5,a6){super(a4,a6),this['isHemisphereLight']=!0x0,this['type']='HemisphereLight',this['position']['copy'](Vn['DEFAULT_UP']),this['updateMatrix'](),this['groundColor']=new Y(a5);}['copy'](a4,a5){const mX=d4;return super[mX(0x647)](a4,a5),this['groundColor'][mX(0x647)](a4[mX(0x4b1)]),this;}['toJSON'](a4){let a5=super['toJSON'](a4);return a5['object']['groundColor']=this['groundColor']['getHex'](),a5;}},ls=new J(),us=new W(),ds=new W(),fs=class{constructor(a4){const mY=d4;this[mY(0x17b)]=a4,this['intensity']=0x1,this['bias']=0x0,this['biasNode']=null,this['normalBias']=0x0,this[mY(0x263)]=0x1,this['blurSamples']=0x8,this['mapSize']=new U(0x200,0x200),this[mY(0x4c2)]=T,this['map']=null,this['mapPass']=null,this[mY(0x3ed)]=new J(),this['autoUpdate']=!0x0,this['needsUpdate']=!0x1,this['_frustum']=new Xi(),this['_frameExtents']=new U(0x1,0x1),this['_viewportCount']=0x1,this['_viewports']=[new q(0x0,0x0,0x1,0x1)];}['getViewportCount'](){return this['_viewportCount'];}['getFrustum'](){return this['_frustum'];}['updateMatrices'](a4){const mZ=d4;let a5=this['camera'],a6=this['matrix'];us['setFromMatrixPosition'](a4['matrixWorld']),a5[mZ(0x4ed)]['copy'](us),ds['setFromMatrixPosition'](a4['target']['matrixWorld']),a5['lookAt'](ds),a5['updateMatrixWorld'](),ls['multiplyMatrices'](a5['projectionMatrix'],a5['matrixWorldInverse']),this['_frustum'][mZ(0x60a)](ls,a5[mZ(0x1b3)],a5['reversedDepth']),a5[mZ(0x1b3)]===0x7d1||a5['reversedDepth']?a6['set'](0.5,0x0,0x0,0.5,0x0,0.5,0x0,0.5,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1):a6['set'](0.5,0x0,0x0,0.5,0x0,0.5,0x0,0.5,0x0,0x0,0.5,0.5,0x0,0x0,0x0,0x1),a6[mZ(0x29a)](ls);}['getViewport'](a4){return this['_viewports'][a4];}['getFrameExtents'](){const n0=d4;return this[n0(0x52c)];}['dispose'](){const n1=d4;this['map']&&this[n1(0x2db)]['dispose'](),this['mapPass']&&this['mapPass']['dispose']();}['copy'](a4){const n2=d4;return this['camera']=a4['camera']['clone'](),this['intensity']=a4['intensity'],this['bias']=a4[n2(0x160)],this['radius']=a4['radius'],this['autoUpdate']=a4['autoUpdate'],this['needsUpdate']=a4[n2(0x55b)],this['normalBias']=a4['normalBias'],this['blurSamples']=a4['blurSamples'],this['mapSize'][n2(0x647)](a4['mapSize']),this[n2(0x335)]=a4['biasNode'],this;}[d4(0x2d8)](){const n3=d4;return new this['constructor']()[n3(0x647)](this);}['toJSON'](){const n4=d4;let a4={};return this['intensity']!==0x1&&(a4['intensity']=this['intensity']),this[n4(0x160)]!==0x0&&(a4['bias']=this['bias']),this['normalBias']!==0x0&&(a4['normalBias']=this['normalBias']),this[n4(0x263)]!==0x1&&(a4['radius']=this['radius']),(this['mapSize']['x']!==0x200||this['mapSize']['y']!==0x200)&&(a4[n4(0x3d6)]=this[n4(0x3d6)]['toArray']()),a4[n4(0x17b)]=this['camera']['toJSON'](!0x1)['object'],delete a4['camera']['matrix'],a4;}},ps=new W(),ms=new qt(),hs=new W(),gs=class extends Vn{constructor(){const n5=d4;super(),this['isCamera']=!0x0,this['type']='Camera',this['matrixWorldInverse']=new J(),this['projectionMatrix']=new J(),this[n5(0x3c3)]=new J(),this['coordinateSystem']=lt,this['_reversedDepth']=!0x1;}get['reversedDepth'](){return this['_reversedDepth'];}['copy'](a4,a5){const n6=d4;return super['copy'](a4,a5),this[n6(0x1ed)]['copy'](a4['matrixWorldInverse']),this['projectionMatrix']['copy'](a4['projectionMatrix']),this['projectionMatrixInverse']['copy'](a4['projectionMatrixInverse']),this['coordinateSystem']=a4[n6(0x1b3)],this;}['getWorldDirection'](a4){return super['getWorldDirection'](a4)['negate']();}['updateMatrixWorld'](a4){const n7=d4;super['updateMatrixWorld'](a4),this['matrixWorld']['decompose'](ps,ms,hs),hs['x']===0x1&&hs['y']===0x1&&hs['z']===0x1?this['matrixWorldInverse']['copy'](this['matrixWorld'])['invert']():this['matrixWorldInverse'][n7(0x3d9)](ps,ms,hs['set'](0x1,0x1,0x1))['invert']();}['updateWorldMatrix'](a4,a5){const n8=d4;super['updateWorldMatrix'](a4,a5),this['matrixWorld'][n8(0x26a)](ps,ms,hs),hs['x']===0x1&&hs['y']===0x1&&hs['z']===0x1?this['matrixWorldInverse']['copy'](this['matrixWorld'])['invert']():this['matrixWorldInverse']['compose'](ps,ms,hs['set'](0x1,0x1,0x1))['invert']();}['clone'](){return new this['constructor']()['copy'](this);}},_s=new W(),vs=new U(),ys=new U(),bs=class extends gs{constructor(a4=0x32,a5=0x1,a6=0.1,a7=0x7d0){const n9=d4;super(),this['isPerspectiveCamera']=!0x0,this[n9(0x3e0)]='PerspectiveCamera',this['fov']=a4,this['zoom']=0x1,this['near']=a6,this['far']=a7,this['focus']=0xa,this['aspect']=a5,this['view']=null,this['filmGauge']=0x23,this['filmOffset']=0x0,this[n9(0x564)]();}['copy'](a4,a5){const nb=d4;return super['copy'](a4,a5),this['fov']=a4['fov'],this['zoom']=a4['zoom'],this['near']=a4['near'],this['far']=a4['far'],this['focus']=a4[nb(0x18c)],this['aspect']=a4[nb(0x48c)],this['view']=a4['view']===null?null:Object['assign']({},a4['view']),this['filmGauge']=a4['filmGauge'],this['filmOffset']=a4['filmOffset'],this;}['setFocalLength'](a4){let a5=0.5*this['getFilmHeight']()/a4;this['fov']=Tt*0x2*Math['atan'](a5),this['updateProjectionMatrix']();}['getFocalLength'](){let a4=Math['tan'](wt*0.5*this['fov']);return 0.5*this['getFilmHeight']()/a4;}['getEffectiveFOV'](){const nf=d4;return Tt*0x2*Math[nf(0x5ca)](Math['tan'](wt*0.5*this['fov'])/this[nf(0x3eb)]);}['getFilmWidth'](){const ng=d4;return this['filmGauge']*Math['min'](this[ng(0x48c)],0x1);}['getFilmHeight'](){return this['filmGauge']/Math['max'](this['aspect'],0x1);}['getViewBounds'](a4,a5,a6){const nh=d4;_s['set'](-0x1,-0x1,0.5)['applyMatrix4'](this['projectionMatrixInverse']),a5['set'](_s['x'],_s['y'])['multiplyScalar'](-a4/_s['z']),_s['set'](0x1,0x1,0.5)[nh(0x421)](this['projectionMatrixInverse']),a6[nh(0x23a)](_s['x'],_s['y'])['multiplyScalar'](-a4/_s['z']);}['getViewSize'](a4,a5){return this['getViewBounds'](a4,vs,ys),a5['subVectors'](ys,vs);}[d4(0x37f)](a4,a5,a6,a7,a8,a9){const nj=d4;this['aspect']=a4/a5,this['view']===null&&(this['view']={'enabled':!0x0,'fullWidth':0x1,'fullHeight':0x1,'offsetX':0x0,'offsetY':0x0,'width':0x1,'height':0x1}),this['view']['enabled']=!0x0,this['view'][nj(0x51e)]=a4,this['view']['fullHeight']=a5,this[nj(0x1d4)]['offsetX']=a6,this[nj(0x1d4)]['offsetY']=a7,this['view']['width']=a8,this['view'][nj(0x260)]=a9,this['updateProjectionMatrix']();}['clearViewOffset'](){this['view']!==null&&(this['view']['enabled']=!0x1),this['updateProjectionMatrix']();}[d4(0x564)](){const nk=d4;let a4=this[nk(0x492)],a5=a4*Math[nk(0x5c6)](wt*0.5*this[nk(0x1dd)])/this['zoom'],a6=0x2*a5,a7=this[nk(0x48c)]*a6,a8=-0.5*a7,a9=this['view'];if(this[nk(0x1d4)]!==null&&this['view']['enabled']){let af=a9['fullWidth'],ag=a9['fullHeight'];a8+=a9['offsetX']*a7/af,a5-=a9['offsetY']*a6/ag,a7*=a9['width']/af,a6*=a9['height']/ag;}let ab=this[nk(0x36e)];ab!==0x0&&(a8+=a4*ab/this['getFilmWidth']()),this[nk(0x60d)]['makePerspective'](a8,a8+a7,a5,a5-a6,a4,this['far'],this[nk(0x1b3)],this['reversedDepth']),this['projectionMatrixInverse']['copy'](this['projectionMatrix'])['invert']();}['toJSON'](a4){const nm=d4;let a5=super['toJSON'](a4);return a5[nm(0x32c)][nm(0x1dd)]=this['fov'],a5['object']['zoom']=this['zoom'],a5[nm(0x32c)]['near']=this['near'],a5[nm(0x32c)][nm(0x4c5)]=this['far'],a5['object']['focus']=this['focus'],a5['object']['aspect']=this['aspect'],this['view']!==null&&(a5['object']['view']=Object['assign']({},this['view'])),a5['object']['filmGauge']=this['filmGauge'],a5[nm(0x32c)]['filmOffset']=this['filmOffset'],a5;}},xs=class extends fs{constructor(){super(new bs(0x32,0x1,0.5,0x1f4)),this['isSpotLightShadow']=!0x0,this['focus']=0x1,this['aspect']=0x1;}['updateMatrices'](a4){const np=d4;let a5=this['camera'],a6=Tt*0x2*a4['angle']*this['focus'],a7=this['mapSize']['width']/this['mapSize']['height']*this['aspect'],a8=a4[np(0x1cb)]||a5['far'];(a6!==a5['fov']||a7!==a5[np(0x48c)]||a8!==a5['far'])&&(a5['fov']=a6,a5[np(0x48c)]=a7,a5['far']=a8,a5['updateProjectionMatrix']()),super['updateMatrices'](a4);}['copy'](a4){const nq=d4;return super[nq(0x647)](a4),this[nq(0x18c)]=a4['focus'],this;}},Ss=class extends ss{constructor(a4,a5,a6=0x0,a7=Math['PI']/0x3,a8=0x0,a9=0x2){super(a4,a5),this['isSpotLight']=!0x0,this['type']='SpotLight',this['position']['copy'](Vn['DEFAULT_UP']),this['updateMatrix'](),this['target']=new Vn(),this['distance']=a6,this['angle']=a7,this['penumbra']=a8,this['decay']=a9,this['map']=null,this['shadow']=new xs();}get['power'](){return this['intensity']*Math['PI'];}set['power'](a4){this['intensity']=a4/Math['PI'];}['dispose'](){super['dispose'](),this['shadow']['dispose']();}['copy'](a4,a5){const nv=d4;return super['copy'](a4,a5),this['distance']=a4['distance'],this['angle']=a4['angle'],this['penumbra']=a4['penumbra'],this['decay']=a4['decay'],this['target']=a4['target'][nv(0x2d8)](),this['map']=a4['map'],this['shadow']=a4['shadow'][nv(0x2d8)](),this;}['toJSON'](a4){const nw=d4;let a5=super['toJSON'](a4);return a5['object']['distance']=this['distance'],a5['object']['angle']=this['angle'],a5['object']['decay']=this['decay'],a5['object']['penumbra']=this['penumbra'],a5[nw(0x32c)][nw(0x44a)]=this[nw(0x44a)]['uuid'],this['map']&&this['map']['isTexture']&&(a5[nw(0x32c)][nw(0x2db)]=this['map']['toJSON'](a4)[nw(0x2a7)]),a5['object']['shadow']=this['shadow'][nw(0x1bb)](),a5;}},Cs=class extends fs{constructor(){super(new bs(0x5a,0x1,0.5,0x1f4)),this['isPointLightShadow']=!0x0;}},ws=class extends ss{constructor(a4,a5,a6=0x0,a7=0x2){super(a4,a5),this['isPointLight']=!0x0,this['type']='PointLight',this['distance']=a6,this['decay']=a7,this['shadow']=new Cs();}get['power'](){return this['intensity']*0x4*Math['PI'];}set['power'](a4){this['intensity']=a4/(0x4*Math['PI']);}['dispose'](){const nx=d4;super[nx(0x565)](),this[nx(0x43d)]['dispose']();}['copy'](a4,a5){const ny=d4;return super['copy'](a4,a5),this['distance']=a4['distance'],this[ny(0x36d)]=a4['decay'],this['shadow']=a4[ny(0x43d)]['clone'](),this;}['toJSON'](a4){const nz=d4;let a5=super['toJSON'](a4);return a5[nz(0x32c)]['distance']=this['distance'],a5['object'][nz(0x36d)]=this[nz(0x36d)],a5['object']['shadow']=this['shadow']['toJSON'](),a5;}},Ts=class extends gs{constructor(a4=-0x1,a5=0x1,a6=0x1,a7=-0x1,a8=0.1,a9=0x7d0){const nA=d4;super(),this['isOrthographicCamera']=!0x0,this['type']='OrthographicCamera',this['zoom']=0x1,this['view']=null,this[nA(0x1ef)]=a4,this['right']=a5,this[nA(0x4d2)]=a6,this['bottom']=a7,this['near']=a8,this[nA(0x4c5)]=a9,this['updateProjectionMatrix']();}['copy'](a4,a5){const nB=d4;return super['copy'](a4,a5),this['left']=a4[nB(0x1ef)],this['right']=a4['right'],this['top']=a4['top'],this['bottom']=a4['bottom'],this['near']=a4[nB(0x492)],this[nB(0x4c5)]=a4['far'],this['zoom']=a4['zoom'],this['view']=a4['view']===null?null:Object['assign']({},a4['view']),this;}['setViewOffset'](a4,a5,a6,a7,a8,a9){const nC=d4;this['view']===null&&(this['view']={'enabled':!0x0,'fullWidth':0x1,'fullHeight':0x1,'offsetX':0x0,'offsetY':0x0,'width':0x1,'height':0x1}),this['view']['enabled']=!0x0,this['view']['fullWidth']=a4,this['view']['fullHeight']=a5,this['view'][nC(0x1b1)]=a6,this['view']['offsetY']=a7,this['view']['width']=a8,this['view']['height']=a9,this['updateProjectionMatrix']();}['clearViewOffset'](){const nD=d4;this['view']!==null&&(this['view'][nD(0x2b4)]=!0x1),this['updateProjectionMatrix']();}[d4(0x564)](){const nE=d4;let a4=(this['right']-this[nE(0x1ef)])/(0x2*this['zoom']),a5=(this[nE(0x4d2)]-this[nE(0x3cb)])/(0x2*this[nE(0x3eb)]),a6=(this['right']+this['left'])/0x2,a7=(this['top']+this['bottom'])/0x2,a8=a6-a4,a9=a6+a4,ab=a7+a5,af=a7-a5;if(this['view']!==null&&this['view'][nE(0x2b4)]){let ag=(this['right']-this['left'])/this['view']['fullWidth']/this['zoom'],ah=(this['top']-this['bottom'])/this['view']['fullHeight']/this['zoom'];a8+=ag*this['view'][nE(0x1b1)],a9=a8+ag*this['view'][nE(0x24d)],ab-=ah*this['view'][nE(0x18d)],af=ab-ah*this['view']['height'];}this['projectionMatrix']['makeOrthographic'](a8,a9,ab,af,this[nE(0x492)],this['far'],this['coordinateSystem'],this['reversedDepth']),this['projectionMatrixInverse']['copy'](this['projectionMatrix'])['invert']();}['toJSON'](a4){const nF=d4;let a5=super['toJSON'](a4);return a5[nF(0x32c)][nF(0x3eb)]=this[nF(0x3eb)],a5['object']['left']=this['left'],a5['object'][nF(0x183)]=this['right'],a5['object'][nF(0x4d2)]=this['top'],a5['object']['bottom']=this[nF(0x3cb)],a5['object']['near']=this['near'],a5[nF(0x32c)][nF(0x4c5)]=this[nF(0x4c5)],this[nF(0x1d4)]!==null&&(a5['object'][nF(0x1d4)]=Object['assign']({},this['view'])),a5;}},Es=class extends fs{constructor(){super(new Ts(-0x5,0x5,0x5,-0x5,0.5,0x1f4)),this['isDirectionalLightShadow']=!0x0;}},Ds=class extends ss{constructor(a4,a5){const nG=d4;super(a4,a5),this['isDirectionalLight']=!0x0,this['type']='DirectionalLight',this['position'][nG(0x647)](Vn[nG(0x31f)]),this['updateMatrix'](),this[nG(0x44a)]=new Vn(),this['shadow']=new Es();}['dispose'](){const nH=d4;super['dispose'](),this['shadow'][nH(0x565)]();}[d4(0x647)](a4){const nI=d4;return super['copy'](a4),this[nI(0x44a)]=a4['target']['clone'](),this['shadow']=a4['shadow']['clone'](),this;}['toJSON'](a4){const nJ=d4;let a5=super['toJSON'](a4);return a5['object'][nJ(0x43d)]=this['shadow']['toJSON'](),a5['object']['target']=this['target'][nJ(0x2a7)],a5;}},Os=class extends ss{constructor(a4,a5){const nK=d4;super(a4,a5),this[nK(0x2ab)]=!0x0,this['type']='AmbientLight';}},ks=class extends ss{constructor(a4,a5,a6=0xa,a7=0xa){super(a4,a5),this['isRectAreaLight']=!0x0,this['type']='RectAreaLight',this['width']=a6,this['height']=a7;}get[d4(0x480)](){const nL=d4;return this['intensity']*this[nL(0x24d)]*this['height']*Math['PI'];}set['power'](a4){this['intensity']=a4/(this['width']*this['height']*Math['PI']);}[d4(0x647)](a4){const nM=d4;return super['copy'](a4),this['width']=a4[nM(0x24d)],this['height']=a4[nM(0x260)],this;}[d4(0x1bb)](a4){const nN=d4;let a5=super['toJSON'](a4);return a5['object']['width']=this['width'],a5['object']['height']=this[nN(0x260)],a5;}},As=class{static['extractUrlBase'](a4){const nO=d4;let a5=a4['lastIndexOf']('/');return a5===-0x1?'./':a4[nO(0x228)](0x0,a5+0x1);}static['resolveURL'](a4,a5){const nP=d4;return typeof a4!='string'||a4===''?'':(/^https?:\/\//i['test'](a5)&&/^\//['test'](a4)&&(a5=a5['replace'](/(^https?:\/\/[^\/]+).*/i,'$1')),/^(https?:)?\/\//i[nP(0x4de)](a4)||/^data:.*,.*$/i[nP(0x4de)](a4)||/^blob:.*$/i['test'](a4)?a4:a5+a4);}},js=new WeakMap(),Ms=class extends $o{constructor(a4){const nQ=d4;super(a4),this[nQ(0x33c)]=!0x0,typeof createImageBitmap>'u'&&z(nQ(0x482)),typeof fetch>'u'&&z(nQ(0x3d0)),this['options']={'premultiplyAlpha':nQ(0x169)},this['_abortController']=new AbortController();}[d4(0x5a5)](a4){return this['options']=a4,this;}['load'](a4,a5,a6,a7){const nR=d4;a4===void 0x0&&(a4=''),this[nR(0x4a9)]!==void 0x0&&(a4=this[nR(0x4a9)]+a4),a4=this['manager']['resolveURL'](a4);let a8=this,a9=Yo['get']('image-bitmap:'+a4);if(a9!==void 0x0){if(a8['manager'][nR(0x414)](a4),a9['then']){a9['then'](ag=>{const nS=nR;js['has'](a9)===!0x0?(a7&&a7(js[nS(0x61a)](a9)),a8['manager']['itemError'](a4),a8['manager']['itemEnd'](a4)):(a5&&a5(ag),a8['manager']['itemEnd'](a4));});return;}setTimeout(function(){a5&&a5(a9),a8['manager']['itemEnd'](a4);},0x0);return;}let ab={};ab[nR(0x1eb)]=this['crossOrigin']==='anonymous'?'same-origin':'include',ab['headers']=this[nR(0x4c9)],ab[nR(0x208)]=typeof AbortSignal['any']==nR(0x5b5)?AbortSignal['any']([this[nR(0x450)]['signal'],this['manager']['abortController'][nR(0x208)]]):this[nR(0x450)][nR(0x208)];let af=fetch(a4,ab)[nR(0x1a6)](function(ag){return ag['blob']();})['then'](function(ag){return createImageBitmap(ag,Object['assign'](a8['options'],{'colorSpaceConversion':'none'}));})['then'](function(ag){Yo['add']('image-bitmap:'+a4,ag),a5&&a5(ag),a8['manager']['itemEnd'](a4);})['catch'](function(ag){const nT=nR;a7&&a7(ag),js['set'](af,ag),Yo[nT(0x57b)]('image-bitmap:'+a4),a8['manager']['itemError'](a4),a8['manager']['itemEnd'](a4);});Yo['add']('image-bitmap:'+a4,af),a8['manager']['itemStart'](a4);}['abort'](){const nU=d4;return this['_abortController']['abort'](),this[nU(0x450)]=new AbortController(),this;}},Ns=-0x5a,Ps=0x1,Fs=class extends Vn{constructor(a4,a5,a6){const nV=d4;super(),this['type']='CubeCamera',this['renderTarget']=a6,this['coordinateSystem']=null,this['activeMipmapLevel']=0x0;let a7=new bs(Ns,Ps,a4,a5);a7['layers']=this['layers'],this[nV(0x232)](a7);let a8=new bs(Ns,Ps,a4,a5);a8['layers']=this['layers'],this['add'](a8);let a9=new bs(Ns,Ps,a4,a5);a9['layers']=this[nV(0x1aa)],this['add'](a9);let ab=new bs(Ns,Ps,a4,a5);ab['layers']=this['layers'],this['add'](ab);let af=new bs(Ns,Ps,a4,a5);af['layers']=this['layers'],this['add'](af);let ag=new bs(Ns,Ps,a4,a5);ag['layers']=this['layers'],this['add'](ag);}['updateCoordinateSystem'](){const nW=d4;let a4=this['coordinateSystem'],a5=this['children']['concat'](),[a6,a7,a8,a9,ab,af]=a5;for(let ag of a5)this['remove'](ag);if(a4===0x7d0)a6['up']['set'](0x0,0x1,0x0),a6['lookAt'](0x1,0x0,0x0),a7['up']['set'](0x0,0x1,0x0),a7['lookAt'](-0x1,0x0,0x0),a8['up'][nW(0x23a)](0x0,0x0,-0x1),a8[nW(0x4cf)](0x0,0x1,0x0),a9['up']['set'](0x0,0x0,0x1),a9['lookAt'](0x0,-0x1,0x0),ab['up']['set'](0x0,0x1,0x0),ab['lookAt'](0x0,0x0,0x1),af['up']['set'](0x0,0x1,0x0),af['lookAt'](0x0,0x0,-0x1);else{if(a4===0x7d1)a6['up']['set'](0x0,-0x1,0x0),a6['lookAt'](-0x1,0x0,0x0),a7['up'][nW(0x23a)](0x0,-0x1,0x0),a7[nW(0x4cf)](0x1,0x0,0x0),a8['up'][nW(0x23a)](0x0,0x0,0x1),a8[nW(0x4cf)](0x0,0x1,0x0),a9['up']['set'](0x0,0x0,-0x1),a9['lookAt'](0x0,-0x1,0x0),ab['up'][nW(0x23a)](0x0,-0x1,0x0),ab['lookAt'](0x0,0x0,0x1),af['up']['set'](0x0,-0x1,0x0),af['lookAt'](0x0,0x0,-0x1);else throw Error('THREE.CubeCamera.updateCoordinateSystem():\x20Invalid\x20coordinate\x20system:\x20'+a4);}for(let ah of a5)this['add'](ah),ah['updateMatrixWorld']();}['update'](a4,a5){const nX=d4;this['parent']===null&&this['updateMatrixWorld']();let {renderTarget:a6,activeMipmapLevel:a7}=this;this[nX(0x1b3)]!==a4[nX(0x1b3)]&&(this['coordinateSystem']=a4['coordinateSystem'],this[nX(0x26c)]());let [a8,a9,ab,af,ag,ah]=this[nX(0x1b8)],aj=a4['getRenderTarget'](),ak=a4['getActiveCubeFace'](),am=a4[nX(0x1f0)](),ap=a4['xr'][nX(0x2b4)];a4['xr']['enabled']=!0x1;let aq=a6['texture']['generateMipmaps'];a6['texture']['generateMipmaps']=!0x1;let av=!0x1;av=a4['isWebGLRenderer']===!0x0?a4['state'][nX(0x18b)]['depth'][nX(0x566)]():a4['reversedDepthBuffer'],a4[nX(0x644)](a6,0x0,a7),av&&a4['autoClear']===!0x1&&a4[nX(0x3a6)](),a4['render'](a5,a8),a4['setRenderTarget'](a6,0x1,a7),av&&a4[nX(0x490)]===!0x1&&a4['clearDepth'](),a4[nX(0x2ae)](a5,a9),a4['setRenderTarget'](a6,0x2,a7),av&&a4['autoClear']===!0x1&&a4['clearDepth'](),a4['render'](a5,ab),a4['setRenderTarget'](a6,0x3,a7),av&&a4['autoClear']===!0x1&&a4['clearDepth'](),a4['render'](a5,af),a4[nX(0x644)](a6,0x4,a7),av&&a4['autoClear']===!0x1&&a4[nX(0x3a6)](),a4[nX(0x2ae)](a5,ag),a6['texture'][nX(0x435)]=aq,a4['setRenderTarget'](a6,0x5,a7),av&&a4[nX(0x490)]===!0x1&&a4['clearDepth'](),a4['render'](a5,ah),a4['setRenderTarget'](aj,ak,am),a4['xr']['enabled']=ap,a6['texture']['needsPMREMUpdate']=!0x0;}},Is=class extends bs{constructor(a4=[]){super(),this['isArrayCamera']=!0x0,this['isMultiViewCamera']=!0x1,this['cameras']=a4;}},Ls=class{constructor(){const nY=d4;this['_previousTime']=0x0,this['_currentTime']=0x0,this['_startTime']=performance['now'](),this['_delta']=0x0,this[nY(0x284)]=0x0,this['_timescale']=0x1,this[nY(0x4d8)]=null,this['_pageVisibilityHandler']=null;}[d4(0x286)](a4){const nZ=d4;this['_document']=a4,a4[nZ(0x4d7)]!==void 0x0&&(this['_pageVisibilityHandler']=Rs['bind'](this),a4['addEventListener']('visibilitychange',this[nZ(0x1fa)],!0x1));}['disconnect'](){const o0=d4;this['_pageVisibilityHandler']!==null&&(this[o0(0x4d8)]['removeEventListener']('visibilitychange',this['_pageVisibilityHandler']),this['_pageVisibilityHandler']=null),this['_document']=null;}['getDelta'](){const o1=d4;return this[o1(0x486)]/0x3e8;}['getElapsed'](){return this['_elapsed']/0x3e8;}['getTimescale'](){return this['_timescale'];}['setTimescale'](a4){return this['_timescale']=a4,this;}['reset'](){const o2=d4;return this['_currentTime']=performance[o2(0x2da)]()-this['_startTime'],this;}['dispose'](){this['disconnect']();}[d4(0x26f)](a4){const o3=d4;return this['_pageVisibilityHandler']!==null&&this['_document']['hidden']===!0x0?this['_delta']=0x0:(this['_previousTime']=this['_currentTime'],this['_currentTime']=(a4===void 0x0?performance['now']():a4)-this['_startTime'],this['_delta']=(this['_currentTime']-this['_previousTime'])*this['_timescale'],this[o3(0x284)]+=this['_delta']),this;}};function Rs(){this['_document']['hidden']===!0x1&&this['reset']();}var zs=class{constructor(a4,a5,a6){const o4=d4;this['binding']=a4,this[o4(0x4a5)]=a6;let a7,a8,a9;switch(a5){case'quaternion':a7=this['_slerp'],a8=this['_slerpAdditive'],a9=this[o4(0x37d)],this['buffer']=new Float64Array(a6*0x6),this['_workIndex']=0x5;break;case'string':case'bool':a7=this['_select'],a8=this['_select'],a9=this['_setAdditiveIdentityOther'],this['buffer']=Array(a6*0x5);break;default:a7=this['_lerp'],a8=this['_lerpAdditive'],a9=this['_setAdditiveIdentityNumeric'],this['buffer']=new Float64Array(a6*0x5);}this[o4(0x541)]=a7,this['_mixBufferRegionAdditive']=a8,this['_setIdentity']=a9,this['_origIndex']=0x3,this[o4(0x1a9)]=0x4,this[o4(0x2f7)]=0x0,this['cumulativeWeightAdditive']=0x0,this['useCount']=0x0,this[o4(0x251)]=0x0;}[d4(0x3a0)](a4,a5){let a6=this['buffer'],a7=this['valueSize'],a8=a4*a7+a7,a9=this['cumulativeWeight'];if(a9===0x0){for(let ab=0x0;ab!==a7;++ab)a6[a8+ab]=a6[ab];a9=a5;}else{a9+=a5;let af=a5/a9;this['_mixBufferRegion'](a6,a8,0x0,af,a7);}this['cumulativeWeight']=a9;}['accumulateAdditive'](a4){let a5=this['buffer'],a6=this['valueSize'],a7=a6*this['_addIndex'];this['cumulativeWeightAdditive']===0x0&&this['_setIdentity'](),this['_mixBufferRegionAdditive'](a5,a7,0x0,a4,a6),this['cumulativeWeightAdditive']+=a4;}[d4(0x4f4)](a4){const o5=d4;let a5=this['valueSize'],a6=this['buffer'],a7=a4*a5+a5,a8=this['cumulativeWeight'],a9=this['cumulativeWeightAdditive'],ab=this['binding'];if(this['cumulativeWeight']=0x0,this['cumulativeWeightAdditive']=0x0,a8<0x1){let af=a5*this['_origIndex'];this['_mixBufferRegion'](a6,a7,af,0x1-a8,a5);}a9>0x0&&this['_mixBufferRegionAdditive'](a6,a7,this[o5(0x1a9)]*a5,0x1,a5);for(let ag=a5,ah=a5+a5;ag!==ah;++ag)if(a6[ag]!==a6[ag+a5]){ab['setValue'](a6,a7);break;}}['saveOriginalState'](){const o6=d4;let a4=this['binding'],a5=this['buffer'],a6=this['valueSize'],a7=a6*this[o6(0x58b)];a4['getValue'](a5,a7);for(let a8=a6,a9=a7;a8!==a9;++a8)a5[a8]=a5[a7+a8%a6];this['_setIdentity'](),this['cumulativeWeight']=0x0,this[o6(0x394)]=0x0;}['restoreOriginalState'](){const o7=d4;let a4=this['valueSize']*0x3;this[o7(0x3b5)]['setValue'](this[o7(0x1be)],a4);}['_setAdditiveIdentityNumeric'](){let a4=this['_addIndex']*this['valueSize'],a5=a4+this['valueSize'];for(let a6=a4;a6<a5;a6++)this['buffer'][a6]=0x0;}['_setAdditiveIdentityQuaternion'](){this['_setAdditiveIdentityNumeric'](),this['buffer'][this['_addIndex']*this['valueSize']+0x3]=0x1;}['_setAdditiveIdentityOther'](){let a4=this['_origIndex']*this['valueSize'],a5=this['_addIndex']*this['valueSize'];for(let a6=0x0;a6<this['valueSize'];a6++)this['buffer'][a5+a6]=this['buffer'][a4+a6];}['_select'](a4,a5,a6,a7,a8){if(a7>=0.5){for(let a9=0x0;a9!==a8;++a9)a4[a5+a9]=a4[a6+a9];}}['_slerp'](a4,a5,a6,a7){const o8=d4;qt[o8(0x49a)](a4,a5,a4,a5,a4,a6,a7);}['_slerpAdditive'](a4,a5,a6,a7,a8){let a9=this['_workIndex']*a8;qt['multiplyQuaternionsFlat'](a4,a9,a4,a5,a4,a6),qt['slerpFlat'](a4,a5,a4,a5,a4,a9,a7);}[d4(0x1ad)](a4,a5,a6,a7,a8){let a9=0x1-a7;for(let ab=0x0;ab!==a8;++ab){let af=a5+ab;a4[af]=a4[af]*a9+a4[a6+ab]*a7;}}['_lerpAdditive'](a4,a5,a6,a7,a8){for(let a9=0x0;a9!==a8;++a9){let ab=a5+a9;a4[ab]=a4[ab]+a4[a6+a9]*a7;}}},Bs=d4(0x159),Vs=RegExp('['+Bs+']','g'),Hs='[^'+Bs+']',Us='[^'+Bs['replace']('\x5c.','')+']',Ws='((?:WC+[\x5c/:])*)'['replace']('WC',Hs),Gs='(WCOD+)?'['replace']('WCOD',Us),Ks=d4(0x190)[d4(0x3db)]('WC',Hs),qs='\x5c.(WC+)(?:\x5c[(.+)\x5c])?'['replace']('WC',Hs),Js=RegExp('^'+Ws+Gs+Ks+qs+'$'),Ys=['material','materials','bones','map'],Xs=class{constructor(a4,a5,a6){const o9=d4;let a7=a6||Z['parseTrackName'](a5);this['_targetGroup']=a4,this[o9(0x350)]=a4['subscribe_'](a5,a7);}['getValue'](a4,a5){const ob=d4;this['bind']();let a6=this['_targetGroup'][ob(0x5e5)],a7=this['_bindings'][a6];a7!==void 0x0&&a7['getValue'](a4,a5);}['setValue'](a4,a5){let a6=this['_bindings'];for(let a7=this['_targetGroup']['nCachedObjects_'],a8=a6['length'];a7!==a8;++a7)a6[a7]['setValue'](a4,a5);}[d4(0x494)](){const of=d4;let a4=this[of(0x350)];for(let a5=this['_targetGroup']['nCachedObjects_'],a6=a4['length'];a5!==a6;++a5)a4[a5]['bind']();}['unbind'](){let a4=this['_bindings'];for(let a5=this['_targetGroup']['nCachedObjects_'],a6=a4['length'];a5!==a6;++a5)a4[a5]['unbind']();}},Z=class e{constructor(a4,a5,a6){const og=d4;this['path']=a5,this['parsedPath']=a6||e[og(0x543)](a5),this['node']=e['findNode'](a4,this['parsedPath'][og(0x18f)]),this['rootNode']=a4,this['getValue']=this[og(0x3f2)],this['setValue']=this['_setValue_unbound'];}static[d4(0x1ea)](a4,a5,a6){const oh=d4;return a4&&a4[oh(0x5f4)]?new e[(oh(0x148))](a4,a5,a6):new e(a4,a5,a6);}static[d4(0x4c3)](a4){const oj=d4;return a4['replace'](/\s/g,'_')[oj(0x3db)](Vs,'');}static[d4(0x543)](a4){const ok=d4;let a5=Js['exec'](a4);if(a5===null)throw Error('PropertyBinding:\x20Cannot\x20parse\x20trackName:\x20'+a4);let a6={'nodeName':a5[0x2],'objectName':a5[0x3],'objectIndex':a5[0x4],'propertyName':a5[0x5],'propertyIndex':a5[0x6]},a7=a6['nodeName']&&a6['nodeName']['lastIndexOf']('.');if(a7!==void 0x0&&a7!==-0x1){let a8=a6['nodeName']['substring'](a7+0x1);Ys[ok(0x5bd)](a8)!==-0x1&&(a6['nodeName']=a6['nodeName']['substring'](0x0,a7),a6['objectName']=a8);}if(a6[ok(0x585)]===null||a6[ok(0x585)]['length']===0x0)throw Error('PropertyBinding:\x20can\x20not\x20parse\x20propertyName\x20from\x20trackName:\x20'+a4);return a6;}static['findNode'](a4,a5){const om=d4;if(a5===void 0x0||a5===''||a5==='.'||a5===-0x1||a5===a4['name']||a5===a4['uuid'])return a4;if(a4['skeleton']){let a6=a4[om(0x280)]['getBoneByName'](a5);if(a6!==void 0x0)return a6;}if(a4['children']){let a7=function(a9){const op=om;for(let ab=0x0;ab<a9['length'];ab++){let af=a9[ab];if(af['name']===a5||af['uuid']===a5)return af;let ag=a7(af[op(0x1b8)]);if(ag)return ag;}return null;},a8=a7(a4[om(0x1b8)]);if(a8)return a8;}return null;}['_getValue_unavailable'](){}[d4(0x290)](){}['_getValue_direct'](a4,a5){const oq=d4;a4[a5]=this[oq(0x635)][this['propertyName']];}['_getValue_array'](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a4[a5++]=a6[a7];}[d4(0x63f)](a4,a5){a4[a5]=this['resolvedProperty'][this['propertyIndex']];}['_getValue_toArray'](a4,a5){this['resolvedProperty']['toArray'](a4,a5);}['_setValue_direct'](a4,a5){this['targetObject'][this['propertyName']]=a4[a5];}['_setValue_direct_setNeedsUpdate'](a4,a5){const ov=d4;this['targetObject'][this['propertyName']]=a4[a5],this[ov(0x635)]['needsUpdate']=!0x0;}['_setValue_direct_setMatrixWorldNeedsUpdate'](a4,a5){const ow=d4;this['targetObject'][this['propertyName']]=a4[a5],this['targetObject'][ow(0x153)]=!0x0;}['_setValue_array'](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a6[a7]=a4[a5++];}['_setValue_array_setNeedsUpdate'](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a6[a7]=a4[a5++];this['targetObject']['needsUpdate']=!0x0;}['_setValue_array_setMatrixWorldNeedsUpdate'](a4,a5){let a6=this['resolvedProperty'];for(let a7=0x0,a8=a6['length'];a7!==a8;++a7)a6[a7]=a4[a5++];this['targetObject']['matrixWorldNeedsUpdate']=!0x0;}['_setValue_arrayElement'](a4,a5){this['resolvedProperty'][this['propertyIndex']]=a4[a5];}['_setValue_arrayElement_setNeedsUpdate'](a4,a5){const ox=d4;this[ox(0x4f6)][this['propertyIndex']]=a4[a5],this['targetObject'][ox(0x55b)]=!0x0;}['_setValue_arrayElement_setMatrixWorldNeedsUpdate'](a4,a5){this['resolvedProperty'][this['propertyIndex']]=a4[a5],this['targetObject']['matrixWorldNeedsUpdate']=!0x0;}['_setValue_fromArray'](a4,a5){const oy=d4;this[oy(0x4f6)]['fromArray'](a4,a5);}['_setValue_fromArray_setNeedsUpdate'](a4,a5){this['resolvedProperty']['fromArray'](a4,a5),this['targetObject']['needsUpdate']=!0x0;}[d4(0x34e)](a4,a5){const oz=d4;this[oz(0x4f6)][oz(0x3df)](a4,a5),this['targetObject']['matrixWorldNeedsUpdate']=!0x0;}['_getValue_unbound'](a4,a5){const oA=d4;this['bind'](),this[oA(0x53a)](a4,a5);}['_setValue_unbound'](a4,a5){this['bind'](),this['setValue'](a4,a5);}['bind'](){const oB=d4;let a4=this['node'],a5=this['parsedPath'],a6=a5['objectName'],a7=a5['propertyName'],a8=a5['propertyIndex'];if(a4||(a4=e['findNode'](this[oB(0x62b)],a5[oB(0x18f)]),this['node']=a4),this['getValue']=this['_getValue_unavailable'],this['setValue']=this['_setValue_unavailable'],!a4){z('PropertyBinding:\x20No\x20target\x20node\x20found\x20for\x20track:\x20'+this['path']+'.');return;}if(a6){let ag=a5[oB(0x536)];switch(a6){case'materials':if(!a4['material']){B(oB(0x484),this);return;}if(!a4['material']['materials']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material.materials\x20as\x20node.material\x20does\x20not\x20have\x20a\x20materials\x20array.',this);return;}a4=a4['material']['materials'];break;case'bones':if(!a4['skeleton']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20bones\x20as\x20node\x20does\x20not\x20have\x20a\x20skeleton.',this);return;}a4=a4['skeleton']['bones'];for(let ah=0x0;ah<a4[oB(0x3ac)];ah++)if(a4[ah][oB(0x3bd)]===ag){ag=ah;break;}break;case'map':if('map'in a4){a4=a4[oB(0x2db)];break;}if(!a4['material']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material\x20as\x20node\x20does\x20not\x20have\x20a\x20material.',this);return;}if(!a4['material']['map']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material.map\x20as\x20node.material\x20does\x20not\x20have\x20a\x20map.',this);return;}a4=a4[oB(0x22b)]['map'];break;default:if(a4[a6]===void 0x0){B(oB(0x60f),this);return;}a4=a4[a6];}if(ag!==void 0x0){if(a4[ag]===void 0x0){B('PropertyBinding:\x20Trying\x20to\x20bind\x20to\x20objectIndex\x20of\x20objectName,\x20but\x20is\x20undefined.',this,a4);return;}a4=a4[ag];}}let a9=a4[a7];if(a9===void 0x0){let aj=a5[oB(0x18f)];B('PropertyBinding:\x20Trying\x20to\x20update\x20property\x20for\x20track:\x20'+aj+'.'+a7+'\x20but\x20it\x20wasn\x27t\x20found.',a4);return;}let ab=this['Versioning']['None'];this['targetObject']=a4,a4[oB(0x4db)]===!0x0?ab=this['Versioning'][oB(0x268)]:a4['isObject3D']===!0x0&&(ab=this['Versioning']['MatrixWorldNeedsUpdate']);let af=this['BindingType'][oB(0x2bb)];if(a8!==void 0x0){if(a7==='morphTargetInfluences'){if(!a4['geometry']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20morphTargetInfluences\x20because\x20node\x20does\x20not\x20have\x20a\x20geometry.',this);return;}if(!a4['geometry']['morphAttributes']){B('PropertyBinding:\x20Can\x20not\x20bind\x20to\x20morphTargetInfluences\x20because\x20node\x20does\x20not\x20have\x20a\x20geometry.morphAttributes.',this);return;}a4['morphTargetDictionary'][a8]!==void 0x0&&(a8=a4[oB(0x291)][a8]);}af=this[oB(0x31b)][oB(0x24a)],this['resolvedProperty']=a9,this['propertyIndex']=a8;}else a9['fromArray']!==void 0x0&&a9['toArray']!==void 0x0?(af=this['BindingType'][oB(0x58a)],this['resolvedProperty']=a9):Array['isArray'](a9)?(af=this['BindingType'][oB(0x390)],this[oB(0x4f6)]=a9):this['propertyName']=a7;this['getValue']=this[oB(0x302)][af],this['setValue']=this['SetterByBindingTypeAndVersioning'][af][ab];}['unbind'](){this['node']=null,this['getValue']=this['_getValue_unbound'],this['setValue']=this['_setValue_unbound'];}};Z['Composite']=Xs,Z['prototype']['BindingType']={'Direct':0x0,'EntireArray':0x1,'ArrayElement':0x2,'HasFromToArray':0x3},Z['prototype']['Versioning']={'None':0x0,'NeedsUpdate':0x1,'MatrixWorldNeedsUpdate':0x2},Z['prototype']['GetterByBindingType']=[Z['prototype']['_getValue_direct'],Z['prototype'][d4(0x641)],Z['prototype']['_getValue_arrayElement'],Z[d4(0x156)]['_getValue_toArray']],Z['prototype']['SetterByBindingTypeAndVersioning']=[[Z['prototype']['_setValue_direct'],Z['prototype']['_setValue_direct_setNeedsUpdate'],Z['prototype']['_setValue_direct_setMatrixWorldNeedsUpdate']],[Z['prototype']['_setValue_array'],Z['prototype']['_setValue_array_setNeedsUpdate'],Z['prototype']['_setValue_array_setMatrixWorldNeedsUpdate']],[Z[d4(0x156)][d4(0x464)],Z['prototype']['_setValue_arrayElement_setNeedsUpdate'],Z['prototype']['_setValue_arrayElement_setMatrixWorldNeedsUpdate']],[Z['prototype']['_setValue_fromArray'],Z['prototype']['_setValue_fromArray_setNeedsUpdate'],Z['prototype']['_setValue_fromArray_setMatrixWorldNeedsUpdate']]];var Zs=class{constructor(a4,a5,a6=null,a7=a5['blendMode']){const oC=d4;this['_mixer']=a4,this['_clip']=a5,this['_localRoot']=a6,this['blendMode']=a7;let a8=a5['tracks'],a9=a8['length'],ab=Array(a9),af={'endingStart':Ze,'endingEnd':Ze};for(let ag=0x0;ag!==a9;++ag){let ah=a8[ag]['createInterpolant'](null);ab[ag]=ah,ah[oC(0x5ce)]&&Object['assign'](af,ah['settings']),ah['settings']=af;}this['_interpolantSettings']=af,this['_interpolants']=ab,this['_propertyBindings']=Array(a9),this['_cacheIndex']=null,this['_byClipCacheIndex']=null,this['_timeScaleInterpolant']=null,this['_weightInterpolant']=null,this[oC(0x588)]=Ge,this['_loopCount']=-0x1,this['_startTime']=null,this['time']=0x0,this['timeScale']=0x1,this['_effectiveTimeScale']=0x1,this['weight']=0x1,this['_effectiveWeight']=0x1,this['repetitions']=Infinity,this['paused']=!0x1,this[oC(0x2b4)]=!0x0,this['clampWhenFinished']=!0x1,this['zeroSlopeAtStart']=!0x0,this['zeroSlopeAtEnd']=!0x0;}[d4(0x21c)](){return this['_mixer']['_activateAction'](this),this;}['stop'](){const oD=d4;return this['_mixer'][oD(0x363)](this),this['reset']();}['reset'](){const oE=d4;return this['paused']=!0x1,this['enabled']=!0x0,this['time']=0x0,this[oE(0x17f)]=-0x1,this[oE(0x2c3)]=null,this['stopFading']()['stopWarping']();}['isRunning'](){const oF=d4;return this[oF(0x2b4)]&&!this['paused']&&this['timeScale']!==0x0&&this['_startTime']===null&&this['_mixer']['_isActiveAction'](this);}[d4(0x336)](){const oG=d4;return this['_mixer'][oG(0x34c)](this);}['startAt'](a4){const oH=d4;return this[oH(0x2c3)]=a4,this;}['setLoop'](a4,a5){const oI=d4;return this[oI(0x588)]=a4,this['repetitions']=a5,this;}['setEffectiveWeight'](a4){const oJ=d4;return this['weight']=a4,this[oJ(0x520)]=this[oJ(0x2b4)]?a4:0x0,this['stopFading']();}['getEffectiveWeight'](){return this['_effectiveWeight'];}['fadeIn'](a4){return this['_scheduleFading'](a4,0x0,0x1);}[d4(0x2c4)](a4){return this['_scheduleFading'](a4,0x1,0x0);}['crossFadeFrom'](a4,a5,a6=!0x1){const oK=d4;if(a4['fadeOut'](a5),this['fadeIn'](a5),a6===!0x0){let a7=this['_clip']['duration'],a8=a4['_clip']['duration'],a9=a8/a7,ab=a7/a8;a4[oK(0x62d)](0x1,a9,a5),this[oK(0x62d)](ab,0x1,a5);}return this;}['crossFadeTo'](a4,a5,a6=!0x1){const oL=d4;return a4[oL(0x216)](this,a5,a6);}[d4(0x1d9)](){let a4=this['_weightInterpolant'];return a4!==null&&(this['_weightInterpolant']=null,this['_mixer']['_takeBackControlInterpolant'](a4)),this;}['setEffectiveTimeScale'](a4){const oM=d4;return this[oM(0x33b)]=a4,this['_effectiveTimeScale']=this['paused']?0x0:a4,this['stopWarping']();}['getEffectiveTimeScale'](){return this['_effectiveTimeScale'];}['setDuration'](a4){const oN=d4;return this['timeScale']=this['_clip']['duration']/a4,this[oN(0x493)]();}['syncWith'](a4){const oO=d4;return this[oO(0x311)]=a4[oO(0x311)],this['timeScale']=a4['timeScale'],this['stopWarping']();}[d4(0x614)](a4){const oP=d4;return this['warp'](this[oP(0x5b7)],0x0,a4);}['warp'](a4,a5,a6){const oQ=d4;let a7=this['_mixer'],a8=a7['time'],a9=this['timeScale'],ab=this['_timeScaleInterpolant'];ab===null&&(ab=a7[oQ(0x19d)](),this[oQ(0x318)]=ab);let af=ab['parameterPositions'],ag=ab['sampleValues'];return af[0x0]=a8,af[0x1]=a8+a6,ag[0x0]=a4/a9,ag[0x1]=a5/a9,this;}['stopWarping'](){const oR=d4;let a4=this['_timeScaleInterpolant'];return a4!==null&&(this['_timeScaleInterpolant']=null,this[oR(0x231)]['_takeBackControlInterpolant'](a4)),this;}['getMixer'](){return this['_mixer'];}['getClip'](){return this['_clip'];}[d4(0x30d)](){const oS=d4;return this[oS(0x27c)]||this[oS(0x231)][oS(0x405)];}['_update'](a4,a5,a6,a7){const oT=d4;if(!this['enabled']){this[oT(0x537)](a4);return;}let a8=this['_startTime'];if(a8!==null){let af=(a4-a8)*a6;af<0x0||a6===0x0?a5=0x0:(this['_startTime']=null,a5=a6*af);}a5*=this['_updateTimeScale'](a4);let a9=this['_updateTime'](a5),ab=this['_updateWeight'](a4);if(ab>0x0){let ag=this['_interpolants'],ah=this['_propertyBindings'];switch(this['blendMode']){case tt:for(let aj=0x0,ak=ag['length'];aj!==ak;++aj)ag[aj]['evaluate'](a9),ah[aj]['accumulateAdditive'](ab);break;case et:default:for(let am=0x0,ap=ag[oT(0x3ac)];am!==ap;++am)ag[am]['evaluate'](a9),ah[am][oT(0x3a0)](a7,ab);}}}['_updateWeight'](a4){let a5=0x0;if(this['enabled']){a5=this['weight'];let a6=this['_weightInterpolant'];if(a6!==null){let a7=a6['evaluate'](a4)[0x0];a5*=a7,a4>a6['parameterPositions'][0x1]&&(this['stopFading'](),a7===0x0&&(this['enabled']=!0x1));}}return this['_effectiveWeight']=a5,a5;}['_updateTimeScale'](a4){const oU=d4;let a5=0x0;if(!this['paused']){a5=this['timeScale'];let a6=this['_timeScaleInterpolant'];if(a6!==null){let a7=a6['evaluate'](a4)[0x0];a5*=a7,a4>a6['parameterPositions'][0x1]&&(this[oU(0x493)](),a5===0x0?this['paused']=!0x0:this['timeScale']=a5);}}return this['_effectiveTimeScale']=a5,a5;}['_updateTime'](a4){const oV=d4;let a5=this[oV(0x2df)]['duration'],a6=this[oV(0x588)],a7=this['time']+a4,a8=this['_loopCount'],a9=a6===Ke;if(a4===0x0)return a8===-0x1?a7:a9&&(a8&0x1)==0x1?a5-a7:a7;if(a6===0x898){a8===-0x1&&(this[oV(0x17f)]=0x0,this['_setEndings'](!0x0,!0x0,!0x1));ah:{if(a7>=a5)a7=a5;else{if(a7<0x0)a7=0x0;else{this[oV(0x311)]=a7;break ah;}}this['clampWhenFinished']?this['paused']=!0x0:this['enabled']=!0x1,this['time']=a7,this['_mixer']['dispatchEvent']({'type':'finished','action':this,'direction':a4<0x0?-0x1:0x1});}}else{if(a8===-0x1&&(a4>=0x0?(a8=0x0,this['_setEndings'](!0x0,this['repetitions']===0x0,a9)):this['_setEndings'](this['repetitions']===0x0,!0x0,a9)),a7>=a5||a7<0x0){let ab=Math[oV(0x4a4)](a7/a5);a7-=a5*ab,a8+=Math['abs'](ab);let af=this['repetitions']-a8;if(af<=0x0)this[oV(0x496)]?this[oV(0x629)]=!0x0:this['enabled']=!0x1,a7=a4>0x0?a5:0x0,this[oV(0x311)]=a7,this['_mixer']['dispatchEvent']({'type':oV(0x615),'action':this,'direction':a4>0x0?0x1:-0x1});else{if(af===0x1){let ag=a4<0x0;this['_setEndings'](ag,!ag,a9);}else this[oV(0x372)](!0x1,!0x1,a9);this['_loopCount']=a8,this['time']=a7,this[oV(0x231)]['dispatchEvent']({'type':oV(0x588),'action':this,'loopDelta':ab});}}else this['_loopCount']=a8,this['time']=a7;if(a9&&(a8&0x1)==0x1)return a5-a7;}return a7;}['_setEndings'](a4,a5,a6){let a7=this['_interpolantSettings'];a6?(a7['endingStart']=Qe,a7['endingEnd']=Qe):(a4?a7['endingStart']=this['zeroSlopeAtStart']?Qe:Ze:a7['endingStart']=$e,a5?a7['endingEnd']=this['zeroSlopeAtEnd']?Qe:Ze:a7['endingEnd']=$e);}['_scheduleFading'](a4,a5,a6){const oW=d4;let a7=this['_mixer'],a8=a7['time'],a9=this[oW(0x300)];a9===null&&(a9=a7['_lendControlInterpolant'](),this['_weightInterpolant']=a9);let ab=a9['parameterPositions'],af=a9['sampleValues'];return ab[0x0]=a8,af[0x0]=a5,ab[0x1]=a8+a4,af[0x1]=a6,this;}},Qs=new Float32Array(0x1),$s=class extends xt{constructor(a4){const oX=d4;super(),this['_root']=a4,this['_initMemoryManager'](),this['_accuIndex']=0x0,this[oX(0x311)]=0x0,this['timeScale']=0x1,typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent('observe',{'detail':this}));}['_bindAction'](a4,a5){const oY=d4;let a6=a4['_localRoot']||this['_root'],a7=a4['_clip']['tracks'],a8=a7['length'],a9=a4['_propertyBindings'],ab=a4['_interpolants'],af=a6['uuid'],ag=this[oY(0x56a)],ah=ag[af];ah===void 0x0&&(ah={},ag[af]=ah);for(let aj=0x0;aj!==a8;++aj){let ak=a7[aj],am=ak[oY(0x3bd)],ap=ah[am];if(ap!==void 0x0)++ap['referenceCount'],a9[aj]=ap;else{if(ap=a9[aj],ap!==void 0x0){ap['_cacheIndex']===null&&(++ap['referenceCount'],this[oY(0x16e)](ap,af,am));continue;}let aq=a5&&a5['_propertyBindings'][aj]['binding']['parsedPath'];ap=new zs(Z[oY(0x1ea)](a6,am,aq),ak[oY(0x2ff)],ak['getValueSize']()),++ap['referenceCount'],this[oY(0x16e)](ap,af,am),a9[aj]=ap;}ab[aj]['resultBuffer']=ap['buffer'];}}['_activateAction'](a4){const oZ=d4;if(!this[oZ(0x34c)](a4)){if(a4['_cacheIndex']===null){let a6=(a4['_localRoot']||this['_root'])['uuid'],a7=a4['_clip']['uuid'],a8=this['_actionsByClip'][a7];this['_bindAction'](a4,a8&&a8['knownActions'][0x0]),this['_addInactiveAction'](a4,a7,a6);}let a5=a4['_propertyBindings'];for(let a9=0x0,ab=a5['length'];a9!==ab;++a9){let af=a5[a9];af['useCount']++===0x0&&(this['_lendBinding'](af),af['saveOriginalState']());}this['_lendAction'](a4);}}['_deactivateAction'](a4){const p0=d4;if(this[p0(0x34c)](a4)){let a5=a4['_propertyBindings'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6){let a8=a5[a6];--a8['useCount']===0x0&&(a8['restoreOriginalState'](),this['_takeBackBinding'](a8));}this['_takeBackAction'](a4);}}['_initMemoryManager'](){const p1=d4;this['_actions']=[],this[p1(0x129)]=0x0,this['_actionsByClip']={},this['_bindings']=[],this[p1(0x623)]=0x0,this['_bindingsByRootAndName']={},this[p1(0x377)]=[],this['_nActiveControlInterpolants']=0x0;let a4=this;this['stats']={'actions':{get 'total'(){return a4['_actions']['length'];},get 'inUse'(){return a4['_nActiveActions'];}},'bindings':{get 'total'(){return a4['_bindings']['length'];},get 'inUse'(){return a4['_nActiveBindings'];}},'controlInterpolants':{get 'total'(){const p2=p1;return a4[p2(0x377)]['length'];},get 'inUse'(){return a4['_nActiveControlInterpolants'];}}};}['_isActiveAction'](a4){let a5=a4['_cacheIndex'];return a5!==null&&a5<this['_nActiveActions'];}['_addInactiveAction'](a4,a5,a6){const p3=d4;let a7=this[p3(0x15c)],a8=this['_actionsByClip'],a9=a8[a5];if(a9===void 0x0)a9={'knownActions':[a4],'actionByRoot':{}},a4[p3(0x18a)]=0x0,a8[a5]=a9;else{let ab=a9['knownActions'];a4['_byClipCacheIndex']=ab['length'],ab['push'](a4);}a4[p3(0x5ec)]=a7[p3(0x3ac)],a7['push'](a4),a9['actionByRoot'][a6]=a4;}[d4(0x2a1)](a4){const p4=d4;let a5=this[p4(0x15c)],a6=a5[a5['length']-0x1],a7=a4['_cacheIndex'];a6['_cacheIndex']=a7,a5[a7]=a6,a5['pop'](),a4[p4(0x5ec)]=null;let a8=a4['_clip']['uuid'],a9=this['_actionsByClip'],ab=a9[a8],af=ab['knownActions'],ag=af[af['length']-0x1],ah=a4['_byClipCacheIndex'];ag['_byClipCacheIndex']=ah,af[ah]=ag,af[p4(0x34d)](),a4['_byClipCacheIndex']=null;let aj=ab['actionByRoot'],ak=(a4['_localRoot']||this['_root'])['uuid'];delete aj[ak],af['length']===0x0&&delete a9[a8],this['_removeInactiveBindingsForAction'](a4);}['_removeInactiveBindingsForAction'](a4){const p5=d4;let a5=a4['_propertyBindings'];for(let a6=0x0,a7=a5['length'];a6!==a7;++a6){let a8=a5[a6];--a8['referenceCount']===0x0&&this[p5(0x462)](a8);}}['_lendAction'](a4){const p6=d4;let a5=this['_actions'],a6=a4[p6(0x5ec)],a7=this['_nActiveActions']++,a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}['_takeBackAction'](a4){let a5=this['_actions'],a6=a4['_cacheIndex'],a7=--this['_nActiveActions'],a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}['_addInactiveBinding'](a4,a5,a6){const p7=d4;let a7=this['_bindingsByRootAndName'],a8=this[p7(0x350)],a9=a7[a5];a9===void 0x0&&(a9={},a7[a5]=a9),a9[a6]=a4,a4['_cacheIndex']=a8[p7(0x3ac)],a8['push'](a4);}['_removeInactiveBinding'](a4){const p8=d4;let a5=this['_bindings'],a6=a4['binding'],a7=a6['rootNode']['uuid'],a8=a6[p8(0x4a9)],a9=this['_bindingsByRootAndName'],ab=a9[a7],af=a5[a5[p8(0x3ac)]-0x1],ag=a4['_cacheIndex'];af['_cacheIndex']=ag,a5[ag]=af,a5['pop'](),delete ab[a8],Object['keys'](ab)['length']===0x0&&delete a9[a7];}['_lendBinding'](a4){const p9=d4;let a5=this['_bindings'],a6=a4[p9(0x5ec)],a7=this['_nActiveBindings']++,a8=a5[a7];a4['_cacheIndex']=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}['_takeBackBinding'](a4){const pb=d4;let a5=this[pb(0x350)],a6=a4[pb(0x5ec)],a7=--this['_nActiveBindings'],a8=a5[a7];a4[pb(0x5ec)]=a7,a5[a7]=a4,a8['_cacheIndex']=a6,a5[a6]=a8;}[d4(0x19d)](){const pf=d4;let a4=this['_controlInterpolants'],a5=this[pf(0x19c)]++,a6=a4[a5];return a6===void 0x0&&(a6=new Fo(new Float32Array(0x2),new Float32Array(0x2),0x1,Qs),a6['__cacheIndex']=a5,a4[a5]=a6),a6;}['_takeBackControlInterpolant'](a4){const pg=d4;let a5=this[pg(0x377)],a6=a4['__cacheIndex'],a7=--this[pg(0x19c)],a8=a5[a7];a4[pg(0x3d3)]=a7,a5[a7]=a4,a8['__cacheIndex']=a6,a5[a6]=a8;}['clipAction'](a4,a5,a6){const ph=d4;let a7=a5||this['_root'],a8=a7['uuid'],a9=typeof a4=='string'?Ko['findByName'](a7,a4):a4,ab=a9===null?a4:a9['uuid'],af=this['_actionsByClip'][ab],ag=null;if(a6===void 0x0&&(a6=a9===null?et:a9[ph(0x12f)]),af!==void 0x0){let aj=af['actionByRoot'][a8];if(aj!==void 0x0&&aj['blendMode']===a6)return aj;ag=af[ph(0x591)][0x0],a9===null&&(a9=ag['_clip']);}if(a9===null)return null;let ah=new Zs(this,a9,a5,a6);return this['_bindAction'](ah,ag),this['_addInactiveAction'](ah,ab,a8),ah;}['existingAction'](a4,a5){const pj=d4;let a6=a5||this[pj(0x405)],a7=a6[pj(0x2a7)],a8=typeof a4==pj(0x124)?Ko['findByName'](a6,a4):a4,a9=a8?a8['uuid']:a4,ab=this['_actionsByClip'][a9];return ab===void 0x0?null:ab[pj(0x375)][a7]||null;}['stopAllAction'](){const pk=d4;let a4=this['_actions'],a5=this[pk(0x129)];for(let a6=a5-0x1;a6>=0x0;--a6)a4[a6]['stop']();return this;}['update'](a4){const pm=d4;a4*=this['timeScale'];let a5=this[pm(0x15c)],a6=this['_nActiveActions'],a7=this['time']+=a4,a8=Math['sign'](a4),a9=this['_accuIndex']^=0x1;for(let ag=0x0;ag!==a6;++ag)a5[ag]['_update'](a7,a4,a8,a9);let ab=this[pm(0x350)],af=this['_nActiveBindings'];for(let ah=0x0;ah!==af;++ah)ab[ah]['apply'](a9);return this;}['setTime'](a4){const pp=d4;this['time']=0x0;for(let a5=0x0;a5<this[pp(0x15c)]['length'];a5++)this['_actions'][a5]['time']=0x0;return this[pp(0x26f)](a4);}[d4(0x30d)](){return this['_root'];}['uncacheClip'](a4){const pq=d4;let a5=this[pq(0x15c)],a6=a4[pq(0x2a7)],a7=this['_actionsByClip'],a8=a7[a6];if(a8!==void 0x0){let a9=a8['knownActions'];for(let ab=0x0,af=a9['length'];ab!==af;++ab){let ag=a9[ab];this['_deactivateAction'](ag);let ah=ag['_cacheIndex'],aj=a5[a5['length']-0x1];ag['_cacheIndex']=null,ag[pq(0x18a)]=null,aj[pq(0x5ec)]=ah,a5[ah]=aj,a5[pq(0x34d)](),this[pq(0x14e)](ag);}delete a7[a6];}}['uncacheRoot'](a4){const pv=d4;let a5=a4['uuid'],a6=this['_actionsByClip'];for(let a8 in a6){let a9=a6[a8]['actionByRoot'][a5];a9!==void 0x0&&(this['_deactivateAction'](a9),this[pv(0x2a1)](a9));}let a7=this[pv(0x56a)][a5];if(a7!==void 0x0)for(let ab in a7){let af=a7[ab];af['restoreOriginalState'](),this['_removeInactiveBinding'](af);}}['uncacheAction'](a4,a5){const pw=d4;let a6=this[pw(0x4cc)](a4,a5);a6!==null&&(this[pw(0x363)](a6),this['_removeInactiveAction'](a6));}},ec=class{constructor(a4=0x1,a5=0x0,a6=0x0){this['radius']=a4,this['phi']=a5,this['theta']=a6;}['set'](a4,a5,a6){return this['radius']=a4,this['phi']=a5,this['theta']=a6,this;}['copy'](a4){const px=d4;return this['radius']=a4['radius'],this[px(0x2b8)]=a4['phi'],this['theta']=a4['theta'],this;}['makeSafe'](){let a4=0.000001;return this['phi']=V(this['phi'],a4,Math['PI']-a4),this;}[d4(0x35c)](a4){return this['setFromCartesianCoords'](a4['x'],a4['y'],a4['z']);}['setFromCartesianCoords'](a4,a5,a6){const py=d4;return this[py(0x263)]=Math['sqrt'](a4*a4+a5*a5+a6*a6),this['radius']===0x0?(this['theta']=0x0,this['phi']=0x0):(this['theta']=Math['atan2'](a4,a6),this['phi']=Math['acos'](V(a5/this['radius'],-0x1,0x1))),this;}['clone'](){const pz=d4;return new this[(pz(0x407))]()['copy'](this);}};l=class{constructor(a4,a5,a6,a7){const pA=d4;this[pA(0x633)]=[0x1,0x0,0x0,0x1],a4!==void 0x0&&this['set'](a4,a5,a6,a7);}['identity'](){return this['set'](0x1,0x0,0x0,0x1),this;}['fromArray'](a4,a5=0x0){for(let a6=0x0;a6<0x4;a6++)this['elements'][a6]=a4[a6+a5];return this;}['set'](a4,a5,a6,a7){let a8=this['elements'];return a8[0x0]=a4,a8[0x2]=a5,a8[0x1]=a6,a8[0x3]=a7,this;}},l['prototype']['isMatrix2']=!0x0;var tc=class extends la{constructor(a4=0xa,a5=0xa,a6=0x444444,a7=0x888888){const pB=d4;a6=new Y(a6),a7=new Y(a7);let a8=a5/0x2,a9=a4/a5,ab=a4/0x2,af=[],ag=[];for(let ak=0x0,am=0x0,ap=-ab;ak<=a5;ak++,ap+=a9){af['push'](-ab,0x0,ap,ab,0x0,ap),af['push'](ap,0x0,-ab,ap,0x0,ab);let aq=ak===a8?a6:a7;aq[pB(0x226)](ag,am),am+=0x3,aq['toArray'](ag,am),am+=0x3,aq['toArray'](ag,am),am+=0x3,aq['toArray'](ag,am),am+=0x3;}let ah=new Wr();ah['setAttribute']('position',new X(af,0x3)),ah['setAttribute']('color',new X(ag,0x3));let aj=new Zi({'vertexColors':!0x0,'toneMapped':!0x1});super(ah,aj),this['type']='GridHelper';}['dispose'](){const pC=d4;this['geometry']['dispose'](),this['material'][pC(0x565)]();}},nc=class extends la{constructor(a4=0x1){const pD=d4;let a5=[0x0,0x0,0x0,a4,0x0,0x0,0x0,0x0,0x0,0x0,a4,0x0,0x0,0x0,0x0,0x0,0x0,a4],a6=[0x1,0x0,0x0,0x1,0.6,0x0,0x0,0x1,0x0,0.6,0x1,0x0,0x0,0x0,0x1,0x0,0.6,0x1],a7=new Wr();a7['setAttribute']('position',new X(a5,0x3)),a7[pD(0x5ae)]('color',new X(a6,0x3));let a8=new Zi({'vertexColors':!0x0,'toneMapped':!0x1});super(a7,a8),this['type']='AxesHelper';}['setColors'](a4,a5,a6){const pE=d4;let a7=new Y(),a8=this['geometry']['attributes']['color']['array'];return a7[pE(0x23a)](a4),a7[pE(0x226)](a8,0x0),a7['toArray'](a8,0x3),a7[pE(0x23a)](a5),a7['toArray'](a8,0x6),a7['toArray'](a8,0x9),a7['set'](a6),a7['toArray'](a8,0xc),a7['toArray'](a8,0xf),this['geometry'][pE(0x1b6)][pE(0x180)]['needsUpdate']=!0x0,this;}['dispose'](){const pF=d4;this[pF(0x1c9)]['dispose'](),this[pF(0x22b)]['dispose']();}},rc=class extends xt{constructor(a4,a5=null){const pG=d4;super(),this[pG(0x32c)]=a4,this['domElement']=a5,this['enabled']=!0x0,this['state']=-0x1,this['keys']={},this[pG(0x247)]={'LEFT':null,'MIDDLE':null,'RIGHT':null},this[pG(0x366)]={'ONE':null,'TWO':null};}['connect'](a4){if(a4===void 0x0){z('Controls:\x20connect()\x20now\x20requires\x20an\x20element.');return;}this['domElement']!==null&&this['disconnect'](),this['domElement']=a4;}['disconnect'](){}['dispose'](){}['update'](){}};function ic(a4,a5,a6,a7){const pH=d4;let a8=ac(a7);switch(a6){case ae:return a4*a5;case le:return a4*a5/a8[pH(0x230)]*a8['byteLength'];case ue:return a4*a5/a8['components']*a8[pH(0x1f4)];case P:return a4*a5*0x2/a8['components']*a8['byteLength'];case de:return a4*a5*0x2/a8['components']*a8['byteLength'];case N:return a4*a5*0x3/a8['components']*a8['byteLength'];case oe:return a4*a5*0x4/a8['components']*a8['byteLength'];case fe:return a4*a5*0x4/a8['components']*a8['byteLength'];case pe:case me:return Math['floor']((a4+0x3)/0x4)*Math['floor']((a5+0x3)/0x4)*0x8;case he:case ge:return Math['floor']((a4+0x3)/0x4)*Math['floor']((a5+0x3)/0x4)*0x10;case ve:case be:return Math[pH(0x4dd)](a4,0x10)*Math['max'](a5,0x8)/0x4;case _e:case ye:return Math['max'](a4,0x8)*Math['max'](a5,0x8)/0x2;case xe:case Se:case we:case Te:return Math['floor']((a4+0x3)/0x4)*Math[pH(0x4a4)]((a5+0x3)/0x4)*0x8;case Ce:case Ee:case De:return Math['floor']((a4+0x3)/0x4)*Math['floor']((a5+0x3)/0x4)*0x10;case Oe:return Math[pH(0x4a4)]((a4+0x3)/0x4)*Math['floor']((a5+0x3)/0x4)*0x10;case ke:return Math[pH(0x4a4)]((a4+0x4)/0x5)*Math[pH(0x4a4)]((a5+0x3)/0x4)*0x10;case Ae:return Math['floor']((a4+0x4)/0x5)*Math[pH(0x4a4)]((a5+0x4)/0x5)*0x10;case je:return Math[pH(0x4a4)]((a4+0x5)/0x6)*Math['floor']((a5+0x4)/0x5)*0x10;case F:return Math['floor']((a4+0x5)/0x6)*Math['floor']((a5+0x5)/0x6)*0x10;case Me:return Math['floor']((a4+0x7)/0x8)*Math['floor']((a5+0x4)/0x5)*0x10;case Ne:return Math['floor']((a4+0x7)/0x8)*Math['floor']((a5+0x5)/0x6)*0x10;case Pe:return Math[pH(0x4a4)]((a4+0x7)/0x8)*Math['floor']((a5+0x7)/0x8)*0x10;case I:return Math['floor']((a4+0x9)/0xa)*Math['floor']((a5+0x4)/0x5)*0x10;case Fe:return Math[pH(0x4a4)]((a4+0x9)/0xa)*Math[pH(0x4a4)]((a5+0x5)/0x6)*0x10;case L:return Math['floor']((a4+0x9)/0xa)*Math[pH(0x4a4)]((a5+0x7)/0x8)*0x10;case R:return Math[pH(0x4a4)]((a4+0x9)/0xa)*Math['floor']((a5+0x9)/0xa)*0x10;case Ie:return Math[pH(0x4a4)]((a4+0xb)/0xc)*Math['floor']((a5+0x9)/0xa)*0x10;case Le:return Math[pH(0x4a4)]((a4+0xb)/0xc)*Math[pH(0x4a4)]((a5+0xb)/0xc)*0x10;case Re:case ze:case Be:return Math['ceil'](a4/0x4)*Math['ceil'](a5/0x4)*0x10;case Ve:case He:return Math['ceil'](a4/0x4)*Math['ceil'](a5/0x4)*0x8;case Ue:case We:return Math['ceil'](a4/0x4)*Math['ceil'](a5/0x4)*0x10;}throw Error(pH(0x283)+a6+'\x20format.');}function ac(a4){switch(a4){case T:case E:return{'byteLength':0x1,'components':0x1};case ee:case D:case te:return{'byteLength':0x2,'components':0x1};case j:case ne:return{'byteLength':0x2,'components':0x4};case k:case O:case A:return{'byteLength':0x4,'components':0x1};case M:case ie:return{'byteLength':0x4,'components':0x3};}throw Error('Unknown\x20texture\x20type\x20'+a4+'.');}typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent(d4(0x471),{'detail':{'revision':'184'}})),typeof window<'u'&&(window['__THREE__']?z('WARNING:\x20Multiple\x20instances\x20of\x20Three.js\x20being\x20imported.'):window['__THREE__']='184'),n();function oc(){let a4=null,a5=!0x1,a6=null,a7=null;function a8(a9,ab){a6(a9,ab),a7=a4['requestAnimationFrame'](a8);}return{'start':function(){a5!==!0x0&&a6!==null&&a4!==null&&(a7=a4['requestAnimationFrame'](a8),a5=!0x0);},'stop':function(){a4!==null&&a4['cancelAnimationFrame'](a7),a5=!0x1;},'setAnimationLoop':function(a9){a6=a9;},'setContext':function(a9){a4=a9;}};}function sc(a4){let a5=new WeakMap();function a6(af,ag){const pI=a1;let ah=af['array'],aj=af['usage'],ak=ah['byteLength'],am=a4['createBuffer']();a4[pI(0x3b6)](ag,am),a4['bufferData'](ag,ah,aj),af[pI(0x5ed)]();let ap;if(ah instanceof Float32Array)ap=a4['FLOAT'];else{if(typeof Float16Array<'u'&&ah instanceof Float16Array)ap=a4['HALF_FLOAT'];else{if(ah instanceof Uint16Array)ap=af['isFloat16BufferAttribute']?a4['HALF_FLOAT']:a4[pI(0x428)];else{if(ah instanceof Int16Array)ap=a4['SHORT'];else{if(ah instanceof Uint32Array)ap=a4['UNSIGNED_INT'];else{if(ah instanceof Int32Array)ap=a4['INT'];else{if(ah instanceof Int8Array)ap=a4[pI(0x24c)];else{if(ah instanceof Uint8Array)ap=a4['UNSIGNED_BYTE'];else{if(ah instanceof Uint8ClampedArray)ap=a4['UNSIGNED_BYTE'];else throw Error('THREE.WebGLAttributes:\x20Unsupported\x20buffer\x20data\x20format:\x20'+ah);}}}}}}}}return{'buffer':am,'type':ap,'bytesPerElement':ah[pI(0x514)],'version':af['version'],'size':ak};}function a7(af,ag,ah){const pJ=a1;let aj=ag['array'],ak=ag['updateRanges'];if(a4['bindBuffer'](ah,af),ak['length']===0x0)a4[pJ(0x240)](ah,0x0,aj);else{ak['sort']((ap,aq)=>ap['start']-aq['start']);let am=0x0;for(let ap=0x1;ap<ak['length'];ap++){let aq=ak[am],av=ak[ap];av['start']<=aq['start']+aq['count']+0x1?aq['count']=Math['max'](aq['count'],av[pJ(0x29e)]+av['count']-aq['start']):(++am,ak[am]=av);}ak['length']=am+0x1;for(let aw=0x0,ax=ak['length'];aw<ax;aw++){let ay=ak[aw];a4[pJ(0x240)](ah,ay[pJ(0x29e)]*aj['BYTES_PER_ELEMENT'],aj,ay[pJ(0x29e)],ay[pJ(0x218)]);}ag[pJ(0x3cf)]();}ag['onUploadCallback']();}function a8(af){const pK=a1;return af['isInterleavedBufferAttribute']&&(af=af[pK(0x36f)]),a5['get'](af);}function a9(af){const pL=a1;af[pL(0x186)]&&(af=af['data']);let ag=a5['get'](af);ag&&(a4['deleteBuffer'](ag['buffer']),a5['delete'](af));}function ab(af,ag){const pM=a1;if(af['isInterleavedBufferAttribute']&&(af=af[pM(0x36f)]),af[pM(0x643)]){let aj=a5['get'](af);(!aj||aj['version']<af['version'])&&a5[pM(0x23a)](af,{'buffer':af[pM(0x1be)],'type':af['type'],'bytesPerElement':af['elementSize'],'version':af['version']});return;}let ah=a5[pM(0x61a)](af);if(ah===void 0x0)a5['set'](af,a6(af,ag));else{if(ah['version']<af['version']){if(ah[pM(0x60e)]!==af[pM(0x5a4)][pM(0x1f4)])throw Error('THREE.WebGLAttributes:\x20The\x20size\x20of\x20the\x20buffer\x20attribute\x27s\x20array\x20buffer\x20does\x20not\x20match\x20the\x20original\x20size.\x20Resizing\x20buffer\x20attributes\x20is\x20not\x20supported.');a7(ah['buffer'],af,ag),ah['version']=af['version'];}}}return{'get':a8,'remove':a9,'update':ab};}var Q={'alphahash_fragment':'#ifdef\x20USE_ALPHAHASH\x0a\x09if\x20(\x20diffuseColor.a\x20<\x20getAlphaHashThreshold(\x20vPosition\x20)\x20)\x20discard;\x0a#endif','alphahash_pars_fragment':d4(0x3b9),'alphamap_fragment':'#ifdef\x20USE_ALPHAMAP\x0a\x09diffuseColor.a\x20*=\x20texture2D(\x20alphaMap,\x20vAlphaMapUv\x20).g;\x0a#endif','alphamap_pars_fragment':'#ifdef\x20USE_ALPHAMAP\x0a\x09uniform\x20sampler2D\x20alphaMap;\x0a#endif','alphatest_fragment':'#ifdef\x20USE_ALPHATEST\x0a\x09#ifdef\x20ALPHA_TO_COVERAGE\x0a\x09diffuseColor.a\x20=\x20smoothstep(\x20alphaTest,\x20alphaTest\x20+\x20fwidth(\x20diffuseColor.a\x20),\x20diffuseColor.a\x20);\x0a\x09if\x20(\x20diffuseColor.a\x20==\x200.0\x20)\x20discard;\x0a\x09#else\x0a\x09if\x20(\x20diffuseColor.a\x20<\x20alphaTest\x20)\x20discard;\x0a\x09#endif\x0a#endif','alphatest_pars_fragment':'#ifdef\x20USE_ALPHATEST\x0a\x09uniform\x20float\x20alphaTest;\x0a#endif','aomap_fragment':'#ifdef\x20USE_AOMAP\x0a\x09float\x20ambientOcclusion\x20=\x20(\x20texture2D(\x20aoMap,\x20vAoMapUv\x20).r\x20-\x201.0\x20)\x20*\x20aoMapIntensity\x20+\x201.0;\x0a\x09reflectedLight.indirectDiffuse\x20*=\x20ambientOcclusion;\x0a\x09#if\x20defined(\x20USE_CLEARCOAT\x20)\x20\x0a\x09\x09clearcoatSpecularIndirect\x20*=\x20ambientOcclusion;\x0a\x09#endif\x0a\x09#if\x20defined(\x20USE_SHEEN\x20)\x20\x0a\x09\x09sheenSpecularIndirect\x20*=\x20ambientOcclusion;\x0a\x09#endif\x0a\x09#if\x20defined(\x20USE_ENVMAP\x20)\x20&&\x20defined(\x20STANDARD\x20)\x0a\x09\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20geometryViewDir\x20)\x20);\x0a\x09\x09reflectedLight.indirectSpecular\x20*=\x20computeSpecularOcclusion(\x20dotNV,\x20ambientOcclusion,\x20material.roughness\x20);\x0a\x09#endif\x0a#endif','aomap_pars_fragment':'#ifdef\x20USE_AOMAP\x0a\x09uniform\x20sampler2D\x20aoMap;\x0a\x09uniform\x20float\x20aoMapIntensity;\x0a#endif','batching_pars_vertex':'#ifdef\x20USE_BATCHING\x0a\x09#if\x20!\x20defined(\x20GL_ANGLE_multi_draw\x20)\x0a\x09#define\x20gl_DrawID\x20_gl_DrawID\x0a\x09uniform\x20int\x20_gl_DrawID;\x0a\x09#endif\x0a\x09uniform\x20highp\x20sampler2D\x20batchingTexture;\x0a\x09uniform\x20highp\x20usampler2D\x20batchingIdTexture;\x0a\x09mat4\x20getBatchingMatrix(\x20const\x20in\x20float\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20batchingTexture,\x200\x20).x;\x0a\x09\x09int\x20j\x20=\x20int(\x20i\x20)\x20*\x204;\x0a\x09\x09int\x20x\x20=\x20j\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20j\x20/\x20size;\x0a\x09\x09vec4\x20v1\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v2\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x\x20+\x201,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v3\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x\x20+\x202,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v4\x20=\x20texelFetch(\x20batchingTexture,\x20ivec2(\x20x\x20+\x203,\x20y\x20),\x200\x20);\x0a\x09\x09return\x20mat4(\x20v1,\x20v2,\x20v3,\x20v4\x20);\x0a\x09}\x0a\x09float\x20getIndirectIndex(\x20const\x20in\x20int\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20batchingIdTexture,\x200\x20).x;\x0a\x09\x09int\x20x\x20=\x20i\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20i\x20/\x20size;\x0a\x09\x09return\x20float(\x20texelFetch(\x20batchingIdTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20).r\x20);\x0a\x09}\x0a#endif\x0a#ifdef\x20USE_BATCHING_COLOR\x0a\x09uniform\x20sampler2D\x20batchingColorTexture;\x0a\x09vec4\x20getBatchingColor(\x20const\x20in\x20float\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20batchingColorTexture,\x200\x20).x;\x0a\x09\x09int\x20j\x20=\x20int(\x20i\x20);\x0a\x09\x09int\x20x\x20=\x20j\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20j\x20/\x20size;\x0a\x09\x09return\x20texelFetch(\x20batchingColorTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20);\x0a\x09}\x0a#endif','batching_vertex':'#ifdef\x20USE_BATCHING\x0a\x09mat4\x20batchingMatrix\x20=\x20getBatchingMatrix(\x20getIndirectIndex(\x20gl_DrawID\x20)\x20);\x0a#endif','begin_vertex':'vec3\x20transformed\x20=\x20vec3(\x20position\x20);\x0a#ifdef\x20USE_ALPHAHASH\x0a\x09vPosition\x20=\x20vec3(\x20position\x20);\x0a#endif','beginnormal_vertex':'vec3\x20objectNormal\x20=\x20vec3(\x20normal\x20);\x0a#ifdef\x20USE_TANGENT\x0a\x09vec3\x20objectTangent\x20=\x20vec3(\x20tangent.xyz\x20);\x0a#endif','bsdfs':d4(0x2a8),'iridescence_fragment':'#ifdef\x20USE_IRIDESCENCE\x0a\x09const\x20mat3\x20XYZ_TO_REC709\x20=\x20mat3(\x0a\x09\x09\x203.2404542,\x20-0.9692660,\x20\x200.0556434,\x0a\x09\x09-1.5371385,\x20\x201.8760108,\x20-0.2040259,\x0a\x09\x09-0.4985314,\x20\x200.0415560,\x20\x201.0572252\x0a\x09);\x0a\x09vec3\x20Fresnel0ToIor(\x20vec3\x20fresnel0\x20)\x20{\x0a\x09\x09vec3\x20sqrtF0\x20=\x20sqrt(\x20fresnel0\x20);\x0a\x09\x09return\x20(\x20vec3(\x201.0\x20)\x20+\x20sqrtF0\x20)\x20/\x20(\x20vec3(\x201.0\x20)\x20-\x20sqrtF0\x20);\x0a\x09}\x0a\x09vec3\x20IorToFresnel0(\x20vec3\x20transmittedIor,\x20float\x20incidentIor\x20)\x20{\x0a\x09\x09return\x20pow2(\x20(\x20transmittedIor\x20-\x20vec3(\x20incidentIor\x20)\x20)\x20/\x20(\x20transmittedIor\x20+\x20vec3(\x20incidentIor\x20)\x20)\x20);\x0a\x09}\x0a\x09float\x20IorToFresnel0(\x20float\x20transmittedIor,\x20float\x20incidentIor\x20)\x20{\x0a\x09\x09return\x20pow2(\x20(\x20transmittedIor\x20-\x20incidentIor\x20)\x20/\x20(\x20transmittedIor\x20+\x20incidentIor\x20));\x0a\x09}\x0a\x09vec3\x20evalSensitivity(\x20float\x20OPD,\x20vec3\x20shift\x20)\x20{\x0a\x09\x09float\x20phase\x20=\x202.0\x20*\x20PI\x20*\x20OPD\x20*\x201.0e-9;\x0a\x09\x09vec3\x20val\x20=\x20vec3(\x205.4856e-13,\x204.4201e-13,\x205.2481e-13\x20);\x0a\x09\x09vec3\x20pos\x20=\x20vec3(\x201.6810e+06,\x201.7953e+06,\x202.2084e+06\x20);\x0a\x09\x09vec3\x20var\x20=\x20vec3(\x204.3278e+09,\x209.3046e+09,\x206.6121e+09\x20);\x0a\x09\x09vec3\x20xyz\x20=\x20val\x20*\x20sqrt(\x202.0\x20*\x20PI\x20*\x20var\x20)\x20*\x20cos(\x20pos\x20*\x20phase\x20+\x20shift\x20)\x20*\x20exp(\x20-\x20pow2(\x20phase\x20)\x20*\x20var\x20);\x0a\x09\x09xyz.x\x20+=\x209.7470e-14\x20*\x20sqrt(\x202.0\x20*\x20PI\x20*\x204.5282e+09\x20)\x20*\x20cos(\x202.2399e+06\x20*\x20phase\x20+\x20shift[\x200\x20]\x20)\x20*\x20exp(\x20-\x204.5282e+09\x20*\x20pow2(\x20phase\x20)\x20);\x0a\x09\x09xyz\x20/=\x201.0685e-7;\x0a\x09\x09vec3\x20rgb\x20=\x20XYZ_TO_REC709\x20*\x20xyz;\x0a\x09\x09return\x20rgb;\x0a\x09}\x0a\x09vec3\x20evalIridescence(\x20float\x20outsideIOR,\x20float\x20eta2,\x20float\x20cosTheta1,\x20float\x20thinFilmThickness,\x20vec3\x20baseF0\x20)\x20{\x0a\x09\x09vec3\x20I;\x0a\x09\x09float\x20iridescenceIOR\x20=\x20mix(\x20outsideIOR,\x20eta2,\x20smoothstep(\x200.0,\x200.03,\x20thinFilmThickness\x20)\x20);\x0a\x09\x09float\x20sinTheta2Sq\x20=\x20pow2(\x20outsideIOR\x20/\x20iridescenceIOR\x20)\x20*\x20(\x201.0\x20-\x20pow2(\x20cosTheta1\x20)\x20);\x0a\x09\x09float\x20cosTheta2Sq\x20=\x201.0\x20-\x20sinTheta2Sq;\x0a\x09\x09if\x20(\x20cosTheta2Sq\x20<\x200.0\x20)\x20{\x0a\x09\x09\x09return\x20vec3(\x201.0\x20);\x0a\x09\x09}\x0a\x09\x09float\x20cosTheta2\x20=\x20sqrt(\x20cosTheta2Sq\x20);\x0a\x09\x09float\x20R0\x20=\x20IorToFresnel0(\x20iridescenceIOR,\x20outsideIOR\x20);\x0a\x09\x09float\x20R12\x20=\x20F_Schlick(\x20R0,\x201.0,\x20cosTheta1\x20);\x0a\x09\x09float\x20T121\x20=\x201.0\x20-\x20R12;\x0a\x09\x09float\x20phi12\x20=\x200.0;\x0a\x09\x09if\x20(\x20iridescenceIOR\x20<\x20outsideIOR\x20)\x20phi12\x20=\x20PI;\x0a\x09\x09float\x20phi21\x20=\x20PI\x20-\x20phi12;\x0a\x09\x09vec3\x20baseIOR\x20=\x20Fresnel0ToIor(\x20clamp(\x20baseF0,\x200.0,\x200.9999\x20)\x20);\x09\x09vec3\x20R1\x20=\x20IorToFresnel0(\x20baseIOR,\x20iridescenceIOR\x20);\x0a\x09\x09vec3\x20R23\x20=\x20F_Schlick(\x20R1,\x201.0,\x20cosTheta2\x20);\x0a\x09\x09vec3\x20phi23\x20=\x20vec3(\x200.0\x20);\x0a\x09\x09if\x20(\x20baseIOR[\x200\x20]\x20<\x20iridescenceIOR\x20)\x20phi23[\x200\x20]\x20=\x20PI;\x0a\x09\x09if\x20(\x20baseIOR[\x201\x20]\x20<\x20iridescenceIOR\x20)\x20phi23[\x201\x20]\x20=\x20PI;\x0a\x09\x09if\x20(\x20baseIOR[\x202\x20]\x20<\x20iridescenceIOR\x20)\x20phi23[\x202\x20]\x20=\x20PI;\x0a\x09\x09float\x20OPD\x20=\x202.0\x20*\x20iridescenceIOR\x20*\x20thinFilmThickness\x20*\x20cosTheta2;\x0a\x09\x09vec3\x20phi\x20=\x20vec3(\x20phi21\x20)\x20+\x20phi23;\x0a\x09\x09vec3\x20R123\x20=\x20clamp(\x20R12\x20*\x20R23,\x201e-5,\x200.9999\x20);\x0a\x09\x09vec3\x20r123\x20=\x20sqrt(\x20R123\x20);\x0a\x09\x09vec3\x20Rs\x20=\x20pow2(\x20T121\x20)\x20*\x20R23\x20/\x20(\x20vec3(\x201.0\x20)\x20-\x20R123\x20);\x0a\x09\x09vec3\x20C0\x20=\x20R12\x20+\x20Rs;\x0a\x09\x09I\x20=\x20C0;\x0a\x09\x09vec3\x20Cm\x20=\x20Rs\x20-\x20T121;\x0a\x09\x09for\x20(\x20int\x20m\x20=\x201;\x20m\x20<=\x202;\x20++\x20m\x20)\x20{\x0a\x09\x09\x09Cm\x20*=\x20r123;\x0a\x09\x09\x09vec3\x20Sm\x20=\x202.0\x20*\x20evalSensitivity(\x20float(\x20m\x20)\x20*\x20OPD,\x20float(\x20m\x20)\x20*\x20phi\x20);\x0a\x09\x09\x09I\x20+=\x20Cm\x20*\x20Sm;\x0a\x09\x09}\x0a\x09\x09return\x20max(\x20I,\x20vec3(\x200.0\x20)\x20);\x0a\x09}\x0a#endif','bumpmap_pars_fragment':d4(0x546),'clipping_planes_fragment':d4(0x526),'clipping_planes_pars_fragment':'#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09varying\x20vec3\x20vClipPosition;\x0a\x09uniform\x20vec4\x20clippingPlanes[\x20NUM_CLIPPING_PLANES\x20];\x0a#endif','clipping_planes_pars_vertex':'#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09varying\x20vec3\x20vClipPosition;\x0a#endif','clipping_planes_vertex':'#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09vClipPosition\x20=\x20-\x20mvPosition.xyz;\x0a#endif','color_fragment':d4(0x62c),'color_pars_fragment':'#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x0a\x09varying\x20vec4\x20vColor;\x0a#endif','color_pars_vertex':'#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x20||\x20defined(\x20USE_INSTANCING_COLOR\x20)\x20||\x20defined(\x20USE_BATCHING_COLOR\x20)\x0a\x09varying\x20vec4\x20vColor;\x0a#endif','color_vertex':'#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x20||\x20defined(\x20USE_INSTANCING_COLOR\x20)\x20||\x20defined(\x20USE_BATCHING_COLOR\x20)\x0a\x09vColor\x20=\x20vec4(\x201.0\x20);\x0a#endif\x0a#ifdef\x20USE_COLOR_ALPHA\x0a\x09vColor\x20*=\x20color;\x0a#elif\x20defined(\x20USE_COLOR\x20)\x0a\x09vColor.rgb\x20*=\x20color;\x0a#endif\x0a#ifdef\x20USE_INSTANCING_COLOR\x0a\x09vColor.rgb\x20*=\x20instanceColor.rgb;\x0a#endif\x0a#ifdef\x20USE_BATCHING_COLOR\x0a\x09vColor\x20*=\x20getBatchingColor(\x20getIndirectIndex(\x20gl_DrawID\x20)\x20);\x0a#endif','common':'#define\x20PI\x203.141592653589793\x0a#define\x20PI2\x206.283185307179586\x0a#define\x20PI_HALF\x201.5707963267948966\x0a#define\x20RECIPROCAL_PI\x200.3183098861837907\x0a#define\x20RECIPROCAL_PI2\x200.15915494309189535\x0a#define\x20EPSILON\x201e-6\x0a#ifndef\x20saturate\x0a#define\x20saturate(\x20a\x20)\x20clamp(\x20a,\x200.0,\x201.0\x20)\x0a#endif\x0a#define\x20whiteComplement(\x20a\x20)\x20(\x201.0\x20-\x20saturate(\x20a\x20)\x20)\x0afloat\x20pow2(\x20const\x20in\x20float\x20x\x20)\x20{\x20return\x20x*x;\x20}\x0avec3\x20pow2(\x20const\x20in\x20vec3\x20x\x20)\x20{\x20return\x20x*x;\x20}\x0afloat\x20pow3(\x20const\x20in\x20float\x20x\x20)\x20{\x20return\x20x*x*x;\x20}\x0afloat\x20pow4(\x20const\x20in\x20float\x20x\x20)\x20{\x20float\x20x2\x20=\x20x*x;\x20return\x20x2*x2;\x20}\x0afloat\x20max3(\x20const\x20in\x20vec3\x20v\x20)\x20{\x20return\x20max(\x20max(\x20v.x,\x20v.y\x20),\x20v.z\x20);\x20}\x0afloat\x20average(\x20const\x20in\x20vec3\x20v\x20)\x20{\x20return\x20dot(\x20v,\x20vec3(\x200.3333333\x20)\x20);\x20}\x0ahighp\x20float\x20rand(\x20const\x20in\x20vec2\x20uv\x20)\x20{\x0a\x09const\x20highp\x20float\x20a\x20=\x2012.9898,\x20b\x20=\x2078.233,\x20c\x20=\x2043758.5453;\x0a\x09highp\x20float\x20dt\x20=\x20dot(\x20uv.xy,\x20vec2(\x20a,b\x20)\x20),\x20sn\x20=\x20mod(\x20dt,\x20PI\x20);\x0a\x09return\x20fract(\x20sin(\x20sn\x20)\x20*\x20c\x20);\x0a}\x0a#ifdef\x20HIGH_PRECISION\x0a\x09float\x20precisionSafeLength(\x20vec3\x20v\x20)\x20{\x20return\x20length(\x20v\x20);\x20}\x0a#else\x0a\x09float\x20precisionSafeLength(\x20vec3\x20v\x20)\x20{\x0a\x09\x09float\x20maxComponent\x20=\x20max3(\x20abs(\x20v\x20)\x20);\x0a\x09\x09return\x20length(\x20v\x20/\x20maxComponent\x20)\x20*\x20maxComponent;\x0a\x09}\x0a#endif\x0astruct\x20IncidentLight\x20{\x0a\x09vec3\x20color;\x0a\x09vec3\x20direction;\x0a\x09bool\x20visible;\x0a};\x0astruct\x20ReflectedLight\x20{\x0a\x09vec3\x20directDiffuse;\x0a\x09vec3\x20directSpecular;\x0a\x09vec3\x20indirectDiffuse;\x0a\x09vec3\x20indirectSpecular;\x0a};\x0a#ifdef\x20USE_ALPHAHASH\x0a\x09varying\x20vec3\x20vPosition;\x0a#endif\x0avec3\x20transformDirection(\x20in\x20vec3\x20dir,\x20in\x20mat4\x20matrix\x20)\x20{\x0a\x09return\x20normalize(\x20(\x20matrix\x20*\x20vec4(\x20dir,\x200.0\x20)\x20).xyz\x20);\x0a}\x0avec3\x20inverseTransformDirection(\x20in\x20vec3\x20dir,\x20in\x20mat4\x20matrix\x20)\x20{\x0a\x09return\x20normalize(\x20(\x20vec4(\x20dir,\x200.0\x20)\x20*\x20matrix\x20).xyz\x20);\x0a}\x0abool\x20isPerspectiveMatrix(\x20mat4\x20m\x20)\x20{\x0a\x09return\x20m[\x202\x20][\x203\x20]\x20==\x20-\x201.0;\x0a}\x0avec2\x20equirectUv(\x20in\x20vec3\x20dir\x20)\x20{\x0a\x09float\x20u\x20=\x20atan(\x20dir.z,\x20dir.x\x20)\x20*\x20RECIPROCAL_PI2\x20+\x200.5;\x0a\x09float\x20v\x20=\x20asin(\x20clamp(\x20dir.y,\x20-\x201.0,\x201.0\x20)\x20)\x20*\x20RECIPROCAL_PI\x20+\x200.5;\x0a\x09return\x20vec2(\x20u,\x20v\x20);\x0a}\x0avec3\x20BRDF_Lambert(\x20const\x20in\x20vec3\x20diffuseColor\x20)\x20{\x0a\x09return\x20RECIPROCAL_PI\x20*\x20diffuseColor;\x0a}\x0avec3\x20F_Schlick(\x20const\x20in\x20vec3\x20f0,\x20const\x20in\x20float\x20f90,\x20const\x20in\x20float\x20dotVH\x20)\x20{\x0a\x09float\x20fresnel\x20=\x20exp2(\x20(\x20-\x205.55473\x20*\x20dotVH\x20-\x206.98316\x20)\x20*\x20dotVH\x20);\x0a\x09return\x20f0\x20*\x20(\x201.0\x20-\x20fresnel\x20)\x20+\x20(\x20f90\x20*\x20fresnel\x20);\x0a}\x0afloat\x20F_Schlick(\x20const\x20in\x20float\x20f0,\x20const\x20in\x20float\x20f90,\x20const\x20in\x20float\x20dotVH\x20)\x20{\x0a\x09float\x20fresnel\x20=\x20exp2(\x20(\x20-\x205.55473\x20*\x20dotVH\x20-\x206.98316\x20)\x20*\x20dotVH\x20);\x0a\x09return\x20f0\x20*\x20(\x201.0\x20-\x20fresnel\x20)\x20+\x20(\x20f90\x20*\x20fresnel\x20);\x0a}\x20//\x20validated','cube_uv_reflection_fragment':'#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09#define\x20cubeUV_minMipLevel\x204.0\x0a\x09#define\x20cubeUV_minTileSize\x2016.0\x0a\x09float\x20getFace(\x20vec3\x20direction\x20)\x20{\x0a\x09\x09vec3\x20absDirection\x20=\x20abs(\x20direction\x20);\x0a\x09\x09float\x20face\x20=\x20-\x201.0;\x0a\x09\x09if\x20(\x20absDirection.x\x20>\x20absDirection.z\x20)\x20{\x0a\x09\x09\x09if\x20(\x20absDirection.x\x20>\x20absDirection.y\x20)\x0a\x09\x09\x09\x09face\x20=\x20direction.x\x20>\x200.0\x20?\x200.0\x20:\x203.0;\x0a\x09\x09\x09else\x0a\x09\x09\x09\x09face\x20=\x20direction.y\x20>\x200.0\x20?\x201.0\x20:\x204.0;\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09if\x20(\x20absDirection.z\x20>\x20absDirection.y\x20)\x0a\x09\x09\x09\x09face\x20=\x20direction.z\x20>\x200.0\x20?\x202.0\x20:\x205.0;\x0a\x09\x09\x09else\x0a\x09\x09\x09\x09face\x20=\x20direction.y\x20>\x200.0\x20?\x201.0\x20:\x204.0;\x0a\x09\x09}\x0a\x09\x09return\x20face;\x0a\x09}\x0a\x09vec2\x20getUV(\x20vec3\x20direction,\x20float\x20face\x20)\x20{\x0a\x09\x09vec2\x20uv;\x0a\x09\x09if\x20(\x20face\x20==\x200.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20direction.z,\x20direction.y\x20)\x20/\x20abs(\x20direction.x\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x201.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.x,\x20-\x20direction.z\x20)\x20/\x20abs(\x20direction.y\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x202.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.x,\x20direction.y\x20)\x20/\x20abs(\x20direction.z\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x203.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.z,\x20direction.y\x20)\x20/\x20abs(\x20direction.x\x20);\x0a\x09\x09}\x20else\x20if\x20(\x20face\x20==\x204.0\x20)\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20-\x20direction.x,\x20direction.z\x20)\x20/\x20abs(\x20direction.y\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09uv\x20=\x20vec2(\x20direction.x,\x20direction.y\x20)\x20/\x20abs(\x20direction.z\x20);\x0a\x09\x09}\x0a\x09\x09return\x200.5\x20*\x20(\x20uv\x20+\x201.0\x20);\x0a\x09}\x0a\x09vec3\x20bilinearCubeUV(\x20sampler2D\x20envMap,\x20vec3\x20direction,\x20float\x20mipInt\x20)\x20{\x0a\x09\x09float\x20face\x20=\x20getFace(\x20direction\x20);\x0a\x09\x09float\x20filterInt\x20=\x20max(\x20cubeUV_minMipLevel\x20-\x20mipInt,\x200.0\x20);\x0a\x09\x09mipInt\x20=\x20max(\x20mipInt,\x20cubeUV_minMipLevel\x20);\x0a\x09\x09float\x20faceSize\x20=\x20exp2(\x20mipInt\x20);\x0a\x09\x09highp\x20vec2\x20uv\x20=\x20getUV(\x20direction,\x20face\x20)\x20*\x20(\x20faceSize\x20-\x202.0\x20)\x20+\x201.0;\x0a\x09\x09if\x20(\x20face\x20>\x202.0\x20)\x20{\x0a\x09\x09\x09uv.y\x20+=\x20faceSize;\x0a\x09\x09\x09face\x20-=\x203.0;\x0a\x09\x09}\x0a\x09\x09uv.x\x20+=\x20face\x20*\x20faceSize;\x0a\x09\x09uv.x\x20+=\x20filterInt\x20*\x203.0\x20*\x20cubeUV_minTileSize;\x0a\x09\x09uv.y\x20+=\x204.0\x20*\x20(\x20exp2(\x20CUBEUV_MAX_MIP\x20)\x20-\x20faceSize\x20);\x0a\x09\x09uv.x\x20*=\x20CUBEUV_TEXEL_WIDTH;\x0a\x09\x09uv.y\x20*=\x20CUBEUV_TEXEL_HEIGHT;\x0a\x09\x09#ifdef\x20texture2DGradEXT\x0a\x09\x09\x09return\x20texture2DGradEXT(\x20envMap,\x20uv,\x20vec2(\x200.0\x20),\x20vec2(\x200.0\x20)\x20).rgb;\x0a\x09\x09#else\x0a\x09\x09\x09return\x20texture2D(\x20envMap,\x20uv\x20).rgb;\x0a\x09\x09#endif\x0a\x09}\x0a\x09#define\x20cubeUV_r0\x201.0\x0a\x09#define\x20cubeUV_m0\x20-\x202.0\x0a\x09#define\x20cubeUV_r1\x200.8\x0a\x09#define\x20cubeUV_m1\x20-\x201.0\x0a\x09#define\x20cubeUV_r4\x200.4\x0a\x09#define\x20cubeUV_m4\x202.0\x0a\x09#define\x20cubeUV_r5\x200.305\x0a\x09#define\x20cubeUV_m5\x203.0\x0a\x09#define\x20cubeUV_r6\x200.21\x0a\x09#define\x20cubeUV_m6\x204.0\x0a\x09float\x20roughnessToMip(\x20float\x20roughness\x20)\x20{\x0a\x09\x09float\x20mip\x20=\x200.0;\x0a\x09\x09if\x20(\x20roughness\x20>=\x20cubeUV_r1\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r0\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m1\x20-\x20cubeUV_m0\x20)\x20/\x20(\x20cubeUV_r0\x20-\x20cubeUV_r1\x20)\x20+\x20cubeUV_m0;\x0a\x09\x09}\x20else\x20if\x20(\x20roughness\x20>=\x20cubeUV_r4\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r1\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m4\x20-\x20cubeUV_m1\x20)\x20/\x20(\x20cubeUV_r1\x20-\x20cubeUV_r4\x20)\x20+\x20cubeUV_m1;\x0a\x09\x09}\x20else\x20if\x20(\x20roughness\x20>=\x20cubeUV_r5\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r4\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m5\x20-\x20cubeUV_m4\x20)\x20/\x20(\x20cubeUV_r4\x20-\x20cubeUV_r5\x20)\x20+\x20cubeUV_m4;\x0a\x09\x09}\x20else\x20if\x20(\x20roughness\x20>=\x20cubeUV_r6\x20)\x20{\x0a\x09\x09\x09mip\x20=\x20(\x20cubeUV_r5\x20-\x20roughness\x20)\x20*\x20(\x20cubeUV_m6\x20-\x20cubeUV_m5\x20)\x20/\x20(\x20cubeUV_r5\x20-\x20cubeUV_r6\x20)\x20+\x20cubeUV_m5;\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09mip\x20=\x20-\x202.0\x20*\x20log2(\x201.16\x20*\x20roughness\x20);\x09\x09}\x0a\x09\x09return\x20mip;\x0a\x09}\x0a\x09vec4\x20textureCubeUV(\x20sampler2D\x20envMap,\x20vec3\x20sampleDir,\x20float\x20roughness\x20)\x20{\x0a\x09\x09float\x20mip\x20=\x20clamp(\x20roughnessToMip(\x20roughness\x20),\x20cubeUV_m0,\x20CUBEUV_MAX_MIP\x20);\x0a\x09\x09float\x20mipF\x20=\x20fract(\x20mip\x20);\x0a\x09\x09float\x20mipInt\x20=\x20floor(\x20mip\x20);\x0a\x09\x09vec3\x20color0\x20=\x20bilinearCubeUV(\x20envMap,\x20sampleDir,\x20mipInt\x20);\x0a\x09\x09if\x20(\x20mipF\x20==\x200.0\x20)\x20{\x0a\x09\x09\x09return\x20vec4(\x20color0,\x201.0\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09vec3\x20color1\x20=\x20bilinearCubeUV(\x20envMap,\x20sampleDir,\x20mipInt\x20+\x201.0\x20);\x0a\x09\x09\x09return\x20vec4(\x20mix(\x20color0,\x20color1,\x20mipF\x20),\x201.0\x20);\x0a\x09\x09}\x0a\x09}\x0a#endif','defaultnormal_vertex':'vec3\x20transformedNormal\x20=\x20objectNormal;\x0a#ifdef\x20USE_TANGENT\x0a\x09vec3\x20transformedTangent\x20=\x20objectTangent;\x0a#endif\x0a#ifdef\x20USE_BATCHING\x0a\x09mat3\x20bm\x20=\x20mat3(\x20batchingMatrix\x20);\x0a\x09transformedNormal\x20/=\x20vec3(\x20dot(\x20bm[\x200\x20],\x20bm[\x200\x20]\x20),\x20dot(\x20bm[\x201\x20],\x20bm[\x201\x20]\x20),\x20dot(\x20bm[\x202\x20],\x20bm[\x202\x20]\x20)\x20);\x0a\x09transformedNormal\x20=\x20bm\x20*\x20transformedNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09transformedTangent\x20=\x20bm\x20*\x20transformedTangent;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_INSTANCING\x0a\x09mat3\x20im\x20=\x20mat3(\x20instanceMatrix\x20);\x0a\x09transformedNormal\x20/=\x20vec3(\x20dot(\x20im[\x200\x20],\x20im[\x200\x20]\x20),\x20dot(\x20im[\x201\x20],\x20im[\x201\x20]\x20),\x20dot(\x20im[\x202\x20],\x20im[\x202\x20]\x20)\x20);\x0a\x09transformedNormal\x20=\x20im\x20*\x20transformedNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09transformedTangent\x20=\x20im\x20*\x20transformedTangent;\x0a\x09#endif\x0a#endif\x0atransformedNormal\x20=\x20normalMatrix\x20*\x20transformedNormal;\x0a#ifdef\x20FLIP_SIDED\x0a\x09transformedNormal\x20=\x20-\x20transformedNormal;\x0a#endif\x0a#ifdef\x20USE_TANGENT\x0a\x09transformedTangent\x20=\x20(\x20modelViewMatrix\x20*\x20vec4(\x20transformedTangent,\x200.0\x20)\x20).xyz;\x0a\x09#ifdef\x20FLIP_SIDED\x0a\x09\x09transformedTangent\x20=\x20-\x20transformedTangent;\x0a\x09#endif\x0a#endif','displacementmap_pars_vertex':'#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09uniform\x20sampler2D\x20displacementMap;\x0a\x09uniform\x20float\x20displacementScale;\x0a\x09uniform\x20float\x20displacementBias;\x0a#endif','displacementmap_vertex':d4(0x33e),'emissivemap_fragment':'#ifdef\x20USE_EMISSIVEMAP\x0a\x09vec4\x20emissiveColor\x20=\x20texture2D(\x20emissiveMap,\x20vEmissiveMapUv\x20);\x0a\x09#ifdef\x20DECODE_VIDEO_TEXTURE_EMISSIVE\x0a\x09\x09emissiveColor\x20=\x20sRGBTransferEOTF(\x20emissiveColor\x20);\x0a\x09#endif\x0a\x09totalEmissiveRadiance\x20*=\x20emissiveColor.rgb;\x0a#endif','emissivemap_pars_fragment':'#ifdef\x20USE_EMISSIVEMAP\x0a\x09uniform\x20sampler2D\x20emissiveMap;\x0a#endif','colorspace_fragment':'gl_FragColor\x20=\x20linearToOutputTexel(\x20gl_FragColor\x20);','colorspace_pars_fragment':'vec4\x20LinearTransferOETF(\x20in\x20vec4\x20value\x20)\x20{\x0a\x09return\x20value;\x0a}\x0avec4\x20sRGBTransferEOTF(\x20in\x20vec4\x20value\x20)\x20{\x0a\x09return\x20vec4(\x20mix(\x20pow(\x20value.rgb\x20*\x200.9478672986\x20+\x20vec3(\x200.0521327014\x20),\x20vec3(\x202.4\x20)\x20),\x20value.rgb\x20*\x200.0773993808,\x20vec3(\x20lessThanEqual(\x20value.rgb,\x20vec3(\x200.04045\x20)\x20)\x20)\x20),\x20value.a\x20);\x0a}\x0avec4\x20sRGBTransferOETF(\x20in\x20vec4\x20value\x20)\x20{\x0a\x09return\x20vec4(\x20mix(\x20pow(\x20value.rgb,\x20vec3(\x200.41666\x20)\x20)\x20*\x201.055\x20-\x20vec3(\x200.055\x20),\x20value.rgb\x20*\x2012.92,\x20vec3(\x20lessThanEqual(\x20value.rgb,\x20vec3(\x200.0031308\x20)\x20)\x20)\x20),\x20value.a\x20);\x0a}','envmap_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09vec3\x20cameraToFrag;\x0a\x09\x09if\x20(\x20isOrthographic\x20)\x20{\x0a\x09\x09\x09cameraToFrag\x20=\x20normalize(\x20vec3(\x20-\x20viewMatrix[\x200\x20][\x202\x20],\x20-\x20viewMatrix[\x201\x20][\x202\x20],\x20-\x20viewMatrix[\x202\x20][\x202\x20]\x20)\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09cameraToFrag\x20=\x20normalize(\x20vWorldPosition\x20-\x20cameraPosition\x20);\x0a\x09\x09}\x0a\x09\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09\x09#ifdef\x20ENVMAP_MODE_REFLECTION\x0a\x09\x09\x09vec3\x20reflectVec\x20=\x20reflect(\x20cameraToFrag,\x20worldNormal\x20);\x0a\x09\x09#else\x0a\x09\x09\x09vec3\x20reflectVec\x20=\x20refract(\x20cameraToFrag,\x20worldNormal,\x20refractionRatio\x20);\x0a\x09\x09#endif\x0a\x09#else\x0a\x09\x09vec3\x20reflectVec\x20=\x20vReflect;\x0a\x09#endif\x0a\x09#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09\x09vec4\x20envColor\x20=\x20textureCube(\x20envMap,\x20envMapRotation\x20*\x20reflectVec\x20);\x0a\x09\x09#ifdef\x20ENVMAP_BLENDING_MULTIPLY\x0a\x09\x09\x09outgoingLight\x20=\x20mix(\x20outgoingLight,\x20outgoingLight\x20*\x20envColor.xyz,\x20specularStrength\x20*\x20reflectivity\x20);\x0a\x09\x09#elif\x20defined(\x20ENVMAP_BLENDING_MIX\x20)\x0a\x09\x09\x09outgoingLight\x20=\x20mix(\x20outgoingLight,\x20envColor.xyz,\x20specularStrength\x20*\x20reflectivity\x20);\x0a\x09\x09#elif\x20defined(\x20ENVMAP_BLENDING_ADD\x20)\x0a\x09\x09\x09outgoingLight\x20+=\x20envColor.xyz\x20*\x20specularStrength\x20*\x20reflectivity;\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif','envmap_common_pars_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09uniform\x20float\x20envMapIntensity;\x0a\x09uniform\x20mat3\x20envMapRotation;\x0a\x09#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09\x09uniform\x20samplerCube\x20envMap;\x0a\x09#else\x0a\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x09#endif\x0a#endif','envmap_pars_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09uniform\x20float\x20reflectivity;\x0a\x09#if\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP\x20)\x20||\x20defined(\x20PHONG\x20)\x20||\x20defined(\x20LAMBERT\x20)\x0a\x09\x09#define\x20ENV_WORLDPOS\x0a\x09#endif\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09varying\x20vec3\x20vWorldPosition;\x0a\x09\x09uniform\x20float\x20refractionRatio;\x0a\x09#else\x0a\x09\x09varying\x20vec3\x20vReflect;\x0a\x09#endif\x0a#endif','envmap_pars_vertex':'#ifdef\x20USE_ENVMAP\x0a\x09#if\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP\x20)\x20||\x20defined(\x20PHONG\x20)\x20||\x20defined(\x20LAMBERT\x20)\x0a\x09\x09#define\x20ENV_WORLDPOS\x0a\x09#endif\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09\x0a\x09\x09varying\x20vec3\x20vWorldPosition;\x0a\x09#else\x0a\x09\x09varying\x20vec3\x20vReflect;\x0a\x09\x09uniform\x20float\x20refractionRatio;\x0a\x09#endif\x0a#endif','envmap_physical_pars_fragment':'#ifdef\x20USE_ENVMAP\x0a\x09vec3\x20getIBLIrradiance(\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09\x09#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09\x09\x09vec4\x20envMapColor\x20=\x20textureCubeUV(\x20envMap,\x20envMapRotation\x20*\x20worldNormal,\x201.0\x20);\x0a\x09\x09\x09return\x20PI\x20*\x20envMapColor.rgb\x20*\x20envMapIntensity;\x0a\x09\x09#else\x0a\x09\x09\x09return\x20vec3(\x200.0\x20);\x0a\x09\x09#endif\x0a\x09}\x0a\x09vec3\x20getIBLRadiance(\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09\x09#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09vec3\x20reflectVec\x20=\x20reflect(\x20-\x20viewDir,\x20normal\x20);\x0a\x09\x09\x09reflectVec\x20=\x20normalize(\x20mix(\x20reflectVec,\x20normal,\x20pow4(\x20roughness\x20)\x20)\x20);\x0a\x09\x09\x09reflectVec\x20=\x20inverseTransformDirection(\x20reflectVec,\x20viewMatrix\x20);\x0a\x09\x09\x09vec4\x20envMapColor\x20=\x20textureCubeUV(\x20envMap,\x20envMapRotation\x20*\x20reflectVec,\x20roughness\x20);\x0a\x09\x09\x09return\x20envMapColor.rgb\x20*\x20envMapIntensity;\x0a\x09\x09#else\x0a\x09\x09\x09return\x20vec3(\x200.0\x20);\x0a\x09\x09#endif\x0a\x09}\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09vec3\x20getIBLAnisotropyRadiance(\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20vec3\x20bitangent,\x20const\x20in\x20float\x20anisotropy\x20)\x20{\x0a\x09\x09\x09#ifdef\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09\x09vec3\x20bentNormal\x20=\x20cross(\x20bitangent,\x20viewDir\x20);\x0a\x09\x09\x09\x09bentNormal\x20=\x20normalize(\x20cross(\x20bentNormal,\x20bitangent\x20)\x20);\x0a\x09\x09\x09\x09bentNormal\x20=\x20normalize(\x20mix(\x20bentNormal,\x20normal,\x20pow2(\x20pow2(\x201.0\x20-\x20anisotropy\x20*\x20(\x201.0\x20-\x20roughness\x20)\x20)\x20)\x20)\x20);\x0a\x09\x09\x09\x09return\x20getIBLRadiance(\x20viewDir,\x20bentNormal,\x20roughness\x20);\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09return\x20vec3(\x200.0\x20);\x0a\x09\x09\x09#endif\x0a\x09\x09}\x0a\x09#endif\x0a#endif','envmap_vertex':'#ifdef\x20USE_ENVMAP\x0a\x09#ifdef\x20ENV_WORLDPOS\x0a\x09\x09vWorldPosition\x20=\x20worldPosition.xyz;\x0a\x09#else\x0a\x09\x09vec3\x20cameraToVertex;\x0a\x09\x09if\x20(\x20isOrthographic\x20)\x20{\x0a\x09\x09\x09cameraToVertex\x20=\x20normalize(\x20vec3(\x20-\x20viewMatrix[\x200\x20][\x202\x20],\x20-\x20viewMatrix[\x201\x20][\x202\x20],\x20-\x20viewMatrix[\x202\x20][\x202\x20]\x20)\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09cameraToVertex\x20=\x20normalize(\x20worldPosition.xyz\x20-\x20cameraPosition\x20);\x0a\x09\x09}\x0a\x09\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20transformedNormal,\x20viewMatrix\x20);\x0a\x09\x09#ifdef\x20ENVMAP_MODE_REFLECTION\x0a\x09\x09\x09vReflect\x20=\x20reflect(\x20cameraToVertex,\x20worldNormal\x20);\x0a\x09\x09#else\x0a\x09\x09\x09vReflect\x20=\x20refract(\x20cameraToVertex,\x20worldNormal,\x20refractionRatio\x20);\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif','fog_vertex':d4(0x139),'fog_pars_vertex':'#ifdef\x20USE_FOG\x0a\x09varying\x20float\x20vFogDepth;\x0a#endif','fog_fragment':d4(0x28a),'fog_pars_fragment':'#ifdef\x20USE_FOG\x0a\x09uniform\x20vec3\x20fogColor;\x0a\x09varying\x20float\x20vFogDepth;\x0a\x09#ifdef\x20FOG_EXP2\x0a\x09\x09uniform\x20float\x20fogDensity;\x0a\x09#else\x0a\x09\x09uniform\x20float\x20fogNear;\x0a\x09\x09uniform\x20float\x20fogFar;\x0a\x09#endif\x0a#endif','gradientmap_pars_fragment':'#ifdef\x20USE_GRADIENTMAP\x0a\x09uniform\x20sampler2D\x20gradientMap;\x0a#endif\x0avec3\x20getGradientIrradiance(\x20vec3\x20normal,\x20vec3\x20lightDirection\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20dot(\x20normal,\x20lightDirection\x20);\x0a\x09vec2\x20coord\x20=\x20vec2(\x20dotNL\x20*\x200.5\x20+\x200.5,\x200.0\x20);\x0a\x09#ifdef\x20USE_GRADIENTMAP\x0a\x09\x09return\x20vec3(\x20texture2D(\x20gradientMap,\x20coord\x20).r\x20);\x0a\x09#else\x0a\x09\x09vec2\x20fw\x20=\x20fwidth(\x20coord\x20)\x20*\x200.5;\x0a\x09\x09return\x20mix(\x20vec3(\x200.7\x20),\x20vec3(\x201.0\x20),\x20smoothstep(\x200.7\x20-\x20fw.x,\x200.7\x20+\x20fw.x,\x20coord.x\x20)\x20);\x0a\x09#endif\x0a}','lightmap_pars_fragment':'#ifdef\x20USE_LIGHTMAP\x0a\x09uniform\x20sampler2D\x20lightMap;\x0a\x09uniform\x20float\x20lightMapIntensity;\x0a#endif','lights_lambert_fragment':'LambertMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;\x0amaterial.specularStrength\x20=\x20specularStrength;','lights_lambert_pars_fragment':d4(0x474),'lights_pars_begin':'uniform\x20bool\x20receiveShadow;\x0auniform\x20vec3\x20ambientLightColor;\x0a#if\x20defined(\x20USE_LIGHT_PROBES\x20)\x0a\x09uniform\x20vec3\x20lightProbe[\x209\x20];\x0a#endif\x0avec3\x20shGetIrradianceAt(\x20in\x20vec3\x20normal,\x20in\x20vec3\x20shCoefficients[\x209\x20]\x20)\x20{\x0a\x09float\x20x\x20=\x20normal.x,\x20y\x20=\x20normal.y,\x20z\x20=\x20normal.z;\x0a\x09vec3\x20result\x20=\x20shCoefficients[\x200\x20]\x20*\x200.886227;\x0a\x09result\x20+=\x20shCoefficients[\x201\x20]\x20*\x202.0\x20*\x200.511664\x20*\x20y;\x0a\x09result\x20+=\x20shCoefficients[\x202\x20]\x20*\x202.0\x20*\x200.511664\x20*\x20z;\x0a\x09result\x20+=\x20shCoefficients[\x203\x20]\x20*\x202.0\x20*\x200.511664\x20*\x20x;\x0a\x09result\x20+=\x20shCoefficients[\x204\x20]\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20y;\x0a\x09result\x20+=\x20shCoefficients[\x205\x20]\x20*\x202.0\x20*\x200.429043\x20*\x20y\x20*\x20z;\x0a\x09result\x20+=\x20shCoefficients[\x206\x20]\x20*\x20(\x200.743125\x20*\x20z\x20*\x20z\x20-\x200.247708\x20);\x0a\x09result\x20+=\x20shCoefficients[\x207\x20]\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20z;\x0a\x09result\x20+=\x20shCoefficients[\x208\x20]\x20*\x200.429043\x20*\x20(\x20x\x20*\x20x\x20-\x20y\x20*\x20y\x20);\x0a\x09return\x20result;\x0a}\x0avec3\x20getLightProbeIrradiance(\x20const\x20in\x20vec3\x20lightProbe[\x209\x20],\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09vec3\x20worldNormal\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09vec3\x20irradiance\x20=\x20shGetIrradianceAt(\x20worldNormal,\x20lightProbe\x20);\x0a\x09return\x20irradiance;\x0a}\x0avec3\x20getAmbientLightIrradiance(\x20const\x20in\x20vec3\x20ambientLightColor\x20)\x20{\x0a\x09vec3\x20irradiance\x20=\x20ambientLightColor;\x0a\x09return\x20irradiance;\x0a}\x0afloat\x20getDistanceAttenuation(\x20const\x20in\x20float\x20lightDistance,\x20const\x20in\x20float\x20cutoffDistance,\x20const\x20in\x20float\x20decayExponent\x20)\x20{\x0a\x09float\x20distanceFalloff\x20=\x201.0\x20/\x20max(\x20pow(\x20lightDistance,\x20decayExponent\x20),\x200.01\x20);\x0a\x09if\x20(\x20cutoffDistance\x20>\x200.0\x20)\x20{\x0a\x09\x09distanceFalloff\x20*=\x20pow2(\x20saturate(\x201.0\x20-\x20pow4(\x20lightDistance\x20/\x20cutoffDistance\x20)\x20)\x20);\x0a\x09}\x0a\x09return\x20distanceFalloff;\x0a}\x0afloat\x20getSpotAttenuation(\x20const\x20in\x20float\x20coneCosine,\x20const\x20in\x20float\x20penumbraCosine,\x20const\x20in\x20float\x20angleCosine\x20)\x20{\x0a\x09return\x20smoothstep(\x20coneCosine,\x20penumbraCosine,\x20angleCosine\x20);\x0a}\x0a#if\x20NUM_DIR_LIGHTS\x20>\x200\x0a\x09struct\x20DirectionalLight\x20{\x0a\x09\x09vec3\x20direction;\x0a\x09\x09vec3\x20color;\x0a\x09};\x0a\x09uniform\x20DirectionalLight\x20directionalLights[\x20NUM_DIR_LIGHTS\x20];\x0a\x09void\x20getDirectionalLightInfo(\x20const\x20in\x20DirectionalLight\x20directionalLight,\x20out\x20IncidentLight\x20light\x20)\x20{\x0a\x09\x09light.color\x20=\x20directionalLight.color;\x0a\x09\x09light.direction\x20=\x20directionalLight.direction;\x0a\x09\x09light.visible\x20=\x20true;\x0a\x09}\x0a#endif\x0a#if\x20NUM_POINT_LIGHTS\x20>\x200\x0a\x09struct\x20PointLight\x20{\x0a\x09\x09vec3\x20position;\x0a\x09\x09vec3\x20color;\x0a\x09\x09float\x20distance;\x0a\x09\x09float\x20decay;\x0a\x09};\x0a\x09uniform\x20PointLight\x20pointLights[\x20NUM_POINT_LIGHTS\x20];\x0a\x09void\x20getPointLightInfo(\x20const\x20in\x20PointLight\x20pointLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20out\x20IncidentLight\x20light\x20)\x20{\x0a\x09\x09vec3\x20lVector\x20=\x20pointLight.position\x20-\x20geometryPosition;\x0a\x09\x09light.direction\x20=\x20normalize(\x20lVector\x20);\x0a\x09\x09float\x20lightDistance\x20=\x20length(\x20lVector\x20);\x0a\x09\x09light.color\x20=\x20pointLight.color;\x0a\x09\x09light.color\x20*=\x20getDistanceAttenuation(\x20lightDistance,\x20pointLight.distance,\x20pointLight.decay\x20);\x0a\x09\x09light.visible\x20=\x20(\x20light.color\x20!=\x20vec3(\x200.0\x20)\x20);\x0a\x09}\x0a#endif\x0a#if\x20NUM_SPOT_LIGHTS\x20>\x200\x0a\x09struct\x20SpotLight\x20{\x0a\x09\x09vec3\x20position;\x0a\x09\x09vec3\x20direction;\x0a\x09\x09vec3\x20color;\x0a\x09\x09float\x20distance;\x0a\x09\x09float\x20decay;\x0a\x09\x09float\x20coneCos;\x0a\x09\x09float\x20penumbraCos;\x0a\x09};\x0a\x09uniform\x20SpotLight\x20spotLights[\x20NUM_SPOT_LIGHTS\x20];\x0a\x09void\x20getSpotLightInfo(\x20const\x20in\x20SpotLight\x20spotLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20out\x20IncidentLight\x20light\x20)\x20{\x0a\x09\x09vec3\x20lVector\x20=\x20spotLight.position\x20-\x20geometryPosition;\x0a\x09\x09light.direction\x20=\x20normalize(\x20lVector\x20);\x0a\x09\x09float\x20angleCos\x20=\x20dot(\x20light.direction,\x20spotLight.direction\x20);\x0a\x09\x09float\x20spotAttenuation\x20=\x20getSpotAttenuation(\x20spotLight.coneCos,\x20spotLight.penumbraCos,\x20angleCos\x20);\x0a\x09\x09if\x20(\x20spotAttenuation\x20>\x200.0\x20)\x20{\x0a\x09\x09\x09float\x20lightDistance\x20=\x20length(\x20lVector\x20);\x0a\x09\x09\x09light.color\x20=\x20spotLight.color\x20*\x20spotAttenuation;\x0a\x09\x09\x09light.color\x20*=\x20getDistanceAttenuation(\x20lightDistance,\x20spotLight.distance,\x20spotLight.decay\x20);\x0a\x09\x09\x09light.visible\x20=\x20(\x20light.color\x20!=\x20vec3(\x200.0\x20)\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09light.color\x20=\x20vec3(\x200.0\x20);\x0a\x09\x09\x09light.visible\x20=\x20false;\x0a\x09\x09}\x0a\x09}\x0a#endif\x0a#if\x20NUM_RECT_AREA_LIGHTS\x20>\x200\x0a\x09struct\x20RectAreaLight\x20{\x0a\x09\x09vec3\x20color;\x0a\x09\x09vec3\x20position;\x0a\x09\x09vec3\x20halfWidth;\x0a\x09\x09vec3\x20halfHeight;\x0a\x09};\x0a\x09uniform\x20sampler2D\x20ltc_1;\x09uniform\x20sampler2D\x20ltc_2;\x0a\x09uniform\x20RectAreaLight\x20rectAreaLights[\x20NUM_RECT_AREA_LIGHTS\x20];\x0a#endif\x0a#if\x20NUM_HEMI_LIGHTS\x20>\x200\x0a\x09struct\x20HemisphereLight\x20{\x0a\x09\x09vec3\x20direction;\x0a\x09\x09vec3\x20skyColor;\x0a\x09\x09vec3\x20groundColor;\x0a\x09};\x0a\x09uniform\x20HemisphereLight\x20hemisphereLights[\x20NUM_HEMI_LIGHTS\x20];\x0a\x09vec3\x20getHemisphereLightIrradiance(\x20const\x20in\x20HemisphereLight\x20hemiLight,\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09\x09float\x20dotNL\x20=\x20dot(\x20normal,\x20hemiLight.direction\x20);\x0a\x09\x09float\x20hemiDiffuseWeight\x20=\x200.5\x20*\x20dotNL\x20+\x200.5;\x0a\x09\x09vec3\x20irradiance\x20=\x20mix(\x20hemiLight.groundColor,\x20hemiLight.skyColor,\x20hemiDiffuseWeight\x20);\x0a\x09\x09return\x20irradiance;\x0a\x09}\x0a#endif\x0a#include\x20<lightprobes_pars_fragment>','lights_toon_fragment':'ToonMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;','lights_toon_pars_fragment':'varying\x20vec3\x20vViewPosition;\x0astruct\x20ToonMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a};\x0avoid\x20RE_Direct_Toon(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20ToonMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09vec3\x20irradiance\x20=\x20getGradientIrradiance(\x20geometryNormal,\x20directLight.direction\x20)\x20*\x20directLight.color;\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0avoid\x20RE_IndirectDiffuse_Toon(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20ToonMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_Toon\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_Toon','lights_phong_fragment':'BlinnPhongMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;\x0amaterial.specularColor\x20=\x20specular;\x0amaterial.specularShininess\x20=\x20shininess;\x0amaterial.specularStrength\x20=\x20specularStrength;','lights_phong_pars_fragment':'varying\x20vec3\x20vViewPosition;\x0astruct\x20BlinnPhongMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a\x09vec3\x20specularColor;\x0a\x09float\x20specularShininess;\x0a\x09float\x20specularStrength;\x0a};\x0avoid\x20RE_Direct_BlinnPhong(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20BlinnPhongMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20directLight.direction\x20)\x20);\x0a\x09vec3\x20irradiance\x20=\x20dotNL\x20*\x20directLight.color;\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a\x09reflectedLight.directSpecular\x20+=\x20irradiance\x20*\x20BRDF_BlinnPhong(\x20directLight.direction,\x20geometryViewDir,\x20geometryNormal,\x20material.specularColor,\x20material.specularShininess\x20)\x20*\x20material.specularStrength;\x0a}\x0avoid\x20RE_IndirectDiffuse_BlinnPhong(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20BlinnPhongMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_BlinnPhong\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_BlinnPhong','lights_physical_fragment':'PhysicalMaterial\x20material;\x0amaterial.diffuseColor\x20=\x20diffuseColor.rgb;\x0amaterial.diffuseContribution\x20=\x20diffuseColor.rgb\x20*\x20(\x201.0\x20-\x20metalnessFactor\x20);\x0amaterial.metalness\x20=\x20metalnessFactor;\x0avec3\x20dxy\x20=\x20max(\x20abs(\x20dFdx(\x20nonPerturbedNormal\x20)\x20),\x20abs(\x20dFdy(\x20nonPerturbedNormal\x20)\x20)\x20);\x0afloat\x20geometryRoughness\x20=\x20max(\x20max(\x20dxy.x,\x20dxy.y\x20),\x20dxy.z\x20);\x0amaterial.roughness\x20=\x20max(\x20roughnessFactor,\x200.0525\x20);material.roughness\x20+=\x20geometryRoughness;\x0amaterial.roughness\x20=\x20min(\x20material.roughness,\x201.0\x20);\x0a#ifdef\x20IOR\x0a\x09material.ior\x20=\x20ior;\x0a\x09#ifdef\x20USE_SPECULAR\x0a\x09\x09float\x20specularIntensityFactor\x20=\x20specularIntensity;\x0a\x09\x09vec3\x20specularColorFactor\x20=\x20specularColor;\x0a\x09\x09#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09\x09\x09specularColorFactor\x20*=\x20texture2D(\x20specularColorMap,\x20vSpecularColorMapUv\x20).rgb;\x0a\x09\x09#endif\x0a\x09\x09#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09\x09\x09specularIntensityFactor\x20*=\x20texture2D(\x20specularIntensityMap,\x20vSpecularIntensityMapUv\x20).a;\x0a\x09\x09#endif\x0a\x09\x09material.specularF90\x20=\x20mix(\x20specularIntensityFactor,\x201.0,\x20metalnessFactor\x20);\x0a\x09#else\x0a\x09\x09float\x20specularIntensityFactor\x20=\x201.0;\x0a\x09\x09vec3\x20specularColorFactor\x20=\x20vec3(\x201.0\x20);\x0a\x09\x09material.specularF90\x20=\x201.0;\x0a\x09#endif\x0a\x09material.specularColor\x20=\x20min(\x20pow2(\x20(\x20material.ior\x20-\x201.0\x20)\x20/\x20(\x20material.ior\x20+\x201.0\x20)\x20)\x20*\x20specularColorFactor,\x20vec3(\x201.0\x20)\x20)\x20*\x20specularIntensityFactor;\x0a\x09material.specularColorBlended\x20=\x20mix(\x20material.specularColor,\x20diffuseColor.rgb,\x20metalnessFactor\x20);\x0a#else\x0a\x09material.specularColor\x20=\x20vec3(\x200.04\x20);\x0a\x09material.specularColorBlended\x20=\x20mix(\x20material.specularColor,\x20diffuseColor.rgb,\x20metalnessFactor\x20);\x0a\x09material.specularF90\x20=\x201.0;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09material.clearcoat\x20=\x20clearcoat;\x0a\x09material.clearcoatRoughness\x20=\x20clearcoatRoughness;\x0a\x09material.clearcoatF0\x20=\x20vec3(\x200.04\x20);\x0a\x09material.clearcoatF90\x20=\x201.0;\x0a\x09#ifdef\x20USE_CLEARCOATMAP\x0a\x09\x09material.clearcoat\x20*=\x20texture2D(\x20clearcoatMap,\x20vClearcoatMapUv\x20).x;\x0a\x09#endif\x0a\x09#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09\x09material.clearcoatRoughness\x20*=\x20texture2D(\x20clearcoatRoughnessMap,\x20vClearcoatRoughnessMapUv\x20).y;\x0a\x09#endif\x0a\x09material.clearcoat\x20=\x20saturate(\x20material.clearcoat\x20);\x09material.clearcoatRoughness\x20=\x20max(\x20material.clearcoatRoughness,\x200.0525\x20);\x0a\x09material.clearcoatRoughness\x20+=\x20geometryRoughness;\x0a\x09material.clearcoatRoughness\x20=\x20min(\x20material.clearcoatRoughness,\x201.0\x20);\x0a#endif\x0a#ifdef\x20USE_DISPERSION\x0a\x09material.dispersion\x20=\x20dispersion;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE\x0a\x09material.iridescence\x20=\x20iridescence;\x0a\x09material.iridescenceIOR\x20=\x20iridescenceIOR;\x0a\x09#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09\x09material.iridescence\x20*=\x20texture2D(\x20iridescenceMap,\x20vIridescenceMapUv\x20).r;\x0a\x09#endif\x0a\x09#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09\x09material.iridescenceThickness\x20=\x20(iridescenceThicknessMaximum\x20-\x20iridescenceThicknessMinimum)\x20*\x20texture2D(\x20iridescenceThicknessMap,\x20vIridescenceThicknessMapUv\x20).g\x20+\x20iridescenceThicknessMinimum;\x0a\x09#else\x0a\x09\x09material.iridescenceThickness\x20=\x20iridescenceThicknessMaximum;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_SHEEN\x0a\x09material.sheenColor\x20=\x20sheenColor;\x0a\x09#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09\x09material.sheenColor\x20*=\x20texture2D(\x20sheenColorMap,\x20vSheenColorMapUv\x20).rgb;\x0a\x09#endif\x0a\x09material.sheenRoughness\x20=\x20clamp(\x20sheenRoughness,\x200.0001,\x201.0\x20);\x0a\x09#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09\x09material.sheenRoughness\x20*=\x20texture2D(\x20sheenRoughnessMap,\x20vSheenRoughnessMapUv\x20).a;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_ANISOTROPY\x0a\x09#ifdef\x20USE_ANISOTROPYMAP\x0a\x09\x09mat2\x20anisotropyMat\x20=\x20mat2(\x20anisotropyVector.x,\x20anisotropyVector.y,\x20-\x20anisotropyVector.y,\x20anisotropyVector.x\x20);\x0a\x09\x09vec3\x20anisotropyPolar\x20=\x20texture2D(\x20anisotropyMap,\x20vAnisotropyMapUv\x20).rgb;\x0a\x09\x09vec2\x20anisotropyV\x20=\x20anisotropyMat\x20*\x20normalize(\x202.0\x20*\x20anisotropyPolar.rg\x20-\x20vec2(\x201.0\x20)\x20)\x20*\x20anisotropyPolar.b;\x0a\x09#else\x0a\x09\x09vec2\x20anisotropyV\x20=\x20anisotropyVector;\x0a\x09#endif\x0a\x09material.anisotropy\x20=\x20length(\x20anisotropyV\x20);\x0a\x09if(\x20material.anisotropy\x20==\x200.0\x20)\x20{\x0a\x09\x09anisotropyV\x20=\x20vec2(\x201.0,\x200.0\x20);\x0a\x09}\x20else\x20{\x0a\x09\x09anisotropyV\x20/=\x20material.anisotropy;\x0a\x09\x09material.anisotropy\x20=\x20saturate(\x20material.anisotropy\x20);\x0a\x09}\x0a\x09material.alphaT\x20=\x20mix(\x20pow2(\x20material.roughness\x20),\x201.0,\x20pow2(\x20material.anisotropy\x20)\x20);\x0a\x09material.anisotropyT\x20=\x20tbn[\x200\x20]\x20*\x20anisotropyV.x\x20+\x20tbn[\x201\x20]\x20*\x20anisotropyV.y;\x0a\x09material.anisotropyB\x20=\x20tbn[\x201\x20]\x20*\x20anisotropyV.x\x20-\x20tbn[\x200\x20]\x20*\x20anisotropyV.y;\x0a#endif','lights_physical_pars_fragment':d4(0x140),'lights_fragment_begin':'\x0avec3\x20geometryPosition\x20=\x20-\x20vViewPosition;\x0avec3\x20geometryNormal\x20=\x20normal;\x0avec3\x20geometryViewDir\x20=\x20(\x20isOrthographic\x20)\x20?\x20vec3(\x200,\x200,\x201\x20)\x20:\x20normalize(\x20vViewPosition\x20);\x0avec3\x20geometryClearcoatNormal\x20=\x20vec3(\x200.0\x20);\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09geometryClearcoatNormal\x20=\x20clearcoatNormal;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE\x0a\x09float\x20dotNVi\x20=\x20saturate(\x20dot(\x20normal,\x20geometryViewDir\x20)\x20);\x0a\x09if\x20(\x20material.iridescenceThickness\x20==\x200.0\x20)\x20{\x0a\x09\x09material.iridescence\x20=\x200.0;\x0a\x09}\x20else\x20{\x0a\x09\x09material.iridescence\x20=\x20saturate(\x20material.iridescence\x20);\x0a\x09}\x0a\x09if\x20(\x20material.iridescence\x20>\x200.0\x20)\x20{\x0a\x09\x09material.iridescenceFresnelDielectric\x20=\x20evalIridescence(\x201.0,\x20material.iridescenceIOR,\x20dotNVi,\x20material.iridescenceThickness,\x20material.specularColor\x20);\x0a\x09\x09material.iridescenceFresnelMetallic\x20=\x20evalIridescence(\x201.0,\x20material.iridescenceIOR,\x20dotNVi,\x20material.iridescenceThickness,\x20material.diffuseColor\x20);\x0a\x09\x09material.iridescenceFresnel\x20=\x20mix(\x20material.iridescenceFresnelDielectric,\x20material.iridescenceFresnelMetallic,\x20material.metalness\x20);\x0a\x09\x09material.iridescenceF0\x20=\x20Schlick_to_F0(\x20material.iridescenceFresnel,\x201.0,\x20dotNVi\x20);\x0a\x09}\x0a#endif\x0aIncidentLight\x20directLight;\x0a#if\x20(\x20NUM_POINT_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct\x20)\x0a\x09PointLight\x20pointLight;\x0a\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09PointLightShadow\x20pointLightShadow;\x0a\x09#endif\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_POINT_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09pointLight\x20=\x20pointLights[\x20i\x20];\x0a\x09\x09getPointLightInfo(\x20pointLight,\x20geometryPosition,\x20directLight\x20);\x0a\x09\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_POINT_LIGHT_SHADOWS\x20)\x20&&\x20(\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x20||\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x20)\x0a\x09\x09pointLightShadow\x20=\x20pointLightShadows[\x20i\x20];\x0a\x09\x09directLight.color\x20*=\x20(\x20directLight.visible\x20&&\x20receiveShadow\x20)\x20?\x20getPointShadow(\x20pointShadowMap[\x20i\x20],\x20pointLightShadow.shadowMapSize,\x20pointLightShadow.shadowIntensity,\x20pointLightShadow.shadowBias,\x20pointLightShadow.shadowRadius,\x20vPointShadowCoord[\x20i\x20],\x20pointLightShadow.shadowCameraNear,\x20pointLightShadow.shadowCameraFar\x20)\x20:\x201.0;\x0a\x09\x09#endif\x0a\x09\x09RE_Direct(\x20directLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20(\x20NUM_SPOT_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct\x20)\x0a\x09SpotLight\x20spotLight;\x0a\x09vec4\x20spotColor;\x0a\x09vec3\x20spotLightCoord;\x0a\x09bool\x20inSpotLightMap;\x0a\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09SpotLightShadow\x20spotLightShadow;\x0a\x09#endif\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_SPOT_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09spotLight\x20=\x20spotLights[\x20i\x20];\x0a\x09\x09getSpotLightInfo(\x20spotLight,\x20geometryPosition,\x20directLight\x20);\x0a\x09\x09#if\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS\x20)\x0a\x09\x09#define\x20SPOT_LIGHT_MAP_INDEX\x20UNROLLED_LOOP_INDEX\x0a\x09\x09#elif\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS\x20)\x0a\x09\x09#define\x20SPOT_LIGHT_MAP_INDEX\x20NUM_SPOT_LIGHT_MAPS\x0a\x09\x09#else\x0a\x09\x09#define\x20SPOT_LIGHT_MAP_INDEX\x20(\x20UNROLLED_LOOP_INDEX\x20-\x20NUM_SPOT_LIGHT_SHADOWS\x20+\x20NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS\x20)\x0a\x09\x09#endif\x0a\x09\x09#if\x20(\x20SPOT_LIGHT_MAP_INDEX\x20<\x20NUM_SPOT_LIGHT_MAPS\x20)\x0a\x09\x09\x09spotLightCoord\x20=\x20vSpotLightCoord[\x20i\x20].xyz\x20/\x20vSpotLightCoord[\x20i\x20].w;\x0a\x09\x09\x09inSpotLightMap\x20=\x20all(\x20lessThan(\x20abs(\x20spotLightCoord\x20*\x202.\x20-\x201.\x20),\x20vec3(\x201.0\x20)\x20)\x20);\x0a\x09\x09\x09spotColor\x20=\x20texture2D(\x20spotLightMap[\x20SPOT_LIGHT_MAP_INDEX\x20],\x20spotLightCoord.xy\x20);\x0a\x09\x09\x09directLight.color\x20=\x20inSpotLightMap\x20?\x20directLight.color\x20*\x20spotColor.rgb\x20:\x20directLight.color;\x0a\x09\x09#endif\x0a\x09\x09#undef\x20SPOT_LIGHT_MAP_INDEX\x0a\x09\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS\x20)\x0a\x09\x09spotLightShadow\x20=\x20spotLightShadows[\x20i\x20];\x0a\x09\x09directLight.color\x20*=\x20(\x20directLight.visible\x20&&\x20receiveShadow\x20)\x20?\x20getShadow(\x20spotShadowMap[\x20i\x20],\x20spotLightShadow.shadowMapSize,\x20spotLightShadow.shadowIntensity,\x20spotLightShadow.shadowBias,\x20spotLightShadow.shadowRadius,\x20vSpotLightCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09\x09#endif\x0a\x09\x09RE_Direct(\x20directLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20(\x20NUM_DIR_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct\x20)\x0a\x09DirectionalLight\x20directionalLight;\x0a\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09DirectionalLightShadow\x20directionalLightShadow;\x0a\x09#endif\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_DIR_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09directionalLight\x20=\x20directionalLights[\x20i\x20];\x0a\x09\x09getDirectionalLightInfo(\x20directionalLight,\x20directLight\x20);\x0a\x09\x09#if\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_DIR_LIGHT_SHADOWS\x20)\x0a\x09\x09directionalLightShadow\x20=\x20directionalLightShadows[\x20i\x20];\x0a\x09\x09directLight.color\x20*=\x20(\x20directLight.visible\x20&&\x20receiveShadow\x20)\x20?\x20getShadow(\x20directionalShadowMap[\x20i\x20],\x20directionalLightShadow.shadowMapSize,\x20directionalLightShadow.shadowIntensity,\x20directionalLightShadow.shadowBias,\x20directionalLightShadow.shadowRadius,\x20vDirectionalShadowCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09\x09#endif\x0a\x09\x09RE_Direct(\x20directLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20(\x20NUM_RECT_AREA_LIGHTS\x20>\x200\x20)\x20&&\x20defined(\x20RE_Direct_RectArea\x20)\x0a\x09RectAreaLight\x20rectAreaLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_RECT_AREA_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09rectAreaLight\x20=\x20rectAreaLights[\x20i\x20];\x0a\x09\x09RE_Direct_RectArea(\x20rectAreaLight,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif\x0a#if\x20defined(\x20RE_IndirectDiffuse\x20)\x0a\x09vec3\x20iblIrradiance\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20irradiance\x20=\x20getAmbientLightIrradiance(\x20ambientLightColor\x20);\x0a\x09#if\x20defined(\x20USE_LIGHT_PROBES\x20)\x0a\x09\x09irradiance\x20+=\x20getLightProbeIrradiance(\x20lightProbe,\x20geometryNormal\x20);\x0a\x09#endif\x0a\x09#if\x20(\x20NUM_HEMI_LIGHTS\x20>\x200\x20)\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_HEMI_LIGHTS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09irradiance\x20+=\x20getHemisphereLightIrradiance(\x20hemisphereLights[\x20i\x20],\x20geometryNormal\x20);\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#ifdef\x20USE_LIGHT_PROBES_GRID\x0a\x09\x09vec3\x20probeWorldPos\x20=\x20(\x20(\x20vec4(\x20geometryPosition,\x201.0\x20)\x20-\x20viewMatrix[\x203\x20]\x20)\x20*\x20viewMatrix\x20).xyz;\x0a\x09\x09vec3\x20probeWorldNormal\x20=\x20inverseTransformDirection(\x20geometryNormal,\x20viewMatrix\x20);\x0a\x09\x09irradiance\x20+=\x20getLightProbeGridIrradiance(\x20probeWorldPos,\x20probeWorldNormal\x20);\x0a\x09#endif\x0a#endif\x0a#if\x20defined(\x20RE_IndirectSpecular\x20)\x0a\x09vec3\x20radiance\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20clearcoatRadiance\x20=\x20vec3(\x200.0\x20);\x0a#endif','lights_fragment_maps':'#if\x20defined(\x20RE_IndirectDiffuse\x20)\x0a\x09#ifdef\x20USE_LIGHTMAP\x0a\x09\x09vec4\x20lightMapTexel\x20=\x20texture2D(\x20lightMap,\x20vLightMapUv\x20);\x0a\x09\x09vec3\x20lightMapIrradiance\x20=\x20lightMapTexel.rgb\x20*\x20lightMapIntensity;\x0a\x09\x09irradiance\x20+=\x20lightMapIrradiance;\x0a\x09#endif\x0a\x09#if\x20defined(\x20USE_ENVMAP\x20)\x20&&\x20defined(\x20ENVMAP_TYPE_CUBE_UV\x20)\x0a\x09\x09#if\x20defined(\x20STANDARD\x20)\x20||\x20defined(\x20LAMBERT\x20)\x20||\x20defined(\x20PHONG\x20)\x0a\x09\x09\x09iblIrradiance\x20+=\x20getIBLIrradiance(\x20geometryNormal\x20);\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif\x0a#if\x20defined(\x20USE_ENVMAP\x20)\x20&&\x20defined(\x20RE_IndirectSpecular\x20)\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09radiance\x20+=\x20getIBLAnisotropyRadiance(\x20geometryViewDir,\x20geometryNormal,\x20material.roughness,\x20material.anisotropyB,\x20material.anisotropy\x20);\x0a\x09#else\x0a\x09\x09radiance\x20+=\x20getIBLRadiance(\x20geometryViewDir,\x20geometryNormal,\x20material.roughness\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09clearcoatRadiance\x20+=\x20getIBLRadiance(\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material.clearcoatRoughness\x20);\x0a\x09#endif\x0a#endif','lights_fragment_end':'#if\x20defined(\x20RE_IndirectDiffuse\x20)\x0a\x09#if\x20defined(\x20LAMBERT\x20)\x20||\x20defined(\x20PHONG\x20)\x0a\x09\x09irradiance\x20+=\x20iblIrradiance;\x0a\x09#endif\x0a\x09RE_IndirectDiffuse(\x20irradiance,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a#endif\x0a#if\x20defined(\x20RE_IndirectSpecular\x20)\x0a\x09RE_IndirectSpecular(\x20radiance,\x20iblIrradiance,\x20clearcoatRadiance,\x20geometryPosition,\x20geometryNormal,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material,\x20reflectedLight\x20);\x0a#endif','lightprobes_pars_fragment':'#ifdef\x20USE_LIGHT_PROBES_GRID\x0auniform\x20highp\x20sampler3D\x20probesSH;\x0auniform\x20vec3\x20probesMin;\x0auniform\x20vec3\x20probesMax;\x0auniform\x20vec3\x20probesResolution;\x0avec3\x20getLightProbeGridIrradiance(\x20vec3\x20worldPos,\x20vec3\x20worldNormal\x20)\x20{\x0a\x09vec3\x20res\x20=\x20probesResolution;\x0a\x09vec3\x20gridRange\x20=\x20probesMax\x20-\x20probesMin;\x0a\x09vec3\x20resMinusOne\x20=\x20res\x20-\x201.0;\x0a\x09vec3\x20probeSpacing\x20=\x20gridRange\x20/\x20resMinusOne;\x0a\x09vec3\x20samplePos\x20=\x20worldPos\x20+\x20worldNormal\x20*\x20probeSpacing\x20*\x200.5;\x0a\x09vec3\x20uvw\x20=\x20clamp(\x20(\x20samplePos\x20-\x20probesMin\x20)\x20/\x20gridRange,\x200.0,\x201.0\x20);\x0a\x09uvw\x20=\x20uvw\x20*\x20resMinusOne\x20/\x20res\x20+\x200.5\x20/\x20res;\x0a\x09float\x20nz\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20=\x20res.z;\x0a\x09float\x20paddedSlices\x20=\x20nz\x20+\x202.0;\x0a\x09float\x20atlasDepth\x20\x20=\x207.0\x20*\x20paddedSlices;\x0a\x09float\x20uvZBase\x20\x20\x20\x20\x20=\x20uvw.z\x20*\x20nz\x20+\x201.0;\x0a\x09vec4\x20s0\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s1\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x20\x20\x20\x20\x20\x20\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s2\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x202.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s3\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x203.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s4\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x204.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s5\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x205.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec4\x20s6\x20=\x20texture(\x20probesSH,\x20vec3(\x20uvw.xy,\x20(\x20uvZBase\x20+\x206.0\x20*\x20paddedSlices\x20\x20\x20)\x20/\x20atlasDepth\x20)\x20);\x0a\x09vec3\x20c0\x20=\x20s0.xyz;\x0a\x09vec3\x20c1\x20=\x20vec3(\x20s0.w,\x20s1.xy\x20);\x0a\x09vec3\x20c2\x20=\x20vec3(\x20s1.zw,\x20s2.x\x20);\x0a\x09vec3\x20c3\x20=\x20s2.yzw;\x0a\x09vec3\x20c4\x20=\x20s3.xyz;\x0a\x09vec3\x20c5\x20=\x20vec3(\x20s3.w,\x20s4.xy\x20);\x0a\x09vec3\x20c6\x20=\x20vec3(\x20s4.zw,\x20s5.x\x20);\x0a\x09vec3\x20c7\x20=\x20s5.yzw;\x0a\x09vec3\x20c8\x20=\x20s6.xyz;\x0a\x09float\x20x\x20=\x20worldNormal.x,\x20y\x20=\x20worldNormal.y,\x20z\x20=\x20worldNormal.z;\x0a\x09vec3\x20result\x20=\x20c0\x20*\x200.886227;\x0a\x09result\x20+=\x20c1\x20*\x202.0\x20*\x200.511664\x20*\x20y;\x0a\x09result\x20+=\x20c2\x20*\x202.0\x20*\x200.511664\x20*\x20z;\x0a\x09result\x20+=\x20c3\x20*\x202.0\x20*\x200.511664\x20*\x20x;\x0a\x09result\x20+=\x20c4\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20y;\x0a\x09result\x20+=\x20c5\x20*\x202.0\x20*\x200.429043\x20*\x20y\x20*\x20z;\x0a\x09result\x20+=\x20c6\x20*\x20(\x200.743125\x20*\x20z\x20*\x20z\x20-\x200.247708\x20);\x0a\x09result\x20+=\x20c7\x20*\x202.0\x20*\x200.429043\x20*\x20x\x20*\x20z;\x0a\x09result\x20+=\x20c8\x20*\x200.429043\x20*\x20(\x20x\x20*\x20x\x20-\x20y\x20*\x20y\x20);\x0a\x09return\x20max(\x20result,\x20vec3(\x200.0\x20)\x20);\x0a}\x0a#endif','logdepthbuf_fragment':'#if\x20defined(\x20USE_LOGARITHMIC_DEPTH_BUFFER\x20)\x0a\x09gl_FragDepth\x20=\x20vIsPerspective\x20==\x200.0\x20?\x20gl_FragCoord.z\x20:\x20log2(\x20vFragDepth\x20)\x20*\x20logDepthBufFC\x20*\x200.5;\x0a#endif','logdepthbuf_pars_fragment':'#if\x20defined(\x20USE_LOGARITHMIC_DEPTH_BUFFER\x20)\x0a\x09uniform\x20float\x20logDepthBufFC;\x0a\x09varying\x20float\x20vFragDepth;\x0a\x09varying\x20float\x20vIsPerspective;\x0a#endif','logdepthbuf_pars_vertex':'#ifdef\x20USE_LOGARITHMIC_DEPTH_BUFFER\x0a\x09varying\x20float\x20vFragDepth;\x0a\x09varying\x20float\x20vIsPerspective;\x0a#endif','logdepthbuf_vertex':'#ifdef\x20USE_LOGARITHMIC_DEPTH_BUFFER\x0a\x09vFragDepth\x20=\x201.0\x20+\x20gl_Position.w;\x0a\x09vIsPerspective\x20=\x20float(\x20isPerspectiveMatrix(\x20projectionMatrix\x20)\x20);\x0a#endif','map_fragment':'#ifdef\x20USE_MAP\x0a\x09vec4\x20sampledDiffuseColor\x20=\x20texture2D(\x20map,\x20vMapUv\x20);\x0a\x09#ifdef\x20DECODE_VIDEO_TEXTURE\x0a\x09\x09sampledDiffuseColor\x20=\x20sRGBTransferEOTF(\x20sampledDiffuseColor\x20);\x0a\x09#endif\x0a\x09diffuseColor\x20*=\x20sampledDiffuseColor;\x0a#endif','map_pars_fragment':'#ifdef\x20USE_MAP\x0a\x09uniform\x20sampler2D\x20map;\x0a#endif','map_particle_fragment':'#if\x20defined(\x20USE_MAP\x20)\x20||\x20defined(\x20USE_ALPHAMAP\x20)\x0a\x09#if\x20defined(\x20USE_POINTS_UV\x20)\x0a\x09\x09vec2\x20uv\x20=\x20vUv;\x0a\x09#else\x0a\x09\x09vec2\x20uv\x20=\x20(\x20uvTransform\x20*\x20vec3(\x20gl_PointCoord.x,\x201.0\x20-\x20gl_PointCoord.y,\x201\x20)\x20).xy;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09diffuseColor\x20*=\x20texture2D(\x20map,\x20uv\x20);\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09diffuseColor.a\x20*=\x20texture2D(\x20alphaMap,\x20uv\x20).g;\x0a#endif','map_particle_pars_fragment':'#if\x20defined(\x20USE_POINTS_UV\x20)\x0a\x09varying\x20vec2\x20vUv;\x0a#else\x0a\x09#if\x20defined(\x20USE_MAP\x20)\x20||\x20defined(\x20USE_ALPHAMAP\x20)\x0a\x09\x09uniform\x20mat3\x20uvTransform;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09uniform\x20sampler2D\x20map;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09uniform\x20sampler2D\x20alphaMap;\x0a#endif','metalnessmap_fragment':'float\x20metalnessFactor\x20=\x20metalness;\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09vec4\x20texelMetalness\x20=\x20texture2D(\x20metalnessMap,\x20vMetalnessMapUv\x20);\x0a\x09metalnessFactor\x20*=\x20texelMetalness.b;\x0a#endif','metalnessmap_pars_fragment':'#ifdef\x20USE_METALNESSMAP\x0a\x09uniform\x20sampler2D\x20metalnessMap;\x0a#endif','morphinstance_vertex':'#ifdef\x20USE_INSTANCING_MORPH\x0a\x09float\x20morphTargetInfluences[\x20MORPHTARGETS_COUNT\x20];\x0a\x09float\x20morphTargetBaseInfluence\x20=\x20texelFetch(\x20morphTexture,\x20ivec2(\x200,\x20gl_InstanceID\x20),\x200\x20).r;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09morphTargetInfluences[i]\x20=\x20\x20texelFetch(\x20morphTexture,\x20ivec2(\x20i\x20+\x201,\x20gl_InstanceID\x20),\x200\x20).r;\x0a\x09}\x0a#endif','morphcolor_vertex':'#if\x20defined(\x20USE_MORPHCOLORS\x20)\x0a\x09vColor\x20*=\x20morphTargetBaseInfluence;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09#if\x20defined(\x20USE_COLOR_ALPHA\x20)\x0a\x09\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20vColor\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x202\x20)\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09\x09#elif\x20defined(\x20USE_COLOR\x20)\x0a\x09\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20vColor\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x202\x20).rgb\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09\x09#endif\x0a\x09}\x0a#endif','morphnormal_vertex':'#ifdef\x20USE_MORPHNORMALS\x0a\x09objectNormal\x20*=\x20morphTargetBaseInfluence;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20objectNormal\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x201\x20).xyz\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09}\x0a#endif','morphtarget_pars_vertex':'#ifdef\x20USE_MORPHTARGETS\x0a\x09#ifndef\x20USE_INSTANCING_MORPH\x0a\x09\x09uniform\x20float\x20morphTargetBaseInfluence;\x0a\x09\x09uniform\x20float\x20morphTargetInfluences[\x20MORPHTARGETS_COUNT\x20];\x0a\x09#endif\x0a\x09uniform\x20sampler2DArray\x20morphTargetsTexture;\x0a\x09uniform\x20ivec2\x20morphTargetsTextureSize;\x0a\x09vec4\x20getMorph(\x20const\x20in\x20int\x20vertexIndex,\x20const\x20in\x20int\x20morphTargetIndex,\x20const\x20in\x20int\x20offset\x20)\x20{\x0a\x09\x09int\x20texelIndex\x20=\x20vertexIndex\x20*\x20MORPHTARGETS_TEXTURE_STRIDE\x20+\x20offset;\x0a\x09\x09int\x20y\x20=\x20texelIndex\x20/\x20morphTargetsTextureSize.x;\x0a\x09\x09int\x20x\x20=\x20texelIndex\x20-\x20y\x20*\x20morphTargetsTextureSize.x;\x0a\x09\x09ivec3\x20morphUV\x20=\x20ivec3(\x20x,\x20y,\x20morphTargetIndex\x20);\x0a\x09\x09return\x20texelFetch(\x20morphTargetsTexture,\x20morphUV,\x200\x20);\x0a\x09}\x0a#endif','morphtarget_vertex':d4(0x57c),'normal_fragment_begin':'float\x20faceDirection\x20=\x20gl_FrontFacing\x20?\x201.0\x20:\x20-\x201.0;\x0a#ifdef\x20FLAT_SHADED\x0a\x09vec3\x20fdx\x20=\x20dFdx(\x20vViewPosition\x20);\x0a\x09vec3\x20fdy\x20=\x20dFdy(\x20vViewPosition\x20);\x0a\x09vec3\x20normal\x20=\x20normalize(\x20cross(\x20fdx,\x20fdy\x20)\x20);\x0a#else\x0a\x09vec3\x20normal\x20=\x20normalize(\x20vNormal\x20);\x0a\x09#ifdef\x20DOUBLE_SIDED\x0a\x09\x09normal\x20*=\x20faceDirection;\x0a\x09#endif\x0a#endif\x0a#if\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x20||\x20defined(\x20USE_CLEARCOAT_NORMALMAP\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09mat3\x20tbn\x20=\x20mat3(\x20normalize(\x20vTangent\x20),\x20normalize(\x20vBitangent\x20),\x20normal\x20);\x0a\x09#else\x0a\x09\x09mat3\x20tbn\x20=\x20getTangentFrame(\x20-\x20vViewPosition,\x20normal,\x0a\x09\x09#if\x20defined(\x20USE_NORMALMAP\x20)\x0a\x09\x09\x09vNormalMapUv\x0a\x09\x09#elif\x20defined(\x20USE_CLEARCOAT_NORMALMAP\x20)\x0a\x09\x09\x09vClearcoatNormalMapUv\x0a\x09\x09#else\x0a\x09\x09\x09vUv\x0a\x09\x09#endif\x0a\x09\x09);\x0a\x09#endif\x0a\x09#if\x20defined(\x20DOUBLE_SIDED\x20)\x20&&\x20!\x20defined(\x20FLAT_SHADED\x20)\x0a\x09\x09tbn[0]\x20*=\x20faceDirection;\x0a\x09\x09tbn[1]\x20*=\x20faceDirection;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09mat3\x20tbn2\x20=\x20mat3(\x20normalize(\x20vTangent\x20),\x20normalize(\x20vBitangent\x20),\x20normal\x20);\x0a\x09#else\x0a\x09\x09mat3\x20tbn2\x20=\x20getTangentFrame(\x20-\x20vViewPosition,\x20normal,\x20vClearcoatNormalMapUv\x20);\x0a\x09#endif\x0a\x09#if\x20defined(\x20DOUBLE_SIDED\x20)\x20&&\x20!\x20defined(\x20FLAT_SHADED\x20)\x0a\x09\x09tbn2[0]\x20*=\x20faceDirection;\x0a\x09\x09tbn2[1]\x20*=\x20faceDirection;\x0a\x09#endif\x0a#endif\x0avec3\x20nonPerturbedNormal\x20=\x20normal;','normal_fragment_maps':'#ifdef\x20USE_NORMALMAP_OBJECTSPACE\x0a\x09normal\x20=\x20texture2D(\x20normalMap,\x20vNormalMapUv\x20).xyz\x20*\x202.0\x20-\x201.0;\x0a\x09#ifdef\x20FLIP_SIDED\x0a\x09\x09normal\x20=\x20-\x20normal;\x0a\x09#endif\x0a\x09#ifdef\x20DOUBLE_SIDED\x0a\x09\x09normal\x20=\x20normal\x20*\x20faceDirection;\x0a\x09#endif\x0a\x09normal\x20=\x20normalize(\x20normalMatrix\x20*\x20normal\x20);\x0a#elif\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09vec3\x20mapN\x20=\x20texture2D(\x20normalMap,\x20vNormalMapUv\x20).xyz\x20*\x202.0\x20-\x201.0;\x0a\x09#if\x20defined(\x20USE_PACKED_NORMALMAP\x20)\x0a\x09\x09mapN\x20=\x20vec3(\x20mapN.xy,\x20sqrt(\x20saturate(\x201.0\x20-\x20dot(\x20mapN.xy,\x20mapN.xy\x20)\x20)\x20)\x20);\x0a\x09#endif\x0a\x09mapN.xy\x20*=\x20normalScale;\x0a\x09normal\x20=\x20normalize(\x20tbn\x20*\x20mapN\x20);\x0a#elif\x20defined(\x20USE_BUMPMAP\x20)\x0a\x09normal\x20=\x20perturbNormalArb(\x20-\x20vViewPosition,\x20normal,\x20dHdxy_fwd(),\x20faceDirection\x20);\x0a#endif','normal_pars_fragment':'#ifndef\x20FLAT_SHADED\x0a\x09varying\x20vec3\x20vNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09varying\x20vec3\x20vTangent;\x0a\x09\x09varying\x20vec3\x20vBitangent;\x0a\x09#endif\x0a#endif','normal_pars_vertex':'#ifndef\x20FLAT_SHADED\x0a\x09varying\x20vec3\x20vNormal;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09varying\x20vec3\x20vTangent;\x0a\x09\x09varying\x20vec3\x20vBitangent;\x0a\x09#endif\x0a#endif','normal_vertex':'#ifndef\x20FLAT_SHADED\x0a\x09vNormal\x20=\x20normalize(\x20transformedNormal\x20);\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09vTangent\x20=\x20normalize(\x20transformedTangent\x20);\x0a\x09\x09vBitangent\x20=\x20normalize(\x20cross(\x20vNormal,\x20vTangent\x20)\x20*\x20tangent.w\x20);\x0a\x09#endif\x0a#endif','normalmap_pars_fragment':d4(0x56e),'clearcoat_normal_fragment_begin':'#ifdef\x20USE_CLEARCOAT\x0a\x09vec3\x20clearcoatNormal\x20=\x20nonPerturbedNormal;\x0a#endif','clearcoat_normal_fragment_maps':'#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09vec3\x20clearcoatMapN\x20=\x20texture2D(\x20clearcoatNormalMap,\x20vClearcoatNormalMapUv\x20).xyz\x20*\x202.0\x20-\x201.0;\x0a\x09clearcoatMapN.xy\x20*=\x20clearcoatNormalScale;\x0a\x09clearcoatNormal\x20=\x20normalize(\x20tbn2\x20*\x20clearcoatMapN\x20);\x0a#endif','clearcoat_pars_fragment':d4(0x244),'iridescence_pars_fragment':'#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09uniform\x20sampler2D\x20iridescenceMap;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09uniform\x20sampler2D\x20iridescenceThicknessMap;\x0a#endif','opaque_fragment':'#ifdef\x20OPAQUE\x0adiffuseColor.a\x20=\x201.0;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSION\x0adiffuseColor.a\x20*=\x20material.transmissionAlpha;\x0a#endif\x0agl_FragColor\x20=\x20vec4(\x20outgoingLight,\x20diffuseColor.a\x20);','packing':'vec3\x20packNormalToRGB(\x20const\x20in\x20vec3\x20normal\x20)\x20{\x0a\x09return\x20normalize(\x20normal\x20)\x20*\x200.5\x20+\x200.5;\x0a}\x0avec3\x20unpackRGBToNormal(\x20const\x20in\x20vec3\x20rgb\x20)\x20{\x0a\x09return\x202.0\x20*\x20rgb.xyz\x20-\x201.0;\x0a}\x0aconst\x20float\x20PackUpscale\x20=\x20256.\x20/\x20255.;const\x20float\x20UnpackDownscale\x20=\x20255.\x20/\x20256.;const\x20float\x20ShiftRight8\x20=\x201.\x20/\x20256.;\x0aconst\x20float\x20Inv255\x20=\x201.\x20/\x20255.;\x0aconst\x20vec4\x20PackFactors\x20=\x20vec4(\x201.0,\x20256.0,\x20256.0\x20*\x20256.0,\x20256.0\x20*\x20256.0\x20*\x20256.0\x20);\x0aconst\x20vec2\x20UnpackFactors2\x20=\x20vec2(\x20UnpackDownscale,\x201.0\x20/\x20PackFactors.g\x20);\x0aconst\x20vec3\x20UnpackFactors3\x20=\x20vec3(\x20UnpackDownscale\x20/\x20PackFactors.rg,\x201.0\x20/\x20PackFactors.b\x20);\x0aconst\x20vec4\x20UnpackFactors4\x20=\x20vec4(\x20UnpackDownscale\x20/\x20PackFactors.rgb,\x201.0\x20/\x20PackFactors.a\x20);\x0avec4\x20packDepthToRGBA(\x20const\x20in\x20float\x20v\x20)\x20{\x0a\x09if(\x20v\x20<=\x200.0\x20)\x0a\x09\x09return\x20vec4(\x200.,\x200.,\x200.,\x200.\x20);\x0a\x09if(\x20v\x20>=\x201.0\x20)\x0a\x09\x09return\x20vec4(\x201.,\x201.,\x201.,\x201.\x20);\x0a\x09float\x20vuf;\x0a\x09float\x20af\x20=\x20modf(\x20v\x20*\x20PackFactors.a,\x20vuf\x20);\x0a\x09float\x20bf\x20=\x20modf(\x20vuf\x20*\x20ShiftRight8,\x20vuf\x20);\x0a\x09float\x20gf\x20=\x20modf(\x20vuf\x20*\x20ShiftRight8,\x20vuf\x20);\x0a\x09return\x20vec4(\x20vuf\x20*\x20Inv255,\x20gf\x20*\x20PackUpscale,\x20bf\x20*\x20PackUpscale,\x20af\x20);\x0a}\x0avec3\x20packDepthToRGB(\x20const\x20in\x20float\x20v\x20)\x20{\x0a\x09if(\x20v\x20<=\x200.0\x20)\x0a\x09\x09return\x20vec3(\x200.,\x200.,\x200.\x20);\x0a\x09if(\x20v\x20>=\x201.0\x20)\x0a\x09\x09return\x20vec3(\x201.,\x201.,\x201.\x20);\x0a\x09float\x20vuf;\x0a\x09float\x20bf\x20=\x20modf(\x20v\x20*\x20PackFactors.b,\x20vuf\x20);\x0a\x09float\x20gf\x20=\x20modf(\x20vuf\x20*\x20ShiftRight8,\x20vuf\x20);\x0a\x09return\x20vec3(\x20vuf\x20*\x20Inv255,\x20gf\x20*\x20PackUpscale,\x20bf\x20);\x0a}\x0avec2\x20packDepthToRG(\x20const\x20in\x20float\x20v\x20)\x20{\x0a\x09if(\x20v\x20<=\x200.0\x20)\x0a\x09\x09return\x20vec2(\x200.,\x200.\x20);\x0a\x09if(\x20v\x20>=\x201.0\x20)\x0a\x09\x09return\x20vec2(\x201.,\x201.\x20);\x0a\x09float\x20vuf;\x0a\x09float\x20gf\x20=\x20modf(\x20v\x20*\x20256.,\x20vuf\x20);\x0a\x09return\x20vec2(\x20vuf\x20*\x20Inv255,\x20gf\x20);\x0a}\x0afloat\x20unpackRGBAToDepth(\x20const\x20in\x20vec4\x20v\x20)\x20{\x0a\x09return\x20dot(\x20v,\x20UnpackFactors4\x20);\x0a}\x0afloat\x20unpackRGBToDepth(\x20const\x20in\x20vec3\x20v\x20)\x20{\x0a\x09return\x20dot(\x20v,\x20UnpackFactors3\x20);\x0a}\x0afloat\x20unpackRGToDepth(\x20const\x20in\x20vec2\x20v\x20)\x20{\x0a\x09return\x20v.r\x20*\x20UnpackFactors2.r\x20+\x20v.g\x20*\x20UnpackFactors2.g;\x0a}\x0avec4\x20pack2HalfToRGBA(\x20const\x20in\x20vec2\x20v\x20)\x20{\x0a\x09vec4\x20r\x20=\x20vec4(\x20v.x,\x20fract(\x20v.x\x20*\x20255.0\x20),\x20v.y,\x20fract(\x20v.y\x20*\x20255.0\x20)\x20);\x0a\x09return\x20vec4(\x20r.x\x20-\x20r.y\x20/\x20255.0,\x20r.y,\x20r.z\x20-\x20r.w\x20/\x20255.0,\x20r.w\x20);\x0a}\x0avec2\x20unpackRGBATo2Half(\x20const\x20in\x20vec4\x20v\x20)\x20{\x0a\x09return\x20vec2(\x20v.x\x20+\x20(\x20v.y\x20/\x20255.0\x20),\x20v.z\x20+\x20(\x20v.w\x20/\x20255.0\x20)\x20);\x0a}\x0afloat\x20viewZToOrthographicDepth(\x20const\x20in\x20float\x20viewZ,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09return\x20(\x20viewZ\x20+\x20near\x20)\x20/\x20(\x20near\x20-\x20far\x20);\x0a}\x0afloat\x20orthographicDepthToViewZ(\x20const\x20in\x20float\x20depth,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x0a\x09\x09return\x20depth\x20*\x20(\x20far\x20-\x20near\x20)\x20-\x20far;\x0a\x09#else\x0a\x09\x09return\x20depth\x20*\x20(\x20near\x20-\x20far\x20)\x20-\x20near;\x0a\x09#endif\x0a}\x0afloat\x20viewZToPerspectiveDepth(\x20const\x20in\x20float\x20viewZ,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09return\x20(\x20(\x20near\x20+\x20viewZ\x20)\x20*\x20far\x20)\x20/\x20(\x20(\x20far\x20-\x20near\x20)\x20*\x20viewZ\x20);\x0a}\x0afloat\x20perspectiveDepthToViewZ(\x20const\x20in\x20float\x20depth,\x20const\x20in\x20float\x20near,\x20const\x20in\x20float\x20far\x20)\x20{\x0a\x09\x0a\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09return\x20(\x20near\x20*\x20far\x20)\x20/\x20(\x20(\x20near\x20-\x20far\x20)\x20*\x20depth\x20-\x20near\x20);\x0a\x09#else\x0a\x09\x09return\x20(\x20near\x20*\x20far\x20)\x20/\x20(\x20(\x20far\x20-\x20near\x20)\x20*\x20depth\x20-\x20far\x20);\x0a\x09#endif\x0a}','premultiplied_alpha_fragment':'#ifdef\x20PREMULTIPLIED_ALPHA\x0a\x09gl_FragColor.rgb\x20*=\x20gl_FragColor.a;\x0a#endif','project_vertex':'vec4\x20mvPosition\x20=\x20vec4(\x20transformed,\x201.0\x20);\x0a#ifdef\x20USE_BATCHING\x0a\x09mvPosition\x20=\x20batchingMatrix\x20*\x20mvPosition;\x0a#endif\x0a#ifdef\x20USE_INSTANCING\x0a\x09mvPosition\x20=\x20instanceMatrix\x20*\x20mvPosition;\x0a#endif\x0amvPosition\x20=\x20modelViewMatrix\x20*\x20mvPosition;\x0agl_Position\x20=\x20projectionMatrix\x20*\x20mvPosition;','dithering_fragment':d4(0x3c8),'dithering_pars_fragment':'#ifdef\x20DITHERING\x0a\x09vec3\x20dithering(\x20vec3\x20color\x20)\x20{\x0a\x09\x09float\x20grid_position\x20=\x20rand(\x20gl_FragCoord.xy\x20);\x0a\x09\x09vec3\x20dither_shift_RGB\x20=\x20vec3(\x200.25\x20/\x20255.0,\x20-0.25\x20/\x20255.0,\x200.25\x20/\x20255.0\x20);\x0a\x09\x09dither_shift_RGB\x20=\x20mix(\x202.0\x20*\x20dither_shift_RGB,\x20-2.0\x20*\x20dither_shift_RGB,\x20grid_position\x20);\x0a\x09\x09return\x20color\x20+\x20dither_shift_RGB;\x0a\x09}\x0a#endif','roughnessmap_fragment':'float\x20roughnessFactor\x20=\x20roughness;\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09vec4\x20texelRoughness\x20=\x20texture2D(\x20roughnessMap,\x20vRoughnessMapUv\x20);\x0a\x09roughnessFactor\x20*=\x20texelRoughness.g;\x0a#endif','roughnessmap_pars_fragment':'#ifdef\x20USE_ROUGHNESSMAP\x0a\x09uniform\x20sampler2D\x20roughnessMap;\x0a#endif','shadowmap_pars_fragment':'#if\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09varying\x20vec4\x20vSpotLightCoord[\x20NUM_SPOT_LIGHT_COORDS\x20];\x0a#endif\x0a#if\x20NUM_SPOT_LIGHT_MAPS\x20>\x200\x0a\x09uniform\x20sampler2D\x20spotLightMap[\x20NUM_SPOT_LIGHT_MAPS\x20];\x0a#endif\x0a#ifdef\x20USE_SHADOWMAP\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09\x09uniform\x20sampler2DShadow\x20directionalShadowMap[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09#else\x0a\x09\x09\x09uniform\x20sampler2D\x20directionalShadowMap[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09#endif\x0a\x09\x09varying\x20vec4\x20vDirectionalShadowCoord[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20DirectionalLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20DirectionalLightShadow\x20directionalLightShadows[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09\x09uniform\x20sampler2DShadow\x20spotShadowMap[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09\x09#else\x0a\x09\x09\x09uniform\x20sampler2D\x20spotShadowMap[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09\x09#endif\x0a\x09\x09struct\x20SpotLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20SpotLightShadow\x20spotLightShadows[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09\x09uniform\x20samplerCubeShadow\x20pointShadowMap[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09#elif\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x0a\x09\x09\x09uniform\x20samplerCube\x20pointShadowMap[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09#endif\x0a\x09\x09varying\x20vec4\x20vPointShadowCoord[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20PointLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09\x09float\x20shadowCameraNear;\x0a\x09\x09\x09float\x20shadowCameraFar;\x0a\x09\x09};\x0a\x09\x09uniform\x20PointLightShadow\x20pointLightShadows[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09float\x20interleavedGradientNoise(\x20vec2\x20position\x20)\x20{\x0a\x09\x09\x09return\x20fract(\x2052.9829189\x20*\x20fract(\x20dot(\x20position,\x20vec2(\x200.06711056,\x200.00583715\x20)\x20)\x20)\x20);\x0a\x09\x09}\x0a\x09\x09vec2\x20vogelDiskSample(\x20int\x20sampleIndex,\x20int\x20samplesCount,\x20float\x20phi\x20)\x20{\x0a\x09\x09\x09const\x20float\x20goldenAngle\x20=\x202.399963229728653;\x0a\x09\x09\x09float\x20r\x20=\x20sqrt(\x20(\x20float(\x20sampleIndex\x20)\x20+\x200.5\x20)\x20/\x20float(\x20samplesCount\x20)\x20);\x0a\x09\x09\x09float\x20theta\x20=\x20float(\x20sampleIndex\x20)\x20*\x20goldenAngle\x20+\x20phi;\x0a\x09\x09\x09return\x20vec2(\x20cos(\x20theta\x20),\x20sin(\x20theta\x20)\x20)\x20*\x20r;\x0a\x09\x09}\x0a\x09#endif\x0a\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09\x09float\x20getShadow(\x20sampler2DShadow\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord\x20)\x20{\x0a\x09\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09\x09shadowCoord.xyz\x20/=\x20shadowCoord.w;\x0a\x09\x09\x09shadowCoord.z\x20+=\x20shadowBias;\x0a\x09\x09\x09bool\x20inFrustum\x20=\x20shadowCoord.x\x20>=\x200.0\x20&&\x20shadowCoord.x\x20<=\x201.0\x20&&\x20shadowCoord.y\x20>=\x200.0\x20&&\x20shadowCoord.y\x20<=\x201.0;\x0a\x09\x09\x09bool\x20frustumTest\x20=\x20inFrustum\x20&&\x20shadowCoord.z\x20<=\x201.0;\x0a\x09\x09\x09if\x20(\x20frustumTest\x20)\x20{\x0a\x09\x09\x09\x09vec2\x20texelSize\x20=\x20vec2(\x201.0\x20)\x20/\x20shadowMapSize;\x0a\x09\x09\x09\x09float\x20radius\x20=\x20shadowRadius\x20*\x20texelSize.x;\x0a\x09\x09\x09\x09float\x20phi\x20=\x20interleavedGradientNoise(\x20gl_FragCoord.xy\x20)\x20*\x20PI2;\x0a\x09\x09\x09\x09shadow\x20=\x20(\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x200,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x201,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x202,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x203,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x20+\x0a\x09\x09\x09\x09\x09texture(\x20shadowMap,\x20vec3(\x20shadowCoord.xy\x20+\x20vogelDiskSample(\x204,\x205,\x20phi\x20)\x20*\x20radius,\x20shadowCoord.z\x20)\x20)\x0a\x09\x09\x09\x09)\x20*\x200.2;\x0a\x09\x09\x09}\x0a\x09\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09\x09}\x0a\x09#elif\x20defined(\x20SHADOWMAP_TYPE_VSM\x20)\x0a\x09\x09float\x20getShadow(\x20sampler2D\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord\x20)\x20{\x0a\x09\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09\x09shadowCoord.xyz\x20/=\x20shadowCoord.w;\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09shadowCoord.z\x20-=\x20shadowBias;\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09shadowCoord.z\x20+=\x20shadowBias;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09bool\x20inFrustum\x20=\x20shadowCoord.x\x20>=\x200.0\x20&&\x20shadowCoord.x\x20<=\x201.0\x20&&\x20shadowCoord.y\x20>=\x200.0\x20&&\x20shadowCoord.y\x20<=\x201.0;\x0a\x09\x09\x09bool\x20frustumTest\x20=\x20inFrustum\x20&&\x20shadowCoord.z\x20<=\x201.0;\x0a\x09\x09\x09if\x20(\x20frustumTest\x20)\x20{\x0a\x09\x09\x09\x09vec2\x20distribution\x20=\x20texture2D(\x20shadowMap,\x20shadowCoord.xy\x20).rg;\x0a\x09\x09\x09\x09float\x20mean\x20=\x20distribution.x;\x0a\x09\x09\x09\x09float\x20variance\x20=\x20distribution.y\x20*\x20distribution.y;\x0a\x09\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09\x09float\x20hard_shadow\x20=\x20step(\x20mean,\x20shadowCoord.z\x20);\x0a\x09\x09\x09\x09#else\x0a\x09\x09\x09\x09\x09float\x20hard_shadow\x20=\x20step(\x20shadowCoord.z,\x20mean\x20);\x0a\x09\x09\x09\x09#endif\x0a\x09\x09\x09\x09\x0a\x09\x09\x09\x09if\x20(\x20hard_shadow\x20==\x201.0\x20)\x20{\x0a\x09\x09\x09\x09\x09shadow\x20=\x201.0;\x0a\x09\x09\x09\x09}\x20else\x20{\x0a\x09\x09\x09\x09\x09variance\x20=\x20max(\x20variance,\x200.0000001\x20);\x0a\x09\x09\x09\x09\x09float\x20d\x20=\x20shadowCoord.z\x20-\x20mean;\x0a\x09\x09\x09\x09\x09float\x20p_max\x20=\x20variance\x20/\x20(\x20variance\x20+\x20d\x20*\x20d\x20);\x0a\x09\x09\x09\x09\x09p_max\x20=\x20clamp(\x20(\x20p_max\x20-\x200.3\x20)\x20/\x200.65,\x200.0,\x201.0\x20);\x0a\x09\x09\x09\x09\x09shadow\x20=\x20max(\x20hard_shadow,\x20p_max\x20);\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09}\x0a\x09\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09\x09}\x0a\x09#else\x0a\x09\x09float\x20getShadow(\x20sampler2D\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord\x20)\x20{\x0a\x09\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09\x09shadowCoord.xyz\x20/=\x20shadowCoord.w;\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09shadowCoord.z\x20-=\x20shadowBias;\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09shadowCoord.z\x20+=\x20shadowBias;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09bool\x20inFrustum\x20=\x20shadowCoord.x\x20>=\x200.0\x20&&\x20shadowCoord.x\x20<=\x201.0\x20&&\x20shadowCoord.y\x20>=\x200.0\x20&&\x20shadowCoord.y\x20<=\x201.0;\x0a\x09\x09\x09bool\x20frustumTest\x20=\x20inFrustum\x20&&\x20shadowCoord.z\x20<=\x201.0;\x0a\x09\x09\x09if\x20(\x20frustumTest\x20)\x20{\x0a\x09\x09\x09\x09float\x20depth\x20=\x20texture2D(\x20shadowMap,\x20shadowCoord.xy\x20).r;\x0a\x09\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09\x09shadow\x20=\x20step(\x20depth,\x20shadowCoord.z\x20);\x0a\x09\x09\x09\x09#else\x0a\x09\x09\x09\x09\x09shadow\x20=\x20step(\x20shadowCoord.z,\x20depth\x20);\x0a\x09\x09\x09\x09#endif\x0a\x09\x09\x09}\x0a\x09\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09\x09}\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09#if\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x0a\x09float\x20getPointShadow(\x20samplerCubeShadow\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord,\x20float\x20shadowCameraNear,\x20float\x20shadowCameraFar\x20)\x20{\x0a\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09vec3\x20lightToPosition\x20=\x20shadowCoord.xyz;\x0a\x09\x09vec3\x20bd3D\x20=\x20normalize(\x20lightToPosition\x20);\x0a\x09\x09vec3\x20absVec\x20=\x20abs(\x20lightToPosition\x20);\x0a\x09\x09float\x20viewSpaceZ\x20=\x20max(\x20max(\x20absVec.x,\x20absVec.y\x20),\x20absVec.z\x20);\x0a\x09\x09if\x20(\x20viewSpaceZ\x20-\x20shadowCameraFar\x20<=\x200.0\x20&&\x20viewSpaceZ\x20-\x20shadowCameraNear\x20>=\x200.0\x20)\x20{\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09float\x20dp\x20=\x20(\x20shadowCameraNear\x20*\x20(\x20shadowCameraFar\x20-\x20viewSpaceZ\x20)\x20)\x20/\x20(\x20viewSpaceZ\x20*\x20(\x20shadowCameraFar\x20-\x20shadowCameraNear\x20)\x20);\x0a\x09\x09\x09\x09dp\x20-=\x20shadowBias;\x0a\x09\x09\x09#else\x0a\x09\x09\x09\x09float\x20dp\x20=\x20(\x20shadowCameraFar\x20*\x20(\x20viewSpaceZ\x20-\x20shadowCameraNear\x20)\x20)\x20/\x20(\x20viewSpaceZ\x20*\x20(\x20shadowCameraFar\x20-\x20shadowCameraNear\x20)\x20);\x0a\x09\x09\x09\x09dp\x20+=\x20shadowBias;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09float\x20texelSize\x20=\x20shadowRadius\x20/\x20shadowMapSize.x;\x0a\x09\x09\x09vec3\x20absDir\x20=\x20abs(\x20bd3D\x20);\x0a\x09\x09\x09vec3\x20tangent\x20=\x20absDir.x\x20>\x20absDir.z\x20?\x20vec3(\x200.0,\x201.0,\x200.0\x20)\x20:\x20vec3(\x201.0,\x200.0,\x200.0\x20);\x0a\x09\x09\x09tangent\x20=\x20normalize(\x20cross(\x20bd3D,\x20tangent\x20)\x20);\x0a\x09\x09\x09vec3\x20bitangent\x20=\x20cross(\x20bd3D,\x20tangent\x20);\x0a\x09\x09\x09float\x20phi\x20=\x20interleavedGradientNoise(\x20gl_FragCoord.xy\x20)\x20*\x20PI2;\x0a\x09\x09\x09vec2\x20sample0\x20=\x20vogelDiskSample(\x200,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample1\x20=\x20vogelDiskSample(\x201,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample2\x20=\x20vogelDiskSample(\x202,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample3\x20=\x20vogelDiskSample(\x203,\x205,\x20phi\x20);\x0a\x09\x09\x09vec2\x20sample4\x20=\x20vogelDiskSample(\x204,\x205,\x20phi\x20);\x0a\x09\x09\x09shadow\x20=\x20(\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample0.x\x20+\x20bitangent\x20*\x20sample0.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample1.x\x20+\x20bitangent\x20*\x20sample1.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample2.x\x20+\x20bitangent\x20*\x20sample2.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample3.x\x20+\x20bitangent\x20*\x20sample3.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x20+\x0a\x09\x09\x09\x09texture(\x20shadowMap,\x20vec4(\x20bd3D\x20+\x20(\x20tangent\x20*\x20sample4.x\x20+\x20bitangent\x20*\x20sample4.y\x20)\x20*\x20texelSize,\x20dp\x20)\x20)\x0a\x09\x09\x09)\x20*\x200.2;\x0a\x09\x09}\x0a\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09}\x0a\x09#elif\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x0a\x09float\x20getPointShadow(\x20samplerCube\x20shadowMap,\x20vec2\x20shadowMapSize,\x20float\x20shadowIntensity,\x20float\x20shadowBias,\x20float\x20shadowRadius,\x20vec4\x20shadowCoord,\x20float\x20shadowCameraNear,\x20float\x20shadowCameraFar\x20)\x20{\x0a\x09\x09float\x20shadow\x20=\x201.0;\x0a\x09\x09vec3\x20lightToPosition\x20=\x20shadowCoord.xyz;\x0a\x09\x09vec3\x20absVec\x20=\x20abs(\x20lightToPosition\x20);\x0a\x09\x09float\x20viewSpaceZ\x20=\x20max(\x20max(\x20absVec.x,\x20absVec.y\x20),\x20absVec.z\x20);\x0a\x09\x09if\x20(\x20viewSpaceZ\x20-\x20shadowCameraFar\x20<=\x200.0\x20&&\x20viewSpaceZ\x20-\x20shadowCameraNear\x20>=\x200.0\x20)\x20{\x0a\x09\x09\x09float\x20dp\x20=\x20(\x20shadowCameraFar\x20*\x20(\x20viewSpaceZ\x20-\x20shadowCameraNear\x20)\x20)\x20/\x20(\x20viewSpaceZ\x20*\x20(\x20shadowCameraFar\x20-\x20shadowCameraNear\x20)\x20);\x0a\x09\x09\x09dp\x20+=\x20shadowBias;\x0a\x09\x09\x09vec3\x20bd3D\x20=\x20normalize(\x20lightToPosition\x20);\x0a\x09\x09\x09float\x20depth\x20=\x20textureCube(\x20shadowMap,\x20bd3D\x20).r;\x0a\x09\x09\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09\x09\x09depth\x20=\x201.0\x20-\x20depth;\x0a\x09\x09\x09#endif\x0a\x09\x09\x09shadow\x20=\x20step(\x20dp,\x20depth\x20);\x0a\x09\x09}\x0a\x09\x09return\x20mix(\x201.0,\x20shadow,\x20shadowIntensity\x20);\x0a\x09}\x0a\x09#endif\x0a\x09#endif\x0a#endif','shadowmap_pars_vertex':'#if\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09uniform\x20mat4\x20spotLightMatrix[\x20NUM_SPOT_LIGHT_COORDS\x20];\x0a\x09varying\x20vec4\x20vSpotLightCoord[\x20NUM_SPOT_LIGHT_COORDS\x20];\x0a#endif\x0a#ifdef\x20USE_SHADOWMAP\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09uniform\x20mat4\x20directionalShadowMatrix[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09varying\x20vec4\x20vDirectionalShadowCoord[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20DirectionalLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20DirectionalLightShadow\x20directionalLightShadows[\x20NUM_DIR_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09struct\x20SpotLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09};\x0a\x09\x09uniform\x20SpotLightShadow\x20spotLightShadows[\x20NUM_SPOT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09uniform\x20mat4\x20pointShadowMatrix[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09varying\x20vec4\x20vPointShadowCoord[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09\x09struct\x20PointLightShadow\x20{\x0a\x09\x09\x09float\x20shadowIntensity;\x0a\x09\x09\x09float\x20shadowBias;\x0a\x09\x09\x09float\x20shadowNormalBias;\x0a\x09\x09\x09float\x20shadowRadius;\x0a\x09\x09\x09vec2\x20shadowMapSize;\x0a\x09\x09\x09float\x20shadowCameraNear;\x0a\x09\x09\x09float\x20shadowCameraFar;\x0a\x09\x09};\x0a\x09\x09uniform\x20PointLightShadow\x20pointLightShadows[\x20NUM_POINT_LIGHT_SHADOWS\x20];\x0a\x09#endif\x0a#endif','shadowmap_vertex':'#if\x20(\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20(\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x20||\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x20)\x20)\x20||\x20(\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x20)\x0a\x09#ifdef\x20HAS_NORMAL\x0a\x09\x09vec3\x20shadowWorldNormal\x20=\x20inverseTransformDirection(\x20transformedNormal,\x20viewMatrix\x20);\x0a\x09#else\x0a\x09\x09vec3\x20shadowWorldNormal\x20=\x20vec3(\x200.0\x20);\x0a\x09#endif\x0a\x09vec4\x20shadowWorldPosition;\x0a#endif\x0a#if\x20defined(\x20USE_SHADOWMAP\x20)\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_DIR_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09shadowWorldPosition\x20=\x20worldPosition\x20+\x20vec4(\x20shadowWorldNormal\x20*\x20directionalLightShadows[\x20i\x20].shadowNormalBias,\x200\x20);\x0a\x09\x09\x09vDirectionalShadowCoord[\x20i\x20]\x20=\x20directionalShadowMatrix[\x20i\x20]\x20*\x20shadowWorldPosition;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_POINT_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09shadowWorldPosition\x20=\x20worldPosition\x20+\x20vec4(\x20shadowWorldNormal\x20*\x20pointLightShadows[\x20i\x20].shadowNormalBias,\x200\x20);\x0a\x09\x09\x09vPointShadowCoord[\x20i\x20]\x20=\x20pointShadowMatrix[\x20i\x20]\x20*\x20shadowWorldPosition;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a#endif\x0a#if\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_SPOT_LIGHT_COORDS;\x20i\x20++\x20)\x20{\x0a\x09\x09shadowWorldPosition\x20=\x20worldPosition;\x0a\x09\x09#if\x20(\x20defined(\x20USE_SHADOWMAP\x20)\x20&&\x20UNROLLED_LOOP_INDEX\x20<\x20NUM_SPOT_LIGHT_SHADOWS\x20)\x0a\x09\x09\x09shadowWorldPosition.xyz\x20+=\x20shadowWorldNormal\x20*\x20spotLightShadows[\x20i\x20].shadowNormalBias;\x0a\x09\x09#endif\x0a\x09\x09vSpotLightCoord[\x20i\x20]\x20=\x20spotLightMatrix[\x20i\x20]\x20*\x20shadowWorldPosition;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a#endif','shadowmask_pars_fragment':'float\x20getShadowMask()\x20{\x0a\x09float\x20shadow\x20=\x201.0;\x0a\x09#ifdef\x20USE_SHADOWMAP\x0a\x09#if\x20NUM_DIR_LIGHT_SHADOWS\x20>\x200\x0a\x09DirectionalLightShadow\x20directionalLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_DIR_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09directionalLight\x20=\x20directionalLightShadows[\x20i\x20];\x0a\x09\x09shadow\x20*=\x20receiveShadow\x20?\x20getShadow(\x20directionalShadowMap[\x20i\x20],\x20directionalLight.shadowMapSize,\x20directionalLight.shadowIntensity,\x20directionalLight.shadowBias,\x20directionalLight.shadowRadius,\x20vDirectionalShadowCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#if\x20NUM_SPOT_LIGHT_SHADOWS\x20>\x200\x0a\x09SpotLightShadow\x20spotLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_SPOT_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09spotLight\x20=\x20spotLightShadows[\x20i\x20];\x0a\x09\x09shadow\x20*=\x20receiveShadow\x20?\x20getShadow(\x20spotShadowMap[\x20i\x20],\x20spotLight.shadowMapSize,\x20spotLight.shadowIntensity,\x20spotLight.shadowBias,\x20spotLight.shadowRadius,\x20vSpotLightCoord[\x20i\x20]\x20)\x20:\x201.0;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#if\x20NUM_POINT_LIGHT_SHADOWS\x20>\x200\x20&&\x20(\x20defined(\x20SHADOWMAP_TYPE_PCF\x20)\x20||\x20defined(\x20SHADOWMAP_TYPE_BASIC\x20)\x20)\x0a\x09PointLightShadow\x20pointLight;\x0a\x09#pragma\x20unroll_loop_start\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20NUM_POINT_LIGHT_SHADOWS;\x20i\x20++\x20)\x20{\x0a\x09\x09pointLight\x20=\x20pointLightShadows[\x20i\x20];\x0a\x09\x09shadow\x20*=\x20receiveShadow\x20?\x20getPointShadow(\x20pointShadowMap[\x20i\x20],\x20pointLight.shadowMapSize,\x20pointLight.shadowIntensity,\x20pointLight.shadowBias,\x20pointLight.shadowRadius,\x20vPointShadowCoord[\x20i\x20],\x20pointLight.shadowCameraNear,\x20pointLight.shadowCameraFar\x20)\x20:\x201.0;\x0a\x09}\x0a\x09#pragma\x20unroll_loop_end\x0a\x09#endif\x0a\x09#endif\x0a\x09return\x20shadow;\x0a}','skinbase_vertex':'#ifdef\x20USE_SKINNING\x0a\x09mat4\x20boneMatX\x20=\x20getBoneMatrix(\x20skinIndex.x\x20);\x0a\x09mat4\x20boneMatY\x20=\x20getBoneMatrix(\x20skinIndex.y\x20);\x0a\x09mat4\x20boneMatZ\x20=\x20getBoneMatrix(\x20skinIndex.z\x20);\x0a\x09mat4\x20boneMatW\x20=\x20getBoneMatrix(\x20skinIndex.w\x20);\x0a#endif','skinning_pars_vertex':'#ifdef\x20USE_SKINNING\x0a\x09uniform\x20mat4\x20bindMatrix;\x0a\x09uniform\x20mat4\x20bindMatrixInverse;\x0a\x09uniform\x20highp\x20sampler2D\x20boneTexture;\x0a\x09mat4\x20getBoneMatrix(\x20const\x20in\x20float\x20i\x20)\x20{\x0a\x09\x09int\x20size\x20=\x20textureSize(\x20boneTexture,\x200\x20).x;\x0a\x09\x09int\x20j\x20=\x20int(\x20i\x20)\x20*\x204;\x0a\x09\x09int\x20x\x20=\x20j\x20%\x20size;\x0a\x09\x09int\x20y\x20=\x20j\x20/\x20size;\x0a\x09\x09vec4\x20v1\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v2\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x\x20+\x201,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v3\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x\x20+\x202,\x20y\x20),\x200\x20);\x0a\x09\x09vec4\x20v4\x20=\x20texelFetch(\x20boneTexture,\x20ivec2(\x20x\x20+\x203,\x20y\x20),\x200\x20);\x0a\x09\x09return\x20mat4(\x20v1,\x20v2,\x20v3,\x20v4\x20);\x0a\x09}\x0a#endif','skinning_vertex':'#ifdef\x20USE_SKINNING\x0a\x09vec4\x20skinVertex\x20=\x20bindMatrix\x20*\x20vec4(\x20transformed,\x201.0\x20);\x0a\x09vec4\x20skinned\x20=\x20vec4(\x200.0\x20);\x0a\x09skinned\x20+=\x20boneMatX\x20*\x20skinVertex\x20*\x20skinWeight.x;\x0a\x09skinned\x20+=\x20boneMatY\x20*\x20skinVertex\x20*\x20skinWeight.y;\x0a\x09skinned\x20+=\x20boneMatZ\x20*\x20skinVertex\x20*\x20skinWeight.z;\x0a\x09skinned\x20+=\x20boneMatW\x20*\x20skinVertex\x20*\x20skinWeight.w;\x0a\x09transformed\x20=\x20(\x20bindMatrixInverse\x20*\x20skinned\x20).xyz;\x0a#endif','skinnormal_vertex':d4(0x340),'specularmap_fragment':d4(0x4f0),'specularmap_pars_fragment':'#ifdef\x20USE_SPECULARMAP\x0a\x09uniform\x20sampler2D\x20specularMap;\x0a#endif','tonemapping_fragment':'#if\x20defined(\x20TONE_MAPPING\x20)\x0a\x09gl_FragColor.rgb\x20=\x20toneMapping(\x20gl_FragColor.rgb\x20);\x0a#endif','tonemapping_pars_fragment':'#ifndef\x20saturate\x0a#define\x20saturate(\x20a\x20)\x20clamp(\x20a,\x200.0,\x201.0\x20)\x0a#endif\x0auniform\x20float\x20toneMappingExposure;\x0avec3\x20LinearToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09return\x20saturate(\x20toneMappingExposure\x20*\x20color\x20);\x0a}\x0avec3\x20ReinhardToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09return\x20saturate(\x20color\x20/\x20(\x20vec3(\x201.0\x20)\x20+\x20color\x20)\x20);\x0a}\x0avec3\x20CineonToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09color\x20=\x20max(\x20vec3(\x200.0\x20),\x20color\x20-\x200.004\x20);\x0a\x09return\x20pow(\x20(\x20color\x20*\x20(\x206.2\x20*\x20color\x20+\x200.5\x20)\x20)\x20/\x20(\x20color\x20*\x20(\x206.2\x20*\x20color\x20+\x201.7\x20)\x20+\x200.06\x20),\x20vec3(\x202.2\x20)\x20);\x0a}\x0avec3\x20RRTAndODTFit(\x20vec3\x20v\x20)\x20{\x0a\x09vec3\x20a\x20=\x20v\x20*\x20(\x20v\x20+\x200.0245786\x20)\x20-\x200.000090537;\x0a\x09vec3\x20b\x20=\x20v\x20*\x20(\x200.983729\x20*\x20v\x20+\x200.4329510\x20)\x20+\x200.238081;\x0a\x09return\x20a\x20/\x20b;\x0a}\x0avec3\x20ACESFilmicToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09const\x20mat3\x20ACESInputMat\x20=\x20mat3(\x0a\x09\x09vec3(\x200.59719,\x200.07600,\x200.02840\x20),\x09\x09vec3(\x200.35458,\x200.90834,\x200.13383\x20),\x0a\x09\x09vec3(\x200.04823,\x200.01566,\x200.83777\x20)\x0a\x09);\x0a\x09const\x20mat3\x20ACESOutputMat\x20=\x20mat3(\x0a\x09\x09vec3(\x20\x201.60475,\x20-0.10208,\x20-0.00327\x20),\x09\x09vec3(\x20-0.53108,\x20\x201.10813,\x20-0.07276\x20),\x0a\x09\x09vec3(\x20-0.07367,\x20-0.00605,\x20\x201.07602\x20)\x0a\x09);\x0a\x09color\x20*=\x20toneMappingExposure\x20/\x200.6;\x0a\x09color\x20=\x20ACESInputMat\x20*\x20color;\x0a\x09color\x20=\x20RRTAndODTFit(\x20color\x20);\x0a\x09color\x20=\x20ACESOutputMat\x20*\x20color;\x0a\x09return\x20saturate(\x20color\x20);\x0a}\x0aconst\x20mat3\x20LINEAR_REC2020_TO_LINEAR_SRGB\x20=\x20mat3(\x0a\x09vec3(\x201.6605,\x20-\x200.1246,\x20-\x200.0182\x20),\x0a\x09vec3(\x20-\x200.5876,\x201.1329,\x20-\x200.1006\x20),\x0a\x09vec3(\x20-\x200.0728,\x20-\x200.0083,\x201.1187\x20)\x0a);\x0aconst\x20mat3\x20LINEAR_SRGB_TO_LINEAR_REC2020\x20=\x20mat3(\x0a\x09vec3(\x200.6274,\x200.0691,\x200.0164\x20),\x0a\x09vec3(\x200.3293,\x200.9195,\x200.0880\x20),\x0a\x09vec3(\x200.0433,\x200.0113,\x200.8956\x20)\x0a);\x0avec3\x20agxDefaultContrastApprox(\x20vec3\x20x\x20)\x20{\x0a\x09vec3\x20x2\x20=\x20x\x20*\x20x;\x0a\x09vec3\x20x4\x20=\x20x2\x20*\x20x2;\x0a\x09return\x20+\x2015.5\x20*\x20x4\x20*\x20x2\x0a\x09\x09-\x2040.14\x20*\x20x4\x20*\x20x\x0a\x09\x09+\x2031.96\x20*\x20x4\x0a\x09\x09-\x206.868\x20*\x20x2\x20*\x20x\x0a\x09\x09+\x200.4298\x20*\x20x2\x0a\x09\x09+\x200.1191\x20*\x20x\x0a\x09\x09-\x200.00232;\x0a}\x0avec3\x20AgXToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09const\x20mat3\x20AgXInsetMatrix\x20=\x20mat3(\x0a\x09\x09vec3(\x200.856627153315983,\x200.137318972929847,\x200.11189821299995\x20),\x0a\x09\x09vec3(\x200.0951212405381588,\x200.761241990602591,\x200.0767994186031903\x20),\x0a\x09\x09vec3(\x200.0482516061458583,\x200.101439036467562,\x200.811302368396859\x20)\x0a\x09);\x0a\x09const\x20mat3\x20AgXOutsetMatrix\x20=\x20mat3(\x0a\x09\x09vec3(\x201.1271005818144368,\x20-\x200.1413297634984383,\x20-\x200.14132976349843826\x20),\x0a\x09\x09vec3(\x20-\x200.11060664309660323,\x201.157823702216272,\x20-\x200.11060664309660294\x20),\x0a\x09\x09vec3(\x20-\x200.016493938717834573,\x20-\x200.016493938717834257,\x201.2519364065950405\x20)\x0a\x09);\x0a\x09const\x20float\x20AgxMinEv\x20=\x20-\x2012.47393;\x09const\x20float\x20AgxMaxEv\x20=\x204.026069;\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09color\x20=\x20LINEAR_SRGB_TO_LINEAR_REC2020\x20*\x20color;\x0a\x09color\x20=\x20AgXInsetMatrix\x20*\x20color;\x0a\x09color\x20=\x20max(\x20color,\x201e-10\x20);\x09color\x20=\x20log2(\x20color\x20);\x0a\x09color\x20=\x20(\x20color\x20-\x20AgxMinEv\x20)\x20/\x20(\x20AgxMaxEv\x20-\x20AgxMinEv\x20);\x0a\x09color\x20=\x20clamp(\x20color,\x200.0,\x201.0\x20);\x0a\x09color\x20=\x20agxDefaultContrastApprox(\x20color\x20);\x0a\x09color\x20=\x20AgXOutsetMatrix\x20*\x20color;\x0a\x09color\x20=\x20pow(\x20max(\x20vec3(\x200.0\x20),\x20color\x20),\x20vec3(\x202.2\x20)\x20);\x0a\x09color\x20=\x20LINEAR_REC2020_TO_LINEAR_SRGB\x20*\x20color;\x0a\x09color\x20=\x20clamp(\x20color,\x200.0,\x201.0\x20);\x0a\x09return\x20color;\x0a}\x0avec3\x20NeutralToneMapping(\x20vec3\x20color\x20)\x20{\x0a\x09const\x20float\x20StartCompression\x20=\x200.8\x20-\x200.04;\x0a\x09const\x20float\x20Desaturation\x20=\x200.15;\x0a\x09color\x20*=\x20toneMappingExposure;\x0a\x09float\x20x\x20=\x20min(\x20color.r,\x20min(\x20color.g,\x20color.b\x20)\x20);\x0a\x09float\x20offset\x20=\x20x\x20<\x200.08\x20?\x20x\x20-\x206.25\x20*\x20x\x20*\x20x\x20:\x200.04;\x0a\x09color\x20-=\x20offset;\x0a\x09float\x20peak\x20=\x20max(\x20color.r,\x20max(\x20color.g,\x20color.b\x20)\x20);\x0a\x09if\x20(\x20peak\x20<\x20StartCompression\x20)\x20return\x20color;\x0a\x09float\x20d\x20=\x201.\x20-\x20StartCompression;\x0a\x09float\x20newPeak\x20=\x201.\x20-\x20d\x20*\x20d\x20/\x20(\x20peak\x20+\x20d\x20-\x20StartCompression\x20);\x0a\x09color\x20*=\x20newPeak\x20/\x20peak;\x0a\x09float\x20g\x20=\x201.\x20-\x201.\x20/\x20(\x20Desaturation\x20*\x20(\x20peak\x20-\x20newPeak\x20)\x20+\x201.\x20);\x0a\x09return\x20mix(\x20color,\x20vec3(\x20newPeak\x20),\x20g\x20);\x0a}\x0avec3\x20CustomToneMapping(\x20vec3\x20color\x20)\x20{\x20return\x20color;\x20}','transmission_fragment':'#ifdef\x20USE_TRANSMISSION\x0a\x09material.transmission\x20=\x20transmission;\x0a\x09material.transmissionAlpha\x20=\x201.0;\x0a\x09material.thickness\x20=\x20thickness;\x0a\x09material.attenuationDistance\x20=\x20attenuationDistance;\x0a\x09material.attenuationColor\x20=\x20attenuationColor;\x0a\x09#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09\x09material.transmission\x20*=\x20texture2D(\x20transmissionMap,\x20vTransmissionMapUv\x20).r;\x0a\x09#endif\x0a\x09#ifdef\x20USE_THICKNESSMAP\x0a\x09\x09material.thickness\x20*=\x20texture2D(\x20thicknessMap,\x20vThicknessMapUv\x20).g;\x0a\x09#endif\x0a\x09vec3\x20pos\x20=\x20vWorldPosition;\x0a\x09vec3\x20v\x20=\x20normalize(\x20cameraPosition\x20-\x20pos\x20);\x0a\x09vec3\x20n\x20=\x20inverseTransformDirection(\x20normal,\x20viewMatrix\x20);\x0a\x09vec4\x20transmitted\x20=\x20getIBLVolumeRefraction(\x0a\x09\x09n,\x20v,\x20material.roughness,\x20material.diffuseContribution,\x20material.specularColorBlended,\x20material.specularF90,\x0a\x09\x09pos,\x20modelMatrix,\x20viewMatrix,\x20projectionMatrix,\x20material.dispersion,\x20material.ior,\x20material.thickness,\x0a\x09\x09material.attenuationColor,\x20material.attenuationDistance\x20);\x0a\x09material.transmissionAlpha\x20=\x20mix(\x20material.transmissionAlpha,\x20transmitted.a,\x20material.transmission\x20);\x0a\x09totalDiffuse\x20=\x20mix(\x20totalDiffuse,\x20transmitted.rgb,\x20material.transmission\x20);\x0a#endif','transmission_pars_fragment':'#ifdef\x20USE_TRANSMISSION\x0a\x09uniform\x20float\x20transmission;\x0a\x09uniform\x20float\x20thickness;\x0a\x09uniform\x20float\x20attenuationDistance;\x0a\x09uniform\x20vec3\x20attenuationColor;\x0a\x09#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09\x09uniform\x20sampler2D\x20transmissionMap;\x0a\x09#endif\x0a\x09#ifdef\x20USE_THICKNESSMAP\x0a\x09\x09uniform\x20sampler2D\x20thicknessMap;\x0a\x09#endif\x0a\x09uniform\x20vec2\x20transmissionSamplerSize;\x0a\x09uniform\x20sampler2D\x20transmissionSamplerMap;\x0a\x09uniform\x20mat4\x20modelMatrix;\x0a\x09uniform\x20mat4\x20projectionMatrix;\x0a\x09varying\x20vec3\x20vWorldPosition;\x0a\x09float\x20w0(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20(\x20a\x20*\x20(\x20-\x20a\x20+\x203.0\x20)\x20-\x203.0\x20)\x20+\x201.0\x20);\x0a\x09}\x0a\x09float\x20w1(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20\x20a\x20*\x20(\x203.0\x20*\x20a\x20-\x206.0\x20)\x20+\x204.0\x20);\x0a\x09}\x0a\x09float\x20w2(\x20float\x20a\x20){\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20(\x20a\x20*\x20(\x20-\x203.0\x20*\x20a\x20+\x203.0\x20)\x20+\x203.0\x20)\x20+\x201.0\x20);\x0a\x09}\x0a\x09float\x20w3(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20(\x201.0\x20/\x206.0\x20)\x20*\x20(\x20a\x20*\x20a\x20*\x20a\x20);\x0a\x09}\x0a\x09float\x20g0(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20w0(\x20a\x20)\x20+\x20w1(\x20a\x20);\x0a\x09}\x0a\x09float\x20g1(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20w2(\x20a\x20)\x20+\x20w3(\x20a\x20);\x0a\x09}\x0a\x09float\x20h0(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x20-\x201.0\x20+\x20w1(\x20a\x20)\x20/\x20(\x20w0(\x20a\x20)\x20+\x20w1(\x20a\x20)\x20);\x0a\x09}\x0a\x09float\x20h1(\x20float\x20a\x20)\x20{\x0a\x09\x09return\x201.0\x20+\x20w3(\x20a\x20)\x20/\x20(\x20w2(\x20a\x20)\x20+\x20w3(\x20a\x20)\x20);\x0a\x09}\x0a\x09vec4\x20bicubic(\x20sampler2D\x20tex,\x20vec2\x20uv,\x20vec4\x20texelSize,\x20float\x20lod\x20)\x20{\x0a\x09\x09uv\x20=\x20uv\x20*\x20texelSize.zw\x20+\x200.5;\x0a\x09\x09vec2\x20iuv\x20=\x20floor(\x20uv\x20);\x0a\x09\x09vec2\x20fuv\x20=\x20fract(\x20uv\x20);\x0a\x09\x09float\x20g0x\x20=\x20g0(\x20fuv.x\x20);\x0a\x09\x09float\x20g1x\x20=\x20g1(\x20fuv.x\x20);\x0a\x09\x09float\x20h0x\x20=\x20h0(\x20fuv.x\x20);\x0a\x09\x09float\x20h1x\x20=\x20h1(\x20fuv.x\x20);\x0a\x09\x09float\x20h0y\x20=\x20h0(\x20fuv.y\x20);\x0a\x09\x09float\x20h1y\x20=\x20h1(\x20fuv.y\x20);\x0a\x09\x09vec2\x20p0\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h0x,\x20iuv.y\x20+\x20h0y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09vec2\x20p1\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h1x,\x20iuv.y\x20+\x20h0y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09vec2\x20p2\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h0x,\x20iuv.y\x20+\x20h1y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09vec2\x20p3\x20=\x20(\x20vec2(\x20iuv.x\x20+\x20h1x,\x20iuv.y\x20+\x20h1y\x20)\x20-\x200.5\x20)\x20*\x20texelSize.xy;\x0a\x09\x09return\x20g0(\x20fuv.y\x20)\x20*\x20(\x20g0x\x20*\x20textureLod(\x20tex,\x20p0,\x20lod\x20)\x20+\x20g1x\x20*\x20textureLod(\x20tex,\x20p1,\x20lod\x20)\x20)\x20+\x0a\x09\x09\x09g1(\x20fuv.y\x20)\x20*\x20(\x20g0x\x20*\x20textureLod(\x20tex,\x20p2,\x20lod\x20)\x20+\x20g1x\x20*\x20textureLod(\x20tex,\x20p3,\x20lod\x20)\x20);\x0a\x09}\x0a\x09vec4\x20textureBicubic(\x20sampler2D\x20sampler,\x20vec2\x20uv,\x20float\x20lod\x20)\x20{\x0a\x09\x09vec2\x20fLodSize\x20=\x20vec2(\x20textureSize(\x20sampler,\x20int(\x20lod\x20)\x20)\x20);\x0a\x09\x09vec2\x20cLodSize\x20=\x20vec2(\x20textureSize(\x20sampler,\x20int(\x20lod\x20+\x201.0\x20)\x20)\x20);\x0a\x09\x09vec2\x20fLodSizeInv\x20=\x201.0\x20/\x20fLodSize;\x0a\x09\x09vec2\x20cLodSizeInv\x20=\x201.0\x20/\x20cLodSize;\x0a\x09\x09vec4\x20fSample\x20=\x20bicubic(\x20sampler,\x20uv,\x20vec4(\x20fLodSizeInv,\x20fLodSize\x20),\x20floor(\x20lod\x20)\x20);\x0a\x09\x09vec4\x20cSample\x20=\x20bicubic(\x20sampler,\x20uv,\x20vec4(\x20cLodSizeInv,\x20cLodSize\x20),\x20ceil(\x20lod\x20)\x20);\x0a\x09\x09return\x20mix(\x20fSample,\x20cSample,\x20fract(\x20lod\x20)\x20);\x0a\x09}\x0a\x09vec3\x20getVolumeTransmissionRay(\x20const\x20in\x20vec3\x20n,\x20const\x20in\x20vec3\x20v,\x20const\x20in\x20float\x20thickness,\x20const\x20in\x20float\x20ior,\x20const\x20in\x20mat4\x20modelMatrix\x20)\x20{\x0a\x09\x09vec3\x20refractionVector\x20=\x20refract(\x20-\x20v,\x20normalize(\x20n\x20),\x201.0\x20/\x20ior\x20);\x0a\x09\x09vec3\x20modelScale;\x0a\x09\x09modelScale.x\x20=\x20length(\x20vec3(\x20modelMatrix[\x200\x20].xyz\x20)\x20);\x0a\x09\x09modelScale.y\x20=\x20length(\x20vec3(\x20modelMatrix[\x201\x20].xyz\x20)\x20);\x0a\x09\x09modelScale.z\x20=\x20length(\x20vec3(\x20modelMatrix[\x202\x20].xyz\x20)\x20);\x0a\x09\x09return\x20normalize(\x20refractionVector\x20)\x20*\x20thickness\x20*\x20modelScale;\x0a\x09}\x0a\x09float\x20applyIorToRoughness(\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20float\x20ior\x20)\x20{\x0a\x09\x09return\x20roughness\x20*\x20clamp(\x20ior\x20*\x202.0\x20-\x202.0,\x200.0,\x201.0\x20);\x0a\x09}\x0a\x09vec4\x20getTransmissionSample(\x20const\x20in\x20vec2\x20fragCoord,\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20float\x20ior\x20)\x20{\x0a\x09\x09float\x20lod\x20=\x20log2(\x20transmissionSamplerSize.x\x20)\x20*\x20applyIorToRoughness(\x20roughness,\x20ior\x20);\x0a\x09\x09return\x20textureBicubic(\x20transmissionSamplerMap,\x20fragCoord.xy,\x20lod\x20);\x0a\x09}\x0a\x09vec3\x20volumeAttenuation(\x20const\x20in\x20float\x20transmissionDistance,\x20const\x20in\x20vec3\x20attenuationColor,\x20const\x20in\x20float\x20attenuationDistance\x20)\x20{\x0a\x09\x09if\x20(\x20isinf(\x20attenuationDistance\x20)\x20)\x20{\x0a\x09\x09\x09return\x20vec3(\x201.0\x20);\x0a\x09\x09}\x20else\x20{\x0a\x09\x09\x09vec3\x20attenuationCoefficient\x20=\x20-log(\x20attenuationColor\x20)\x20/\x20attenuationDistance;\x0a\x09\x09\x09vec3\x20transmittance\x20=\x20exp(\x20-\x20attenuationCoefficient\x20*\x20transmissionDistance\x20);\x09\x09\x09return\x20transmittance;\x0a\x09\x09}\x0a\x09}\x0a\x09vec4\x20getIBLVolumeRefraction(\x20const\x20in\x20vec3\x20n,\x20const\x20in\x20vec3\x20v,\x20const\x20in\x20float\x20roughness,\x20const\x20in\x20vec3\x20diffuseColor,\x0a\x09\x09const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20vec3\x20position,\x20const\x20in\x20mat4\x20modelMatrix,\x0a\x09\x09const\x20in\x20mat4\x20viewMatrix,\x20const\x20in\x20mat4\x20projMatrix,\x20const\x20in\x20float\x20dispersion,\x20const\x20in\x20float\x20ior,\x20const\x20in\x20float\x20thickness,\x0a\x09\x09const\x20in\x20vec3\x20attenuationColor,\x20const\x20in\x20float\x20attenuationDistance\x20)\x20{\x0a\x09\x09vec4\x20transmittedLight;\x0a\x09\x09vec3\x20transmittance;\x0a\x09\x09#ifdef\x20USE_DISPERSION\x0a\x09\x09\x09float\x20halfSpread\x20=\x20(\x20ior\x20-\x201.0\x20)\x20*\x200.025\x20*\x20dispersion;\x0a\x09\x09\x09vec3\x20iors\x20=\x20vec3(\x20ior\x20-\x20halfSpread,\x20ior,\x20ior\x20+\x20halfSpread\x20);\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x203;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09vec3\x20transmissionRay\x20=\x20getVolumeTransmissionRay(\x20n,\x20v,\x20thickness,\x20iors[\x20i\x20],\x20modelMatrix\x20);\x0a\x09\x09\x09\x09vec3\x20refractedRayExit\x20=\x20position\x20+\x20transmissionRay;\x0a\x09\x09\x09\x09vec4\x20ndcPos\x20=\x20projMatrix\x20*\x20viewMatrix\x20*\x20vec4(\x20refractedRayExit,\x201.0\x20);\x0a\x09\x09\x09\x09vec2\x20refractionCoords\x20=\x20ndcPos.xy\x20/\x20ndcPos.w;\x0a\x09\x09\x09\x09refractionCoords\x20+=\x201.0;\x0a\x09\x09\x09\x09refractionCoords\x20/=\x202.0;\x0a\x09\x09\x09\x09vec4\x20transmissionSample\x20=\x20getTransmissionSample(\x20refractionCoords,\x20roughness,\x20iors[\x20i\x20]\x20);\x0a\x09\x09\x09\x09transmittedLight[\x20i\x20]\x20=\x20transmissionSample[\x20i\x20];\x0a\x09\x09\x09\x09transmittedLight.a\x20+=\x20transmissionSample.a;\x0a\x09\x09\x09\x09transmittance[\x20i\x20]\x20=\x20diffuseColor[\x20i\x20]\x20*\x20volumeAttenuation(\x20length(\x20transmissionRay\x20),\x20attenuationColor,\x20attenuationDistance\x20)[\x20i\x20];\x0a\x09\x09\x09}\x0a\x09\x09\x09transmittedLight.a\x20/=\x203.0;\x0a\x09\x09#else\x0a\x09\x09\x09vec3\x20transmissionRay\x20=\x20getVolumeTransmissionRay(\x20n,\x20v,\x20thickness,\x20ior,\x20modelMatrix\x20);\x0a\x09\x09\x09vec3\x20refractedRayExit\x20=\x20position\x20+\x20transmissionRay;\x0a\x09\x09\x09vec4\x20ndcPos\x20=\x20projMatrix\x20*\x20viewMatrix\x20*\x20vec4(\x20refractedRayExit,\x201.0\x20);\x0a\x09\x09\x09vec2\x20refractionCoords\x20=\x20ndcPos.xy\x20/\x20ndcPos.w;\x0a\x09\x09\x09refractionCoords\x20+=\x201.0;\x0a\x09\x09\x09refractionCoords\x20/=\x202.0;\x0a\x09\x09\x09transmittedLight\x20=\x20getTransmissionSample(\x20refractionCoords,\x20roughness,\x20ior\x20);\x0a\x09\x09\x09transmittance\x20=\x20diffuseColor\x20*\x20volumeAttenuation(\x20length(\x20transmissionRay\x20),\x20attenuationColor,\x20attenuationDistance\x20);\x0a\x09\x09#endif\x0a\x09\x09vec3\x20attenuatedColor\x20=\x20transmittance\x20*\x20transmittedLight.rgb;\x0a\x09\x09vec3\x20F\x20=\x20EnvironmentBRDF(\x20n,\x20v,\x20specularColor,\x20specularF90,\x20roughness\x20);\x0a\x09\x09float\x20transmittanceFactor\x20=\x20(\x20transmittance.r\x20+\x20transmittance.g\x20+\x20transmittance.b\x20)\x20/\x203.0;\x0a\x09\x09return\x20vec4(\x20(\x201.0\x20-\x20F\x20)\x20*\x20attenuatedColor,\x201.0\x20-\x20(\x201.0\x20-\x20transmittedLight.a\x20)\x20*\x20transmittanceFactor\x20);\x0a\x09}\x0a#endif','uv_pars_fragment':d4(0x3f6),'uv_pars_vertex':'#if\x20defined(\x20USE_UV\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09varying\x20vec2\x20vUv;\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09uniform\x20mat3\x20mapTransform;\x0a\x09varying\x20vec2\x20vMapUv;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09uniform\x20mat3\x20alphaMapTransform;\x0a\x09varying\x20vec2\x20vAlphaMapUv;\x0a#endif\x0a#ifdef\x20USE_LIGHTMAP\x0a\x09uniform\x20mat3\x20lightMapTransform;\x0a\x09varying\x20vec2\x20vLightMapUv;\x0a#endif\x0a#ifdef\x20USE_AOMAP\x0a\x09uniform\x20mat3\x20aoMapTransform;\x0a\x09varying\x20vec2\x20vAoMapUv;\x0a#endif\x0a#ifdef\x20USE_BUMPMAP\x0a\x09uniform\x20mat3\x20bumpMapTransform;\x0a\x09varying\x20vec2\x20vBumpMapUv;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP\x0a\x09uniform\x20mat3\x20normalMapTransform;\x0a\x09varying\x20vec2\x20vNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09uniform\x20mat3\x20displacementMapTransform;\x0a\x09varying\x20vec2\x20vDisplacementMapUv;\x0a#endif\x0a#ifdef\x20USE_EMISSIVEMAP\x0a\x09uniform\x20mat3\x20emissiveMapTransform;\x0a\x09varying\x20vec2\x20vEmissiveMapUv;\x0a#endif\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09uniform\x20mat3\x20metalnessMapTransform;\x0a\x09varying\x20vec2\x20vMetalnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09uniform\x20mat3\x20roughnessMapTransform;\x0a\x09varying\x20vec2\x20vRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ANISOTROPYMAP\x0a\x09uniform\x20mat3\x20anisotropyMapTransform;\x0a\x09varying\x20vec2\x20vAnisotropyMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOATMAP\x0a\x09uniform\x20mat3\x20clearcoatMapTransform;\x0a\x09varying\x20vec2\x20vClearcoatMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09uniform\x20mat3\x20clearcoatNormalMapTransform;\x0a\x09varying\x20vec2\x20vClearcoatNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09uniform\x20mat3\x20clearcoatRoughnessMapTransform;\x0a\x09varying\x20vec2\x20vClearcoatRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09uniform\x20mat3\x20sheenColorMapTransform;\x0a\x09varying\x20vec2\x20vSheenColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09uniform\x20mat3\x20sheenRoughnessMapTransform;\x0a\x09varying\x20vec2\x20vSheenRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09uniform\x20mat3\x20iridescenceMapTransform;\x0a\x09varying\x20vec2\x20vIridescenceMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09uniform\x20mat3\x20iridescenceThicknessMapTransform;\x0a\x09varying\x20vec2\x20vIridescenceThicknessMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09uniform\x20mat3\x20specularMapTransform;\x0a\x09varying\x20vec2\x20vSpecularMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09uniform\x20mat3\x20specularColorMapTransform;\x0a\x09varying\x20vec2\x20vSpecularColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09uniform\x20mat3\x20specularIntensityMapTransform;\x0a\x09varying\x20vec2\x20vSpecularIntensityMapUv;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09uniform\x20mat3\x20transmissionMapTransform;\x0a\x09varying\x20vec2\x20vTransmissionMapUv;\x0a#endif\x0a#ifdef\x20USE_THICKNESSMAP\x0a\x09uniform\x20mat3\x20thicknessMapTransform;\x0a\x09varying\x20vec2\x20vThicknessMapUv;\x0a#endif','uv_vertex':'#if\x20defined(\x20USE_UV\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09vUv\x20=\x20vec3(\x20uv,\x201\x20).xy;\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09vMapUv\x20=\x20(\x20mapTransform\x20*\x20vec3(\x20MAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09vAlphaMapUv\x20=\x20(\x20alphaMapTransform\x20*\x20vec3(\x20ALPHAMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_LIGHTMAP\x0a\x09vLightMapUv\x20=\x20(\x20lightMapTransform\x20*\x20vec3(\x20LIGHTMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_AOMAP\x0a\x09vAoMapUv\x20=\x20(\x20aoMapTransform\x20*\x20vec3(\x20AOMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_BUMPMAP\x0a\x09vBumpMapUv\x20=\x20(\x20bumpMapTransform\x20*\x20vec3(\x20BUMPMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP\x0a\x09vNormalMapUv\x20=\x20(\x20normalMapTransform\x20*\x20vec3(\x20NORMALMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09vDisplacementMapUv\x20=\x20(\x20displacementMapTransform\x20*\x20vec3(\x20DISPLACEMENTMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_EMISSIVEMAP\x0a\x09vEmissiveMapUv\x20=\x20(\x20emissiveMapTransform\x20*\x20vec3(\x20EMISSIVEMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09vMetalnessMapUv\x20=\x20(\x20metalnessMapTransform\x20*\x20vec3(\x20METALNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09vRoughnessMapUv\x20=\x20(\x20roughnessMapTransform\x20*\x20vec3(\x20ROUGHNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_ANISOTROPYMAP\x0a\x09vAnisotropyMapUv\x20=\x20(\x20anisotropyMapTransform\x20*\x20vec3(\x20ANISOTROPYMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_CLEARCOATMAP\x0a\x09vClearcoatMapUv\x20=\x20(\x20clearcoatMapTransform\x20*\x20vec3(\x20CLEARCOATMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09vClearcoatNormalMapUv\x20=\x20(\x20clearcoatNormalMapTransform\x20*\x20vec3(\x20CLEARCOAT_NORMALMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09vClearcoatRoughnessMapUv\x20=\x20(\x20clearcoatRoughnessMapTransform\x20*\x20vec3(\x20CLEARCOAT_ROUGHNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09vIridescenceMapUv\x20=\x20(\x20iridescenceMapTransform\x20*\x20vec3(\x20IRIDESCENCEMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09vIridescenceThicknessMapUv\x20=\x20(\x20iridescenceThicknessMapTransform\x20*\x20vec3(\x20IRIDESCENCE_THICKNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09vSheenColorMapUv\x20=\x20(\x20sheenColorMapTransform\x20*\x20vec3(\x20SHEEN_COLORMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09vSheenRoughnessMapUv\x20=\x20(\x20sheenRoughnessMapTransform\x20*\x20vec3(\x20SHEEN_ROUGHNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09vSpecularMapUv\x20=\x20(\x20specularMapTransform\x20*\x20vec3(\x20SPECULARMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09vSpecularColorMapUv\x20=\x20(\x20specularColorMapTransform\x20*\x20vec3(\x20SPECULAR_COLORMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09vSpecularIntensityMapUv\x20=\x20(\x20specularIntensityMapTransform\x20*\x20vec3(\x20SPECULAR_INTENSITYMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09vTransmissionMapUv\x20=\x20(\x20transmissionMapTransform\x20*\x20vec3(\x20TRANSMISSIONMAP_UV,\x201\x20)\x20).xy;\x0a#endif\x0a#ifdef\x20USE_THICKNESSMAP\x0a\x09vThicknessMapUv\x20=\x20(\x20thicknessMapTransform\x20*\x20vec3(\x20THICKNESSMAP_UV,\x201\x20)\x20).xy;\x0a#endif','worldpos_vertex':'#if\x20defined(\x20USE_ENVMAP\x20)\x20||\x20defined(\x20DISTANCE\x20)\x20||\x20defined\x20(\x20USE_SHADOWMAP\x20)\x20||\x20defined\x20(\x20USE_TRANSMISSION\x20)\x20||\x20NUM_SPOT_LIGHT_COORDS\x20>\x200\x0a\x09vec4\x20worldPosition\x20=\x20vec4(\x20transformed,\x201.0\x20);\x0a\x09#ifdef\x20USE_BATCHING\x0a\x09\x09worldPosition\x20=\x20batchingMatrix\x20*\x20worldPosition;\x0a\x09#endif\x0a\x09#ifdef\x20USE_INSTANCING\x0a\x09\x09worldPosition\x20=\x20instanceMatrix\x20*\x20worldPosition;\x0a\x09#endif\x0a\x09worldPosition\x20=\x20modelMatrix\x20*\x20worldPosition;\x0a#endif','background_vert':'varying\x20vec2\x20vUv;\x0auniform\x20mat3\x20uvTransform;\x0avoid\x20main()\x20{\x0a\x09vUv\x20=\x20(\x20uvTransform\x20*\x20vec3(\x20uv,\x201\x20)\x20).xy;\x0a\x09gl_Position\x20=\x20vec4(\x20position.xy,\x201.0,\x201.0\x20);\x0a}','background_frag':'uniform\x20sampler2D\x20t2D;\x0auniform\x20float\x20backgroundIntensity;\x0avarying\x20vec2\x20vUv;\x0avoid\x20main()\x20{\x0a\x09vec4\x20texColor\x20=\x20texture2D(\x20t2D,\x20vUv\x20);\x0a\x09#ifdef\x20DECODE_VIDEO_TEXTURE\x0a\x09\x09texColor\x20=\x20vec4(\x20mix(\x20pow(\x20texColor.rgb\x20*\x200.9478672986\x20+\x20vec3(\x200.0521327014\x20),\x20vec3(\x202.4\x20)\x20),\x20texColor.rgb\x20*\x200.0773993808,\x20vec3(\x20lessThanEqual(\x20texColor.rgb,\x20vec3(\x200.04045\x20)\x20)\x20)\x20),\x20texColor.w\x20);\x0a\x09#endif\x0a\x09texColor.rgb\x20*=\x20backgroundIntensity;\x0a\x09gl_FragColor\x20=\x20texColor;\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','backgroundCube_vert':'varying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09gl_Position.z\x20=\x20gl_Position.w;\x0a}','backgroundCube_frag':'#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09uniform\x20samplerCube\x20envMap;\x0a#elif\x20defined(\x20ENVMAP_TYPE_CUBE_UV\x20)\x0a\x09uniform\x20sampler2D\x20envMap;\x0a#endif\x0auniform\x20float\x20backgroundBlurriness;\x0auniform\x20float\x20backgroundIntensity;\x0auniform\x20mat3\x20backgroundRotation;\x0avarying\x20vec3\x20vWorldDirection;\x0a#include\x20<cube_uv_reflection_fragment>\x0avoid\x20main()\x20{\x0a\x09#ifdef\x20ENVMAP_TYPE_CUBE\x0a\x09\x09vec4\x20texColor\x20=\x20textureCube(\x20envMap,\x20backgroundRotation\x20*\x20vWorldDirection\x20);\x0a\x09#elif\x20defined(\x20ENVMAP_TYPE_CUBE_UV\x20)\x0a\x09\x09vec4\x20texColor\x20=\x20textureCubeUV(\x20envMap,\x20backgroundRotation\x20*\x20vWorldDirection,\x20backgroundBlurriness\x20);\x0a\x09#else\x0a\x09\x09vec4\x20texColor\x20=\x20vec4(\x200.0,\x200.0,\x200.0,\x201.0\x20);\x0a\x09#endif\x0a\x09texColor.rgb\x20*=\x20backgroundIntensity;\x0a\x09gl_FragColor\x20=\x20texColor;\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','cube_vert':d4(0x1ba),'cube_frag':d4(0x12e),'depth_vert':'#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avarying\x20vec2\x20vHighPrecisionZW;\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09\x09#include\x20<beginnormal_vertex>\x0a\x09\x09#include\x20<morphnormal_vertex>\x0a\x09\x09#include\x20<skinnormal_vertex>\x0a\x09#endif\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vHighPrecisionZW\x20=\x20gl_Position.zw;\x0a}','depth_frag':'#if\x20DEPTH_PACKING\x20==\x203200\x0a\x09uniform\x20float\x20opacity;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<packing>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avarying\x20vec2\x20vHighPrecisionZW;\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x201.0\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#if\x20DEPTH_PACKING\x20==\x203200\x0a\x09\x09diffuseColor.a\x20=\x20opacity;\x0a\x09#endif\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#ifdef\x20USE_REVERSED_DEPTH_BUFFER\x0a\x09\x09float\x20fragCoordZ\x20=\x20vHighPrecisionZW[\x200\x20]\x20/\x20vHighPrecisionZW[\x201\x20];\x0a\x09#else\x0a\x09\x09float\x20fragCoordZ\x20=\x200.5\x20*\x20vHighPrecisionZW[\x200\x20]\x20/\x20vHighPrecisionZW[\x201\x20]\x20+\x200.5;\x0a\x09#endif\x0a\x09#if\x20DEPTH_PACKING\x20==\x203200\x0a\x09\x09gl_FragColor\x20=\x20vec4(\x20vec3(\x201.0\x20-\x20fragCoordZ\x20),\x20opacity\x20);\x0a\x09#elif\x20DEPTH_PACKING\x20==\x203201\x0a\x09\x09gl_FragColor\x20=\x20packDepthToRGBA(\x20fragCoordZ\x20);\x0a\x09#elif\x20DEPTH_PACKING\x20==\x203202\x0a\x09\x09gl_FragColor\x20=\x20vec4(\x20packDepthToRGB(\x20fragCoordZ\x20),\x201.0\x20);\x0a\x09#elif\x20DEPTH_PACKING\x20==\x203203\x0a\x09\x09gl_FragColor\x20=\x20vec4(\x20packDepthToRG(\x20fragCoordZ\x20),\x200.0,\x201.0\x20);\x0a\x09#endif\x0a}','distance_vert':'#define\x20DISTANCE\x0avarying\x20vec3\x20vWorldPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09\x09#include\x20<beginnormal_vertex>\x0a\x09\x09#include\x20<morphnormal_vertex>\x0a\x09\x09#include\x20<skinnormal_vertex>\x0a\x09#endif\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vWorldPosition\x20=\x20worldPosition.xyz;\x0a}','distance_frag':d4(0x32f),'equirect_vert':d4(0x2a2),'equirect_frag':'uniform\x20sampler2D\x20tEquirect;\x0avarying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vec3\x20direction\x20=\x20normalize(\x20vWorldDirection\x20);\x0a\x09vec2\x20sampleUV\x20=\x20equirectUv(\x20direction\x20);\x0a\x09gl_FragColor\x20=\x20texture2D(\x20tEquirect,\x20sampleUV\x20);\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','linedashed_vert':'uniform\x20float\x20scale;\x0aattribute\x20float\x20lineDistance;\x0avarying\x20float\x20vLineDistance;\x0a#include\x20<common>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09vLineDistance\x20=\x20scale\x20*\x20lineDistance;\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','linedashed_frag':'uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0auniform\x20float\x20dashSize;\x0auniform\x20float\x20totalSize;\x0avarying\x20float\x20vLineDistance;\x0a#include\x20<common>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09if\x20(\x20mod(\x20vLineDistance,\x20totalSize\x20)\x20>\x20dashSize\x20)\x20{\x0a\x09\x09discard;\x0a\x09}\x0a\x09vec3\x20outgoingLight\x20=\x20vec3(\x200.0\x20);\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09outgoingLight\x20=\x20diffuseColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a}','meshbasic_vert':'#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<envmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#if\x20defined\x20(\x20USE_ENVMAP\x20)\x20||\x20defined\x20(\x20USE_SKINNING\x20)\x0a\x09\x09#include\x20<beginnormal_vertex>\x0a\x09\x09#include\x20<morphnormal_vertex>\x0a\x09\x09#include\x20<skinbase_vertex>\x0a\x09\x09#include\x20<skinnormal_vertex>\x0a\x09\x09#include\x20<defaultnormal_vertex>\x0a\x09#endif\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<envmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshbasic_frag':d4(0x17e),'meshlambert_vert':d4(0x23b),'meshlambert_frag':'#define\x20LAMBERT\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<cube_uv_reflection_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_pars_fragment>\x0a#include\x20<envmap_physical_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_lambert_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<specularmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<specularmap_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_lambert_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse\x20+\x20totalEmissiveRadiance;\x0a\x09#include\x20<envmap_fragment>\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshmatcap_vert':'#define\x20MATCAP\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<fog_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a}','meshmatcap_frag':'#define\x20MATCAP\x0auniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0auniform\x20sampler2D\x20matcap;\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09vec3\x20viewDir\x20=\x20normalize(\x20vViewPosition\x20);\x0a\x09vec3\x20x\x20=\x20normalize(\x20vec3(\x20viewDir.z,\x200.0,\x20-\x20viewDir.x\x20)\x20);\x0a\x09vec3\x20y\x20=\x20cross(\x20viewDir,\x20x\x20);\x0a\x09vec2\x20uv\x20=\x20vec2(\x20dot(\x20x,\x20normal\x20),\x20dot(\x20y,\x20normal\x20)\x20)\x20*\x200.495\x20+\x200.5;\x0a\x09#ifdef\x20USE_MATCAP\x0a\x09\x09vec4\x20matcapColor\x20=\x20texture2D(\x20matcap,\x20uv\x20);\x0a\x09#else\x0a\x09\x09vec4\x20matcapColor\x20=\x20vec4(\x20vec3(\x20mix(\x200.2,\x200.8,\x20uv.y\x20)\x20),\x201.0\x20);\x0a\x09#endif\x0a\x09vec3\x20outgoingLight\x20=\x20diffuseColor.rgb\x20*\x20matcapColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshnormal_vert':'#define\x20NORMAL\x0a#if\x20defined(\x20FLAT_SHADED\x20)\x20||\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09varying\x20vec3\x20vViewPosition;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a#if\x20defined(\x20FLAT_SHADED\x20)\x20||\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a#endif\x0a}','meshnormal_frag':'#define\x20NORMAL\x0auniform\x20float\x20opacity;\x0a#if\x20defined(\x20FLAT_SHADED\x20)\x20||\x20defined(\x20USE_BUMPMAP\x20)\x20||\x20defined(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x0a\x09varying\x20vec3\x20vViewPosition;\x0a#endif\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x200.0,\x200.0,\x200.0,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09gl_FragColor\x20=\x20vec4(\x20normalize(\x20normal\x20)\x20*\x200.5\x20+\x200.5,\x20diffuseColor.a\x20);\x0a\x09#ifdef\x20OPAQUE\x0a\x09\x09gl_FragColor.a\x20=\x201.0;\x0a\x09#endif\x0a}','meshphong_vert':'#define\x20PHONG\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<envmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<envmap_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshphong_frag':'#define\x20PHONG\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20vec3\x20specular;\x0auniform\x20float\x20shininess;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<cube_uv_reflection_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_pars_fragment>\x0a#include\x20<envmap_physical_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_phong_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<specularmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<specularmap_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_phong_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse\x20+\x20reflectedLight.directSpecular\x20+\x20reflectedLight.indirectSpecular\x20+\x20totalEmissiveRadiance;\x0a\x09#include\x20<envmap_fragment>\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshphysical_vert':'#define\x20STANDARD\x0avarying\x20vec3\x20vViewPosition;\x0a#ifdef\x20USE_TRANSMISSION\x0a\x09varying\x20vec3\x20vWorldPosition;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a#ifdef\x20USE_TRANSMISSION\x0a\x09vWorldPosition\x20=\x20worldPosition.xyz;\x0a#endif\x0a}','meshphysical_frag':'#define\x20STANDARD\x0a#ifdef\x20PHYSICAL\x0a\x09#define\x20IOR\x0a\x09#define\x20USE_SPECULAR\x0a#endif\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20float\x20roughness;\x0auniform\x20float\x20metalness;\x0auniform\x20float\x20opacity;\x0a#ifdef\x20IOR\x0a\x09uniform\x20float\x20ior;\x0a#endif\x0a#ifdef\x20USE_SPECULAR\x0a\x09uniform\x20float\x20specularIntensity;\x0a\x09uniform\x20vec3\x20specularColor;\x0a\x09#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09\x09uniform\x20sampler2D\x20specularColorMap;\x0a\x09#endif\x0a\x09#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09\x09uniform\x20sampler2D\x20specularIntensityMap;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09uniform\x20float\x20clearcoat;\x0a\x09uniform\x20float\x20clearcoatRoughness;\x0a#endif\x0a#ifdef\x20USE_DISPERSION\x0a\x09uniform\x20float\x20dispersion;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE\x0a\x09uniform\x20float\x20iridescence;\x0a\x09uniform\x20float\x20iridescenceIOR;\x0a\x09uniform\x20float\x20iridescenceThicknessMinimum;\x0a\x09uniform\x20float\x20iridescenceThicknessMaximum;\x0a#endif\x0a#ifdef\x20USE_SHEEN\x0a\x09uniform\x20vec3\x20sheenColor;\x0a\x09uniform\x20float\x20sheenRoughness;\x0a\x09#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09\x09uniform\x20sampler2D\x20sheenColorMap;\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09\x09uniform\x20sampler2D\x20sheenRoughnessMap;\x0a\x09#endif\x0a#endif\x0a#ifdef\x20USE_ANISOTROPY\x0a\x09uniform\x20vec2\x20anisotropyVector;\x0a\x09#ifdef\x20USE_ANISOTROPYMAP\x0a\x09\x09uniform\x20sampler2D\x20anisotropyMap;\x0a\x09#endif\x0a#endif\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<iridescence_fragment>\x0a#include\x20<cube_uv_reflection_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_physical_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_physical_pars_fragment>\x0a#include\x20<transmission_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<clearcoat_pars_fragment>\x0a#include\x20<iridescence_pars_fragment>\x0a#include\x20<roughnessmap_pars_fragment>\x0a#include\x20<metalnessmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<roughnessmap_fragment>\x0a\x09#include\x20<metalnessmap_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<clearcoat_normal_fragment_begin>\x0a\x09#include\x20<clearcoat_normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_physical_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20totalDiffuse\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse;\x0a\x09vec3\x20totalSpecular\x20=\x20reflectedLight.directSpecular\x20+\x20reflectedLight.indirectSpecular;\x0a\x09#include\x20<transmission_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20totalDiffuse\x20+\x20totalSpecular\x20+\x20totalEmissiveRadiance;\x0a\x09#ifdef\x20USE_SHEEN\x0a\x20\x0a\x09\x09outgoingLight\x20=\x20outgoingLight\x20+\x20sheenSpecularDirect\x20+\x20sheenSpecularIndirect;\x0a\x20\x0a\x20\x09#endif\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09float\x20dotNVcc\x20=\x20saturate(\x20dot(\x20geometryClearcoatNormal,\x20geometryViewDir\x20)\x20);\x0a\x09\x09vec3\x20Fcc\x20=\x20F_Schlick(\x20material.clearcoatF0,\x20material.clearcoatF90,\x20dotNVcc\x20);\x0a\x09\x09outgoingLight\x20=\x20outgoingLight\x20*\x20(\x201.0\x20-\x20material.clearcoat\x20*\x20Fcc\x20)\x20+\x20(\x20clearcoatSpecularDirect\x20+\x20clearcoatSpecularIndirect\x20)\x20*\x20material.clearcoat;\x0a\x09#endif\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','meshtoon_vert':'#define\x20TOON\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','meshtoon_frag':'#define\x20TOON\x0auniform\x20vec3\x20diffuse;\x0auniform\x20vec3\x20emissive;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<emissivemap_pars_fragment>\x0a#include\x20<gradientmap_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<normal_pars_fragment>\x0a#include\x20<lights_toon_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<bumpmap_pars_fragment>\x0a#include\x20<normalmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09vec3\x20totalEmissiveRadiance\x20=\x20emissive;\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<normal_fragment_begin>\x0a\x09#include\x20<normal_fragment_maps>\x0a\x09#include\x20<emissivemap_fragment>\x0a\x09#include\x20<lights_toon_fragment>\x0a\x09#include\x20<lights_fragment_begin>\x0a\x09#include\x20<lights_fragment_maps>\x0a\x09#include\x20<lights_fragment_end>\x0a\x09#include\x20<aomap_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.directDiffuse\x20+\x20reflectedLight.indirectDiffuse\x20+\x20totalEmissiveRadiance;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','points_vert':'uniform\x20float\x20size;\x0auniform\x20float\x20scale;\x0a#include\x20<common>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0a#ifdef\x20USE_POINTS_UV\x0a\x09varying\x20vec2\x20vUv;\x0a\x09uniform\x20mat3\x20uvTransform;\x0a#endif\x0avoid\x20main()\x20{\x0a\x09#ifdef\x20USE_POINTS_UV\x0a\x09\x09vUv\x20=\x20(\x20uvTransform\x20*\x20vec3(\x20uv,\x201\x20)\x20).xy;\x0a\x09#endif\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09gl_PointSize\x20=\x20size;\x0a\x09#ifdef\x20USE_SIZEATTENUATION\x0a\x09\x09bool\x20isPerspective\x20=\x20isPerspectiveMatrix(\x20projectionMatrix\x20);\x0a\x09\x09if\x20(\x20isPerspective\x20)\x20gl_PointSize\x20*=\x20(\x20scale\x20/\x20-\x20mvPosition.z\x20);\x0a\x09#endif\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','points_frag':'uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<map_particle_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20vec3(\x200.0\x20);\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_particle_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09outgoingLight\x20=\x20diffuseColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a}','shadow_vert':'#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','shadow_frag':'uniform\x20vec3\x20color;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<bsdfs>\x0a#include\x20<lights_pars_begin>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<shadowmap_pars_fragment>\x0a#include\x20<shadowmask_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09gl_FragColor\x20=\x20vec4(\x20color,\x20opacity\x20*\x20(\x201.0\x20-\x20getShadowMask()\x20)\x20);\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a}','sprite_vert':d4(0x281),'sprite_frag':'uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0a#include\x20<common>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09vec3\x20outgoingLight\x20=\x20vec3(\x200.0\x20);\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09outgoingLight\x20=\x20diffuseColor.rgb;\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a}'},$={'common':{'diffuse':{'value':new Y(0xffffff)},'opacity':{'value':0x1},'map':{'value':null},'mapTransform':{'value':new G()},'alphaMap':{'value':null},'alphaMapTransform':{'value':new G()},'alphaTest':{'value':0x0}},'specularmap':{'specularMap':{'value':null},'specularMapTransform':{'value':new G()}},'envmap':{'envMap':{'value':null},'envMapRotation':{'value':new G()},'reflectivity':{'value':0x1},'ior':{'value':1.5},'refractionRatio':{'value':0.98},'dfgLUT':{'value':null}},'aomap':{'aoMap':{'value':null},'aoMapIntensity':{'value':0x1},'aoMapTransform':{'value':new G()}},'lightmap':{'lightMap':{'value':null},'lightMapIntensity':{'value':0x1},'lightMapTransform':{'value':new G()}},'bumpmap':{'bumpMap':{'value':null},'bumpMapTransform':{'value':new G()},'bumpScale':{'value':0x1}},'normalmap':{'normalMap':{'value':null},'normalMapTransform':{'value':new G()},'normalScale':{'value':new U(0x1,0x1)}},'displacementmap':{'displacementMap':{'value':null},'displacementMapTransform':{'value':new G()},'displacementScale':{'value':0x1},'displacementBias':{'value':0x0}},'emissivemap':{'emissiveMap':{'value':null},'emissiveMapTransform':{'value':new G()}},'metalnessmap':{'metalnessMap':{'value':null},'metalnessMapTransform':{'value':new G()}},'roughnessmap':{'roughnessMap':{'value':null},'roughnessMapTransform':{'value':new G()}},'gradientmap':{'gradientMap':{'value':null}},'fog':{'fogDensity':{'value':0.00025},'fogNear':{'value':0x1},'fogFar':{'value':0x7d0},'fogColor':{'value':new Y(0xffffff)}},'lights':{'ambientLightColor':{'value':[]},'lightProbe':{'value':[]},'directionalLights':{'value':[],'properties':{'direction':{},'color':{}}},'directionalLightShadows':{'value':[],'properties':{'shadowIntensity':0x1,'shadowBias':{},'shadowNormalBias':{},'shadowRadius':{},'shadowMapSize':{}}},'directionalShadowMatrix':{'value':[]},'spotLights':{'value':[],'properties':{'color':{},'position':{},'direction':{},'distance':{},'coneCos':{},'penumbraCos':{},'decay':{}}},'spotLightShadows':{'value':[],'properties':{'shadowIntensity':0x1,'shadowBias':{},'shadowNormalBias':{},'shadowRadius':{},'shadowMapSize':{}}},'spotLightMap':{'value':[]},'spotLightMatrix':{'value':[]},'pointLights':{'value':[],'properties':{'color':{},'position':{},'decay':{},'distance':{}}},'pointLightShadows':{'value':[],'properties':{'shadowIntensity':0x1,'shadowBias':{},'shadowNormalBias':{},'shadowRadius':{},'shadowMapSize':{},'shadowCameraNear':{},'shadowCameraFar':{}}},'pointShadowMatrix':{'value':[]},'hemisphereLights':{'value':[],'properties':{'direction':{},'skyColor':{},'groundColor':{}}},'rectAreaLights':{'value':[],'properties':{'color':{},'position':{},'width':{},'height':{}}},'ltc_1':{'value':null},'ltc_2':{'value':null},'probesSH':{'value':null},'probesMin':{'value':new W()},'probesMax':{'value':new W()},'probesResolution':{'value':new W()}},'points':{'diffuse':{'value':new Y(0xffffff)},'opacity':{'value':0x1},'size':{'value':0x1},'scale':{'value':0x1},'map':{'value':null},'alphaMap':{'value':null},'alphaMapTransform':{'value':new G()},'alphaTest':{'value':0x0},'uvTransform':{'value':new G()}},'sprite':{'diffuse':{'value':new Y(0xffffff)},'opacity':{'value':0x1},'center':{'value':new U(0.5,0.5)},'rotation':{'value':0x0},'map':{'value':null},'mapTransform':{'value':new G()},'alphaMap':{'value':null},'alphaMapTransform':{'value':new G()},'alphaTest':{'value':0x0}}},cc={'basic':{'uniforms':mo([$[d4(0x56b)],$['specularmap'],$['envmap'],$['aomap'],$['lightmap'],$['fog']]),'vertexShader':Q['meshbasic_vert'],'fragmentShader':Q['meshbasic_frag']},'lambert':{'uniforms':mo([$['common'],$['specularmap'],$['envmap'],$['aomap'],$['lightmap'],$['emissivemap'],$['bumpmap'],$['normalmap'],$['displacementmap'],$['fog'],$['lights'],{'emissive':{'value':new Y(0x0)},'envMapIntensity':{'value':0x1}}]),'vertexShader':Q[d4(0x5df)],'fragmentShader':Q['meshlambert_frag']},'phong':{'uniforms':mo([$['common'],$['specularmap'],$['envmap'],$['aomap'],$['lightmap'],$['emissivemap'],$['bumpmap'],$['normalmap'],$['displacementmap'],$['fog'],$['lights'],{'emissive':{'value':new Y(0x0)},'specular':{'value':new Y(0x111111)},'shininess':{'value':0x1e},'envMapIntensity':{'value':0x1}}]),'vertexShader':Q['meshphong_vert'],'fragmentShader':Q['meshphong_frag']},'standard':{'uniforms':mo([$['common'],$['envmap'],$['aomap'],$['lightmap'],$['emissivemap'],$['bumpmap'],$['normalmap'],$['displacementmap'],$['roughnessmap'],$['metalnessmap'],$[d4(0x5b2)],$['lights'],{'emissive':{'value':new Y(0x0)},'roughness':{'value':0x1},'metalness':{'value':0x0},'envMapIntensity':{'value':0x1}}]),'vertexShader':Q['meshphysical_vert'],'fragmentShader':Q['meshphysical_frag']},'toon':{'uniforms':mo([$['common'],$[d4(0x26b)],$['lightmap'],$['emissivemap'],$['bumpmap'],$[d4(0x1e7)],$['displacementmap'],$['gradientmap'],$['fog'],$['lights'],{'emissive':{'value':new Y(0x0)}}]),'vertexShader':Q['meshtoon_vert'],'fragmentShader':Q['meshtoon_frag']},'matcap':{'uniforms':mo([$['common'],$['bumpmap'],$['normalmap'],$['displacementmap'],$[d4(0x5b2)],{'matcap':{'value':null}}]),'vertexShader':Q[d4(0x56c)],'fragmentShader':Q['meshmatcap_frag']},'points':{'uniforms':mo([$['points'],$['fog']]),'vertexShader':Q['points_vert'],'fragmentShader':Q['points_frag']},'dashed':{'uniforms':mo([$['common'],$['fog'],{'scale':{'value':0x1},'dashSize':{'value':0x1},'totalSize':{'value':0x2}}]),'vertexShader':Q[d4(0x3f9)],'fragmentShader':Q[d4(0x3fc)]},'depth':{'uniforms':mo([$['common'],$['displacementmap']]),'vertexShader':Q['depth_vert'],'fragmentShader':Q['depth_frag']},'normal':{'uniforms':mo([$[d4(0x56b)],$['bumpmap'],$['normalmap'],$['displacementmap'],{'opacity':{'value':0x1}}]),'vertexShader':Q[d4(0x4d4)],'fragmentShader':Q['meshnormal_frag']},'sprite':{'uniforms':mo([$['sprite'],$['fog']]),'vertexShader':Q['sprite_vert'],'fragmentShader':Q['sprite_frag']},'background':{'uniforms':{'uvTransform':{'value':new G()},'t2D':{'value':null},'backgroundIntensity':{'value':0x1}},'vertexShader':Q['background_vert'],'fragmentShader':Q['background_frag']},'backgroundCube':{'uniforms':{'envMap':{'value':null},'backgroundBlurriness':{'value':0x0},'backgroundIntensity':{'value':0x1},'backgroundRotation':{'value':new G()}},'vertexShader':Q[d4(0x4cd)],'fragmentShader':Q['backgroundCube_frag']},'cube':{'uniforms':{'tCube':{'value':null},'tFlip':{'value':-0x1},'opacity':{'value':0x1}},'vertexShader':Q['cube_vert'],'fragmentShader':Q[d4(0x313)]},'equirect':{'uniforms':{'tEquirect':{'value':null}},'vertexShader':Q['equirect_vert'],'fragmentShader':Q[d4(0x196)]},'distance':{'uniforms':mo([$[d4(0x56b)],$['displacementmap'],{'referencePosition':{'value':new W()},'nearDistance':{'value':0x1},'farDistance':{'value':0x3e8}}]),'vertexShader':Q['distance_vert'],'fragmentShader':Q['distance_frag']},'shadow':{'uniforms':mo([$['lights'],$['fog'],{'color':{'value':new Y(0x0)},'opacity':{'value':0x1}}]),'vertexShader':Q[d4(0x5f8)],'fragmentShader':Q[d4(0x15b)]}};cc['physical']={'uniforms':mo([cc['standard']['uniforms'],{'clearcoat':{'value':0x0},'clearcoatMap':{'value':null},'clearcoatMapTransform':{'value':new G()},'clearcoatNormalMap':{'value':null},'clearcoatNormalMapTransform':{'value':new G()},'clearcoatNormalScale':{'value':new U(0x1,0x1)},'clearcoatRoughness':{'value':0x0},'clearcoatRoughnessMap':{'value':null},'clearcoatRoughnessMapTransform':{'value':new G()},'dispersion':{'value':0x0},'iridescence':{'value':0x0},'iridescenceMap':{'value':null},'iridescenceMapTransform':{'value':new G()},'iridescenceIOR':{'value':1.3},'iridescenceThicknessMinimum':{'value':0x64},'iridescenceThicknessMaximum':{'value':0x190},'iridescenceThicknessMap':{'value':null},'iridescenceThicknessMapTransform':{'value':new G()},'sheen':{'value':0x0},'sheenColor':{'value':new Y(0x0)},'sheenColorMap':{'value':null},'sheenColorMapTransform':{'value':new G()},'sheenRoughness':{'value':0x1},'sheenRoughnessMap':{'value':null},'sheenRoughnessMapTransform':{'value':new G()},'transmission':{'value':0x0},'transmissionMap':{'value':null},'transmissionMapTransform':{'value':new G()},'transmissionSamplerSize':{'value':new U()},'transmissionSamplerMap':{'value':null},'thickness':{'value':0x0},'thicknessMap':{'value':null},'thicknessMapTransform':{'value':new G()},'attenuationDistance':{'value':0x0},'attenuationColor':{'value':new Y(0x0)},'specularColor':{'value':new Y(0x1,0x1,0x1)},'specularColorMap':{'value':null},'specularColorMapTransform':{'value':new G()},'specularIntensity':{'value':0x1},'specularIntensityMap':{'value':null},'specularIntensityMapTransform':{'value':new G()},'anisotropyVector':{'value':new U()},'anisotropyMap':{'value':null},'anisotropyMapTransform':{'value':new G()}}]),'vertexShader':Q['meshphysical_vert'],'fragmentShader':Q[d4(0x3f4)]};var lc={'r':0x0,'b':0x0,'g':0x0},uc=new J(),dc=new G();dc['set'](-0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1);function fc(a4,a5,a6,a7,a8,a9){let ab=new Y(0x0),af=a8===!0x0?0x0:0x1,ag,ah,aj=null,ak=0x0,am=null;function ap(ay){const pN=a1;let az=ay['isScene']===!0x0?ay['background']:null;if(az&&az[pN(0x3ca)]){let aA=ay[pN(0x61c)]>0x0;az=a5[pN(0x61a)](az,aA);}return az;}function aq(ay){const pO=a1;let az=!0x1,aA=ap(ay);aA===null?aw(ab,af):aA&&aA['isColor']&&(aw(aA,0x1),az=!0x0);let aB=a4['xr'][pO(0x3ad)]();aB==='additive'?a6[pO(0x18b)]['color']['setClear'](0x0,0x0,0x0,0x1,a9):aB==='alpha-blend'&&a6['buffers']['color']['setClear'](0x0,0x0,0x0,0x0,a9),(a4['autoClear']||az)&&(a6[pO(0x18b)]['depth']['setTest'](!0x0),a6['buffers'][pO(0x47a)][pO(0x316)](!0x0),a6['buffers'][pO(0x180)]['setMask'](!0x0),a4['clear'](a4['autoClearColor'],a4['autoClearDepth'],a4['autoClearStencil']));}function av(ay,az){const pP=a1;let aA=ap(az);aA&&(aA['isCubeTexture']||aA['mapping']===0x132)?(ah===void 0x0&&(ah=new gi(new Sa(0x1,0x1,0x1),new xo({'name':'BackgroundCubeMaterial','uniforms':po(cc[pP(0x5a9)][pP(0x4d5)]),'vertexShader':cc['backgroundCube']['vertexShader'],'fragmentShader':cc['backgroundCube']['fragmentShader'],'side':0x1,'depthTest':!0x1,'depthWrite':!0x1,'fog':!0x1,'allowOverride':!0x1})),ah[pP(0x1c9)]['deleteAttribute'](pP(0x171)),ah['geometry']['deleteAttribute']('uv'),ah['onBeforeRender']=function(aB,aC,aD){this['matrixWorld']['copyPosition'](aD['matrixWorld']);},Object['defineProperty'](ah['material'],'envMap',{'get':function(){const pQ=pP;return this[pQ(0x4d5)][pQ(0x393)]['value'];}}),a7[pP(0x26f)](ah)),ah['material'][pP(0x4d5)]['envMap']['value']=aA,ah['material']['uniforms']['backgroundBlurriness']['value']=az['backgroundBlurriness'],ah['material']['uniforms']['backgroundIntensity']['value']=az['backgroundIntensity'],ah['material'][pP(0x4d5)]['backgroundRotation']['value'][pP(0x3fb)](uc['makeRotationFromEuler'](az['backgroundRotation']))['transpose'](),aA['isCubeTexture']&&aA['isRenderTargetTexture']===!0x1&&ah['material']['uniforms']['backgroundRotation']['value']['premultiply'](dc),ah['material']['toneMapped']=K['getTransfer'](aA['colorSpace'])!==ot,(aj!==aA||ak!==aA['version']||am!==a4['toneMapping'])&&(ah['material']['needsUpdate']=!0x0,aj=aA,ak=aA['version'],am=a4['toneMapping']),ah['layers']['enableAll'](),ay['unshift'](ah,ah['geometry'],ah['material'],0x0,0x0,null)):aA&&aA[pP(0x3ca)]&&(ag===void 0x0&&(ag=new gi(new uo(0x2,0x2),new xo({'name':'BackgroundMaterial','uniforms':po(cc['background'][pP(0x4d5)]),'vertexShader':cc['background']['vertexShader'],'fragmentShader':cc['background']['fragmentShader'],'side':0x0,'depthTest':!0x1,'depthWrite':!0x1,'fog':!0x1,'allowOverride':!0x1})),ag['geometry']['deleteAttribute']('normal'),Object['defineProperty'](ag['material'],'map',{'get':function(){return this['uniforms']['t2D']['value'];}}),a7['update'](ag)),ag['material']['uniforms']['t2D']['value']=aA,ag['material']['uniforms']['backgroundIntensity']['value']=az['backgroundIntensity'],ag[pP(0x22b)]['toneMapped']=K['getTransfer'](aA[pP(0x2c8)])!==ot,aA['matrixAutoUpdate']===!0x0&&aA['updateMatrix'](),ag[pP(0x22b)]['uniforms']['uvTransform']['value'][pP(0x647)](aA['matrix']),(aj!==aA||ak!==aA['version']||am!==a4['toneMapping'])&&(ag['material']['needsUpdate']=!0x0,aj=aA,ak=aA['version'],am=a4['toneMapping']),ag[pP(0x1aa)]['enableAll'](),ay['unshift'](ag,ag['geometry'],ag[pP(0x22b)],0x0,0x0,null));}function aw(ay,az){ay['getRGB'](lc,_o(a4)),a6['buffers']['color']['setClear'](lc['r'],lc['g'],lc['b'],az,a9);}function ax(){const pR=a1;ah!==void 0x0&&(ah[pR(0x1c9)]['dispose'](),ah['material']['dispose'](),ah=void 0x0),ag!==void 0x0&&(ag[pR(0x1c9)]['dispose'](),ag['material'][pR(0x565)](),ag=void 0x0);}return{'getClearColor':function(){return ab;},'setClearColor':function(ay,az=0x1){const pS=a1;ab[pS(0x23a)](ay),af=az,aw(ab,af);},'getClearAlpha':function(){return af;},'setClearAlpha':function(ay){af=ay,aw(ab,af);},'render':aq,'addToRenderList':av,'dispose':ax};}function pc(a4,a5){let a6=a4['getParameter'](a4['MAX_VERTEX_ATTRIBS']),a7={},a8=am(null),a9=a8,ab=!0x1;function af(aH,aI,aJ,aK,aL){const pT=a1;let aM=!0x1,aN=ak(aH,aK,aJ,aI);a9!==aN&&(a9=aN,ah(a9['object'])),aM=ap(aH,aK,aJ,aL),aM&&aq(aH,aK,aJ,aL),aL!==null&&a5['update'](aL,a4[pT(0x3e5)]),(aM||ab)&&(ab=!0x1,aA(aH,aI,aJ,aK),aL!==null&&a4['bindBuffer'](a4['ELEMENT_ARRAY_BUFFER'],a5['get'](aL)[pT(0x1be)]));}function ag(){return a4['createVertexArray']();}function ah(aH){return a4['bindVertexArray'](aH);}function aj(aH){return a4['deleteVertexArray'](aH);}function ak(aH,aI,aJ,aK){let aL=aK['wireframe']===!0x0,aM=a7[aI['id']];aM===void 0x0&&(aM={},a7[aI['id']]=aM);let aN=aH['isInstancedMesh']===!0x0?aH['id']:0x0,aO=aM[aN];aO===void 0x0&&(aO={},aM[aN]=aO);let aP=aO[aJ['id']];aP===void 0x0&&(aP={},aO[aJ['id']]=aP);let aQ=aP[aL];return aQ===void 0x0&&(aQ=am(ag()),aP[aL]=aQ),aQ;}function am(aH){let aI=[],aJ=[],aK=[];for(let aL=0x0;aL<a6;aL++)aI[aL]=0x0,aJ[aL]=0x0,aK[aL]=0x0;return{'geometry':null,'program':null,'wireframe':!0x1,'newAttributes':aI,'enabledAttributes':aJ,'attributeDivisors':aK,'object':aH,'attributes':{},'index':null};}function ap(aH,aI,aJ,aK){const pU=a1;let aL=a9[pU(0x1b6)],aM=aI['attributes'],aN=0x0,aO=aJ['getAttributes']();for(let aP in aO)if(aO[aP]['location']>=0x0){let aQ=aL[aP],aR=aM[aP];if(aR===void 0x0&&(aP===pU(0x248)&&aH['instanceMatrix']&&(aR=aH['instanceMatrix']),aP==='instanceColor'&&aH['instanceColor']&&(aR=aH['instanceColor'])),aQ===void 0x0||aQ['attribute']!==aR||aR&&aQ['data']!==aR['data'])return!0x0;aN++;}return a9['attributesNum']!==aN||a9[pU(0x434)]!==aK;}function aq(aH,aI,aJ,aK){const pV=a1;let aL={},aM=aI['attributes'],aN=0x0,aO=aJ['getAttributes']();for(let aP in aO)if(aO[aP]['location']>=0x0){let aQ=aM[aP];aQ===void 0x0&&(aP===pV(0x248)&&aH['instanceMatrix']&&(aQ=aH['instanceMatrix']),aP==='instanceColor'&&aH['instanceColor']&&(aQ=aH['instanceColor']));let aR={};aR[pV(0x3f3)]=aQ,aQ&&aQ[pV(0x36f)]&&(aR['data']=aQ['data']),aL[aP]=aR,aN++;}a9['attributes']=aL,a9['attributesNum']=aN,a9['index']=aK;}function av(){let aH=a9['newAttributes'];for(let aI=0x0,aJ=aH['length'];aI<aJ;aI++)aH[aI]=0x0;}function aw(aH){ax(aH,0x0);}function ax(aH,aI){let aJ=a9['newAttributes'],aK=a9['enabledAttributes'],aL=a9['attributeDivisors'];aJ[aH]=0x1,aK[aH]===0x0&&(a4['enableVertexAttribArray'](aH),aK[aH]=0x1),aL[aH]!==aI&&(a4['vertexAttribDivisor'](aH,aI),aL[aH]=aI);}function ay(){const pW=a1;let aH=a9[pW(0x276)],aI=a9['enabledAttributes'];for(let aJ=0x0,aK=aI[pW(0x3ac)];aJ<aK;aJ++)aI[aJ]!==aH[aJ]&&(a4['disableVertexAttribArray'](aJ),aI[aJ]=0x0);}function az(aH,aI,aJ,aK,aL,aM,aN){const pX=a1;aN===!0x0?a4[pX(0x611)](aH,aI,aJ,aL,aM):a4[pX(0x56f)](aH,aI,aJ,aK,aL,aM);}function aA(aH,aI,aJ,aK){const pY=a1;av();let aL=aK['attributes'],aM=aJ['getAttributes'](),aN=aI['defaultAttributeValues'];for(let aO in aM){let aP=aM[aO];if(aP['location']>=0x0){let aQ=aL[aO];if(aQ===void 0x0&&(aO===pY(0x248)&&aH['instanceMatrix']&&(aQ=aH['instanceMatrix']),aO==='instanceColor'&&aH['instanceColor']&&(aQ=aH[pY(0x3fa)])),aQ!==void 0x0){let aR=aQ['normalized'],aS=aQ['itemSize'],aT=a5['get'](aQ);if(aT===void 0x0)continue;let aU=aT['buffer'],aV=aT['type'],aW=aT['bytesPerElement'],aX=aV===a4['INT']||aV===a4['UNSIGNED_INT']||aQ['gpuType']===0x3f5;if(aQ['isInterleavedBufferAttribute']){let aY=aQ[pY(0x36f)],aZ=aY['stride'],b0=aQ['offset'];if(aY['isInstancedInterleavedBuffer']){for(let b1=0x0;b1<aP['locationSize'];b1++)ax(aP['location']+b1,aY['meshPerAttribute']);aH[pY(0x624)]!==!0x0&&aK['_maxInstanceCount']===void 0x0&&(aK['_maxInstanceCount']=aY['meshPerAttribute']*aY['count']);}else{for(let b2=0x0;b2<aP['locationSize'];b2++)aw(aP[pY(0x507)]+b2);}a4['bindBuffer'](a4[pY(0x63d)],aU);for(let b3=0x0;b3<aP['locationSize'];b3++)az(aP['location']+b3,aS/aP['locationSize'],aV,aR,aZ*aW,(b0+aS/aP['locationSize']*b3)*aW,aX);}else{if(aQ['isInstancedBufferAttribute']){for(let b4=0x0;b4<aP['locationSize'];b4++)ax(aP[pY(0x507)]+b4,aQ['meshPerAttribute']);aH['isInstancedMesh']!==!0x0&&aK[pY(0x646)]===void 0x0&&(aK['_maxInstanceCount']=aQ['meshPerAttribute']*aQ['count']);}else{for(let b5=0x0;b5<aP['locationSize'];b5++)aw(aP['location']+b5);}a4['bindBuffer'](a4['ARRAY_BUFFER'],aU);for(let b6=0x0;b6<aP['locationSize'];b6++)az(aP['location']+b6,aS/aP['locationSize'],aV,aR,aS*aW,aS/aP['locationSize']*b6*aW,aX);}}else{if(aN!==void 0x0){let b7=aN[aO];if(b7!==void 0x0)switch(b7['length']){case 0x2:a4['vertexAttrib2fv'](aP['location'],b7);break;case 0x3:a4[pY(0x1fd)](aP[pY(0x507)],b7);break;case 0x4:a4['vertexAttrib4fv'](aP['location'],b7);break;default:a4['vertexAttrib1fv'](aP['location'],b7);}}}}}ay();}function aB(){aF();for(let aH in a7){let aI=a7[aH];for(let aJ in aI){let aK=aI[aJ];for(let aL in aK){let aM=aK[aL];for(let aN in aM)aj(aM[aN]['object']),delete aM[aN];delete aK[aL];}}delete a7[aH];}}function aC(aH){if(a7[aH['id']]===void 0x0)return;let aI=a7[aH['id']];for(let aJ in aI){let aK=aI[aJ];for(let aL in aK){let aM=aK[aL];for(let aN in aM)aj(aM[aN]['object']),delete aM[aN];delete aK[aL];}}delete a7[aH['id']];}function aD(aH){for(let aI in a7){let aJ=a7[aI];for(let aK in aJ){let aL=aJ[aK];if(aL[aH['id']]===void 0x0)continue;let aM=aL[aH['id']];for(let aN in aM)aj(aM[aN]['object']),delete aM[aN];delete aL[aH['id']];}}}function aE(aH){const pZ=a1;for(let aI in a7){let aJ=a7[aI],aK=aH['isInstancedMesh']===!0x0?aH['id']:0x0,aL=aJ[aK];if(aL!==void 0x0){for(let aM in aL){let aN=aL[aM];for(let aO in aN)aj(aN[aO]['object']),delete aN[aO];delete aL[aM];}delete aJ[aK],Object['keys'](aJ)[pZ(0x3ac)]===0x0&&delete a7[aI];}}}function aF(){aG(),ab=!0x0,a9!==a8&&(a9=a8,ah(a9['object']));}function aG(){const q0=a1;a8['geometry']=null,a8[q0(0x589)]=null,a8['wireframe']=!0x1;}return{'setup':af,'reset':aF,'resetDefaultState':aG,'dispose':aB,'releaseStatesOfGeometry':aC,'releaseStatesOfObject':aE,'releaseStatesOfProgram':aD,'initAttributes':av,'enableAttribute':aw,'disableUnusedAttributes':ay};}function mc(a4,a5,a6){let a7;function a8(ag){a7=ag;}function a9(ag,ah){a4['drawArrays'](a7,ag,ah),a6['update'](ah,a7,0x1);}function ab(ag,ah,aj){aj!==0x0&&(a4['drawArraysInstanced'](a7,ag,ah,aj),a6['update'](ah,a7,aj));}function af(ag,ah,aj){const q1=a1;if(aj===0x0)return;a5['get'](q1(0x607))['multiDrawArraysWEBGL'](a7,ag,0x0,ah,0x0,aj);let ak=0x0;for(let am=0x0;am<aj;am++)ak+=ah[am];a6['update'](ak,a7,0x1);}this['setMode']=a8,this['render']=a9,this['renderInstances']=ab,this['renderMultiDraw']=af;}function hc(a4,a5,a6,a7){const q6=d4;let a8;function a9(){const q2=a1;if(a8!==void 0x0)return a8;if(a5[q2(0x550)](q2(0x479))===!0x0){let aD=a5['get']('EXT_texture_filter_anisotropic');a8=a4[q2(0x2d0)](aD['MAX_TEXTURE_MAX_ANISOTROPY_EXT']);}else a8=0x0;return a8;}function ab(aD){const q3=a1;return!(aD!==0x3ff&&a7[q3(0x5e6)](aD)!==a4['getParameter'](a4[q3(0x59a)]));}function af(aD){const q4=a1;let aE=aD===0x3f8&&(a5['has']('EXT_color_buffer_half_float')||a5['has']('EXT_color_buffer_float'));return!(aD!==0x3f1&&a7[q4(0x5e6)](aD)!==a4['getParameter'](a4['IMPLEMENTATION_COLOR_READ_TYPE'])&&aD!==0x3f7&&!aE);}function ag(aD){const q5=a1;if(aD==='highp'){if(a4['getShaderPrecisionFormat'](a4['VERTEX_SHADER'],a4['HIGH_FLOAT'])['precision']>0x0&&a4[q5(0x5fa)](a4[q5(0x1ec)],a4['HIGH_FLOAT'])['precision']>0x0)return q5(0x497);aD='mediump';}return aD==='mediump'&&a4['getShaderPrecisionFormat'](a4['VERTEX_SHADER'],a4['MEDIUM_FLOAT'])['precision']>0x0&&a4[q5(0x5fa)](a4['FRAGMENT_SHADER'],a4['MEDIUM_FLOAT'])['precision']>0x0?'mediump':'lowp';}let ah=a6['precision']===void 0x0?'highp':a6['precision'],aj=ag(ah);aj!==ah&&(z('WebGLRenderer:',ah,q6(0x5cf),aj,'instead.'),ah=aj);let ak=a6['logarithmicDepthBuffer']===!0x0,am=a6[q6(0x4df)]===!0x0&&a5['has'](q6(0x3a2));a6['reversedDepthBuffer']===!0x0&&am===!0x1&&z('WebGLRenderer:\x20Unable\x20to\x20use\x20reversed\x20depth\x20buffer\x20due\x20to\x20missing\x20EXT_clip_control\x20extension.\x20Fallback\x20to\x20default\x20depth\x20buffer.');let ap=a4[q6(0x2d0)](a4['MAX_TEXTURE_IMAGE_UNITS']),aq=a4['getParameter'](a4[q6(0x448)]),av=a4['getParameter'](a4[q6(0x12d)]),aw=a4[q6(0x2d0)](a4['MAX_CUBE_MAP_TEXTURE_SIZE']),ax=a4['getParameter'](a4[q6(0x277)]),ay=a4['getParameter'](a4['MAX_VERTEX_UNIFORM_VECTORS']),az=a4[q6(0x2d0)](a4['MAX_VARYING_VECTORS']),aA=a4['getParameter'](a4['MAX_FRAGMENT_UNIFORM_VECTORS']),aB=a4['getParameter'](a4[q6(0x16c)]),aC=a4['getParameter'](a4['SAMPLES']);return{'isWebGL2':!0x0,'getMaxAnisotropy':a9,'getMaxPrecision':ag,'textureFormatReadable':ab,'textureTypeReadable':af,'precision':ah,'logarithmicDepthBuffer':ak,'reversedDepthBuffer':am,'maxTextures':ap,'maxVertexTextures':aq,'maxTextureSize':av,'maxCubemapSize':aw,'maxAttributes':ax,'maxVertexUniforms':ay,'maxVaryings':az,'maxFragmentUniforms':aA,'maxSamples':aB,'samples':aC};}function gc(a4){const q7=d4;let a5=this,a6=null,a7=0x0,a8=!0x1,a9=!0x1,ab=new Ki(),af=new G(),ag={'value':null,'needsUpdate':!0x1};this[q7(0x1dc)]=ag,this['numPlanes']=0x0,this['numIntersection']=0x0,this[q7(0x4ae)]=function(ak,am){const q8=q7;let ap=ak['length']!==0x0||am||a7!==0x0||a8;return a8=am,a7=ak[q8(0x3ac)],ap;},this['beginShadows']=function(){a9=!0x0,aj(null);},this['endShadows']=function(){a9=!0x1;},this['setGlobalState']=function(ak,am){a6=aj(ak,am,0x0);},this['setState']=function(ak,am,ap){const q9=q7;let aq=ak[q9(0x58d)],av=ak['clipIntersection'],aw=ak['clipShadows'],ax=a4[q9(0x61a)](ak);if(!a8||aq===null||aq[q9(0x3ac)]===0x0||a9&&!aw)a9?aj(null):ah();else{let ay=a9?0x0:a7,az=ay*0x4,aA=ax[q9(0x4b0)]||null;ag['value']=aA,aA=aj(aq,am,az,ap);for(let aB=0x0;aB!==az;++aB)aA[aB]=a6[aB];ax['clippingState']=aA,this['numIntersection']=av?this['numPlanes']:0x0,this['numPlanes']+=ay;}};function ah(){const qb=q7;ag['value']!==a6&&(ag['value']=a6,ag[qb(0x55b)]=a7>0x0),a5['numPlanes']=a7,a5['numIntersection']=0x0;}function aj(ak,am,ap,aq){const qd=q7;let av=ak===null?0x0:ak[qd(0x3ac)],aw=null;if(av!==0x0){if(aw=ag['value'],aq!==!0x0||aw===null){let ax=ap+av*0x4,ay=am['matrixWorldInverse'];af['getNormalMatrix'](ay),(aw===null||aw['length']<ax)&&(aw=new Float32Array(ax));for(let az=0x0,aA=ap;az!==av;++az,aA+=0x4)ab['copy'](ak[az])['applyMatrix4'](ay,af),ab['normal']['toArray'](aw,aA),aw[aA+0x3]=ab[qd(0x2f9)];}ag[qd(0x4ad)]=aw,ag['needsUpdate']=!0x0;}return a5['numPlanes']=av,a5['numIntersection']=0x0,aw;}}var _c=0x4,vc=[0.125,0.215,0.35,0.446,0.526,0.582],yc=0x14,bc=0x100,xc=new Ts(),Sc=new Y(),Cc=null,wc=0x0,Tc=0x0,Ec=!0x1,Dc=new W(),Oc=class{constructor(a4){const qf=d4;this['_renderer']=a4,this['_pingPongRenderTarget']=null,this['_lodMax']=0x0,this[qf(0x1f3)]=0x0,this['_sizeLods']=[],this['_sigmas']=[],this[qf(0x1a3)]=[],this[qf(0x5ab)]=null,this['_cubemapMaterial']=null,this['_equirectMaterial']=null,this[qf(0x518)]=null,this['_ggxMaterial']=null;}[d4(0x499)](a4,a5=0x0,a6=0.1,a7=0x64,a8={}){let {size:a9=0x100,position:ab=Dc}=a8;Cc=this['_renderer']['getRenderTarget'](),wc=this['_renderer']['getActiveCubeFace'](),Tc=this['_renderer']['getActiveMipmapLevel'](),Ec=this['_renderer']['xr']['enabled'],this['_renderer']['xr']['enabled']=!0x1,this['_setSize'](a9);let af=this['_allocateTargets']();return af['depthBuffer']=!0x0,this['_sceneToCubeUV'](a4,a6,a7,af,ab),a5>0x0&&this['_blur'](af,0x0,0x0,a5),this['_applyPMREM'](af),this['_cleanup'](af),af;}['fromEquirectangular'](a4,a5=null){return this['_fromTexture'](a4,a5);}['fromCubemap'](a4,a5=null){return this['_fromTexture'](a4,a5);}['compileCubemapShader'](){const qg=d4;this['_cubemapMaterial']===null&&(this['_cubemapMaterial']=Fc(),this['_compileMaterial'](this[qg(0x5cb)]));}['compileEquirectangularShader'](){this['_equirectMaterial']===null&&(this['_equirectMaterial']=Pc(),this['_compileMaterial'](this['_equirectMaterial']));}['dispose'](){const qh=d4;this['_dispose'](),this['_cubemapMaterial']!==null&&this['_cubemapMaterial']['dispose'](),this[qh(0x5de)]!==null&&this[qh(0x5de)]['dispose'](),this['_backgroundBox']!==null&&(this[qh(0x5ab)]['geometry']['dispose'](),this['_backgroundBox']['material'][qh(0x565)]());}['_setSize'](a4){const qj=d4;this[qj(0x5e4)]=Math['floor'](Math['log2'](a4)),this['_cubeSize']=Math['pow'](0x2,this['_lodMax']);}['_dispose'](){const qk=d4;this['_blurMaterial']!==null&&this['_blurMaterial']['dispose'](),this['_ggxMaterial']!==null&&this[qk(0x4b5)]['dispose'](),this[qk(0x2e9)]!==null&&this[qk(0x2e9)]['dispose']();for(let a4=0x0;a4<this['_lodMeshes']['length'];a4++)this[qk(0x1a3)][a4]['geometry']['dispose']();}[d4(0x158)](a4){const qm=d4;this[qm(0x5bc)]['setRenderTarget'](Cc,wc,Tc),this['_renderer']['xr']['enabled']=Ec,a4[qm(0x33d)]=!0x1,jc(a4,0x0,0x0,a4['width'],a4['height']);}['_fromTexture'](a4,a5){const qp=d4;a4['mapping']===0x12d||a4['mapping']===0x12e?this['_setSize'](a4['image']['length']===0x0?0x10:a4['image'][0x0]['width']||a4['image'][0x0][qp(0x262)][qp(0x24d)]):this[qp(0x259)](a4['image'][qp(0x24d)]/0x4),Cc=this['_renderer']['getRenderTarget'](),wc=this['_renderer'][qp(0x31a)](),Tc=this[qp(0x5bc)]['getActiveMipmapLevel'](),Ec=this[qp(0x5bc)]['xr']['enabled'],this[qp(0x5bc)]['xr']['enabled']=!0x1;let a6=a5||this['_allocateTargets']();return this['_textureToCubeUV'](a4,a6),this['_applyPMREM'](a6),this['_cleanup'](a6),a6;}['_allocateTargets'](){const qq=d4;let a4=0x3*Math[qq(0x4dd)](this['_cubeSize'],0x70),a5=0x4*this['_cubeSize'],a6={'magFilter':S,'minFilter':S,'generateMipmaps':!0x1,'type':te,'format':oe,'colorSpace':it,'depthBuffer':!0x1},a7=Ac(a4,a5,a6);if(this[qq(0x2e9)]===null||this['_pingPongRenderTarget']['width']!==a4||this['_pingPongRenderTarget']['height']!==a5){this['_pingPongRenderTarget']!==null&&this['_dispose'](),this['_pingPongRenderTarget']=Ac(a4,a5,a6);let {_lodMax:a8}=this;({lodMeshes:this['_lodMeshes'],sizeLods:this[qq(0x2c1)],sigmas:this['_sigmas']}=kc(a8),this[qq(0x518)]=Nc(a8,a4,a5),this['_ggxMaterial']=Mc(a8,a4,a5));}return a7;}['_compileMaterial'](a4){let a5=new gi(new Wr(),a4);this['_renderer']['compile'](a5,xc);}['_sceneToCubeUV'](a4,a5,a6,a7,a8){const qv=d4;let a9=new bs(0x5a,0x1,a5,a6),ab=[0x1,-0x1,0x1,0x1,0x1,0x1],af=[0x1,0x1,0x1,-0x1,-0x1,-0x1],ag=this['_renderer'],ah=ag['autoClear'],aj=ag['toneMapping'];ag['getClearColor'](Sc),ag['toneMapping']=0x0,ag['autoClear']=!0x1,ag['state'][qv(0x18b)]['depth'][qv(0x566)]()&&(ag['setRenderTarget'](a7),ag['clearDepth'](),ag['setRenderTarget'](null)),this['_backgroundBox']===null&&(this['_backgroundBox']=new gi(new Sa(),new ii({'name':qv(0x509),'side':0x1,'depthWrite':!0x1,'depthTest':!0x1})));let ak=this['_backgroundBox'],am=ak[qv(0x22b)],ap=!0x1,aq=a4['background'];aq?aq['isColor']&&(am['color']['copy'](aq),a4['background']=null,ap=!0x0):(am['color']['copy'](Sc),ap=!0x0);for(let av=0x0;av<0x6;av++){let aw=av%0x3;aw===0x0?(a9['up']['set'](0x0,ab[av],0x0),a9['position'][qv(0x23a)](a8['x'],a8['y'],a8['z']),a9['lookAt'](a8['x']+af[av],a8['y'],a8['z'])):aw===0x1?(a9['up']['set'](0x0,0x0,ab[av]),a9['position']['set'](a8['x'],a8['y'],a8['z']),a9['lookAt'](a8['x'],a8['y']+af[av],a8['z'])):(a9['up']['set'](0x0,ab[av],0x0),a9['position']['set'](a8['x'],a8['y'],a8['z']),a9[qv(0x4cf)](a8['x'],a8['y'],a8['z']+af[av]));let ax=this['_cubeSize'];jc(a7,aw*ax,av>0x2?ax:0x0,ax,ax),ag['setRenderTarget'](a7),ap&&ag[qv(0x2ae)](ak,a9),ag['render'](a4,a9);}ag[qv(0x185)]=aj,ag['autoClear']=ah,a4['background']=aq;}['_textureToCubeUV'](a4,a5){const qw=d4;let a6=this['_renderer'],a7=a4['mapping']===0x12d||a4['mapping']===0x12e;a7?(this['_cubemapMaterial']===null&&(this['_cubemapMaterial']=Fc()),this['_cubemapMaterial']['uniforms'][qw(0x2c9)]['value']=a4['isRenderTargetTexture']===!0x1?-0x1:0x1):this['_equirectMaterial']===null&&(this[qw(0x5de)]=Pc());let a8=a7?this['_cubemapMaterial']:this['_equirectMaterial'],a9=this[qw(0x1a3)][0x0];a9['material']=a8;let ab=a8['uniforms'];ab['envMap']['value']=a4;let af=this[qw(0x1f3)];jc(a5,0x0,0x0,0x3*af,0x2*af),a6[qw(0x644)](a5),a6[qw(0x2ae)](a9,xc);}['_applyPMREM'](a4){const qx=d4;let a5=this['_renderer'],a6=a5[qx(0x490)];a5[qx(0x490)]=!0x1;let a7=this[qx(0x1a3)]['length'];for(let a8=0x1;a8<a7;a8++)this['_applyGGXFilter'](a4,a8-0x1,a8);a5['autoClear']=a6;}[d4(0x1d2)](a4,a5,a6){const qy=d4;let a7=this['_renderer'],a8=this['_pingPongRenderTarget'],a9=this['_ggxMaterial'],ab=this['_lodMeshes'][a6];ab['material']=a9;let af=a9['uniforms'],ag=a6/(this['_lodMeshes']['length']-0x1),ah=a5/(this[qy(0x1a3)]['length']-0x1),aj=Math['sqrt'](ag*ag-ah*ah)*(0x0+ag*1.25),{_lodMax:ak}=this,am=this['_sizeLods'][a6],ap=0x3*am*(a6>ak-_c?a6-ak+_c:0x0),aq=0x4*(this['_cubeSize']-am);af['envMap']['value']=a4['texture'],af[qy(0x312)]['value']=aj,af['mipInt']['value']=ak-a5,jc(a8,ap,aq,0x3*am,0x2*am),a7['setRenderTarget'](a8),a7['render'](ab,xc),af[qy(0x393)][qy(0x4ad)]=a8[qy(0x1b5)],af['roughness']['value']=0x0,af['mipInt']['value']=ak-a6,jc(a4,ap,aq,0x3*am,0x2*am),a7['setRenderTarget'](a4),a7['render'](ab,xc);}['_blur'](a4,a5,a6,a7,a8){let a9=this['_pingPongRenderTarget'];this['_halfBlur'](a4,a9,a5,a6,a7,'latitudinal',a8),this['_halfBlur'](a9,a4,a6,a6,a7,'longitudinal',a8);}['_halfBlur'](a4,a5,a6,a7,a8,a9,ab){const qz=d4;let af=this[qz(0x5bc)],ag=this[qz(0x518)];a9!==qz(0x522)&&a9!=='longitudinal'&&B('blur\x20direction\x20must\x20be\x20either\x20latitudinal\x20or\x20longitudinal!');let ah=this['_lodMeshes'][a7];ah['material']=ag;let aj=ag['uniforms'],ak=this[qz(0x2c1)][a6]-0x1,am=isFinite(a8)?Math['PI']/(0x2*ak):0x2*Math['PI']/(0x2*yc-0x1),ap=a8/am,aq=isFinite(a8)?0x1+Math[qz(0x4a4)](0x3*ap):yc;aq>yc&&z('sigmaRadians,\x20'+a8+',\x20is\x20too\x20large\x20and\x20will\x20clip,\x20as\x20it\x20requested\x20'+aq+'\x20samples\x20when\x20the\x20maximum\x20is\x20set\x20to\x20'+yc);let av=[],aw=0x0;for(let az=0x0;az<yc;++az){let aA=az/ap,aB=Math['exp'](-aA*aA/0x2);av['push'](aB),az===0x0?aw+=aB:az<aq&&(aw+=0x2*aB);}for(let aC=0x0;aC<av['length'];aC++)av[aC]=av[aC]/aw;aj['envMap']['value']=a4['texture'],aj[qz(0x1fc)][qz(0x4ad)]=aq,aj['weights']['value']=av,aj['latitudinal'][qz(0x4ad)]=a9==='latitudinal',ab&&(aj['poleAxis']['value']=ab);let {_lodMax:ax}=this;aj['dTheta'][qz(0x4ad)]=am,aj['mipInt'][qz(0x4ad)]=ax-a6;let ay=this['_sizeLods'][a7];jc(a5,0x3*ay*(a7>ax-_c?a7-ax+_c:0x0),0x4*(this['_cubeSize']-ay),0x3*ay,0x2*ay),af[qz(0x644)](a5),af['render'](ah,xc);}};function kc(a4){const qA=d4;let a5=[],a6=[],a7=[],a8=a4,a9=a4-_c+0x1+vc[qA(0x3ac)];for(let ab=0x0;ab<a9;ab++){let af=Math['pow'](0x2,a8);a5['push'](af);let ag=0x1/af;ab>a4-_c?ag=vc[ab-a4+_c-0x1]:ab===0x0&&(ag=0x0),a6['push'](ag);let ah=0x1/(af-0x2),aj=-ah,ak=0x1+ah,am=[aj,aj,ak,aj,ak,ak,aj,aj,ak,ak,aj,ak],ap=new Float32Array(0x6c),aq=new Float32Array(0x48),av=new Float32Array(0x24);for(let ax=0x0;ax<0x6;ax++){let ay=ax%0x3*0x2/0x3-0x1,az=ax>0x2?0x0:-0x1,aA=[ay,az,0x0,ay+0x2/0x3,az,0x0,ay+0x2/0x3,az+0x1,0x0,ay,az,0x0,ay+0x2/0x3,az+0x1,0x0,ay,az+0x1,0x0];ap['set'](aA,0x12*ax),aq['set'](am,0xc*ax);let aB=[ax,ax,ax,ax,ax,ax];av['set'](aB,0x6*ax);}let aw=new Wr();aw['setAttribute']('position',new kr(ap,0x3)),aw['setAttribute']('uv',new kr(aq,0x2)),aw['setAttribute']('faceIndex',new kr(av,0x1)),a7[qA(0x5d4)](new gi(aw,null)),a8>_c&&a8--;}return{'lodMeshes':a7,'sizeLods':a5,'sigmas':a6};}function Ac(a4,a5,a6){const qB=d4;let a7=new fn(a4,a5,a6);return a7['texture']['mapping']=0x132,a7['texture'][qB(0x3bd)]='PMREM.cubeUv',a7['scissorTest']=!0x0,a7;}function jc(a4,a5,a6,a7,a8){const qC=d4;a4['viewport'][qC(0x23a)](a5,a6,a7,a8),a4['scissor']['set'](a5,a6,a7,a8);}function Mc(a4,a5,a6){const qD=d4;return new xo({'name':qD(0x150),'defines':{'GGX_SAMPLES':bc,'CUBEUV_TEXEL_WIDTH':0x1/a5,'CUBEUV_TEXEL_HEIGHT':0x1/a6,'CUBEUV_MAX_MIP':a4+'.0'},'uniforms':{'envMap':{'value':null},'roughness':{'value':0x0},'mipInt':{'value':0x0}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20highp\x20float;\x0a\x09\x09\x09precision\x20highp\x20int;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x09\x09\x09uniform\x20float\x20roughness;\x0a\x09\x09\x09uniform\x20float\x20mipInt;\x0a\x0a\x09\x09\x09#define\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09#include\x20<cube_uv_reflection_fragment>\x0a\x0a\x09\x09\x09#define\x20PI\x203.14159265359\x0a\x0a\x09\x09\x09//\x20Van\x20der\x20Corput\x20radical\x20inverse\x0a\x09\x09\x09float\x20radicalInverse_VdC(uint\x20bits)\x20{\x0a\x09\x09\x09\x09bits\x20=\x20(bits\x20<<\x2016u)\x20|\x20(bits\x20>>\x2016u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x55555555u)\x20<<\x201u)\x20|\x20((bits\x20&\x200xAAAAAAAAu)\x20>>\x201u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x33333333u)\x20<<\x202u)\x20|\x20((bits\x20&\x200xCCCCCCCCu)\x20>>\x202u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x0F0F0F0Fu)\x20<<\x204u)\x20|\x20((bits\x20&\x200xF0F0F0F0u)\x20>>\x204u);\x0a\x09\x09\x09\x09bits\x20=\x20((bits\x20&\x200x00FF00FFu)\x20<<\x208u)\x20|\x20((bits\x20&\x200xFF00FF00u)\x20>>\x208u);\x0a\x09\x09\x09\x09return\x20float(bits)\x20*\x202.3283064365386963e-10;\x20//\x20/\x200x100000000\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09//\x20Hammersley\x20sequence\x0a\x09\x09\x09vec2\x20hammersley(uint\x20i,\x20uint\x20N)\x20{\x0a\x09\x09\x09\x09return\x20vec2(float(i)\x20/\x20float(N),\x20radicalInverse_VdC(i));\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09//\x20GGX\x20VNDF\x20importance\x20sampling\x20(Eric\x20Heitz\x202018)\x0a\x09\x09\x09//\x20\x22Sampling\x20the\x20GGX\x20Distribution\x20of\x20Visible\x20Normals\x22\x0a\x09\x09\x09//\x20https://jcgt.org/published/0007/04/01/\x0a\x09\x09\x09vec3\x20importanceSampleGGX_VNDF(vec2\x20Xi,\x20vec3\x20V,\x20float\x20roughness)\x20{\x0a\x09\x09\x09\x09float\x20alpha\x20=\x20roughness\x20*\x20roughness;\x0a\x0a\x09\x09\x09\x09//\x20Section\x204.1:\x20Orthonormal\x20basis\x0a\x09\x09\x09\x09vec3\x20T1\x20=\x20vec3(1.0,\x200.0,\x200.0);\x0a\x09\x09\x09\x09vec3\x20T2\x20=\x20cross(V,\x20T1);\x0a\x0a\x09\x09\x09\x09//\x20Section\x204.2:\x20Parameterization\x20of\x20projected\x20area\x0a\x09\x09\x09\x09float\x20r\x20=\x20sqrt(Xi.x);\x0a\x09\x09\x09\x09float\x20phi\x20=\x202.0\x20*\x20PI\x20*\x20Xi.y;\x0a\x09\x09\x09\x09float\x20t1\x20=\x20r\x20*\x20cos(phi);\x0a\x09\x09\x09\x09float\x20t2\x20=\x20r\x20*\x20sin(phi);\x0a\x09\x09\x09\x09float\x20s\x20=\x200.5\x20*\x20(1.0\x20+\x20V.z);\x0a\x09\x09\x09\x09t2\x20=\x20(1.0\x20-\x20s)\x20*\x20sqrt(1.0\x20-\x20t1\x20*\x20t1)\x20+\x20s\x20*\x20t2;\x0a\x0a\x09\x09\x09\x09//\x20Section\x204.3:\x20Reprojection\x20onto\x20hemisphere\x0a\x09\x09\x09\x09vec3\x20Nh\x20=\x20t1\x20*\x20T1\x20+\x20t2\x20*\x20T2\x20+\x20sqrt(max(0.0,\x201.0\x20-\x20t1\x20*\x20t1\x20-\x20t2\x20*\x20t2))\x20*\x20V;\x0a\x0a\x09\x09\x09\x09//\x20Section\x203.4:\x20Transform\x20back\x20to\x20ellipsoid\x20configuration\x0a\x09\x09\x09\x09return\x20normalize(vec3(alpha\x20*\x20Nh.x,\x20alpha\x20*\x20Nh.y,\x20max(0.0,\x20Nh.z)));\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09vec3\x20N\x20=\x20normalize(vOutputDirection);\x0a\x09\x09\x09\x09vec3\x20V\x20=\x20N;\x20//\x20Assume\x20view\x20direction\x20equals\x20normal\x20for\x20pre-filtering\x0a\x0a\x09\x09\x09\x09vec3\x20prefilteredColor\x20=\x20vec3(0.0);\x0a\x09\x09\x09\x09float\x20totalWeight\x20=\x200.0;\x0a\x0a\x09\x09\x09\x09//\x20For\x20very\x20low\x20roughness,\x20just\x20sample\x20the\x20environment\x20directly\x0a\x09\x09\x09\x09if\x20(roughness\x20<\x200.001)\x20{\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(bilinearCubeUV(envMap,\x20N,\x20mipInt),\x201.0);\x0a\x09\x09\x09\x09\x09return;\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09//\x20Tangent\x20space\x20basis\x20for\x20VNDF\x20sampling\x0a\x09\x09\x09\x09vec3\x20up\x20=\x20abs(N.z)\x20<\x200.999\x20?\x20vec3(0.0,\x200.0,\x201.0)\x20:\x20vec3(1.0,\x200.0,\x200.0);\x0a\x09\x09\x09\x09vec3\x20tangent\x20=\x20normalize(cross(up,\x20N));\x0a\x09\x09\x09\x09vec3\x20bitangent\x20=\x20cross(N,\x20tangent);\x0a\x0a\x09\x09\x09\x09for(uint\x20i\x20=\x200u;\x20i\x20<\x20uint(GGX_SAMPLES);\x20i++)\x20{\x0a\x09\x09\x09\x09\x09vec2\x20Xi\x20=\x20hammersley(i,\x20uint(GGX_SAMPLES));\x0a\x0a\x09\x09\x09\x09\x09//\x20For\x20PMREM,\x20V\x20=\x20N,\x20so\x20in\x20tangent\x20space\x20V\x20is\x20always\x20(0,\x200,\x201)\x0a\x09\x09\x09\x09\x09vec3\x20H_tangent\x20=\x20importanceSampleGGX_VNDF(Xi,\x20vec3(0.0,\x200.0,\x201.0),\x20roughness);\x0a\x0a\x09\x09\x09\x09\x09//\x20Transform\x20H\x20back\x20to\x20world\x20space\x0a\x09\x09\x09\x09\x09vec3\x20H\x20=\x20normalize(tangent\x20*\x20H_tangent.x\x20+\x20bitangent\x20*\x20H_tangent.y\x20+\x20N\x20*\x20H_tangent.z);\x0a\x09\x09\x09\x09\x09vec3\x20L\x20=\x20normalize(2.0\x20*\x20dot(V,\x20H)\x20*\x20H\x20-\x20V);\x0a\x0a\x09\x09\x09\x09\x09float\x20NdotL\x20=\x20max(dot(N,\x20L),\x200.0);\x0a\x0a\x09\x09\x09\x09\x09if(NdotL\x20>\x200.0)\x20{\x0a\x09\x09\x09\x09\x09\x09//\x20Sample\x20environment\x20at\x20fixed\x20mip\x20level\x0a\x09\x09\x09\x09\x09\x09//\x20VNDF\x20importance\x20sampling\x20handles\x20the\x20distribution\x20filtering\x0a\x09\x09\x09\x09\x09\x09vec3\x20sampleColor\x20=\x20bilinearCubeUV(envMap,\x20L,\x20mipInt);\x0a\x0a\x09\x09\x09\x09\x09\x09//\x20Weight\x20by\x20NdotL\x20for\x20the\x20split-sum\x20approximation\x0a\x09\x09\x09\x09\x09\x09//\x20VNDF\x20PDF\x20naturally\x20accounts\x20for\x20the\x20visible\x20microfacet\x20distribution\x0a\x09\x09\x09\x09\x09\x09prefilteredColor\x20+=\x20sampleColor\x20*\x20NdotL;\x0a\x09\x09\x09\x09\x09\x09totalWeight\x20+=\x20NdotL;\x0a\x09\x09\x09\x09\x09}\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09if\x20(totalWeight\x20>\x200.0)\x20{\x0a\x09\x09\x09\x09\x09prefilteredColor\x20=\x20prefilteredColor\x20/\x20totalWeight;\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(prefilteredColor,\x201.0);\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Nc(a4,a5,a6){let a7=new Float32Array(yc),a8=new W(0x0,0x1,0x0);return new xo({'name':'SphericalGaussianBlur','defines':{'n':yc,'CUBEUV_TEXEL_WIDTH':0x1/a5,'CUBEUV_TEXEL_HEIGHT':0x1/a6,'CUBEUV_MAX_MIP':a4+'.0'},'uniforms':{'envMap':{'value':null},'samples':{'value':0x1},'weights':{'value':a7},'latitudinal':{'value':!0x1},'dTheta':{'value':0x0},'mipInt':{'value':0x0},'poleAxis':{'value':a8}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20mediump\x20float;\x0a\x09\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x09\x09\x09uniform\x20int\x20samples;\x0a\x09\x09\x09uniform\x20float\x20weights[\x20n\x20];\x0a\x09\x09\x09uniform\x20bool\x20latitudinal;\x0a\x09\x09\x09uniform\x20float\x20dTheta;\x0a\x09\x09\x09uniform\x20float\x20mipInt;\x0a\x09\x09\x09uniform\x20vec3\x20poleAxis;\x0a\x0a\x09\x09\x09#define\x20ENVMAP_TYPE_CUBE_UV\x0a\x09\x09\x09#include\x20<cube_uv_reflection_fragment>\x0a\x0a\x09\x09\x09vec3\x20getSample(\x20float\x20theta,\x20vec3\x20axis\x20)\x20{\x0a\x0a\x09\x09\x09\x09float\x20cosTheta\x20=\x20cos(\x20theta\x20);\x0a\x09\x09\x09\x09//\x20Rodrigues\x27\x20axis-angle\x20rotation\x0a\x09\x09\x09\x09vec3\x20sampleDirection\x20=\x20vOutputDirection\x20*\x20cosTheta\x0a\x09\x09\x09\x09\x09+\x20cross(\x20axis,\x20vOutputDirection\x20)\x20*\x20sin(\x20theta\x20)\x0a\x09\x09\x09\x09\x09+\x20axis\x20*\x20dot(\x20axis,\x20vOutputDirection\x20)\x20*\x20(\x201.0\x20-\x20cosTheta\x20);\x0a\x0a\x09\x09\x09\x09return\x20bilinearCubeUV(\x20envMap,\x20sampleDirection,\x20mipInt\x20);\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09vec3\x20axis\x20=\x20latitudinal\x20?\x20poleAxis\x20:\x20cross(\x20poleAxis,\x20vOutputDirection\x20);\x0a\x0a\x09\x09\x09\x09if\x20(\x20all(\x20equal(\x20axis,\x20vec3(\x200.0\x20)\x20)\x20)\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09axis\x20=\x20vec3(\x20vOutputDirection.z,\x200.0,\x20-\x20vOutputDirection.x\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09axis\x20=\x20normalize(\x20axis\x20);\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x200.0,\x200.0,\x200.0,\x201.0\x20);\x0a\x09\x09\x09\x09gl_FragColor.rgb\x20+=\x20weights[\x200\x20]\x20*\x20getSample(\x200.0,\x20axis\x20);\x0a\x0a\x09\x09\x09\x09for\x20(\x20int\x20i\x20=\x201;\x20i\x20<\x20n;\x20i++\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09if\x20(\x20i\x20>=\x20samples\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09\x09break;\x0a\x0a\x09\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09\x09float\x20theta\x20=\x20dTheta\x20*\x20float(\x20i\x20);\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20+=\x20weights[\x20i\x20]\x20*\x20getSample(\x20-1.0\x20*\x20theta,\x20axis\x20);\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20+=\x20weights[\x20i\x20]\x20*\x20getSample(\x20theta,\x20axis\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Pc(){return new xo({'name':'EquirectangularToCubeUV','uniforms':{'envMap':{'value':null}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20mediump\x20float;\x0a\x09\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20envMap;\x0a\x0a\x09\x09\x09#include\x20<common>\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09vec3\x20outputDirection\x20=\x20normalize(\x20vOutputDirection\x20);\x0a\x09\x09\x09\x09vec2\x20uv\x20=\x20equirectUv(\x20outputDirection\x20);\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20vec4(\x20texture2D\x20(\x20envMap,\x20uv\x20).rgb,\x201.0\x20);\x0a\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Fc(){return new xo({'name':'CubemapToCubeUV','uniforms':{'envMap':{'value':null},'flipEnvMap':{'value':-0x1}},'vertexShader':Ic(),'fragmentShader':'\x0a\x0a\x09\x09\x09precision\x20mediump\x20float;\x0a\x09\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09\x09uniform\x20float\x20flipEnvMap;\x0a\x0a\x09\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09\x09uniform\x20samplerCube\x20envMap;\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20textureCube(\x20envMap,\x20vec3(\x20flipEnvMap\x20*\x20vOutputDirection.x,\x20vOutputDirection.yz\x20)\x20);\x0a\x0a\x09\x09\x09}\x0a\x09\x09','blending':0x0,'depthTest':!0x1,'depthWrite':!0x1});}function Ic(){return'\x0a\x0a\x09\x09precision\x20mediump\x20float;\x0a\x09\x09precision\x20mediump\x20int;\x0a\x0a\x09\x09attribute\x20float\x20faceIndex;\x0a\x0a\x09\x09varying\x20vec3\x20vOutputDirection;\x0a\x0a\x09\x09//\x20RH\x20coordinate\x20system;\x20PMREM\x20face-indexing\x20convention\x0a\x09\x09vec3\x20getDirection(\x20vec2\x20uv,\x20float\x20face\x20)\x20{\x0a\x0a\x09\x09\x09uv\x20=\x202.0\x20*\x20uv\x20-\x201.0;\x0a\x0a\x09\x09\x09vec3\x20direction\x20=\x20vec3(\x20uv,\x201.0\x20);\x0a\x0a\x09\x09\x09if\x20(\x20face\x20==\x200.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.zyx;\x20//\x20(\x201,\x20v,\x20u\x20)\x20pos\x20x\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x201.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.xzy;\x0a\x09\x09\x09\x09direction.xz\x20*=\x20-1.0;\x20//\x20(\x20-u,\x201,\x20-v\x20)\x20pos\x20y\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x202.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction.x\x20*=\x20-1.0;\x20//\x20(\x20-u,\x20v,\x201\x20)\x20pos\x20z\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x203.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.zyx;\x0a\x09\x09\x09\x09direction.xz\x20*=\x20-1.0;\x20//\x20(\x20-1,\x20v,\x20-u\x20)\x20neg\x20x\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x204.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction\x20=\x20direction.xzy;\x0a\x09\x09\x09\x09direction.xy\x20*=\x20-1.0;\x20//\x20(\x20-u,\x20-1,\x20v\x20)\x20neg\x20y\x0a\x0a\x09\x09\x09}\x20else\x20if\x20(\x20face\x20==\x205.0\x20)\x20{\x0a\x0a\x09\x09\x09\x09direction.z\x20*=\x20-1.0;\x20//\x20(\x20u,\x20v,\x20-1\x20)\x20neg\x20z\x0a\x0a\x09\x09\x09}\x0a\x0a\x09\x09\x09return\x20direction;\x0a\x0a\x09\x09}\x0a\x0a\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09vOutputDirection\x20=\x20getDirection(\x20uv,\x20faceIndex\x20);\x0a\x09\x09\x09gl_Position\x20=\x20vec4(\x20position,\x201.0\x20);\x0a\x0a\x09\x09}\x0a\x09';}var Lc=class extends fn{constructor(a4=0x1,a5={}){const qE=d4;super(a4,a4,a5),this['isWebGLCubeRenderTarget']=!0x0;let a6={'width':a4,'height':a4,'depth':0x1},a7=[a6,a6,a6,a6,a6,a6];this['texture']=new va(a7),this['_setTextureOptions'](a5),this[qE(0x1b5)]['isRenderTargetTexture']=!0x0;}['fromEquirectangularTexture'](a4,a5){const qF=d4;this['texture'][qF(0x3e0)]=a5['type'],this['texture']['colorSpace']=a5['colorSpace'],this['texture']['generateMipmaps']=a5['generateMipmaps'],this['texture'][qF(0x62f)]=a5['minFilter'],this['texture']['magFilter']=a5['magFilter'];let a6={'uniforms':{'tEquirect':{'value':null}},'vertexShader':'\x0a\x0a\x09\x09\x09\x09varying\x20vec3\x20vWorldDirection;\x0a\x0a\x09\x09\x09\x09vec3\x20transformDirection(\x20in\x20vec3\x20dir,\x20in\x20mat4\x20matrix\x20)\x20{\x0a\x0a\x09\x09\x09\x09\x09return\x20normalize(\x20(\x20matrix\x20*\x20vec4(\x20dir,\x200.0\x20)\x20).xyz\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x0a\x09\x09\x09\x09\x09#include\x20<begin_vertex>\x0a\x09\x09\x09\x09\x09#include\x20<project_vertex>\x0a\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09','fragmentShader':'\x0a\x0a\x09\x09\x09\x09uniform\x20sampler2D\x20tEquirect;\x0a\x0a\x09\x09\x09\x09varying\x20vec3\x20vWorldDirection;\x0a\x0a\x09\x09\x09\x09#include\x20<common>\x0a\x0a\x09\x09\x09\x09void\x20main()\x20{\x0a\x0a\x09\x09\x09\x09\x09vec3\x20direction\x20=\x20normalize(\x20vWorldDirection\x20);\x0a\x0a\x09\x09\x09\x09\x09vec2\x20sampleUV\x20=\x20equirectUv(\x20direction\x20);\x0a\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20texture2D(\x20tEquirect,\x20sampleUV\x20);\x0a\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09'},a7=new Sa(0x5,0x5,0x5),a8=new xo({'name':'CubemapFromEquirect','uniforms':po(a6['uniforms']),'vertexShader':a6['vertexShader'],'fragmentShader':a6['fragmentShader'],'side':0x1,'blending':0x0});a8[qF(0x4d5)][qF(0x460)]['value']=a5;let a9=new gi(a7,a8),ab=a5[qF(0x62f)];return a5['minFilter']===0x3f0&&(a5['minFilter']=S),new Fs(0x1,0xa,this)['update'](a4,a9),a5['minFilter']=ab,a9[qF(0x1c9)][qF(0x565)](),a9[qF(0x22b)]['dispose'](),this;}[d4(0x54f)](a4,a5=!0x0,a6=!0x0,a7=!0x0){let a8=a4['getRenderTarget']();for(let a9=0x0;a9<0x6;a9++)a4['setRenderTarget'](this,a9),a4['clear'](a5,a6,a7);a4['setRenderTarget'](a8);}};function Rc(a4){let a5=new WeakMap(),a6=new WeakMap(),a7=null;function a8(am,ap=!0x1){return am==null?null:ap?ab(am):a9(am);}function a9(am){const qG=a1;if(am&&am['isTexture']){let ap=am[qG(0x397)];if(ap===0x12f||ap===0x130){if(a5[qG(0x550)](am)){let aq=a5['get'](am)['texture'];return af(aq,am['mapping']);}else{let av=am['image'];if(av&&av['height']>0x0){let aw=new Lc(av['height']);return aw['fromEquirectangularTexture'](a4,am),a5['set'](am,aw),am['addEventListener']('dispose',ah),af(aw['texture'],am['mapping']);}else return null;}}}return am;}function ab(am){const qH=a1;if(am&&am['isTexture']){let ap=am['mapping'],aq=ap===0x12f||ap===0x130,av=ap===0x12d||ap===0x12e;if(aq||av){let aw=a6[qH(0x61a)](am),ax=aw===void 0x0?0x0:aw['texture']['pmremVersion'];if(am['isRenderTargetTexture']&&am['pmremVersion']!==ax)return a7===null&&(a7=new Oc(a4)),aw=aq?a7[qH(0x2de)](am,aw):a7['fromCubemap'](am,aw),aw['texture']['pmremVersion']=am['pmremVersion'],a6['set'](am,aw),aw['texture'];if(aw!==void 0x0)return aw[qH(0x1b5)];{let ay=am['image'];return aq&&ay&&ay['height']>0x0||av&&ay&&ag(ay)?(a7===null&&(a7=new Oc(a4)),aw=aq?a7[qH(0x2de)](am):a7['fromCubemap'](am),aw['texture']['pmremVersion']=am['pmremVersion'],a6['set'](am,aw),am[qH(0x430)]('dispose',aj),aw['texture']):null;}}}return am;}function af(am,ap){return ap===0x12f?am['mapping']=0x12d:ap===0x130&&(am['mapping']=0x12e),am;}function ag(am){let ap=0x0;for(let aq=0x0;aq<0x6;aq++)am[aq]!==void 0x0&&ap++;return ap===0x6;}function ah(am){const qI=a1;let ap=am['target'];ap['removeEventListener']('dispose',ah);let aq=a5[qI(0x61a)](ap);aq!==void 0x0&&(a5[qI(0x1bd)](ap),aq[qI(0x565)]());}function aj(am){const qJ=a1;let ap=am['target'];ap['removeEventListener'](qJ(0x565),aj);let aq=a6['get'](ap);aq!==void 0x0&&(a6['delete'](ap),aq['dispose']());}function ak(){a5=new WeakMap(),a6=new WeakMap(),a7!==null&&(a7['dispose'](),a7=null);}return{'get':a8,'dispose':ak};}function zc(a4){let a5={};function a6(a7){if(a5[a7]!==void 0x0)return a5[a7];let a8=a4['getExtension'](a7);return a5[a7]=a8,a8;}return{'has':function(a7){return a6(a7)!==null;},'init':function(){a6('EXT_color_buffer_float'),a6('WEBGL_clip_cull_distance'),a6('OES_texture_float_linear'),a6('EXT_color_buffer_half_float'),a6('WEBGL_multisampled_render_to_texture'),a6('WEBGL_render_shared_exponent');},'get':function(a7){let a8=a6(a7);return a8===null&&vt('WebGLRenderer:\x20'+a7+'\x20extension\x20not\x20supported.'),a8;}};}function Bc(a4,a5,a6,a7){let a8={},a9=new WeakMap();function ab(ak){const qK=a1;let am=ak[qK(0x44a)];am['index']!==null&&a5['remove'](am['index']);for(let aq in am['attributes'])a5[qK(0x57b)](am['attributes'][aq]);am[qK(0x487)]('dispose',ab),delete a8[am['id']];let ap=a9['get'](am);ap&&(a5['remove'](ap),a9['delete'](am)),a7['releaseStatesOfGeometry'](am),am[qK(0x257)]===!0x0&&delete am['_maxInstanceCount'],a6['memory']['geometries']--;}function af(ak,am){return a8[am['id']]===!0x0?am:(am['addEventListener']('dispose',ab),a8[am['id']]=!0x0,a6['memory']['geometries']++,am);}function ag(ak){let am=ak['attributes'];for(let ap in am)a5['update'](am[ap],a4['ARRAY_BUFFER']);}function ah(ak){const qL=a1;let am=[],ap=ak['index'],aq=ak['attributes']['position'],av=0x0;if(aq===void 0x0)return;if(ap!==null){let ay=ap['array'];av=ap['version'];for(let az=0x0,aA=ay['length'];az<aA;az+=0x3){let aB=ay[az+0x0],aC=ay[az+0x1],aD=ay[az+0x2];am['push'](aB,aC,aC,aD,aD,aB);}}else{let aE=aq['array'];av=aq['version'];for(let aF=0x0,aG=aE['length']/0x3-0x1;aF<aG;aF+=0x3){let aH=aF+0x0,aI=aF+0x1,aJ=aF+0x2;am['push'](aH,aI,aI,aJ,aJ,aH);}}let aw=new(aq['count']>=0xffff?Mr:Ar)(am,0x1);aw[qL(0x584)]=av;let ax=a9[qL(0x61a)](ak);ax&&a5[qL(0x57b)](ax),a9['set'](ak,aw);}function aj(ak){const qM=a1;let am=a9['get'](ak);if(am){let ap=ak[qM(0x434)];ap!==null&&am['version']<ap['version']&&ah(ak);}else ah(ak);return a9[qM(0x61a)](ak);}return{'get':af,'update':ag,'getWireframeAttribute':aj};}function Vc(a4,a5,a6){const qO=d4;let a7;function a8(ak){a7=ak;}let a9,ab;function af(ak){a9=ak['type'],ab=ak['bytesPerElement'];}function ag(ak,am){a4['drawElements'](a7,am,a9,ak*ab),a6['update'](am,a7,0x1);}function ah(ak,am,ap){ap!==0x0&&(a4['drawElementsInstanced'](a7,am,a9,ak*ab,ap),a6['update'](am,a7,ap));}function aj(ak,am,ap){const qN=a1;if(ap===0x0)return;a5['get']('WEBGL_multi_draw')[qN(0x3a9)](a7,am,0x0,a9,ak,0x0,ap);let aq=0x0;for(let av=0x0;av<ap;av++)aq+=am[av];a6['update'](aq,a7,0x1);}this['setMode']=a8,this['setIndex']=af,this['render']=ag,this['renderInstances']=ah,this[qO(0x1e9)]=aj;}function Hc(a4){let a5={'geometries':0x0,'textures':0x0},a6={'frame':0x0,'calls':0x0,'triangles':0x0,'points':0x0,'lines':0x0};function a7(a9,ab,af){const qP=a1;switch(a6['calls']++,ab){case a4[qP(0x447)]:a6['triangles']+=a9/0x3*af;break;case a4['LINES']:a6['lines']+=a9/0x2*af;break;case a4['LINE_STRIP']:a6[qP(0x473)]+=af*(a9-0x1);break;case a4['LINE_LOOP']:a6['lines']+=af*a9;break;case a4[qP(0x42a)]:a6['points']+=af*a9;break;default:B('WebGLInfo:\x20Unknown\x20draw\x20mode:',ab);break;}}function a8(){const qQ=a1;a6['calls']=0x0,a6['triangles']=0x0,a6['points']=0x0,a6[qQ(0x473)]=0x0;}return{'memory':a5,'render':a6,'programs':null,'autoReset':!0x0,'reset':a8,'update':a7};}function Uc(a4,a5,a6){let a7=new WeakMap(),a8=new q();function a9(ab,af,ag){const qR=a1;let ah=ab['morphTargetInfluences'],aj=af['morphAttributes']['position']||af[qR(0x4da)]['normal']||af[qR(0x4da)]['color'],ak=aj===void 0x0?0x0:aj['length'],am=a7['get'](af);if(am===void 0x0||am[qR(0x218)]!==ak){am!==void 0x0&&am['texture']['dispose']();let ap=af['morphAttributes'][qR(0x4ed)]!==void 0x0,aq=af['morphAttributes']['normal']!==void 0x0,av=af['morphAttributes']['color']!==void 0x0,aw=af['morphAttributes']['position']||[],ax=af['morphAttributes']['normal']||[],ay=af['morphAttributes'][qR(0x180)]||[],az=0x0;ap===!0x0&&(az=0x1),aq===!0x0&&(az=0x2),av===!0x0&&(az=0x3);let aA=af['attributes']['position']['count']*az,aB=0x1;aA>a5['maxTextureSize']&&(aB=Math['ceil'](aA/a5['maxTextureSize']),aA=a5['maxTextureSize']);let aC=new Float32Array(aA*aB*0x4*ak),aD=new pn(aC,aA,aB,ak);aD[qR(0x3e0)]=A,aD['needsUpdate']=!0x0;let aE=az*0x4;for(let aG=0x0;aG<ak;aG++){let aH=aw[aG],aI=ax[aG],aJ=ay[aG],aK=aA*aB*0x4*aG;for(let aL=0x0;aL<aH['count'];aL++){let aM=aL*aE;ap===!0x0&&(a8['fromBufferAttribute'](aH,aL),aC[aK+aM+0x0]=a8['x'],aC[aK+aM+0x1]=a8['y'],aC[aK+aM+0x2]=a8['z'],aC[aK+aM+0x3]=0x0),aq===!0x0&&(a8['fromBufferAttribute'](aI,aL),aC[aK+aM+0x4]=a8['x'],aC[aK+aM+0x5]=a8['y'],aC[aK+aM+0x6]=a8['z'],aC[aK+aM+0x7]=0x0),av===!0x0&&(a8['fromBufferAttribute'](aJ,aL),aC[aK+aM+0x8]=a8['x'],aC[aK+aM+0x9]=a8['y'],aC[aK+aM+0xa]=a8['z'],aC[aK+aM+0xb]=aJ[qR(0x55e)]===0x4?a8['w']:0x1);}}am={'count':ak,'texture':aD,'size':new U(aA,aB)},a7['set'](af,am);function aF(){aD['dispose'](),a7['delete'](af),af['removeEventListener']('dispose',aF);}af['addEventListener'](qR(0x565),aF);}if(ab['isInstancedMesh']===!0x0&&ab['morphTexture']!==null)ag['getUniforms']()['setValue'](a4,qR(0x553),ab[qR(0x553)],a6);else{let aN=0x0;for(let aP=0x0;aP<ah['length'];aP++)aN+=ah[aP];let aO=af[qR(0x3a4)]?0x1:0x1-aN;ag['getUniforms']()['setValue'](a4,'morphTargetBaseInfluence',aO),ag['getUniforms']()['setValue'](a4,qR(0x43a),ah);}ag['getUniforms']()['setValue'](a4,qR(0x384),am['texture'],a6),ag['getUniforms']()['setValue'](a4,'morphTargetsTextureSize',am['size']);}return{'update':a9};}function Wc(a4,a5,a6,a7,a8){let a9=new WeakMap();function ab(ah){const qS=a1;let aj=a8['render']['frame'],ak=ah['geometry'],am=a5['get'](ah,ak);if(a9['get'](am)!==aj&&(a5['update'](am),a9['set'](am,aj)),ah['isInstancedMesh']&&(ah['hasEventListener']('dispose',ag)===!0x1&&ah[qS(0x430)](qS(0x565),ag),a9['get'](ah)!==aj&&(a6['update'](ah['instanceMatrix'],a4['ARRAY_BUFFER']),ah['instanceColor']!==null&&a6[qS(0x26f)](ah['instanceColor'],a4[qS(0x63d)]),a9['set'](ah,aj))),ah[qS(0x4fc)]){let ap=ah['skeleton'];a9[qS(0x61a)](ap)!==aj&&(ap[qS(0x26f)](),a9['set'](ap,aj));}return am;}function af(){a9=new WeakMap();}function ag(ah){const qT=a1;let aj=ah[qT(0x44a)];aj['removeEventListener'](qT(0x565),ag),a7['releaseStatesOfObject'](aj),a6['remove'](aj['instanceMatrix']),aj['instanceColor']!==null&&a6['remove'](aj[qT(0x3fa)]);}return{'update':ab,'dispose':af};}var Gc={0x1:'LINEAR_TONE_MAPPING',0x2:d4(0x3c0),0x3:'CINEON_TONE_MAPPING',0x4:'ACES_FILMIC_TONE_MAPPING',0x6:'AGX_TONE_MAPPING',0x7:d4(0x39a),0x5:'CUSTOM_TONE_MAPPING'};function Kc(a4,a5,a6,a7,a8){const qU=d4;let a9=new fn(a5,a6,{'type':a4,'depthBuffer':a7,'stencilBuffer':a8,'depthTexture':a7?new ya(a5,a6):void 0x0}),ab=new fn(a5,a6,{'type':te,'depthBuffer':!0x1,'stencilBuffer':!0x1}),af=new Wr();af['setAttribute'](qU(0x4ed),new X([-0x1,0x3,0x0,-0x1,-0x1,0x0,0x3,-0x1,0x0],0x3)),af['setAttribute']('uv',new X([0x0,0x2,0x0,0x0,0x2,0x0],0x2));let ag=new So({'uniforms':{'tDiffuse':{'value':null}},'vertexShader':'\x0a\x09\x09\x09precision\x20highp\x20float;\x0a\x0a\x09\x09\x09uniform\x20mat4\x20modelViewMatrix;\x0a\x09\x09\x09uniform\x20mat4\x20projectionMatrix;\x0a\x0a\x09\x09\x09attribute\x20vec3\x20position;\x0a\x09\x09\x09attribute\x20vec2\x20uv;\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09vUv\x20=\x20uv;\x0a\x09\x09\x09\x09gl_Position\x20=\x20projectionMatrix\x20*\x20modelViewMatrix\x20*\x20vec4(\x20position,\x201.0\x20);\x0a\x09\x09\x09}','fragmentShader':'\x0a\x09\x09\x09precision\x20highp\x20float;\x0a\x0a\x09\x09\x09uniform\x20sampler2D\x20tDiffuse;\x0a\x0a\x09\x09\x09varying\x20vec2\x20vUv;\x0a\x0a\x09\x09\x09#include\x20<tonemapping_pars_fragment>\x0a\x09\x09\x09#include\x20<colorspace_pars_fragment>\x0a\x0a\x09\x09\x09void\x20main()\x20{\x0a\x09\x09\x09\x09gl_FragColor\x20=\x20texture2D(\x20tDiffuse,\x20vUv\x20);\x0a\x0a\x09\x09\x09\x09#ifdef\x20LINEAR_TONE_MAPPING\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20LinearToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20REINHARD_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20ReinhardToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20CINEON_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20CineonToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20ACES_FILMIC_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20ACESFilmicToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20AGX_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20AgXToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20NEUTRAL_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20NeutralToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#elif\x20defined(\x20CUSTOM_TONE_MAPPING\x20)\x0a\x09\x09\x09\x09\x09gl_FragColor.rgb\x20=\x20CustomToneMapping(\x20gl_FragColor.rgb\x20);\x0a\x09\x09\x09\x09#endif\x0a\x0a\x09\x09\x09\x09#ifdef\x20SRGB_TRANSFER\x0a\x09\x09\x09\x09\x09gl_FragColor\x20=\x20sRGBTransferOETF(\x20gl_FragColor\x20);\x0a\x09\x09\x09\x09#endif\x0a\x09\x09\x09}','depthTest':!0x1,'depthWrite':!0x1}),ah=new gi(af,ag),aj=new Ts(-0x1,0x1,0x1,-0x1,0x0,0x1),ak=null,am=null,ap=!0x1,aq,av=null,aw=[],ax=!0x1;this['setSize']=function(ay,az){const qV=qU;a9['setSize'](ay,az),ab['setSize'](ay,az);for(let aA=0x0;aA<aw['length'];aA++){let aB=aw[aA];aB['setSize']&&aB[qV(0x27f)](ay,az);}},this['setEffects']=function(ay){aw=ay,ax=aw['length']>0x0&&aw[0x0]['isRenderPass']===!0x0;let az=a9['width'],aA=a9['height'];for(let aB=0x0;aB<aw['length'];aB++){let aC=aw[aB];aC['setSize']&&aC['setSize'](az,aA);}},this['begin']=function(ay,az){const qW=qU;if(ap||ay[qW(0x185)]===0x0&&aw['length']===0x0)return!0x1;if(av=az,az!==null){let aA=az['width'],aB=az['height'];(a9['width']!==aA||a9['height']!==aB)&&this['setSize'](aA,aB);}return ax===!0x1&&ay['setRenderTarget'](a9),aq=ay[qW(0x185)],ay['toneMapping']=0x0,!0x0;},this[qU(0x495)]=function(){return ax;},this['end']=function(ay,az){const qX=qU;ay['toneMapping']=aq,ap=!0x0;let aA=a9,aB=ab;for(let aC=0x0;aC<aw['length'];aC++){let aD=aw[aC];if(aD['enabled']!==!0x1&&(aD['render'](ay,aB,aA,az),aD['needsSwap']!==!0x1)){let aE=aA;aA=aB,aB=aE;}}if(ak!==ay['outputColorSpace']||am!==ay['toneMapping']){ak=ay['outputColorSpace'],am=ay['toneMapping'],ag['defines']={},K[qX(0x4aa)](ak)==='srgb'&&(ag['defines']['SRGB_TRANSFER']='');let aF=Gc[am];aF&&(ag['defines'][aF]=''),ag[qX(0x55b)]=!0x0;}ag['uniforms']['tDiffuse']['value']=aA['texture'],ay['setRenderTarget'](av),ay['render'](ah,aj),av=null,ap=!0x1;},this['isCompositing']=function(){return ap;},this['dispose']=function(){const qY=qU;a9['depthTexture']&&a9[qY(0x4e2)]['dispose'](),a9['dispose'](),ab['dispose'](),af['dispose'](),ag[qY(0x565)]();};}var qc=new un(),Jc=new ya(0x1,0x1),Yc=new pn(),Xc=new mn(),Zc=new va(),Qc=[],$c=[],el=new Float32Array(0x10),tl=new Float32Array(0x9),nl=new Float32Array(0x4);function rl(a4,a5,a6){let a7=a4[0x0];if(a7<=0x0||a7>0x0)return a4;let a8=a5*a6,a9=Qc[a8];if(a9===void 0x0&&(a9=new Float32Array(a8),Qc[a8]=a9),a5!==0x0){a7['toArray'](a9,0x0);for(let ab=0x1,af=0x0;ab!==a5;++ab)af+=a6,a4[ab]['toArray'](a9,af);}return a9;}function il(a4,a5){const qZ=d4;if(a4['length']!==a5[qZ(0x3ac)])return!0x1;for(let a6=0x0,a7=a4['length'];a6<a7;a6++)if(a4[a6]!==a5[a6])return!0x1;return!0x0;}function al(a4,a5){for(let a6=0x0,a7=a5['length'];a6<a7;a6++)a4[a6]=a5[a6];}function ol(a4,a5){const r0=d4;let a6=$c[a5];a6===void 0x0&&(a6=new Int32Array(a5),$c[a5]=a6);for(let a7=0x0;a7!==a5;++a7)a6[a7]=a4[r0(0x383)]();return a6;}function sl(a4,a5){const r1=d4;let a6=this[r1(0x352)];a6[0x0]!==a5&&(a4['uniform1f'](this[r1(0x57d)],a5),a6[0x0]=a5);}function cl(a4,a5){const r2=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y'])&&(a4['uniform2f'](this[r2(0x57d)],a5['x'],a5['y']),a6[0x0]=a5['x'],a6[0x1]=a5['y']);else{if(il(a6,a5))return;a4['uniform2fv'](this['addr'],a5),al(a6,a5);}}function ll(a4,a5){const r3=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z'])&&(a4[r3(0x401)](this['addr'],a5['x'],a5['y'],a5['z']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z']);else{if(a5['r']!==void 0x0)(a6[0x0]!==a5['r']||a6[0x1]!==a5['g']||a6[0x2]!==a5['b'])&&(a4[r3(0x401)](this['addr'],a5['r'],a5['g'],a5['b']),a6[0x0]=a5['r'],a6[0x1]=a5['g'],a6[0x2]=a5['b']);else{if(il(a6,a5))return;a4['uniform3fv'](this['addr'],a5),al(a6,a5);}}}function ul(a4,a5){let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z']||a6[0x3]!==a5['w'])&&(a4['uniform4f'](this['addr'],a5['x'],a5['y'],a5['z'],a5['w']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z'],a6[0x3]=a5['w']);else{if(il(a6,a5))return;a4['uniform4fv'](this['addr'],a5),al(a6,a5);}}function dl(a4,a5){const r4=d4;let a6=this['cache'],a7=a5['elements'];if(a7===void 0x0){if(il(a6,a5))return;a4['uniformMatrix2fv'](this['addr'],!0x1,a5),al(a6,a5);}else{if(il(a6,a7))return;nl[r4(0x23a)](a7),a4['uniformMatrix2fv'](this['addr'],!0x1,nl),al(a6,a7);}}function fl(a4,a5){let a6=this['cache'],a7=a5['elements'];if(a7===void 0x0){if(il(a6,a5))return;a4['uniformMatrix3fv'](this['addr'],!0x1,a5),al(a6,a5);}else{if(il(a6,a7))return;tl['set'](a7),a4['uniformMatrix3fv'](this['addr'],!0x1,tl),al(a6,a7);}}function pl(a4,a5){const r5=d4;let a6=this['cache'],a7=a5[r5(0x633)];if(a7===void 0x0){if(il(a6,a5))return;a4['uniformMatrix4fv'](this['addr'],!0x1,a5),al(a6,a5);}else{if(il(a6,a7))return;el['set'](a7),a4['uniformMatrix4fv'](this['addr'],!0x1,el),al(a6,a7);}}function ml(a4,a5){const r6=d4;let a6=this[r6(0x352)];a6[0x0]!==a5&&(a4[r6(0x560)](this[r6(0x57d)],a5),a6[0x0]=a5);}function hl(a4,a5){const r7=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y'])&&(a4[r7(0x265)](this['addr'],a5['x'],a5['y']),a6[0x0]=a5['x'],a6[0x1]=a5['y']);else{if(il(a6,a5))return;a4['uniform2iv'](this[r7(0x57d)],a5),al(a6,a5);}}function gl(a4,a5){let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z'])&&(a4['uniform3i'](this['addr'],a5['x'],a5['y'],a5['z']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z']);else{if(il(a6,a5))return;a4['uniform3iv'](this['addr'],a5),al(a6,a5);}}function _l(a4,a5){const r8=d4;let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z']||a6[0x3]!==a5['w'])&&(a4[r8(0x4e6)](this['addr'],a5['x'],a5['y'],a5['z'],a5['w']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z'],a6[0x3]=a5['w']);else{if(il(a6,a5))return;a4['uniform4iv'](this[r8(0x57d)],a5),al(a6,a5);}}function vl(a4,a5){let a6=this['cache'];a6[0x0]!==a5&&(a4['uniform1ui'](this['addr'],a5),a6[0x0]=a5);}function yl(a4,a5){let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y'])&&(a4['uniform2ui'](this['addr'],a5['x'],a5['y']),a6[0x0]=a5['x'],a6[0x1]=a5['y']);else{if(il(a6,a5))return;a4['uniform2uiv'](this['addr'],a5),al(a6,a5);}}function bl(a4,a5){let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z'])&&(a4['uniform3ui'](this['addr'],a5['x'],a5['y'],a5['z']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z']);else{if(il(a6,a5))return;a4['uniform3uiv'](this['addr'],a5),al(a6,a5);}}function xl(a4,a5){let a6=this['cache'];if(a5['x']!==void 0x0)(a6[0x0]!==a5['x']||a6[0x1]!==a5['y']||a6[0x2]!==a5['z']||a6[0x3]!==a5['w'])&&(a4['uniform4ui'](this['addr'],a5['x'],a5['y'],a5['z'],a5['w']),a6[0x0]=a5['x'],a6[0x1]=a5['y'],a6[0x2]=a5['z'],a6[0x3]=a5['w']);else{if(il(a6,a5))return;a4['uniform4uiv'](this['addr'],a5),al(a6,a5);}}function Sl(a4,a5,a6){const r9=d4;let a7=this['cache'],a8=a6['allocateTextureUnit']();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8);let a9;this['type']===a4['SAMPLER_2D_SHADOW']?(Jc['compareFunction']=a6[r9(0x563)]()?0x206:0x203,a9=Jc):a9=qc,a6['setTexture2D'](a5||a9,a8);}function Cl(a4,a5,a6){const rb=d4;let a7=this['cache'],a8=a6[rb(0x383)]();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8),a6['setTexture3D'](a5||Xc,a8);}function wl(a4,a5,a6){let a7=this['cache'],a8=a6['allocateTextureUnit']();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8),a6['setTextureCube'](a5||Zc,a8);}function Tl(a4,a5,a6){let a7=this['cache'],a8=a6['allocateTextureUnit']();a7[0x0]!==a8&&(a4['uniform1i'](this['addr'],a8),a7[0x0]=a8),a6['setTexture2DArray'](a5||Yc,a8);}function El(a4){switch(a4){case 0x1406:return sl;case 0x8b50:return cl;case 0x8b51:return ll;case 0x8b52:return ul;case 0x8b5a:return dl;case 0x8b5b:return fl;case 0x8b5c:return pl;case 0x1404:case 0x8b56:return ml;case 0x8b53:case 0x8b57:return hl;case 0x8b54:case 0x8b58:return gl;case 0x8b55:case 0x8b59:return _l;case 0x1405:return vl;case 0x8dc6:return yl;case 0x8dc7:return bl;case 0x8dc8:return xl;case 0x8b5e:case 0x8d66:case 0x8dca:case 0x8dd2:case 0x8b62:return Sl;case 0x8b5f:case 0x8dcb:case 0x8dd3:return Cl;case 0x8b60:case 0x8dcc:case 0x8dd4:case 0x8dc5:return wl;case 0x8dc1:case 0x8dcf:case 0x8dd7:case 0x8dc4:return Tl;}}function Dl(a4,a5){const rf=d4;a4['uniform1fv'](this[rf(0x57d)],a5);}function Ol(a4,a5){const rg=d4;let a6=rl(a5,this['size'],0x2);a4['uniform2fv'](this[rg(0x57d)],a6);}function kl(a4,a5){const rh=d4;let a6=rl(a5,this[rh(0x60e)],0x3);a4['uniform3fv'](this[rh(0x57d)],a6);}function Al(a4,a5){const rj=d4;let a6=rl(a5,this['size'],0x4);a4[rj(0x638)](this[rj(0x57d)],a6);}function jl(a4,a5){let a6=rl(a5,this['size'],0x4);a4['uniformMatrix2fv'](this['addr'],!0x1,a6);}function Ml(a4,a5){let a6=rl(a5,this['size'],0x9);a4['uniformMatrix3fv'](this['addr'],!0x1,a6);}function Nl(a4,a5){let a6=rl(a5,this['size'],0x10);a4['uniformMatrix4fv'](this['addr'],!0x1,a6);}function Pl(a4,a5){const rk=d4;a4[rk(0x581)](this['addr'],a5);}function Fl(a4,a5){a4['uniform2iv'](this['addr'],a5);}function Il(a4,a5){const rm=d4;a4['uniform3iv'](this[rm(0x57d)],a5);}function Ll(a4,a5){const rp=d4;a4['uniform4iv'](this[rp(0x57d)],a5);}function Rl(a4,a5){const rq=d4;a4[rq(0x55d)](this['addr'],a5);}function zl(a4,a5){a4['uniform2uiv'](this['addr'],a5);}function Bl(a4,a5){const rv=d4;a4[rv(0x2e4)](this['addr'],a5);}function Vl(a4,a5){const rw=d4;a4[rw(0x29c)](this['addr'],a5);}function Hl(a4,a5,a6){const rx=d4;let a7=this['cache'],a8=a5[rx(0x3ac)],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this['addr'],a9),al(a7,a9));let ab;ab=this['type']===a4['SAMPLER_2D_SHADOW']?Jc:qc;for(let af=0x0;af!==a8;++af)a6[rx(0x5f7)](a5[af]||ab,a9[af]);}function Ul(a4,a5,a6){const ry=d4;let a7=this['cache'],a8=a5['length'],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this[ry(0x57d)],a9),al(a7,a9));for(let ab=0x0;ab!==a8;++ab)a6['setTexture3D'](a5[ab]||Xc,a9[ab]);}function Wl(a4,a5,a6){const rz=d4;let a7=this['cache'],a8=a5['length'],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this[rz(0x57d)],a9),al(a7,a9));for(let ab=0x0;ab!==a8;++ab)a6['setTextureCube'](a5[ab]||Zc,a9[ab]);}function Gl(a4,a5,a6){let a7=this['cache'],a8=a5['length'],a9=ol(a6,a8);il(a7,a9)||(a4['uniform1iv'](this['addr'],a9),al(a7,a9));for(let ab=0x0;ab!==a8;++ab)a6['setTexture2DArray'](a5[ab]||Yc,a9[ab]);}function Kl(a4){switch(a4){case 0x1406:return Dl;case 0x8b50:return Ol;case 0x8b51:return kl;case 0x8b52:return Al;case 0x8b5a:return jl;case 0x8b5b:return Ml;case 0x8b5c:return Nl;case 0x1404:case 0x8b56:return Pl;case 0x8b53:case 0x8b57:return Fl;case 0x8b54:case 0x8b58:return Il;case 0x8b55:case 0x8b59:return Ll;case 0x1405:return Rl;case 0x8dc6:return zl;case 0x8dc7:return Bl;case 0x8dc8:return Vl;case 0x8b5e:case 0x8d66:case 0x8dca:case 0x8dd2:case 0x8b62:return Hl;case 0x8b5f:case 0x8dcb:case 0x8dd3:return Ul;case 0x8b60:case 0x8dcc:case 0x8dd4:case 0x8dc5:return Wl;case 0x8dc1:case 0x8dcf:case 0x8dd7:case 0x8dc4:return Gl;}}var ql=class{constructor(a4,a5,a6){const rA=d4;this['id']=a4,this[rA(0x57d)]=a6,this['cache']=[],this['type']=a5['type'],this['setValue']=El(a5['type']);}},Jl=class{constructor(a4,a5,a6){const rB=d4;this['id']=a4,this[rB(0x57d)]=a6,this[rB(0x352)]=[],this['type']=a5['type'],this[rB(0x60e)]=a5['size'],this[rB(0x3d8)]=Kl(a5[rB(0x3e0)]);}},Yl=class{constructor(a4){this['id']=a4,this['seq']=[],this['map']={};}['setValue'](a4,a5,a6){let a7=this['seq'];for(let a8=0x0,a9=a7['length'];a8!==a9;++a8){let ab=a7[a8];ab['setValue'](a4,a5[ab['id']],a6);}}},Xl=/(\w+)(\])?(\[|\.)?/g;function Zl(a4,a5){const rC=d4;a4['seq'][rC(0x5d4)](a5),a4['map'][a5['id']]=a5;}function Ql(a4,a5,a6){const rD=d4;let a7=a4['name'],a8=a7['length'];for(Xl[rD(0x2a4)]=0x0;;){let a9=Xl['exec'](a7),ab=Xl[rD(0x2a4)],af=a9[0x1],ag=a9[0x2]===']',ah=a9[0x3];if(ag&&(af|=0x0),ah===void 0x0||ah==='['&&ab+0x2===a8){Zl(a6,ah===void 0x0?new ql(af,a4,a5):new Jl(af,a4,a5));break;}else{let aj=a6['map'][af];aj===void 0x0&&(aj=new Yl(af),Zl(a6,aj)),a6=aj;}}}var $l=class{constructor(a4,a5){const rE=d4;this['seq']=[],this['map']={};let a6=a4[rE(0x575)](a5,a4['ACTIVE_UNIFORMS']);for(let a9=0x0;a9<a6;++a9){let ab=a4[rE(0x1d8)](a5,a9);Ql(ab,a4['getUniformLocation'](a5,ab['name']),this);}let a7=[],a8=[];for(let af of this[rE(0x2d7)])af['type']===a4['SAMPLER_2D_SHADOW']||af['type']===a4['SAMPLER_CUBE_SHADOW']||af['type']===a4['SAMPLER_2D_ARRAY_SHADOW']?a7[rE(0x5d4)](af):a8['push'](af);a7['length']>0x0&&(this[rE(0x2d7)]=a7['concat'](a8));}[d4(0x3d8)](a4,a5,a6,a7){let a8=this['map'][a5];a8!==void 0x0&&a8['setValue'](a4,a6,a7);}[d4(0x4af)](a4,a5,a6){let a7=a5[a6];a7!==void 0x0&&this['setValue'](a4,a6,a7);}static['upload'](a4,a5,a6,a7){const rF=d4;for(let a8=0x0,a9=a5['length'];a8!==a9;++a8){let ab=a5[a8],af=a6[ab['id']];af['needsUpdate']!==!0x1&&ab[rF(0x3d8)](a4,af['value'],a7);}}static['seqWithValue'](a4,a5){let a6=[];for(let a7=0x0,a8=a4['length'];a7!==a8;++a7){let a9=a4[a7];a9['id']in a5&&a6['push'](a9);}return a6;}};function eu(a4,a5,a6){let a7=a4['createShader'](a5);return a4['shaderSource'](a7,a6),a4['compileShader'](a7),a7;}var tu=0x91b1,nu=0x0;function ru(a4,a5){const rG=d4;let a6=a4['split']('\x0a'),a7=[],a8=Math[rG(0x4dd)](a5-0x6,0x0),a9=Math['min'](a5+0x6,a6[rG(0x3ac)]);for(let ab=a8;ab<a9;ab++){let af=ab+0x1;a7['push']((af===a5?'>':'\x20')+'\x20'+af+':\x20'+a6[ab]);}return a7['join']('\x0a');}var iu=new G();function au(a4){const rH=d4;K['_getMatrix'](iu,K['workingColorSpace'],a4);let a5='mat3(\x20'+iu['elements'][rH(0x2db)](a6=>a6[rH(0x582)](0x4))+'\x20)';switch(K[rH(0x4aa)](a4)){case at:return[a5,'LinearTransferOETF'];case ot:return[a5,'sRGBTransferOETF'];default:return z('WebGLProgram:\x20Unsupported\x20color\x20space:\x20',a4),[a5,'LinearTransferOETF'];}}function ou(a4,a5,a6){const rI=d4;let a7=a4['getShaderParameter'](a5,a4['COMPILE_STATUS']),a8=(a4[rI(0x15e)](a5)||'')['trim']();if(a7&&a8==='')return'';let a9=/ERROR: 0:(\d+)/[rI(0x14a)](a8);if(a9){let ab=parseInt(a9[0x1]);return a6['toUpperCase']()+'\x0a\x0a'+a8+'\x0a\x0a'+ru(a4[rI(0x412)](a5),ab);}else return a8;}function su(a4,a5){const rJ=d4;let a6=au(a5);return['vec4\x20'+a4+'(\x20vec4\x20value\x20)\x20{',rJ(0x28f)+a6[0x1]+'(\x20vec4(\x20value.rgb\x20*\x20'+a6[0x0]+',\x20value.a\x20)\x20);','}']['join']('\x0a');}var cu={0x1:'Linear',0x2:d4(0x235),0x3:'Cineon',0x4:'ACESFilmic',0x6:d4(0x631),0x7:'Neutral',0x5:'Custom'};function lu(a4,a5){const rK=d4;let a6=cu[a5];return a6===void 0x0?(z('WebGLProgram:\x20Unsupported\x20toneMapping:',a5),rK(0x63b)+a4+'(\x20vec3\x20color\x20)\x20{\x20return\x20LinearToneMapping(\x20color\x20);\x20}'):'vec3\x20'+a4+'(\x20vec3\x20color\x20)\x20{\x20return\x20'+a6+'ToneMapping(\x20color\x20);\x20}';}var uu=new W();function du(){return K['getLuminanceCoefficients'](uu),['float\x20luminance(\x20const\x20in\x20vec3\x20rgb\x20)\x20{','\x09const\x20vec3\x20weights\x20=\x20vec3(\x20'+uu['x']['toFixed'](0x4)+',\x20'+uu['y']['toFixed'](0x4)+',\x20'+uu['z']['toFixed'](0x4)+'\x20);','\x09return\x20dot(\x20weights,\x20rgb\x20);','}']['join']('\x0a');}function fu(a4){return[a4['extensionClipCullDistance']?'#extension\x20GL_ANGLE_clip_cull_distance\x20:\x20require':'',a4['extensionMultiDraw']?'#extension\x20GL_ANGLE_multi_draw\x20:\x20require':'']['filter'](hu)['join']('\x0a');}function pu(a4){const rL=d4;let a5=[];for(let a6 in a4){let a7=a4[a6];a7!==!0x1&&a5['push'](rL(0x409)+a6+'\x20'+a7);}return a5['join']('\x0a');}function mu(a4,a5){const rM=d4;let a6={},a7=a4['getProgramParameter'](a5,a4['ACTIVE_ATTRIBUTES']);for(let a8=0x0;a8<a7;a8++){let a9=a4['getActiveAttrib'](a5,a8),ab=a9[rM(0x3bd)],af=0x1;a9['type']===a4['FLOAT_MAT2']&&(af=0x2),a9['type']===a4['FLOAT_MAT3']&&(af=0x3),a9['type']===a4['FLOAT_MAT4']&&(af=0x4),a6[ab]={'type':a9['type'],'location':a4['getAttribLocation'](a5,ab),'locationSize':af};}return a6;}function hu(a4){return a4!=='';}function gu(a4,a5){const rN=d4;let a6=a5['numSpotLightShadows']+a5['numSpotLightMaps']-a5['numSpotLightShadowsWithMaps'];return a4['replace'](/NUM_DIR_LIGHTS/g,a5['numDirLights'])['replace'](/NUM_SPOT_LIGHTS/g,a5['numSpotLights'])['replace'](/NUM_SPOT_LIGHT_MAPS/g,a5[rN(0x29f)])['replace'](/NUM_SPOT_LIGHT_COORDS/g,a6)['replace'](/NUM_RECT_AREA_LIGHTS/g,a5[rN(0x264)])['replace'](/NUM_POINT_LIGHTS/g,a5['numPointLights'])['replace'](/NUM_HEMI_LIGHTS/g,a5['numHemiLights'])['replace'](/NUM_DIR_LIGHT_SHADOWS/g,a5['numDirLightShadows'])['replace'](/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,a5['numSpotLightShadowsWithMaps'])['replace'](/NUM_SPOT_LIGHT_SHADOWS/g,a5['numSpotLightShadows'])[rN(0x3db)](/NUM_POINT_LIGHT_SHADOWS/g,a5['numPointLightShadows']);}function _u(a4,a5){return a4['replace'](/NUM_CLIPPING_PLANES/g,a5['numClippingPlanes'])['replace'](/UNION_CLIPPING_PLANES/g,a5['numClippingPlanes']-a5['numClipIntersection']);}var vu=/^[ \t]*#include +<([\w\d./]+)>/gm;function yu(a4){return a4['replace'](vu,xu);}var bu=new Map();function xu(a4,a5){const rO=d4;let a6=Q[a5];if(a6===void 0x0){let a7=bu[rO(0x61a)](a5);if(a7!==void 0x0)a6=Q[a7],z('WebGLRenderer:\x20Shader\x20chunk\x20\x22%s\x22\x20has\x20been\x20deprecated.\x20Use\x20\x22%s\x22\x20instead.',a5,a7);else throw Error(rO(0x45f)+a5+'>');}return yu(a6);}var Su=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Cu(a4){const rP=d4;return a4[rP(0x3db)](Su,wu);}function wu(a4,a5,a6,a7){const rQ=d4;let a8='';for(let a9=parseInt(a5);a9<parseInt(a6);a9++)a8+=a7['replace'](/\[\s*i\s*\]/g,'[\x20'+a9+'\x20]')[rQ(0x3db)](/UNROLLED_LOOP_INDEX/g,a9);return a8;}function Tu(a4){const rR=d4;let a5='precision\x20'+a4['precision']+'\x20float;\x0a\x09precision\x20'+a4['precision']+'\x20int;\x0a\x09precision\x20'+a4['precision']+'\x20sampler2D;\x0a\x09precision\x20'+a4['precision']+rR(0x389)+a4['precision']+'\x20sampler3D;\x0a\x09precision\x20'+a4[rR(0x157)]+'\x20sampler2DArray;\x0a\x09precision\x20'+a4['precision']+'\x20sampler2DShadow;\x0a\x09precision\x20'+a4['precision']+'\x20samplerCubeShadow;\x0a\x09precision\x20'+a4['precision']+rR(0x53b)+a4['precision']+'\x20isampler2D;\x0a\x09precision\x20'+a4['precision']+'\x20isampler3D;\x0a\x09precision\x20'+a4['precision']+'\x20isamplerCube;\x0a\x09precision\x20'+a4['precision']+'\x20isampler2DArray;\x0a\x09precision\x20'+a4['precision']+'\x20usampler2D;\x0a\x09precision\x20'+a4['precision']+'\x20usampler3D;\x0a\x09precision\x20'+a4['precision']+'\x20usamplerCube;\x0a\x09precision\x20'+a4['precision']+'\x20usampler2DArray;\x0a\x09';return a4['precision']==='highp'?a5+='\x0a#define\x20HIGH_PRECISION':a4['precision']===rR(0x324)?a5+='\x0a#define\x20MEDIUM_PRECISION':a4['precision']==='lowp'&&(a5+=rR(0x43f)),a5;}var Eu={0x1:'SHADOWMAP_TYPE_PCF',0x3:'SHADOWMAP_TYPE_VSM'};function Du(a4){return Eu[a4['shadowMapType']]||'SHADOWMAP_TYPE_BASIC';}var Ou={0x12d:'ENVMAP_TYPE_CUBE',0x12e:d4(0x4bd),0x132:'ENVMAP_TYPE_CUBE_UV'};function ku(a4){const rS=d4;return a4['envMap']===!0x1?'ENVMAP_TYPE_CUBE':Ou[a4[rS(0x1fe)]]||rS(0x4bd);}var Au={0x12e:d4(0x165)};function ju(a4){const rT=d4;return a4[rT(0x393)]===!0x1?'ENVMAP_MODE_REFLECTION':Au[a4['envMapMode']]||'ENVMAP_MODE_REFLECTION';}var Mu={0x0:'ENVMAP_BLENDING_MULTIPLY',0x1:'ENVMAP_BLENDING_MIX',0x2:d4(0x3bf)};function Nu(a4){return a4['envMap']===!0x1?'ENVMAP_BLENDING_NONE':Mu[a4['combine']]||'ENVMAP_BLENDING_NONE';}function Pu(a4){const rU=d4;let a5=a4[rU(0x470)];if(a5===null)return null;let a6=Math['log2'](a5)-0x2,a7=0x1/a5;return{'texelWidth':0x1/(0x3*Math['max'](Math[rU(0x53c)](0x2,a6),0x70)),'texelHeight':a7,'maxMip':a6};}function Fu(a4,a5,a6,a7){const rV=d4;let a8=a4[rV(0x3a7)](),a9=a6['defines'],ab=a6['vertexShader'],af=a6['fragmentShader'],ag=Du(a6),ah=ku(a6),aj=ju(a6),ak=Nu(a6),am=Pu(a6),ap=fu(a6),aq=pu(a9),av=a8[rV(0x5db)](),aw,ax,ay=a6['glslVersion']?'#version\x20'+a6['glslVersion']+'\x0a':'';a6['isRawShaderMaterial']?(aw=['#define\x20SHADER_TYPE\x20'+a6['shaderType'],rV(0x2b5)+a6['shaderName'],aq]['filter'](hu)['join']('\x0a'),aw['length']>0x0&&(aw+='\x0a'),ax=['#define\x20SHADER_TYPE\x20'+a6[rV(0x253)],'#define\x20SHADER_NAME\x20'+a6[rV(0x307)],aq]['filter'](hu)['join']('\x0a'),ax['length']>0x0&&(ax+='\x0a')):(aw=[Tu(a6),'#define\x20SHADER_TYPE\x20'+a6['shaderType'],'#define\x20SHADER_NAME\x20'+a6['shaderName'],aq,a6['extensionClipCullDistance']?rV(0x53e):'',a6['batching']?'#define\x20USE_BATCHING':'',a6[rV(0x46c)]?rV(0x3b7):'',a6['instancing']?'#define\x20USE_INSTANCING':'',a6['instancingColor']?'#define\x20USE_INSTANCING_COLOR':'',a6['instancingMorph']?'#define\x20USE_INSTANCING_MORPH':'',a6['useFog']&&a6['fog']?'#define\x20USE_FOG':'',a6['useFog']&&a6[rV(0x4a3)]?'#define\x20FOG_EXP2':'',a6[rV(0x2db)]?'#define\x20USE_MAP':'',a6[rV(0x393)]?rV(0x4a7):'',a6[rV(0x393)]?'#define\x20'+aj:'',a6['lightMap']?'#define\x20USE_LIGHTMAP':'',a6[rV(0x5b1)]?'#define\x20USE_AOMAP':'',a6['bumpMap']?'#define\x20USE_BUMPMAP':'',a6['normalMap']?'#define\x20USE_NORMALMAP':'',a6['normalMapObjectSpace']?rV(0x411):'',a6[rV(0x1c5)]?'#define\x20USE_NORMALMAP_TANGENTSPACE':'',a6[rV(0x489)]?'#define\x20USE_DISPLACEMENTMAP':'',a6['emissiveMap']?rV(0x469):'',a6['anisotropy']?'#define\x20USE_ANISOTROPY':'',a6[rV(0x184)]?'#define\x20USE_ANISOTROPYMAP':'',a6['clearcoatMap']?'#define\x20USE_CLEARCOATMAP':'',a6[rV(0x343)]?'#define\x20USE_CLEARCOAT_ROUGHNESSMAP':'',a6['clearcoatNormalMap']?rV(0x5c7):'',a6[rV(0x5c0)]?'#define\x20USE_IRIDESCENCEMAP':'',a6['iridescenceThicknessMap']?'#define\x20USE_IRIDESCENCE_THICKNESSMAP':'',a6['specularMap']?'#define\x20USE_SPECULARMAP':'',a6['specularColorMap']?rV(0x540):'',a6['specularIntensityMap']?'#define\x20USE_SPECULAR_INTENSITYMAP':'',a6['roughnessMap']?'#define\x20USE_ROUGHNESSMAP':'',a6['metalnessMap']?'#define\x20USE_METALNESSMAP':'',a6['alphaMap']?'#define\x20USE_ALPHAMAP':'',a6['alphaHash']?'#define\x20USE_ALPHAHASH':'',a6['transmission']?'#define\x20USE_TRANSMISSION':'',a6[rV(0x1d7)]?'#define\x20USE_TRANSMISSIONMAP':'',a6[rV(0x5e0)]?'#define\x20USE_THICKNESSMAP':'',a6['sheenColorMap']?'#define\x20USE_SHEEN_COLORMAP':'',a6['sheenRoughnessMap']?'#define\x20USE_SHEEN_ROUGHNESSMAP':'',a6['mapUv']?rV(0x51a)+a6['mapUv']:'',a6['alphaMapUv']?'#define\x20ALPHAMAP_UV\x20'+a6['alphaMapUv']:'',a6[rV(0x1c1)]?'#define\x20LIGHTMAP_UV\x20'+a6['lightMapUv']:'',a6['aoMapUv']?'#define\x20AOMAP_UV\x20'+a6[rV(0x4e8)]:'',a6['emissiveMapUv']?rV(0x254)+a6['emissiveMapUv']:'',a6[rV(0x2bc)]?'#define\x20BUMPMAP_UV\x20'+a6['bumpMapUv']:'',a6['normalMapUv']?'#define\x20NORMALMAP_UV\x20'+a6['normalMapUv']:'',a6[rV(0x525)]?'#define\x20DISPLACEMENTMAP_UV\x20'+a6['displacementMapUv']:'',a6['metalnessMapUv']?'#define\x20METALNESSMAP_UV\x20'+a6['metalnessMapUv']:'',a6['roughnessMapUv']?rV(0x35d)+a6['roughnessMapUv']:'',a6['anisotropyMapUv']?'#define\x20ANISOTROPYMAP_UV\x20'+a6['anisotropyMapUv']:'',a6[rV(0x1c8)]?'#define\x20CLEARCOATMAP_UV\x20'+a6['clearcoatMapUv']:'',a6['clearcoatNormalMapUv']?'#define\x20CLEARCOAT_NORMALMAP_UV\x20'+a6[rV(0x219)]:'',a6['clearcoatRoughnessMapUv']?'#define\x20CLEARCOAT_ROUGHNESSMAP_UV\x20'+a6[rV(0x345)]:'',a6['iridescenceMapUv']?'#define\x20IRIDESCENCEMAP_UV\x20'+a6['iridescenceMapUv']:'',a6['iridescenceThicknessMapUv']?rV(0x27b)+a6['iridescenceThicknessMapUv']:'',a6[rV(0x3c6)]?rV(0x5c4)+a6['sheenColorMapUv']:'',a6['sheenRoughnessMapUv']?rV(0x606)+a6['sheenRoughnessMapUv']:'',a6['specularMapUv']?'#define\x20SPECULARMAP_UV\x20'+a6['specularMapUv']:'',a6['specularColorMapUv']?'#define\x20SPECULAR_COLORMAP_UV\x20'+a6['specularColorMapUv']:'',a6['specularIntensityMapUv']?rV(0x135)+a6['specularIntensityMapUv']:'',a6['transmissionMapUv']?'#define\x20TRANSMISSIONMAP_UV\x20'+a6['transmissionMapUv']:'',a6['thicknessMapUv']?'#define\x20THICKNESSMAP_UV\x20'+a6['thicknessMapUv']:'',a6['vertexTangents']&&a6['flatShading']===!0x1?'#define\x20USE_TANGENT':'',a6['vertexNormals']?'#define\x20HAS_NORMAL':'',a6['vertexColors']?'#define\x20USE_COLOR':'',a6['vertexAlphas']?'#define\x20USE_COLOR_ALPHA':'',a6['vertexUv1s']?'#define\x20USE_UV1':'',a6['vertexUv2s']?'#define\x20USE_UV2':'',a6[rV(0x42f)]?'#define\x20USE_UV3':'',a6['pointsUvs']?'#define\x20USE_POINTS_UV':'',a6['flatShading']?'#define\x20FLAT_SHADED':'',a6['skinning']?rV(0x35e):'',a6[rV(0x351)]?'#define\x20USE_MORPHTARGETS':'',a6['morphNormals']&&a6[rV(0x636)]===!0x1?'#define\x20USE_MORPHNORMALS':'',a6[rV(0x59b)]?'#define\x20USE_MORPHCOLORS':'',a6['morphTargetsCount']>0x0?'#define\x20MORPHTARGETS_TEXTURE_STRIDE\x20'+a6[rV(0x355)]:'',a6['morphTargetsCount']>0x0?rV(0x42b)+a6[rV(0x287)]:'',a6[rV(0x4e3)]?'#define\x20DOUBLE_SIDED':'',a6['flipSided']?'#define\x20FLIP_SIDED':'',a6['shadowMapEnabled']?'#define\x20USE_SHADOWMAP':'',a6['shadowMapEnabled']?'#define\x20'+ag:'',a6[rV(0x25f)]?'#define\x20USE_SIZEATTENUATION':'',a6['numLightProbes']>0x0?'#define\x20USE_LIGHT_PROBES':'',a6['logarithmicDepthBuffer']?'#define\x20USE_LOGARITHMIC_DEPTH_BUFFER':'',a6['reversedDepthBuffer']?'#define\x20USE_REVERSED_DEPTH_BUFFER':'',rV(0x1a4),rV(0x452),rV(0x282),'uniform\x20mat4\x20viewMatrix;',rV(0x458),'uniform\x20vec3\x20cameraPosition;','uniform\x20bool\x20isOrthographic;','#ifdef\x20USE_INSTANCING','\x09attribute\x20mat4\x20instanceMatrix;','#endif','#ifdef\x20USE_INSTANCING_COLOR','\x09attribute\x20vec3\x20instanceColor;','#endif','#ifdef\x20USE_INSTANCING_MORPH','\x09uniform\x20sampler2D\x20morphTexture;','#endif',rV(0x47d),'attribute\x20vec3\x20normal;','attribute\x20vec2\x20uv;','#ifdef\x20USE_UV1','\x09attribute\x20vec2\x20uv1;','#endif','#ifdef\x20USE_UV2','\x09attribute\x20vec2\x20uv2;','#endif','#ifdef\x20USE_UV3','\x09attribute\x20vec2\x20uv3;','#endif','#ifdef\x20USE_TANGENT',rV(0x12b),rV(0x20a),'#if\x20defined(\x20USE_COLOR_ALPHA\x20)',rV(0x12c),'#elif\x20defined(\x20USE_COLOR\x20)','\x09attribute\x20vec3\x20color;','#endif',rV(0x60b),'\x09attribute\x20vec4\x20skinIndex;',rV(0x45c),'#endif','\x0a']['filter'](hu)['join']('\x0a'),ax=[Tu(a6),'#define\x20SHADER_TYPE\x20'+a6['shaderType'],'#define\x20SHADER_NAME\x20'+a6['shaderName'],aq,a6['useFog']&&a6['fog']?rV(0x3bb):'',a6['useFog']&&a6['fogExp2']?'#define\x20FOG_EXP2':'',a6[rV(0x326)]?rV(0x5ac):'',a6[rV(0x2db)]?'#define\x20USE_MAP':'',a6['matcap']?'#define\x20USE_MATCAP':'',a6['envMap']?rV(0x4a7):'',a6['envMap']?'#define\x20'+ah:'',a6['envMap']?'#define\x20'+aj:'',a6['envMap']?rV(0x409)+ak:'',am?'#define\x20CUBEUV_TEXEL_WIDTH\x20'+am['texelWidth']:'',am?'#define\x20CUBEUV_TEXEL_HEIGHT\x20'+am[rV(0x619)]:'',am?'#define\x20CUBEUV_MAX_MIP\x20'+am['maxMip']+'.0':'',a6['lightMap']?'#define\x20USE_LIGHTMAP':'',a6['aoMap']?'#define\x20USE_AOMAP':'',a6['bumpMap']?'#define\x20USE_BUMPMAP':'',a6['normalMap']?'#define\x20USE_NORMALMAP':'',a6['normalMapObjectSpace']?'#define\x20USE_NORMALMAP_OBJECTSPACE':'',a6['normalMapTangentSpace']?'#define\x20USE_NORMALMAP_TANGENTSPACE':'',a6['packedNormalMap']?'#define\x20USE_PACKED_NORMALMAP':'',a6['emissiveMap']?'#define\x20USE_EMISSIVEMAP':'',a6['anisotropy']?'#define\x20USE_ANISOTROPY':'',a6['anisotropyMap']?'#define\x20USE_ANISOTROPYMAP':'',a6[rV(0x381)]?'#define\x20USE_CLEARCOAT':'',a6[rV(0x1f2)]?'#define\x20USE_CLEARCOATMAP':'',a6['clearcoatRoughnessMap']?'#define\x20USE_CLEARCOAT_ROUGHNESSMAP':'',a6['clearcoatNormalMap']?rV(0x5c7):'',a6['dispersion']?'#define\x20USE_DISPERSION':'',a6['iridescence']?'#define\x20USE_IRIDESCENCE':'',a6['iridescenceMap']?'#define\x20USE_IRIDESCENCEMAP':'',a6['iridescenceThicknessMap']?'#define\x20USE_IRIDESCENCE_THICKNESSMAP':'',a6['specularMap']?'#define\x20USE_SPECULARMAP':'',a6['specularColorMap']?'#define\x20USE_SPECULAR_COLORMAP':'',a6['specularIntensityMap']?'#define\x20USE_SPECULAR_INTENSITYMAP':'',a6['roughnessMap']?'#define\x20USE_ROUGHNESSMAP':'',a6[rV(0x3e2)]?'#define\x20USE_METALNESSMAP':'',a6['alphaMap']?rV(0x4a0):'',a6[rV(0x5e2)]?'#define\x20USE_ALPHATEST':'',a6['alphaHash']?'#define\x20USE_ALPHAHASH':'',a6['sheen']?'#define\x20USE_SHEEN':'',a6['sheenColorMap']?'#define\x20USE_SHEEN_COLORMAP':'',a6['sheenRoughnessMap']?'#define\x20USE_SHEEN_ROUGHNESSMAP':'',a6[rV(0x195)]?'#define\x20USE_TRANSMISSION':'',a6[rV(0x1d7)]?'#define\x20USE_TRANSMISSIONMAP':'',a6['thicknessMap']?rV(0x328):'',a6['vertexTangents']&&a6['flatShading']===!0x1?'#define\x20USE_TANGENT':'',a6['vertexColors']||a6['instancingColor']?rV(0x1d5):'',a6['vertexAlphas']||a6['batchingColor']?'#define\x20USE_COLOR_ALPHA':'',a6['vertexUv1s']?'#define\x20USE_UV1':'',a6['vertexUv2s']?'#define\x20USE_UV2':'',a6['vertexUv3s']?'#define\x20USE_UV3':'',a6['pointsUvs']?'#define\x20USE_POINTS_UV':'',a6['gradientMap']?'#define\x20USE_GRADIENTMAP':'',a6['flatShading']?'#define\x20FLAT_SHADED':'',a6[rV(0x4e3)]?'#define\x20DOUBLE_SIDED':'',a6[rV(0x524)]?rV(0x3ae):'',a6['shadowMapEnabled']?'#define\x20USE_SHADOWMAP':'',a6['shadowMapEnabled']?rV(0x409)+ag:'',a6['premultipliedAlpha']?rV(0x250):'',a6['numLightProbes']>0x0?'#define\x20USE_LIGHT_PROBES':'',a6['numLightProbeGrids']>0x0?rV(0x4bf):'',a6['decodeVideoTexture']?'#define\x20DECODE_VIDEO_TEXTURE':'',a6[rV(0x2af)]?'#define\x20DECODE_VIDEO_TEXTURE_EMISSIVE':'',a6['logarithmicDepthBuffer']?'#define\x20USE_LOGARITHMIC_DEPTH_BUFFER':'',a6['reversedDepthBuffer']?'#define\x20USE_REVERSED_DEPTH_BUFFER':'',rV(0x26d),'uniform\x20vec3\x20cameraPosition;','uniform\x20bool\x20isOrthographic;',a6['toneMapping']===0x0?'':'#define\x20TONE_MAPPING',a6['toneMapping']===0x0?'':Q[rV(0x141)],a6['toneMapping']===0x0?'':lu(rV(0x185),a6['toneMapping']),a6['dithering']?'#define\x20DITHERING':'',a6['opaque']?'#define\x20OPAQUE':'',Q['colorspace_pars_fragment'],su('linearToOutputTexel',a6['outputColorSpace']),du(),a6['useDepthPacking']?'#define\x20DEPTH_PACKING\x20'+a6['depthPacking']:'','\x0a']['filter'](hu)['join']('\x0a')),ab=yu(ab),ab=gu(ab,a6),ab=_u(ab,a6),af=yu(af),af=gu(af,a6),af=_u(af,a6),ab=Cu(ab),af=Cu(af),a6['isRawShaderMaterial']!==!0x0&&(ay='#version\x20300\x20es\x0a',aw=[ap,rV(0x47c),'#define\x20varying\x20out','#define\x20texture2D\x20texture']['join']('\x0a')+'\x0a'+aw,ax=['#define\x20varying\x20in',a6[rV(0x431)]==='300\x20es'?'':'layout(location\x20=\x200)\x20out\x20highp\x20vec4\x20pc_fragColor;',a6['glslVersion']==='300\x20es'?'':'#define\x20gl_FragColor\x20pc_fragColor','#define\x20gl_FragDepthEXT\x20gl_FragDepth',rV(0x538),'#define\x20textureCube\x20texture','#define\x20texture2DProj\x20textureProj',rV(0x338),'#define\x20texture2DProjLodEXT\x20textureProjLod','#define\x20textureCubeLodEXT\x20textureLod','#define\x20texture2DGradEXT\x20textureGrad','#define\x20texture2DProjGradEXT\x20textureProjGrad','#define\x20textureCubeGradEXT\x20textureGrad'][rV(0x417)]('\x0a')+'\x0a'+ax);let az=ay+aw+ab,aA=ay+ax+af,aB=eu(a8,a8[rV(0x220)],az),aC=eu(a8,a8['FRAGMENT_SHADER'],aA);a8[rV(0x2b9)](av,aB),a8['attachShader'](av,aC),a6['index0AttributeName']===void 0x0?a6['morphTargets']===!0x0&&a8['bindAttribLocation'](av,0x0,'position'):a8['bindAttribLocation'](av,0x0,a6['index0AttributeName']),a8[rV(0x438)](av);function aD(aH){const rW=rV;if(a4['debug']['checkShaderErrors']){let aI=a8['getProgramInfoLog'](av)||'',aJ=a8['getShaderInfoLog'](aB)||'',aK=a8[rW(0x15e)](aC)||'',aL=aI['trim'](),aM=aJ['trim'](),aN=aK['trim'](),aO=!0x0,aP=!0x0;if(a8['getProgramParameter'](av,a8[rW(0x4f2)])===!0x1){if(aO=!0x1,typeof a4['debug'][rW(0x547)]=='function')a4['debug']['onShaderError'](a8,av,aB,aC);else{let aQ=ou(a8,aB,'vertex'),aR=ou(a8,aC,'fragment');B('THREE.WebGLProgram:\x20Shader\x20Error\x20'+a8['getError']()+'\x20-\x20VALIDATE_STATUS\x20'+a8['getProgramParameter'](av,a8['VALIDATE_STATUS'])+'\x0a\x0aMaterial\x20Name:\x20'+aH['name']+'\x0aMaterial\x20Type:\x20'+aH['type']+'\x0a\x0aProgram\x20Info\x20Log:\x20'+aL+'\x0a'+aQ+'\x0a'+aR);}}else aL===''?(aM===''||aN==='')&&(aP=!0x1):z('WebGLProgram:\x20Program\x20Info\x20Log:',aL);aP&&(aH['diagnostics']={'runnable':aO,'programLog':aL,'vertexShader':{'log':aM,'prefix':aw},'fragmentShader':{'log':aN,'prefix':ax}});}a8['deleteShader'](aB),a8['deleteShader'](aC),aE=new $l(a8,av),aF=mu(a8,av);}let aE;this['getUniforms']=function(){return aE===void 0x0&&aD(this),aE;};let aF;this['getAttributes']=function(){return aF===void 0x0&&aD(this),aF;};let aG=a6['rendererExtensionParallelShaderCompile']===!0x1;return this[rV(0x4f3)]=function(){return aG===!0x1&&(aG=a8['getProgramParameter'](av,tu)),aG;},this['destroy']=function(){a7['releaseStatesOfProgram'](this),a8['deleteProgram'](av),this['program']=void 0x0;},this[rV(0x3e0)]=a6['shaderType'],this['name']=a6['shaderName'],this['id']=nu++,this['cacheKey']=a5,this['usedTimes']=0x1,this[rV(0x589)]=av,this['vertexShader']=aB,this['fragmentShader']=aC,this;}var Iu=0x0,Lu=class{constructor(){this['shaderCache']=new Map(),this['materialCache']=new Map();}['update'](a4){const rX=d4;let a5=a4[rX(0x175)],a6=a4['fragmentShader'],a7=this[rX(0x593)](a5),a8=this['_getShaderStage'](a6),a9=this['_getShaderCacheForMaterial'](a4);return a9['has'](a7)===!0x1&&(a9['add'](a7),a7['usedTimes']++),a9['has'](a8)===!0x1&&(a9['add'](a8),a8[rX(0x211)]++),this;}['remove'](a4){const rY=d4;let a5=this['materialCache']['get'](a4);for(let a6 of a5)a6['usedTimes']--,a6['usedTimes']===0x0&&this['shaderCache'][rY(0x1bd)](a6['code']);return this['materialCache']['delete'](a4),this;}['getVertexShaderID'](a4){const rZ=d4;return this[rZ(0x593)](a4['vertexShader'])['id'];}['getFragmentShaderID'](a4){const s0=d4;return this[s0(0x593)](a4[s0(0x1e0)])['id'];}['dispose'](){const s1=d4;this['shaderCache']['clear'](),this['materialCache'][s1(0x54f)]();}['_getShaderCacheForMaterial'](a4){let a5=this['materialCache'],a6=a5['get'](a4);return a6===void 0x0&&(a6=new Set(),a5['set'](a4,a6)),a6;}[d4(0x593)](a4){let a5=this['shaderCache'],a6=a5['get'](a4);return a6===void 0x0&&(a6=new Ru(a4),a5['set'](a4,a6)),a6;}},Ru=class{constructor(a4){const s2=d4;this['id']=Iu++,this[s2(0x27d)]=a4,this['usedTimes']=0x0;}};function zu(a4){return a4===0x406||a4===0x9272||a4===0x8dbd;}function Bu(a4,a5,a6,a7,a8,a9){const s3=d4;let ab=new Tn(),af=new Lu(),ag=new Set(),ah=[],aj=new Map(),ak=a7['logarithmicDepthBuffer'],am=a7['precision'],ap={'MeshDepthMaterial':s3(0x47a),'MeshDistanceMaterial':'distance','MeshNormalMaterial':'normal','MeshBasicMaterial':s3(0x579),'MeshLambertMaterial':'lambert','MeshPhongMaterial':'phong','MeshToonMaterial':'toon','MeshStandardMaterial':'physical','MeshPhysicalMaterial':'physical','MeshMatcapMaterial':s3(0x2b7),'LineBasicMaterial':'basic','LineDashedMaterial':'dashed','PointsMaterial':'points','ShadowMaterial':'shadow','SpriteMaterial':'sprite'};function aq(aE){return ag['add'](aE),aE===0x0?'uv':'uv'+aE;}function av(aE,aF,aG,aH,aI,aJ){const s4=s3;let aK=aH['fog'],aL=aI['geometry'],aM=aE['isMeshStandardMaterial']||aE['isMeshLambertMaterial']||aE[s4(0x50c)]?aH['environment']:null,aN=aE['isMeshStandardMaterial']||aE['isMeshLambertMaterial']&&!aE[s4(0x393)]||aE['isMeshPhongMaterial']&&!aE['envMap'],aO=a5['get'](aE['envMap']||aM,aN),aP=aO&&aO['mapping']===0x132?aO['image']['height']:null,aQ=ap[aE['type']];aE['precision']!==null&&(am=a7['getMaxPrecision'](aE['precision']),am!==aE['precision']&&z(s4(0x1e1),aE['precision'],s4(0x5cf),am,s4(0x51c)));let aR=aL['morphAttributes']['position']||aL[s4(0x4da)]['normal']||aL['morphAttributes'][s4(0x180)],aS=aR===void 0x0?0x0:aR['length'],aT=0x0;aL['morphAttributes'][s4(0x4ed)]!==void 0x0&&(aT=0x1),aL['morphAttributes']['normal']!==void 0x0&&(aT=0x2),aL[s4(0x4da)][s4(0x180)]!==void 0x0&&(aT=0x3);let aU,aV,aW,aX;if(aQ){let bP=cc[aQ];aU=bP['vertexShader'],aV=bP['fragmentShader'];}else aU=aE[s4(0x175)],aV=aE['fragmentShader'],af['update'](aE),aW=af[s4(0x386)](aE),aX=af['getFragmentShaderID'](aE);let aY=a4['getRenderTarget'](),aZ=a4['state']['buffers'][s4(0x47a)]['getReversed'](),b0=aI['isInstancedMesh']===!0x0,b1=aI['isBatchedMesh']===!0x0,b2=!!aE['map'],b3=!!aE['matcap'],b4=!!aO,b5=!!aE['aoMap'],b6=!!aE['lightMap'],b7=!!aE['bumpMap'],b8=!!aE['normalMap'],b9=!!aE['displacementMap'],bb=!!aE['emissiveMap'],bf=!!aE['metalnessMap'],bg=!!aE[s4(0x4b7)],bh=aE['anisotropy']>0x0,bj=aE['clearcoat']>0x0,bk=aE[s4(0x30a)]>0x0,bm=aE['iridescence']>0x0,bp=aE['sheen']>0x0,bq=aE['transmission']>0x0,bv=bh&&!!aE[s4(0x184)],bw=bj&&!!aE['clearcoatMap'],bx=bj&&!!aE['clearcoatNormalMap'],by=bj&&!!aE[s4(0x343)],bz=bm&&!!aE[s4(0x5c0)],bA=bm&&!!aE['iridescenceThicknessMap'],bB=bp&&!!aE['sheenColorMap'],bC=bp&&!!aE['sheenRoughnessMap'],bD=!!aE['specularMap'],bE=!!aE['specularColorMap'],bF=!!aE['specularIntensityMap'],bG=bq&&!!aE['transmissionMap'],bH=bq&&!!aE['thicknessMap'],bI=!!aE['gradientMap'],bJ=!!aE[s4(0x2d6)],bK=aE['alphaTest']>0x0,bL=!!aE[s4(0x233)],bM=!!aE['extensions'],bN=0x0;aE['toneMapped']&&(aY===null||aY['isXRRenderTarget']===!0x0)&&(bN=a4['toneMapping']);let bO={'shaderID':aQ,'shaderType':aE['type'],'shaderName':aE['name'],'vertexShader':aU,'fragmentShader':aV,'defines':aE['defines'],'customVertexShaderID':aW,'customFragmentShaderID':aX,'isRawShaderMaterial':aE['isRawShaderMaterial']===!0x0,'glslVersion':aE[s4(0x431)],'precision':am,'batching':b1,'batchingColor':b1&&aI[s4(0x429)]!==null,'instancing':b0,'instancingColor':b0&&aI['instanceColor']!==null,'instancingMorph':b0&&aI[s4(0x553)]!==null,'outputColorSpace':aY===null?a4['outputColorSpace']:aY[s4(0x392)]===!0x0?aY['texture']['colorSpace']:K['workingColorSpace'],'alphaToCoverage':!!aE['alphaToCoverage'],'map':b2,'matcap':b3,'envMap':b4,'envMapMode':b4&&aO['mapping'],'envMapCubeUVHeight':aP,'aoMap':b5,'lightMap':b6,'bumpMap':b7,'normalMap':b8,'displacementMap':b9,'emissiveMap':bb,'normalMapObjectSpace':b8&&aE['normalMapType']===0x1,'normalMapTangentSpace':b8&&aE[s4(0x595)]===0x0,'packedNormalMap':b8&&aE['normalMapType']===0x0&&zu(aE['normalMap']['format']),'metalnessMap':bf,'roughnessMap':bg,'anisotropy':bh,'anisotropyMap':bv,'clearcoat':bj,'clearcoatMap':bw,'clearcoatNormalMap':bx,'clearcoatRoughnessMap':by,'dispersion':bk,'iridescence':bm,'iridescenceMap':bz,'iridescenceThicknessMap':bA,'sheen':bp,'sheenColorMap':bB,'sheenRoughnessMap':bC,'specularMap':bD,'specularColorMap':bE,'specularIntensityMap':bF,'transmission':bq,'transmissionMap':bG,'thicknessMap':bH,'gradientMap':bI,'opaque':aE['transparent']===!0x1&&aE['blending']===0x1&&aE[s4(0x326)]===!0x1,'alphaMap':bJ,'alphaTest':bK,'alphaHash':bL,'combine':aE['combine'],'mapUv':b2&&aq(aE[s4(0x2db)]['channel']),'aoMapUv':b5&&aq(aE['aoMap'][s4(0x445)]),'lightMapUv':b6&&aq(aE['lightMap'][s4(0x445)]),'bumpMapUv':b7&&aq(aE['bumpMap'][s4(0x445)]),'normalMapUv':b8&&aq(aE['normalMap']['channel']),'displacementMapUv':b9&&aq(aE['displacementMap'][s4(0x445)]),'emissiveMapUv':bb&&aq(aE['emissiveMap']['channel']),'metalnessMapUv':bf&&aq(aE['metalnessMap']['channel']),'roughnessMapUv':bg&&aq(aE['roughnessMap']['channel']),'anisotropyMapUv':bv&&aq(aE['anisotropyMap']['channel']),'clearcoatMapUv':bw&&aq(aE['clearcoatMap']['channel']),'clearcoatNormalMapUv':bx&&aq(aE['clearcoatNormalMap']['channel']),'clearcoatRoughnessMapUv':by&&aq(aE['clearcoatRoughnessMap']['channel']),'iridescenceMapUv':bz&&aq(aE[s4(0x5c0)]['channel']),'iridescenceThicknessMapUv':bA&&aq(aE[s4(0x2b2)][s4(0x445)]),'sheenColorMapUv':bB&&aq(aE['sheenColorMap']['channel']),'sheenRoughnessMapUv':bC&&aq(aE['sheenRoughnessMap'][s4(0x445)]),'specularMapUv':bD&&aq(aE['specularMap']['channel']),'specularColorMapUv':bE&&aq(aE['specularColorMap']['channel']),'specularIntensityMapUv':bF&&aq(aE['specularIntensityMap']['channel']),'transmissionMapUv':bG&&aq(aE[s4(0x1d7)]['channel']),'thicknessMapUv':bH&&aq(aE['thicknessMap'][s4(0x445)]),'alphaMapUv':bJ&&aq(aE['alphaMap'][s4(0x445)]),'vertexTangents':!!aL[s4(0x1b6)]['tangent']&&(b8||bh),'vertexNormals':!!aL['attributes']['normal'],'vertexColors':aE[s4(0x549)],'vertexAlphas':aE[s4(0x549)]===!0x0&&!!aL['attributes']['color']&&aL['attributes'][s4(0x180)]['itemSize']===0x4,'pointsUvs':aI[s4(0x332)]===!0x0&&!!aL[s4(0x1b6)]['uv']&&(b2||bJ),'fog':!!aK,'useFog':aE['fog']===!0x0,'fogExp2':!!aK&&aK['isFogExp2'],'flatShading':aE['wireframe']===!0x1&&(aE['flatShading']===!0x0||aL['attributes']['normal']===void 0x0&&b8===!0x1&&(aE['isMeshLambertMaterial']||aE['isMeshPhongMaterial']||aE[s4(0x147)]||aE['isMeshPhysicalMaterial'])),'sizeAttenuation':aE['sizeAttenuation']===!0x0,'logarithmicDepthBuffer':ak,'reversedDepthBuffer':aZ,'skinning':aI['isSkinnedMesh']===!0x0,'morphTargets':aL['morphAttributes']['position']!==void 0x0,'morphNormals':aL[s4(0x4da)][s4(0x171)]!==void 0x0,'morphColors':aL['morphAttributes']['color']!==void 0x0,'morphTargetsCount':aS,'morphTextureStride':aT,'numDirLights':aF['directional']['length'],'numPointLights':aF['point']['length'],'numSpotLights':aF['spot']['length'],'numSpotLightMaps':aF['spotLightMap']['length'],'numRectAreaLights':aF[s4(0x198)]['length'],'numHemiLights':aF['hemi']['length'],'numDirLightShadows':aF['directionalShadowMap']['length'],'numPointLightShadows':aF['pointShadowMap']['length'],'numSpotLightShadows':aF['spotShadowMap']['length'],'numSpotLightShadowsWithMaps':aF['numSpotLightShadowsWithMaps'],'numLightProbes':aF['numLightProbes'],'numLightProbeGrids':aJ['length'],'numClippingPlanes':a9['numPlanes'],'numClipIntersection':a9[s4(0x382)],'dithering':aE['dithering'],'shadowMapEnabled':a4['shadowMap']['enabled']&&aG['length']>0x0,'shadowMapType':a4[s4(0x13e)]['type'],'toneMapping':bN,'decodeVideoTexture':b2&&aE['map'][s4(0x5e7)]===!0x0&&K[s4(0x4aa)](aE[s4(0x2db)]['colorSpace'])==='srgb','decodeVideoTextureEmissive':bb&&aE['emissiveMap']['isVideoTexture']===!0x0&&K['getTransfer'](aE['emissiveMap']['colorSpace'])==='srgb','premultipliedAlpha':aE['premultipliedAlpha'],'doubleSided':aE[s4(0x53d)]===0x2,'flipSided':aE['side']===0x1,'useDepthPacking':aE['depthPacking']>=0x0,'depthPacking':aE[s4(0x178)]||0x0,'index0AttributeName':aE[s4(0x40c)],'extensionClipCullDistance':bM&&aE['extensions']['clipCullDistance']===!0x0&&a6['has']('WEBGL_clip_cull_distance'),'extensionMultiDraw':(bM&&aE[s4(0x52e)]['multiDraw']===!0x0||b1)&&a6[s4(0x550)]('WEBGL_multi_draw'),'rendererExtensionParallelShaderCompile':a6['has']('KHR_parallel_shader_compile'),'customProgramCacheKey':aE[s4(0x1e8)]()};return bO['vertexUv1s']=ag['has'](0x1),bO['vertexUv2s']=ag['has'](0x2),bO['vertexUv3s']=ag['has'](0x3),ag['clear'](),bO;}function aw(aE){const s5=s3;let aF=[];if(aE[s5(0x2d2)]?aF['push'](aE['shaderID']):(aF['push'](aE['customVertexShaderID']),aF[s5(0x5d4)](aE[s5(0x404)])),aE['defines']!==void 0x0){for(let aG in aE['defines'])aF['push'](aG),aF['push'](aE['defines'][aG]);}return aE[s5(0x17a)]===!0x1&&(ax(aF,aE),ay(aF,aE),aF['push'](a4['outputColorSpace'])),aF['push'](aE[s5(0x1e8)]),aF['join']();}function ax(aE,aF){const s6=s3;aE['push'](aF['precision']),aE[s6(0x5d4)](aF['outputColorSpace']),aE['push'](aF['envMapMode']),aE[s6(0x5d4)](aF[s6(0x470)]),aE['push'](aF['mapUv']),aE['push'](aF['alphaMapUv']),aE['push'](aF['lightMapUv']),aE['push'](aF['aoMapUv']),aE['push'](aF['bumpMapUv']),aE['push'](aF['normalMapUv']),aE['push'](aF['displacementMapUv']),aE[s6(0x5d4)](aF['emissiveMapUv']),aE['push'](aF[s6(0x4dc)]),aE['push'](aF['roughnessMapUv']),aE['push'](aF['anisotropyMapUv']),aE['push'](aF['clearcoatMapUv']),aE['push'](aF['clearcoatNormalMapUv']),aE['push'](aF['clearcoatRoughnessMapUv']),aE['push'](aF['iridescenceMapUv']),aE['push'](aF[s6(0x1ca)]),aE['push'](aF['sheenColorMapUv']),aE['push'](aF['sheenRoughnessMapUv']),aE['push'](aF['specularMapUv']),aE['push'](aF['specularColorMapUv']),aE[s6(0x5d4)](aF['specularIntensityMapUv']),aE['push'](aF[s6(0x203)]),aE['push'](aF['thicknessMapUv']),aE['push'](aF[s6(0x1cf)]),aE['push'](aF[s6(0x4a3)]),aE['push'](aF['sizeAttenuation']),aE['push'](aF['morphTargetsCount']),aE['push'](aF['morphAttributeCount']),aE[s6(0x5d4)](aF['numDirLights']),aE['push'](aF['numPointLights']),aE['push'](aF['numSpotLights']),aE['push'](aF['numSpotLightMaps']),aE['push'](aF['numHemiLights']),aE['push'](aF['numRectAreaLights']),aE['push'](aF['numDirLightShadows']),aE['push'](aF['numPointLightShadows']),aE[s6(0x5d4)](aF[s6(0x376)]),aE[s6(0x5d4)](aF['numSpotLightShadowsWithMaps']),aE['push'](aF['numLightProbes']),aE['push'](aF[s6(0x151)]),aE['push'](aF[s6(0x185)]),aE['push'](aF[s6(0x5a0)]),aE['push'](aF['numClipIntersection']),aE['push'](aF['depthPacking']);}function ay(aE,aF){const s7=s3;ab['disableAll'](),aF['instancing']&&ab['enable'](0x0),aF['instancingColor']&&ab['enable'](0x1),aF['instancingMorph']&&ab['enable'](0x2),aF['matcap']&&ab['enable'](0x3),aF['envMap']&&ab['enable'](0x4),aF['normalMapObjectSpace']&&ab[s7(0x418)](0x5),aF['normalMapTangentSpace']&&ab['enable'](0x6),aF['clearcoat']&&ab['enable'](0x7),aF['iridescence']&&ab['enable'](0x8),aF[s7(0x5e2)]&&ab['enable'](0x9),aF['vertexColors']&&ab[s7(0x418)](0xa),aF['vertexAlphas']&&ab['enable'](0xb),aF['vertexUv1s']&&ab['enable'](0xc),aF['vertexUv2s']&&ab['enable'](0xd),aF['vertexUv3s']&&ab['enable'](0xe),aF['vertexTangents']&&ab['enable'](0xf),aF['anisotropy']&&ab['enable'](0x10),aF['alphaHash']&&ab['enable'](0x11),aF[s7(0x25a)]&&ab[s7(0x418)](0x12),aF[s7(0x30a)]&&ab['enable'](0x13),aF['batchingColor']&&ab[s7(0x418)](0x14),aF[s7(0x59f)]&&ab['enable'](0x15),aF['packedNormalMap']&&ab['enable'](0x16),aF[s7(0x531)]&&ab['enable'](0x17),aE['push'](ab['mask']),ab['disableAll'](),aF[s7(0x5b2)]&&ab['enable'](0x0),aF['useFog']&&ab['enable'](0x1),aF['flatShading']&&ab['enable'](0x2),aF[s7(0x503)]&&ab[s7(0x418)](0x3),aF['reversedDepthBuffer']&&ab['enable'](0x4),aF[s7(0x1e2)]&&ab['enable'](0x5),aF['morphTargets']&&ab['enable'](0x6),aF['morphNormals']&&ab['enable'](0x7),aF['morphColors']&&ab['enable'](0x8),aF['premultipliedAlpha']&&ab['enable'](0x9),aF['shadowMapEnabled']&&ab[s7(0x418)](0xa),aF['doubleSided']&&ab['enable'](0xb),aF[s7(0x524)]&&ab['enable'](0xc),aF['useDepthPacking']&&ab['enable'](0xd),aF['dithering']&&ab[s7(0x418)](0xe),aF['transmission']&&ab['enable'](0xf),aF['sheen']&&ab['enable'](0x10),aF['opaque']&&ab['enable'](0x11),aF['pointsUvs']&&ab[s7(0x418)](0x12),aF[s7(0x423)]&&ab['enable'](0x13),aF['decodeVideoTextureEmissive']&&ab['enable'](0x14),aF[s7(0x326)]&&ab['enable'](0x15),aF[s7(0x535)]>0x0&&ab['enable'](0x16),aE['push'](ab['mask']);}function az(aE){let aF=ap[aE['type']],aG;if(aF){let aH=cc[aF];aG=vo['clone'](aH['uniforms']);}else aG=aE['uniforms'];return aG;}function aA(aE,aF){let aG=aj['get'](aF);return aG===void 0x0?(aG=new Fu(a4,aF,aE,a8),ah['push'](aG),aj['set'](aF,aG)):++aG['usedTimes'],aG;}function aB(aE){if(--aE['usedTimes']===0x0){let aF=ah['indexOf'](aE);ah[aF]=ah[ah['length']-0x1],ah['pop'](),aj['delete'](aE['cacheKey']),aE['destroy']();}}function aC(aE){const s8=s3;af[s8(0x57b)](aE);}function aD(){const s9=s3;af[s9(0x565)]();}return{'getParameters':av,'getProgramCacheKey':aw,'getUniforms':az,'acquireProgram':aA,'releaseProgram':aB,'releaseShaderCache':aC,'programs':ah,'dispose':aD};}function Vu(){let a4=new WeakMap();function a5(ab){return a4['has'](ab);}function a6(ab){let af=a4['get'](ab);return af===void 0x0&&(af={},a4['set'](ab,af)),af;}function a7(ab){a4['delete'](ab);}function a8(ab,af,ag){a4['get'](ab)[af]=ag;}function a9(){a4=new WeakMap();}return{'has':a5,'get':a6,'remove':a7,'update':a8,'dispose':a9};}function Hu(a4,a5){const sb=d4;return a4['groupOrder']===a5['groupOrder']?a4['renderOrder']===a5['renderOrder']?a4['material']['id']===a5['material']['id']?a4['materialVariant']===a5[sb(0x1d3)]?a4['z']===a5['z']?a4['id']-a5['id']:a4['z']-a5['z']:a4[sb(0x1d3)]-a5['materialVariant']:a4['material']['id']-a5[sb(0x22b)]['id']:a4['renderOrder']-a5['renderOrder']:a4['groupOrder']-a5[sb(0x13b)];}function Uu(a4,a5){const sf=d4;return a4['groupOrder']===a5['groupOrder']?a4['renderOrder']===a5[sf(0x3f0)]?a4['z']===a5['z']?a4['id']-a5['id']:a5['z']-a4['z']:a4['renderOrder']-a5[sf(0x3f0)]:a4['groupOrder']-a5['groupOrder'];}function Wu(){let a4=[],a5=0x0,a6=[],a7=[],a8=[];function a9(){a5=0x0,a6['length']=0x0,a7['length']=0x0,a8['length']=0x0;}function ab(am){let ap=0x0;return am['isInstancedMesh']&&(ap+=0x2),am['isSkinnedMesh']&&(ap+=0x1),ap;}function af(am,ap,aq,av,aw,ax){const sg=a1;let ay=a4[a5];return ay===void 0x0?(ay={'id':am['id'],'object':am,'geometry':ap,'material':aq,'materialVariant':ab(am),'groupOrder':av,'renderOrder':am['renderOrder'],'z':aw,'group':ax},a4[a5]=ay):(ay['id']=am['id'],ay['object']=am,ay['geometry']=ap,ay['material']=aq,ay['materialVariant']=ab(am),ay['groupOrder']=av,ay[sg(0x3f0)]=am[sg(0x3f0)],ay['z']=aw,ay['group']=ax),a5++,ay;}function ag(am,ap,aq,av,aw,ax){let ay=af(am,ap,aq,av,aw,ax);aq['transmission']>0x0?a7['push'](ay):aq['transparent']===!0x0?a8['push'](ay):a6['push'](ay);}function ah(am,ap,aq,av,aw,ax){const sh=a1;let ay=af(am,ap,aq,av,aw,ax);aq['transmission']>0x0?a7[sh(0x341)](ay):aq['transparent']===!0x0?a8['unshift'](ay):a6['unshift'](ay);}function aj(am,ap){a6['length']>0x1&&a6['sort'](am||Hu),a7['length']>0x1&&a7['sort'](ap||Uu),a8['length']>0x1&&a8['sort'](ap||Uu);}function ak(){for(let am=a5,ap=a4['length'];am<ap;am++){let aq=a4[am];if(aq['id']===null)break;aq['id']=null,aq['object']=null,aq['geometry']=null,aq['material']=null,aq['group']=null;}}return{'opaque':a6,'transmissive':a7,'transparent':a8,'init':a9,'push':ag,'unshift':ah,'finish':ak,'sort':aj};}function Gu(){let a4=new WeakMap();function a5(a7,a8){const sj=a1;let a9=a4['get'](a7),ab;return a9===void 0x0?(ab=new Wu(),a4['set'](a7,[ab])):a8>=a9[sj(0x3ac)]?(ab=new Wu(),a9['push'](ab)):ab=a9[a8],ab;}function a6(){a4=new WeakMap();}return{'get':a5,'dispose':a6};}function Ku(){let a4={};return{'get':function(a5){const sk=a1;if(a4[a5['id']]!==void 0x0)return a4[a5['id']];let a6;switch(a5[sk(0x3e0)]){case'DirectionalLight':a6={'direction':new W(),'color':new Y()};break;case'SpotLight':a6={'position':new W(),'direction':new W(),'color':new Y(),'distance':0x0,'coneCos':0x0,'penumbraCos':0x0,'decay':0x0};break;case'PointLight':a6={'position':new W(),'color':new Y(),'distance':0x0,'decay':0x0};break;case sk(0x131):a6={'direction':new W(),'skyColor':new Y(),'groundColor':new Y()};break;case'RectAreaLight':a6={'color':new Y(),'position':new W(),'halfWidth':new W(),'halfHeight':new W()};break;}return a4[a5['id']]=a6,a6;}};}function a0(){const vb=['#define\x20MAP_UV\x20','number','instead.','matrixWorldAutoUpdate','fullWidth','scissor','_effectiveWeight','lineWidth','latitudinal','stencilWrite','flipSided','displacementMapUv','#if\x20NUM_CLIPPING_PLANES\x20>\x200\x0a\x09vec4\x20plane;\x0a\x09#ifdef\x20ALPHA_TO_COVERAGE\x0a\x09\x09float\x20distanceToPlane,\x20distanceGradient;\x0a\x09\x09float\x20clipOpacity\x20=\x201.0;\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20UNION_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09distanceToPlane\x20=\x20-\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20+\x20plane.w;\x0a\x09\x09\x09distanceGradient\x20=\x20fwidth(\x20distanceToPlane\x20)\x20/\x202.0;\x0a\x09\x09\x09clipOpacity\x20*=\x20smoothstep(\x20-\x20distanceGradient,\x20distanceGradient,\x20distanceToPlane\x20);\x0a\x09\x09\x09if\x20(\x20clipOpacity\x20==\x200.0\x20)\x20discard;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09#if\x20UNION_CLIPPING_PLANES\x20<\x20NUM_CLIPPING_PLANES\x0a\x09\x09\x09float\x20unionClipOpacity\x20=\x201.0;\x0a\x09\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x20UNION_CLIPPING_PLANES;\x20i\x20<\x20NUM_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09\x09distanceToPlane\x20=\x20-\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20+\x20plane.w;\x0a\x09\x09\x09\x09distanceGradient\x20=\x20fwidth(\x20distanceToPlane\x20)\x20/\x202.0;\x0a\x09\x09\x09\x09unionClipOpacity\x20*=\x201.0\x20-\x20smoothstep(\x20-\x20distanceGradient,\x20distanceGradient,\x20distanceToPlane\x20);\x0a\x09\x09\x09}\x0a\x09\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09\x09clipOpacity\x20*=\x201.0\x20-\x20unionClipOpacity;\x0a\x09\x09#endif\x0a\x09\x09diffuseColor.a\x20*=\x20clipOpacity;\x0a\x09\x09if\x20(\x20diffuseColor.a\x20==\x200.0\x20)\x20discard;\x0a\x09#else\x0a\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20UNION_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09if\x20(\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20>\x20plane.w\x20)\x20discard;\x0a\x09\x09}\x0a\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09#if\x20UNION_CLIPPING_PLANES\x20<\x20NUM_CLIPPING_PLANES\x0a\x09\x09\x09bool\x20clipped\x20=\x20true;\x0a\x09\x09\x09#pragma\x20unroll_loop_start\x0a\x09\x09\x09for\x20(\x20int\x20i\x20=\x20UNION_CLIPPING_PLANES;\x20i\x20<\x20NUM_CLIPPING_PLANES;\x20i\x20++\x20)\x20{\x0a\x09\x09\x09\x09plane\x20=\x20clippingPlanes[\x20i\x20];\x0a\x09\x09\x09\x09clipped\x20=\x20(\x20dot(\x20vClipPosition,\x20plane.xyz\x20)\x20>\x20plane.w\x20)\x20&&\x20clipped;\x0a\x09\x09\x09}\x0a\x09\x09\x09#pragma\x20unroll_loop_end\x0a\x09\x09\x09if\x20(\x20clipped\x20)\x20discard;\x0a\x09\x09#endif\x0a\x09#endif\x0a#endif','animations','warn','fixedFoveation','compareFunction','envMapRotation','_frameExtents','numPlanes','extensions','RGB32UI','status','vertexNormals','getClearColor','numSpotShadows','setFromEuler','numLightProbeGrids','objectIndex','_updateWeight','#define\x20texture2D\x20texture','_offsetNext','getValue','\x20sampler2DArrayShadow;\x0a\x09precision\x20','pow','side','#define\x20USE_CLIP_DISTANCE','intervalChanged_','#define\x20USE_SPECULAR_COLORMAP','_mixBufferRegion','specularColorMap','parseTrackName','itemEnd','invert','#ifdef\x20USE_BUMPMAP\x0a\x09uniform\x20sampler2D\x20bumpMap;\x0a\x09uniform\x20float\x20bumpScale;\x0a\x09vec2\x20dHdxy_fwd()\x20{\x0a\x09\x09vec2\x20dSTdx\x20=\x20dFdx(\x20vBumpMapUv\x20);\x0a\x09\x09vec2\x20dSTdy\x20=\x20dFdy(\x20vBumpMapUv\x20);\x0a\x09\x09float\x20Hll\x20=\x20bumpScale\x20*\x20texture2D(\x20bumpMap,\x20vBumpMapUv\x20).x;\x0a\x09\x09float\x20dBx\x20=\x20bumpScale\x20*\x20texture2D(\x20bumpMap,\x20vBumpMapUv\x20+\x20dSTdx\x20).x\x20-\x20Hll;\x0a\x09\x09float\x20dBy\x20=\x20bumpScale\x20*\x20texture2D(\x20bumpMap,\x20vBumpMapUv\x20+\x20dSTdy\x20).x\x20-\x20Hll;\x0a\x09\x09return\x20vec2(\x20dBx,\x20dBy\x20);\x0a\x09}\x0a\x09vec3\x20perturbNormalArb(\x20vec3\x20surf_pos,\x20vec3\x20surf_norm,\x20vec2\x20dHdxy,\x20float\x20faceDirection\x20)\x20{\x0a\x09\x09vec3\x20vSigmaX\x20=\x20normalize(\x20dFdx(\x20surf_pos.xyz\x20)\x20);\x0a\x09\x09vec3\x20vSigmaY\x20=\x20normalize(\x20dFdy(\x20surf_pos.xyz\x20)\x20);\x0a\x09\x09vec3\x20vN\x20=\x20surf_norm;\x0a\x09\x09vec3\x20R1\x20=\x20cross(\x20vSigmaY,\x20vN\x20);\x0a\x09\x09vec3\x20R2\x20=\x20cross(\x20vN,\x20vSigmaX\x20);\x0a\x09\x09float\x20fDet\x20=\x20dot(\x20vSigmaX,\x20R1\x20)\x20*\x20faceDirection;\x0a\x09\x09vec3\x20vGrad\x20=\x20sign(\x20fDet\x20)\x20*\x20(\x20dHdxy.x\x20*\x20R1\x20+\x20dHdxy.y\x20*\x20R2\x20);\x0a\x09\x09return\x20normalize(\x20abs(\x20fDet\x20)\x20*\x20surf_norm\x20-\x20vGrad\x20);\x0a\x09}\x0a#endif','onShaderError','updateMultisampleRenderTarget','vertexColors','__hasExternalTextures','defines','ray','TEXTURE_2D_ARRAY','flipY','clear','has','410010tnymjT','isOrthographicCamera','morphTexture','normalBias','isMatrix3','interleavedBuffers','static','addScaledVector','storage','close','needsUpdate','selectend','uniform1uiv','itemSize','boneTexture','uniform1i','cacheArcLengths','Color:\x20Alpha\x20component\x20of\x20','isReversedDepthBuffer','updateProjectionMatrix','dispose','getReversed','spot','NONE','depthFunc','_bindingsByRootAndName','common','meshmatcap_vert','iridescenceThicknessRange','#ifdef\x20USE_NORMALMAP\x0a\x09uniform\x20sampler2D\x20normalMap;\x0a\x09uniform\x20vec2\x20normalScale;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP_OBJECTSPACE\x0a\x09uniform\x20mat3\x20normalMatrix;\x0a#endif\x0a#if\x20!\x20defined\x20(\x20USE_TANGENT\x20)\x20&&\x20(\x20defined\x20(\x20USE_NORMALMAP_TANGENTSPACE\x20)\x20||\x20defined\x20(\x20USE_CLEARCOAT_NORMALMAP\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x20)\x0a\x09mat3\x20getTangentFrame(\x20vec3\x20eye_pos,\x20vec3\x20surf_norm,\x20vec2\x20uv\x20)\x20{\x0a\x09\x09vec3\x20q0\x20=\x20dFdx(\x20eye_pos.xyz\x20);\x0a\x09\x09vec3\x20q1\x20=\x20dFdy(\x20eye_pos.xyz\x20);\x0a\x09\x09vec2\x20st0\x20=\x20dFdx(\x20uv.st\x20);\x0a\x09\x09vec2\x20st1\x20=\x20dFdy(\x20uv.st\x20);\x0a\x09\x09vec3\x20N\x20=\x20surf_norm;\x0a\x09\x09vec3\x20q1perp\x20=\x20cross(\x20q1,\x20N\x20);\x0a\x09\x09vec3\x20q0perp\x20=\x20cross(\x20N,\x20q0\x20);\x0a\x09\x09vec3\x20T\x20=\x20q1perp\x20*\x20st0.x\x20+\x20q0perp\x20*\x20st1.x;\x0a\x09\x09vec3\x20B\x20=\x20q1perp\x20*\x20st0.y\x20+\x20q0perp\x20*\x20st1.y;\x0a\x09\x09float\x20det\x20=\x20max(\x20dot(\x20T,\x20T\x20),\x20dot(\x20B,\x20B\x20)\x20);\x0a\x09\x09float\x20scale\x20=\x20(\x20det\x20==\x200.0\x20)\x20?\x200.0\x20:\x20inversesqrt(\x20det\x20);\x0a\x09\x09return\x20mat3(\x20T\x20*\x20scale,\x20B\x20*\x20scale,\x20N\x20);\x0a\x09}\x0a#endif','vertexAttribPointer','specularIntensityMap','isArray','webglcontextcreationerror','SpotLight','COMPARE_REF_TO_TEXTURE','getProgramParameter','spaces','__webglMultisampledFramebuffer','UNIFORM_BUFFER','basic','intersectsSphere','remove','#ifdef\x20USE_MORPHTARGETS\x0a\x09transformed\x20*=\x20morphTargetBaseInfluence;\x0a\x09for\x20(\x20int\x20i\x20=\x200;\x20i\x20<\x20MORPHTARGETS_COUNT;\x20i\x20++\x20)\x20{\x0a\x09\x09if\x20(\x20morphTargetInfluences[\x20i\x20]\x20!=\x200.0\x20)\x20transformed\x20+=\x20getMorph(\x20gl_VertexID,\x20i,\x200\x20).xyz\x20*\x20morphTargetInfluences[\x20i\x20];\x0a\x09}\x0a#endif','addr','sheen','INT','probe','uniform1iv','toFixed','interpolate_','version','propertyName','autoReset','dashSize','loop','program','HasFromToArray','_origIndex','withCredentials','clippingPlanes','rotation','wrapS','isWebGL3DRenderTarget','knownActions','__webglDepthbuffer','_getShaderStage','castShadow','normalMapType','InterpolantFactoryMethodLinear','disable','clampPoint','include','IMPLEMENTATION_COLOR_READ_FORMAT','morphColors','MeshLambertMaterial','833048oieMbt','vector','gradientMap','numClippingPlanes','boneInverses','R8UI','_maxVertexCount','array','setOptions','ONE_MINUS_SRC_ALPHA','charAt','SHORT','backgroundCube','getBarycoord','_backgroundBox','#define\x20ALPHA_TO_COVERAGE','copyTextureToTexture','setAttribute','acquireProgram','modelViewMatrix','aoMap','fog','UNPACK_SKIP_PIXELS','bindRenderbuffer','function','opacity','_effectiveTimeScale','shadowRadius','equals','any','CULL_FACE','_renderer','indexOf','DefaultInterpolation','workingColorSpace','iridescenceMap','blendEquation','setRenderTargetFramebuffer','setXYZW','#define\x20SHEEN_COLORMAP_UV\x20','intersectsSprite','tan','#define\x20USE_CLEARCOAT_NORMALMAP','getX','pinchstart','atan','_cubemapMaterial','intersectPlane','min','settings','not\x20supported,\x20using','updateMatrixWorld','emissiveMap','R32F','removeFromParent','push','setLineWidth','getCameraImage','getCamera','setFromCylindricalCoords','stringify','\x27\x20has\x20value\x20of\x20undefined.','createProgram','thickness','wrapT','_equirectMaterial','meshlambert_vert','thicknessMap','COLOR_ATTACHMENT0','alphaTest','bindFramebuffer','_lodMax','nCachedObjects_','convert','isVideoTexture','webglcontextlost','isSpriteMaterial','pointLightShadows','pushLight','_cacheIndex','onUploadCallback','shadowsArray','duration','clearGroups','setScalar','traverseAncestors','maxTextureSize','isAnimationObjectGroup','skeletons','allowOverride','setTexture2D','shadow_vert','domElement','getShaderPrecisionFormat','__offset','ltc_1','COMPRESSED_RGBA_ASTC_10x8_KHR','texParameteri','depthUsage','shininess','MeshDepthMaterial','isPointLight','activeTexture','READ_FRAMEBUFFER','offsetHSL','#define\x20SHEEN_ROUGHNESSMAP_UV\x20','WEBGL_multi_draw','COMPRESSED_R11_EAC','_weightPrev','setFromProjectionMatrix','#ifdef\x20USE_SKINNING','Texture:\x20Unable\x20to\x20serialize\x20Texture.','projectionMatrix','size','PropertyBinding:\x20Can\x20not\x20bind\x20to\x20objectName\x20of\x20node\x20undefined.','setZ','vertexAttribIPointer','environmentIntensity','LTC_FLOAT_2','halt','finished','nextVertexStart','makeRotationZ','subVectors','texelHeight','get','gripUpdated','backgroundBlurriness','updateWorldMatrix','drawImage','polygonOffsetUnits','COLOR_BUFFER_BIT','frame','lights','_nActiveBindings','isInstancedMesh','isPointLightShadow','textureTypeReadable','pointLength','environment','paused','setFromBufferAttribute','rootNode','#if\x20defined(\x20USE_COLOR\x20)\x20||\x20defined(\x20USE_COLOR_ALPHA\x20)\x0a\x09diffuseColor\x20*=\x20vColor;\x0a#endif','warp','interpolation','minFilter','onLoad','AgX','hasAngularVelocity','elements','getDataURL','targetObject','flatShading','crossVectors','uniform4fv','indirect','union','vec3\x20','isVector3','ARRAY_BUFFER','calculateInverses','_getValue_arrayElement','probesResolution','_getValue_array','COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR','isGLBufferAttribute','setRenderTarget','PACK_ROW_LENGTH','_maxInstanceCount','copy','string','split','_sheen','state','camera-access','_nActiveActions','clearcoatNormalScale','\x09attribute\x20vec4\x20tangent;','\x09attribute\x20vec4\x20color;','MAX_TEXTURE_SIZE','uniform\x20samplerCube\x20tCube;\x0auniform\x20float\x20tFlip;\x0auniform\x20float\x20opacity;\x0avarying\x20vec3\x20vWorldDirection;\x0avoid\x20main()\x20{\x0a\x09vec4\x20texColor\x20=\x20textureCube(\x20tCube,\x20vec3(\x20tFlip\x20*\x20vWorldDirection.x,\x20vWorldDirection.yz\x20)\x20);\x0a\x09gl_FragColor\x20=\x20texColor;\x0a\x09gl_FragColor.a\x20*=\x20opacity;\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a}','blendMode','end','HemisphereLight','file:','inputSource','intensity','#define\x20SPECULAR_INTENSITYMAP_UV\x20','RGBA8I','OES_texture_float_linear','renderbufferStorageMultisampleEXT','#ifdef\x20USE_FOG\x0a\x09vFogDepth\x20=\x20-\x20mvPosition.z;\x0a#endif','_anisotropy','groupOrder','direction','negate','shadowMap','bindTexture','uniform\x20sampler2D\x20dfgLUT;\x0astruct\x20PhysicalMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a\x09vec3\x20diffuseContribution;\x0a\x09vec3\x20specularColor;\x0a\x09vec3\x20specularColorBlended;\x0a\x09float\x20roughness;\x0a\x09float\x20metalness;\x0a\x09float\x20specularF90;\x0a\x09float\x20dispersion;\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09float\x20clearcoat;\x0a\x09\x09float\x20clearcoatRoughness;\x0a\x09\x09vec3\x20clearcoatF0;\x0a\x09\x09float\x20clearcoatF90;\x0a\x09#endif\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09float\x20iridescence;\x0a\x09\x09float\x20iridescenceIOR;\x0a\x09\x09float\x20iridescenceThickness;\x0a\x09\x09vec3\x20iridescenceFresnel;\x0a\x09\x09vec3\x20iridescenceF0;\x0a\x09\x09vec3\x20iridescenceFresnelDielectric;\x0a\x09\x09vec3\x20iridescenceFresnelMetallic;\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09vec3\x20sheenColor;\x0a\x09\x09float\x20sheenRoughness;\x0a\x09#endif\x0a\x09#ifdef\x20IOR\x0a\x09\x09float\x20ior;\x0a\x09#endif\x0a\x09#ifdef\x20USE_TRANSMISSION\x0a\x09\x09float\x20transmission;\x0a\x09\x09float\x20transmissionAlpha;\x0a\x09\x09float\x20thickness;\x0a\x09\x09float\x20attenuationDistance;\x0a\x09\x09vec3\x20attenuationColor;\x0a\x09#endif\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09float\x20anisotropy;\x0a\x09\x09float\x20alphaT;\x0a\x09\x09vec3\x20anisotropyT;\x0a\x09\x09vec3\x20anisotropyB;\x0a\x09#endif\x0a};\x0avec3\x20clearcoatSpecularDirect\x20=\x20vec3(\x200.0\x20);\x0avec3\x20clearcoatSpecularIndirect\x20=\x20vec3(\x200.0\x20);\x0avec3\x20sheenSpecularDirect\x20=\x20vec3(\x200.0\x20);\x0avec3\x20sheenSpecularIndirect\x20=\x20vec3(0.0\x20);\x0avec3\x20Schlick_to_F0(\x20const\x20in\x20vec3\x20f,\x20const\x20in\x20float\x20f90,\x20const\x20in\x20float\x20dotVH\x20)\x20{\x0a\x20\x20\x20\x20float\x20x\x20=\x20clamp(\x201.0\x20-\x20dotVH,\x200.0,\x201.0\x20);\x0a\x20\x20\x20\x20float\x20x2\x20=\x20x\x20*\x20x;\x0a\x20\x20\x20\x20float\x20x5\x20=\x20clamp(\x20x\x20*\x20x2\x20*\x20x2,\x200.0,\x200.9999\x20);\x0a\x20\x20\x20\x20return\x20(\x20f\x20-\x20vec3(\x20f90\x20)\x20*\x20x5\x20)\x20/\x20(\x201.0\x20-\x20x5\x20);\x0a}\x0afloat\x20V_GGX_SmithCorrelated(\x20const\x20in\x20float\x20alpha,\x20const\x20in\x20float\x20dotNL,\x20const\x20in\x20float\x20dotNV\x20)\x20{\x0a\x09float\x20a2\x20=\x20pow2(\x20alpha\x20);\x0a\x09float\x20gv\x20=\x20dotNL\x20*\x20sqrt(\x20a2\x20+\x20(\x201.0\x20-\x20a2\x20)\x20*\x20pow2(\x20dotNV\x20)\x20);\x0a\x09float\x20gl\x20=\x20dotNV\x20*\x20sqrt(\x20a2\x20+\x20(\x201.0\x20-\x20a2\x20)\x20*\x20pow2(\x20dotNL\x20)\x20);\x0a\x09return\x200.5\x20/\x20max(\x20gv\x20+\x20gl,\x20EPSILON\x20);\x0a}\x0afloat\x20D_GGX(\x20const\x20in\x20float\x20alpha,\x20const\x20in\x20float\x20dotNH\x20)\x20{\x0a\x09float\x20a2\x20=\x20pow2(\x20alpha\x20);\x0a\x09float\x20denom\x20=\x20pow2(\x20dotNH\x20)\x20*\x20(\x20a2\x20-\x201.0\x20)\x20+\x201.0;\x0a\x09return\x20RECIPROCAL_PI\x20*\x20a2\x20/\x20pow2(\x20denom\x20);\x0a}\x0a#ifdef\x20USE_ANISOTROPY\x0a\x09float\x20V_GGX_SmithCorrelated_Anisotropic(\x20const\x20in\x20float\x20alphaT,\x20const\x20in\x20float\x20alphaB,\x20const\x20in\x20float\x20dotTV,\x20const\x20in\x20float\x20dotBV,\x20const\x20in\x20float\x20dotTL,\x20const\x20in\x20float\x20dotBL,\x20const\x20in\x20float\x20dotNV,\x20const\x20in\x20float\x20dotNL\x20)\x20{\x0a\x09\x09float\x20gv\x20=\x20dotNL\x20*\x20length(\x20vec3(\x20alphaT\x20*\x20dotTV,\x20alphaB\x20*\x20dotBV,\x20dotNV\x20)\x20);\x0a\x09\x09float\x20gl\x20=\x20dotNV\x20*\x20length(\x20vec3(\x20alphaT\x20*\x20dotTL,\x20alphaB\x20*\x20dotBL,\x20dotNL\x20)\x20);\x0a\x09\x09return\x200.5\x20/\x20max(\x20gv\x20+\x20gl,\x20EPSILON\x20);\x0a\x09}\x0a\x09float\x20D_GGX_Anisotropic(\x20const\x20in\x20float\x20alphaT,\x20const\x20in\x20float\x20alphaB,\x20const\x20in\x20float\x20dotNH,\x20const\x20in\x20float\x20dotTH,\x20const\x20in\x20float\x20dotBH\x20)\x20{\x0a\x09\x09float\x20a2\x20=\x20alphaT\x20*\x20alphaB;\x0a\x09\x09highp\x20vec3\x20v\x20=\x20vec3(\x20alphaB\x20*\x20dotTH,\x20alphaT\x20*\x20dotBH,\x20a2\x20*\x20dotNH\x20);\x0a\x09\x09highp\x20float\x20v2\x20=\x20dot(\x20v,\x20v\x20);\x0a\x09\x09float\x20w2\x20=\x20a2\x20/\x20v2;\x0a\x09\x09return\x20RECIPROCAL_PI\x20*\x20a2\x20*\x20pow2\x20(\x20w2\x20);\x0a\x09}\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT\x0a\x09vec3\x20BRDF_GGX_Clearcoat(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20PhysicalMaterial\x20material)\x20{\x0a\x09\x09vec3\x20f0\x20=\x20material.clearcoatF0;\x0a\x09\x09float\x20f90\x20=\x20material.clearcoatF90;\x0a\x09\x09float\x20roughness\x20=\x20material.clearcoatRoughness;\x0a\x09\x09float\x20alpha\x20=\x20pow2(\x20roughness\x20);\x0a\x09\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09\x09float\x20dotVH\x20=\x20saturate(\x20dot(\x20viewDir,\x20halfDir\x20)\x20);\x0a\x09\x09vec3\x20F\x20=\x20F_Schlick(\x20f0,\x20f90,\x20dotVH\x20);\x0a\x09\x09float\x20V\x20=\x20V_GGX_SmithCorrelated(\x20alpha,\x20dotNL,\x20dotNV\x20);\x0a\x09\x09float\x20D\x20=\x20D_GGX(\x20alpha,\x20dotNH\x20);\x0a\x09\x09return\x20F\x20*\x20(\x20V\x20*\x20D\x20);\x0a\x09}\x0a#endif\x0avec3\x20BRDF_GGX(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20PhysicalMaterial\x20material\x20)\x20{\x0a\x09vec3\x20f0\x20=\x20material.specularColorBlended;\x0a\x09float\x20f90\x20=\x20material.specularF90;\x0a\x09float\x20roughness\x20=\x20material.roughness;\x0a\x09float\x20alpha\x20=\x20pow2(\x20roughness\x20);\x0a\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09float\x20dotVH\x20=\x20saturate(\x20dot(\x20viewDir,\x20halfDir\x20)\x20);\x0a\x09vec3\x20F\x20=\x20F_Schlick(\x20f0,\x20f90,\x20dotVH\x20);\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09F\x20=\x20mix(\x20F,\x20material.iridescenceFresnel,\x20material.iridescence\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_ANISOTROPY\x0a\x09\x09float\x20dotTL\x20=\x20dot(\x20material.anisotropyT,\x20lightDir\x20);\x0a\x09\x09float\x20dotTV\x20=\x20dot(\x20material.anisotropyT,\x20viewDir\x20);\x0a\x09\x09float\x20dotTH\x20=\x20dot(\x20material.anisotropyT,\x20halfDir\x20);\x0a\x09\x09float\x20dotBL\x20=\x20dot(\x20material.anisotropyB,\x20lightDir\x20);\x0a\x09\x09float\x20dotBV\x20=\x20dot(\x20material.anisotropyB,\x20viewDir\x20);\x0a\x09\x09float\x20dotBH\x20=\x20dot(\x20material.anisotropyB,\x20halfDir\x20);\x0a\x09\x09float\x20V\x20=\x20V_GGX_SmithCorrelated_Anisotropic(\x20material.alphaT,\x20alpha,\x20dotTV,\x20dotBV,\x20dotTL,\x20dotBL,\x20dotNV,\x20dotNL\x20);\x0a\x09\x09float\x20D\x20=\x20D_GGX_Anisotropic(\x20material.alphaT,\x20alpha,\x20dotNH,\x20dotTH,\x20dotBH\x20);\x0a\x09#else\x0a\x09\x09float\x20V\x20=\x20V_GGX_SmithCorrelated(\x20alpha,\x20dotNL,\x20dotNV\x20);\x0a\x09\x09float\x20D\x20=\x20D_GGX(\x20alpha,\x20dotNH\x20);\x0a\x09#endif\x0a\x09return\x20F\x20*\x20(\x20V\x20*\x20D\x20);\x0a}\x0avec2\x20LTC_Uv(\x20const\x20in\x20vec3\x20N,\x20const\x20in\x20vec3\x20V,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09const\x20float\x20LUT_SIZE\x20=\x2064.0;\x0a\x09const\x20float\x20LUT_SCALE\x20=\x20(\x20LUT_SIZE\x20-\x201.0\x20)\x20/\x20LUT_SIZE;\x0a\x09const\x20float\x20LUT_BIAS\x20=\x200.5\x20/\x20LUT_SIZE;\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20N,\x20V\x20)\x20);\x0a\x09vec2\x20uv\x20=\x20vec2(\x20roughness,\x20sqrt(\x201.0\x20-\x20dotNV\x20)\x20);\x0a\x09uv\x20=\x20uv\x20*\x20LUT_SCALE\x20+\x20LUT_BIAS;\x0a\x09return\x20uv;\x0a}\x0afloat\x20LTC_ClippedSphereFormFactor(\x20const\x20in\x20vec3\x20f\x20)\x20{\x0a\x09float\x20l\x20=\x20length(\x20f\x20);\x0a\x09return\x20max(\x20(\x20l\x20*\x20l\x20+\x20f.z\x20)\x20/\x20(\x20l\x20+\x201.0\x20),\x200.0\x20);\x0a}\x0avec3\x20LTC_EdgeVectorFormFactor(\x20const\x20in\x20vec3\x20v1,\x20const\x20in\x20vec3\x20v2\x20)\x20{\x0a\x09float\x20x\x20=\x20dot(\x20v1,\x20v2\x20);\x0a\x09float\x20y\x20=\x20abs(\x20x\x20);\x0a\x09float\x20a\x20=\x200.8543985\x20+\x20(\x200.4965155\x20+\x200.0145206\x20*\x20y\x20)\x20*\x20y;\x0a\x09float\x20b\x20=\x203.4175940\x20+\x20(\x204.1616724\x20+\x20y\x20)\x20*\x20y;\x0a\x09float\x20v\x20=\x20a\x20/\x20b;\x0a\x09float\x20theta_sintheta\x20=\x20(\x20x\x20>\x200.0\x20)\x20?\x20v\x20:\x200.5\x20*\x20inversesqrt(\x20max(\x201.0\x20-\x20x\x20*\x20x,\x201e-7\x20)\x20)\x20-\x20v;\x0a\x09return\x20cross(\x20v1,\x20v2\x20)\x20*\x20theta_sintheta;\x0a}\x0avec3\x20LTC_Evaluate(\x20const\x20in\x20vec3\x20N,\x20const\x20in\x20vec3\x20V,\x20const\x20in\x20vec3\x20P,\x20const\x20in\x20mat3\x20mInv,\x20const\x20in\x20vec3\x20rectCoords[\x204\x20]\x20)\x20{\x0a\x09vec3\x20v1\x20=\x20rectCoords[\x201\x20]\x20-\x20rectCoords[\x200\x20];\x0a\x09vec3\x20v2\x20=\x20rectCoords[\x203\x20]\x20-\x20rectCoords[\x200\x20];\x0a\x09vec3\x20lightNormal\x20=\x20cross(\x20v1,\x20v2\x20);\x0a\x09if(\x20dot(\x20lightNormal,\x20P\x20-\x20rectCoords[\x200\x20]\x20)\x20<\x200.0\x20)\x20return\x20vec3(\x200.0\x20);\x0a\x09vec3\x20T1,\x20T2;\x0a\x09T1\x20=\x20normalize(\x20V\x20-\x20N\x20*\x20dot(\x20V,\x20N\x20)\x20);\x0a\x09T2\x20=\x20-\x20cross(\x20N,\x20T1\x20);\x0a\x09mat3\x20mat\x20=\x20mInv\x20*\x20transpose(\x20mat3(\x20T1,\x20T2,\x20N\x20)\x20);\x0a\x09vec3\x20coords[\x204\x20];\x0a\x09coords[\x200\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x200\x20]\x20-\x20P\x20);\x0a\x09coords[\x201\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x201\x20]\x20-\x20P\x20);\x0a\x09coords[\x202\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x202\x20]\x20-\x20P\x20);\x0a\x09coords[\x203\x20]\x20=\x20mat\x20*\x20(\x20rectCoords[\x203\x20]\x20-\x20P\x20);\x0a\x09coords[\x200\x20]\x20=\x20normalize(\x20coords[\x200\x20]\x20);\x0a\x09coords[\x201\x20]\x20=\x20normalize(\x20coords[\x201\x20]\x20);\x0a\x09coords[\x202\x20]\x20=\x20normalize(\x20coords[\x202\x20]\x20);\x0a\x09coords[\x203\x20]\x20=\x20normalize(\x20coords[\x203\x20]\x20);\x0a\x09vec3\x20vectorFormFactor\x20=\x20vec3(\x200.0\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x200\x20],\x20coords[\x201\x20]\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x201\x20],\x20coords[\x202\x20]\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x202\x20],\x20coords[\x203\x20]\x20);\x0a\x09vectorFormFactor\x20+=\x20LTC_EdgeVectorFormFactor(\x20coords[\x203\x20],\x20coords[\x200\x20]\x20);\x0a\x09float\x20result\x20=\x20LTC_ClippedSphereFormFactor(\x20vectorFormFactor\x20);\x0a\x09return\x20vec3(\x20result\x20);\x0a}\x0a#if\x20defined(\x20USE_SHEEN\x20)\x0afloat\x20D_Charlie(\x20float\x20roughness,\x20float\x20dotNH\x20)\x20{\x0a\x09float\x20alpha\x20=\x20pow2(\x20roughness\x20);\x0a\x09float\x20invAlpha\x20=\x201.0\x20/\x20alpha;\x0a\x09float\x20cos2h\x20=\x20dotNH\x20*\x20dotNH;\x0a\x09float\x20sin2h\x20=\x20max(\x201.0\x20-\x20cos2h,\x200.0078125\x20);\x0a\x09return\x20(\x202.0\x20+\x20invAlpha\x20)\x20*\x20pow(\x20sin2h,\x20invAlpha\x20*\x200.5\x20)\x20/\x20(\x202.0\x20*\x20PI\x20);\x0a}\x0afloat\x20V_Neubelt(\x20float\x20dotNV,\x20float\x20dotNL\x20)\x20{\x0a\x09return\x20saturate(\x201.0\x20/\x20(\x204.0\x20*\x20(\x20dotNL\x20+\x20dotNV\x20-\x20dotNL\x20*\x20dotNV\x20)\x20)\x20);\x0a}\x0avec3\x20BRDF_Sheen(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20vec3\x20sheenColor,\x20const\x20in\x20float\x20sheenRoughness\x20)\x20{\x0a\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09float\x20D\x20=\x20D_Charlie(\x20sheenRoughness,\x20dotNH\x20);\x0a\x09float\x20V\x20=\x20V_Neubelt(\x20dotNV,\x20dotNL\x20);\x0a\x09return\x20sheenColor\x20*\x20(\x20D\x20*\x20V\x20);\x0a}\x0a#endif\x0afloat\x20IBLSheenBRDF(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09float\x20r2\x20=\x20roughness\x20*\x20roughness;\x0a\x09float\x20rInv\x20=\x201.0\x20/\x20(\x20roughness\x20+\x200.1\x20);\x0a\x09float\x20a\x20=\x20-1.9362\x20+\x201.0678\x20*\x20roughness\x20+\x200.4573\x20*\x20r2\x20-\x200.8469\x20*\x20rInv;\x0a\x09float\x20b\x20=\x20-0.6014\x20+\x200.5538\x20*\x20roughness\x20-\x200.4670\x20*\x20r2\x20-\x200.1255\x20*\x20rInv;\x0a\x09float\x20DG\x20=\x20exp(\x20a\x20*\x20dotNV\x20+\x20b\x20);\x0a\x09return\x20saturate(\x20DG\x20);\x0a}\x0avec3\x20EnvironmentBRDF(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09vec2\x20fab\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20roughness,\x20dotNV\x20)\x20).rg;\x0a\x09return\x20specularColor\x20*\x20fab.x\x20+\x20specularF90\x20*\x20fab.y;\x0a}\x0a#ifdef\x20USE_IRIDESCENCE\x0avoid\x20computeMultiscatteringIridescence(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20float\x20iridescence,\x20const\x20in\x20vec3\x20iridescenceF0,\x20const\x20in\x20float\x20roughness,\x20inout\x20vec3\x20singleScatter,\x20inout\x20vec3\x20multiScatter\x20)\x20{\x0a#else\x0avoid\x20computeMultiscattering(\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20specularF90,\x20const\x20in\x20float\x20roughness,\x20inout\x20vec3\x20singleScatter,\x20inout\x20vec3\x20multiScatter\x20)\x20{\x0a#endif\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09vec2\x20fab\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20roughness,\x20dotNV\x20)\x20).rg;\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09vec3\x20Fr\x20=\x20mix(\x20specularColor,\x20iridescenceF0,\x20iridescence\x20);\x0a\x09#else\x0a\x09\x09vec3\x20Fr\x20=\x20specularColor;\x0a\x09#endif\x0a\x09vec3\x20FssEss\x20=\x20Fr\x20*\x20fab.x\x20+\x20specularF90\x20*\x20fab.y;\x0a\x09float\x20Ess\x20=\x20fab.x\x20+\x20fab.y;\x0a\x09float\x20Ems\x20=\x201.0\x20-\x20Ess;\x0a\x09vec3\x20Favg\x20=\x20Fr\x20+\x20(\x201.0\x20-\x20Fr\x20)\x20*\x200.047619;\x09vec3\x20Fms\x20=\x20FssEss\x20*\x20Favg\x20/\x20(\x201.0\x20-\x20Ems\x20*\x20Favg\x20);\x0a\x09singleScatter\x20+=\x20FssEss;\x0a\x09multiScatter\x20+=\x20Fms\x20*\x20Ems;\x0a}\x0avec3\x20BRDF_GGX_Multiscatter(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20PhysicalMaterial\x20material\x20)\x20{\x0a\x09vec3\x20singleScatter\x20=\x20BRDF_GGX(\x20lightDir,\x20viewDir,\x20normal,\x20material\x20);\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20normal,\x20lightDir\x20)\x20);\x0a\x09float\x20dotNV\x20=\x20saturate(\x20dot(\x20normal,\x20viewDir\x20)\x20);\x0a\x09vec2\x20dfgV\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20material.roughness,\x20dotNV\x20)\x20).rg;\x0a\x09vec2\x20dfgL\x20=\x20texture2D(\x20dfgLUT,\x20vec2(\x20material.roughness,\x20dotNL\x20)\x20).rg;\x0a\x09vec3\x20FssEss_V\x20=\x20material.specularColorBlended\x20*\x20dfgV.x\x20+\x20material.specularF90\x20*\x20dfgV.y;\x0a\x09vec3\x20FssEss_L\x20=\x20material.specularColorBlended\x20*\x20dfgL.x\x20+\x20material.specularF90\x20*\x20dfgL.y;\x0a\x09float\x20Ess_V\x20=\x20dfgV.x\x20+\x20dfgV.y;\x0a\x09float\x20Ess_L\x20=\x20dfgL.x\x20+\x20dfgL.y;\x0a\x09float\x20Ems_V\x20=\x201.0\x20-\x20Ess_V;\x0a\x09float\x20Ems_L\x20=\x201.0\x20-\x20Ess_L;\x0a\x09vec3\x20Favg\x20=\x20material.specularColorBlended\x20+\x20(\x201.0\x20-\x20material.specularColorBlended\x20)\x20*\x200.047619;\x0a\x09vec3\x20Fms\x20=\x20FssEss_V\x20*\x20FssEss_L\x20*\x20Favg\x20/\x20(\x201.0\x20-\x20Ems_V\x20*\x20Ems_L\x20*\x20Favg\x20+\x20EPSILON\x20);\x0a\x09float\x20compensationFactor\x20=\x20Ems_V\x20*\x20Ems_L;\x0a\x09vec3\x20multiScatter\x20=\x20Fms\x20*\x20compensationFactor;\x0a\x09return\x20singleScatter\x20+\x20multiScatter;\x0a}\x0a#if\x20NUM_RECT_AREA_LIGHTS\x20>\x200\x0a\x09void\x20RE_Direct_RectArea_Physical(\x20const\x20in\x20RectAreaLight\x20rectAreaLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09\x09vec3\x20normal\x20=\x20geometryNormal;\x0a\x09\x09vec3\x20viewDir\x20=\x20geometryViewDir;\x0a\x09\x09vec3\x20position\x20=\x20geometryPosition;\x0a\x09\x09vec3\x20lightPos\x20=\x20rectAreaLight.position;\x0a\x09\x09vec3\x20halfWidth\x20=\x20rectAreaLight.halfWidth;\x0a\x09\x09vec3\x20halfHeight\x20=\x20rectAreaLight.halfHeight;\x0a\x09\x09vec3\x20lightColor\x20=\x20rectAreaLight.color;\x0a\x09\x09float\x20roughness\x20=\x20material.roughness;\x0a\x09\x09vec3\x20rectCoords[\x204\x20];\x0a\x09\x09rectCoords[\x200\x20]\x20=\x20lightPos\x20+\x20halfWidth\x20-\x20halfHeight;\x09\x09rectCoords[\x201\x20]\x20=\x20lightPos\x20-\x20halfWidth\x20-\x20halfHeight;\x0a\x09\x09rectCoords[\x202\x20]\x20=\x20lightPos\x20-\x20halfWidth\x20+\x20halfHeight;\x0a\x09\x09rectCoords[\x203\x20]\x20=\x20lightPos\x20+\x20halfWidth\x20+\x20halfHeight;\x0a\x09\x09vec2\x20uv\x20=\x20LTC_Uv(\x20normal,\x20viewDir,\x20roughness\x20);\x0a\x09\x09vec4\x20t1\x20=\x20texture2D(\x20ltc_1,\x20uv\x20);\x0a\x09\x09vec4\x20t2\x20=\x20texture2D(\x20ltc_2,\x20uv\x20);\x0a\x09\x09mat3\x20mInv\x20=\x20mat3(\x0a\x09\x09\x09vec3(\x20t1.x,\x200,\x20t1.y\x20),\x0a\x09\x09\x09vec3(\x20\x20\x20\x200,\x201,\x20\x20\x20\x200\x20),\x0a\x09\x09\x09vec3(\x20t1.z,\x200,\x20t1.w\x20)\x0a\x09\x09);\x0a\x09\x09vec3\x20fresnel\x20=\x20(\x20material.specularColorBlended\x20*\x20t2.x\x20+\x20(\x20material.specularF90\x20-\x20material.specularColorBlended\x20)\x20*\x20t2.y\x20);\x0a\x09\x09reflectedLight.directSpecular\x20+=\x20lightColor\x20*\x20fresnel\x20*\x20LTC_Evaluate(\x20normal,\x20viewDir,\x20position,\x20mInv,\x20rectCoords\x20);\x0a\x09\x09reflectedLight.directDiffuse\x20+=\x20lightColor\x20*\x20material.diffuseContribution\x20*\x20LTC_Evaluate(\x20normal,\x20viewDir,\x20position,\x20mat3(\x201.0\x20),\x20rectCoords\x20);\x0a\x09\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09\x09vec3\x20Ncc\x20=\x20geometryClearcoatNormal;\x0a\x09\x09\x09vec2\x20uvClearcoat\x20=\x20LTC_Uv(\x20Ncc,\x20viewDir,\x20material.clearcoatRoughness\x20);\x0a\x09\x09\x09vec4\x20t1Clearcoat\x20=\x20texture2D(\x20ltc_1,\x20uvClearcoat\x20);\x0a\x09\x09\x09vec4\x20t2Clearcoat\x20=\x20texture2D(\x20ltc_2,\x20uvClearcoat\x20);\x0a\x09\x09\x09mat3\x20mInvClearcoat\x20=\x20mat3(\x0a\x09\x09\x09\x09vec3(\x20t1Clearcoat.x,\x200,\x20t1Clearcoat.y\x20),\x0a\x09\x09\x09\x09vec3(\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200,\x201,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200\x20),\x0a\x09\x09\x09\x09vec3(\x20t1Clearcoat.z,\x200,\x20t1Clearcoat.w\x20)\x0a\x09\x09\x09);\x0a\x09\x09\x09vec3\x20fresnelClearcoat\x20=\x20material.clearcoatF0\x20*\x20t2Clearcoat.x\x20+\x20(\x20material.clearcoatF90\x20-\x20material.clearcoatF0\x20)\x20*\x20t2Clearcoat.y;\x0a\x09\x09\x09clearcoatSpecularDirect\x20+=\x20lightColor\x20*\x20fresnelClearcoat\x20*\x20LTC_Evaluate(\x20Ncc,\x20viewDir,\x20position,\x20mInvClearcoat,\x20rectCoords\x20);\x0a\x09\x09#endif\x0a\x09}\x0a#endif\x0avoid\x20RE_Direct_Physical(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20directLight.direction\x20)\x20);\x0a\x09vec3\x20irradiance\x20=\x20dotNL\x20*\x20directLight.color;\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09float\x20dotNLcc\x20=\x20saturate(\x20dot(\x20geometryClearcoatNormal,\x20directLight.direction\x20)\x20);\x0a\x09\x09vec3\x20ccIrradiance\x20=\x20dotNLcc\x20*\x20directLight.color;\x0a\x09\x09clearcoatSpecularDirect\x20+=\x20ccIrradiance\x20*\x20BRDF_GGX_Clearcoat(\x20directLight.direction,\x20geometryViewDir,\x20geometryClearcoatNormal,\x20material\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN\x0a\x20\x0a\x20\x09\x09sheenSpecularDirect\x20+=\x20irradiance\x20*\x20BRDF_Sheen(\x20directLight.direction,\x20geometryViewDir,\x20geometryNormal,\x20material.sheenColor,\x20material.sheenRoughness\x20);\x0a\x20\x0a\x20\x09\x09float\x20sheenAlbedoV\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20);\x0a\x20\x09\x09float\x20sheenAlbedoL\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20directLight.direction,\x20material.sheenRoughness\x20);\x0a\x20\x0a\x20\x09\x09float\x20sheenEnergyComp\x20=\x201.0\x20-\x20max3(\x20material.sheenColor\x20)\x20*\x20max(\x20sheenAlbedoV,\x20sheenAlbedoL\x20);\x0a\x20\x0a\x20\x09\x09irradiance\x20*=\x20sheenEnergyComp;\x0a\x20\x0a\x20\x09#endif\x0a\x09reflectedLight.directSpecular\x20+=\x20irradiance\x20*\x20BRDF_GGX_Multiscatter(\x20directLight.direction,\x20geometryViewDir,\x20geometryNormal,\x20material\x20);\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseContribution\x20);\x0a}\x0avoid\x20RE_IndirectDiffuse_Physical(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09vec3\x20diffuse\x20=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseContribution\x20);\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09float\x20sheenAlbedo\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20);\x0a\x09\x09float\x20sheenEnergyComp\x20=\x201.0\x20-\x20max3(\x20material.sheenColor\x20)\x20*\x20sheenAlbedo;\x0a\x09\x09diffuse\x20*=\x20sheenEnergyComp;\x0a\x09#endif\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20diffuse;\x0a}\x0avoid\x20RE_IndirectSpecular_Physical(\x20const\x20in\x20vec3\x20radiance,\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20clearcoatRadiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20PhysicalMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight)\x20{\x0a\x09#ifdef\x20USE_CLEARCOAT\x0a\x09\x09clearcoatSpecularIndirect\x20+=\x20clearcoatRadiance\x20*\x20EnvironmentBRDF(\x20geometryClearcoatNormal,\x20geometryViewDir,\x20material.clearcoatF0,\x20material.clearcoatF90,\x20material.clearcoatRoughness\x20);\x0a\x09#endif\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09sheenSpecularIndirect\x20+=\x20irradiance\x20*\x20material.sheenColor\x20*\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20)\x20*\x20RECIPROCAL_PI;\x0a\x20\x09#endif\x0a\x09vec3\x20singleScatteringDielectric\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20multiScatteringDielectric\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20singleScatteringMetallic\x20=\x20vec3(\x200.0\x20);\x0a\x09vec3\x20multiScatteringMetallic\x20=\x20vec3(\x200.0\x20);\x0a\x09#ifdef\x20USE_IRIDESCENCE\x0a\x09\x09computeMultiscatteringIridescence(\x20geometryNormal,\x20geometryViewDir,\x20material.specularColor,\x20material.specularF90,\x20material.iridescence,\x20material.iridescenceFresnelDielectric,\x20material.roughness,\x20singleScatteringDielectric,\x20multiScatteringDielectric\x20);\x0a\x09\x09computeMultiscatteringIridescence(\x20geometryNormal,\x20geometryViewDir,\x20material.diffuseColor,\x20material.specularF90,\x20material.iridescence,\x20material.iridescenceFresnelMetallic,\x20material.roughness,\x20singleScatteringMetallic,\x20multiScatteringMetallic\x20);\x0a\x09#else\x0a\x09\x09computeMultiscattering(\x20geometryNormal,\x20geometryViewDir,\x20material.specularColor,\x20material.specularF90,\x20material.roughness,\x20singleScatteringDielectric,\x20multiScatteringDielectric\x20);\x0a\x09\x09computeMultiscattering(\x20geometryNormal,\x20geometryViewDir,\x20material.diffuseColor,\x20material.specularF90,\x20material.roughness,\x20singleScatteringMetallic,\x20multiScatteringMetallic\x20);\x0a\x09#endif\x0a\x09vec3\x20singleScattering\x20=\x20mix(\x20singleScatteringDielectric,\x20singleScatteringMetallic,\x20material.metalness\x20);\x0a\x09vec3\x20multiScattering\x20=\x20mix(\x20multiScatteringDielectric,\x20multiScatteringMetallic,\x20material.metalness\x20);\x0a\x09vec3\x20totalScatteringDielectric\x20=\x20singleScatteringDielectric\x20+\x20multiScatteringDielectric;\x0a\x09vec3\x20diffuse\x20=\x20material.diffuseContribution\x20*\x20(\x201.0\x20-\x20totalScatteringDielectric\x20);\x0a\x09vec3\x20cosineWeightedIrradiance\x20=\x20irradiance\x20*\x20RECIPROCAL_PI;\x0a\x09vec3\x20indirectSpecular\x20=\x20radiance\x20*\x20singleScattering;\x0a\x09indirectSpecular\x20+=\x20multiScattering\x20*\x20cosineWeightedIrradiance;\x0a\x09vec3\x20indirectDiffuse\x20=\x20diffuse\x20*\x20cosineWeightedIrradiance;\x0a\x09#ifdef\x20USE_SHEEN\x0a\x09\x09float\x20sheenAlbedo\x20=\x20IBLSheenBRDF(\x20geometryNormal,\x20geometryViewDir,\x20material.sheenRoughness\x20);\x0a\x09\x09float\x20sheenEnergyComp\x20=\x201.0\x20-\x20max3(\x20material.sheenColor\x20)\x20*\x20sheenAlbedo;\x0a\x09\x09indirectSpecular\x20*=\x20sheenEnergyComp;\x0a\x09\x09indirectDiffuse\x20*=\x20sheenEnergyComp;\x0a\x09#endif\x0a\x09reflectedLight.indirectSpecular\x20+=\x20indirectSpecular;\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20indirectDiffuse;\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_Physical\x0a#define\x20RE_Direct_RectArea\x09\x09RE_Direct_RectArea_Physical\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_Physical\x0a#define\x20RE_IndirectSpecular\x09\x09RE_IndirectSpecular_Physical\x0afloat\x20computeSpecularOcclusion(\x20const\x20in\x20float\x20dotNV,\x20const\x20in\x20float\x20ambientOcclusion,\x20const\x20in\x20float\x20roughness\x20)\x20{\x0a\x09return\x20saturate(\x20pow(\x20dotNV\x20+\x20ambientOcclusion,\x20exp2(\x20-\x2016.0\x20*\x20roughness\x20-\x201.0\x20)\x20)\x20-\x201.0\x20+\x20ambientOcclusion\x20);\x0a}','tonemapping_pars_fragment','onUpdate','getPointAt','pmremVersion','pixelStorei','TEXTURE_2D','isMeshStandardMaterial','Composite','_hand','exec','internalFormat','userData','clipIntersection','_removeInactiveBindingsForAction','getInterpolation','PMREMGGXConvolution','shadowMapType','hasLinearVelocity','matrixWorldNeedsUpdate','makeScale','emissiveIntensity','prototype','precision','_cleanup','\x5c[\x5c]\x5c.:\x5c/','textureWidth','shadow_frag','_actions','DefaultSettings_','getShaderInfoLog','arcLengthDivisions','bias','isRenderTargetTexture','specular','texStorage3D','4103334iAOmRl','ENVMAP_MODE_REFRACTION','stencilZFail','bones','colorSpaceToWorking','none','availableInstanceIds','computeBoundingSphere','MAX_SAMPLES','isColor','_addInactiveBinding','polygonOffset','lengthSq','normal','RGBA8','LINE_LOOP','setReferenceSpace','vertexShader','child','getAttribute','depthPacking','getObjectsByProperty','isRawShaderMaterial','camera','blurSamples','usage','uniform\x20vec3\x20diffuse;\x0auniform\x20float\x20opacity;\x0a#ifndef\x20FLAT_SHADED\x0a\x09varying\x20vec3\x20vNormal;\x0a#endif\x0a#include\x20<common>\x0a#include\x20<dithering_pars_fragment>\x0a#include\x20<color_pars_fragment>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<aomap_pars_fragment>\x0a#include\x20<lightmap_pars_fragment>\x0a#include\x20<envmap_common_pars_fragment>\x0a#include\x20<envmap_pars_fragment>\x0a#include\x20<fog_pars_fragment>\x0a#include\x20<specularmap_pars_fragment>\x0a#include\x20<logdepthbuf_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x20diffuse,\x20opacity\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<logdepthbuf_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<color_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09#include\x20<specularmap_fragment>\x0a\x09ReflectedLight\x20reflectedLight\x20=\x20ReflectedLight(\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20),\x20vec3(\x200.0\x20)\x20);\x0a\x09#ifdef\x20USE_LIGHTMAP\x0a\x09\x09vec4\x20lightMapTexel\x20=\x20texture2D(\x20lightMap,\x20vLightMapUv\x20);\x0a\x09\x09reflectedLight.indirectDiffuse\x20+=\x20lightMapTexel.rgb\x20*\x20lightMapIntensity\x20*\x20RECIPROCAL_PI;\x0a\x09#else\x0a\x09\x09reflectedLight.indirectDiffuse\x20+=\x20vec3(\x201.0\x20);\x0a\x09#endif\x0a\x09#include\x20<aomap_fragment>\x0a\x09reflectedLight.indirectDiffuse\x20*=\x20diffuseColor.rgb;\x0a\x09vec3\x20outgoingLight\x20=\x20reflectedLight.indirectDiffuse;\x0a\x09#include\x20<envmap_fragment>\x0a\x09#include\x20<opaque_fragment>\x0a\x09#include\x20<tonemapping_fragment>\x0a\x09#include\x20<colorspace_fragment>\x0a\x09#include\x20<fog_fragment>\x0a\x09#include\x20<premultiplied_alpha_fragment>\x0a\x09#include\x20<dithering_fragment>\x0a}','_loopCount','color','visible','copySampleValue_','right','anisotropyMap','toneMapping','isInterleavedBufferAttribute','displacementScale','transpose','isCubeTexture','_byClipCacheIndex','buffers','focus','offsetY','repeat','nodeName','(?:\x5c.(WC+)(?:\x5c[(.+)\x5c])?)?','RENDERBUFFER','FUNC_ADD','getIndirect','isBatchedMesh','transmission','equirect_frag','match','rectArea','intersectTriangle','directionalShadow','updateMatrix','_nActiveControlInterpolants','_lendControlInterpolant','optimize','MAX_COMBINED_TEXTURE_IMAGE_UNITS','envMapIntensity','isLineBasicMaterial','distanceToPoint','_lodMeshes','uniform\x20mat4\x20modelMatrix;','lerp','then','manager','isCompositing','_addIndex','layers','stencil','distanceTo','_lerp','_indirectTexture','premultiply','setHex','offsetX','RGBA32UI','coordinateSystem','heightSegments','texture','attributes','InterpolantFactoryMethodSmooth','children','8781iclbpz','varying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09gl_Position.z\x20=\x20gl_Position.w;\x0a}','toJSON','lightMapIntensity','delete','buffer','getSize','PACK_ALIGNMENT','lightMapUv','RG32UI','resourcePath','unpackAlignment','normalMapTangentSpace','progress','setReversed','clearcoatMapUv','geometry','iridescenceThicknessMapUv','distance','intersectsPlane','customDistanceMaterial','.position','combine','protocol','nextZ','_applyGGXFilter','materialVariant','view','#define\x20USE_COLOR','setMode','transmissionMap','getActiveUniform','stopFading','modelMatrix','boundingSphere','uniform','fov','info','onAfterRender','fragmentShader','WebGLProgram.getParameters:','skinning','ONE_MINUS_SRC_COLOR','metalness','TEXTURE0','lightMap','normalmap','customProgramCacheKey','renderMultiDraw','create','credentials','FRAGMENT_SHADER','matrixWorldInverse','cross','left','getActiveMipmapLevel','lightsStateVersion','clearcoatMap','_cubeSize','byteLength','updateRenderState','10FzQsKR','mapTransform','getTangentAt','blendSrcAlpha','_pageVisibilityHandler','premultiplyAlpha','samples','vertexAttrib3fv','envMapMode','isVector2','setPath','WEBGL_compressed_texture_etc','customDepthMaterial','transmissionMapUv','setIndirect','createRenderbuffer','blendDst','TEXTURE_3D','signal','wireframeLinewidth','#endif','SYNC_FLUSH_COMMANDS_BIT','readPixels','getParameters','parent','normalized','isExternalTexture','usedTimes','_dispersion','boolean','getControllerGrip','prevZ','crossFadeFrom','COMPRESSED_RGB_S3TC_DXT1_EXT','count','clearcoatNormalMapUv','depthFar','\x27\x20does\x20not\x20exist.','play','RGBA','renderBufferDirect','CreateFromMorphTargetSequence','VERTEX_SHADER','atan2','intersectsBox','isDataArrayTexture','metalnessMapTransform','DEPTH32F_STENCIL8','toArray','setComponents','slice','recast','updateArcLengths','material','mimeType','next','_getHandJoint','_listeners','components','_mixer','add','alphaHash','__version','Reinhard','COMPRESSED_RED_RGTC1_EXT','magFilter','maxInstanceCount','translateOnAxis','set','#define\x20LAMBERT\x0avarying\x20vec3\x20vViewPosition;\x0a#include\x20<common>\x0a#include\x20<batching_pars_vertex>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<displacementmap_pars_vertex>\x0a#include\x20<envmap_pars_vertex>\x0a#include\x20<color_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<normal_pars_vertex>\x0a#include\x20<morphtarget_pars_vertex>\x0a#include\x20<skinning_pars_vertex>\x0a#include\x20<shadowmap_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09#include\x20<color_vertex>\x0a\x09#include\x20<morphinstance_vertex>\x0a\x09#include\x20<morphcolor_vertex>\x0a\x09#include\x20<batching_vertex>\x0a\x09#include\x20<beginnormal_vertex>\x0a\x09#include\x20<morphnormal_vertex>\x0a\x09#include\x20<skinbase_vertex>\x0a\x09#include\x20<skinnormal_vertex>\x0a\x09#include\x20<defaultnormal_vertex>\x0a\x09#include\x20<normal_vertex>\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<morphtarget_vertex>\x0a\x09#include\x20<skinning_vertex>\x0a\x09#include\x20<displacementmap_vertex>\x0a\x09#include\x20<project_vertex>\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09vViewPosition\x20=\x20-\x20mvPosition.xyz;\x0a\x09#include\x20<worldpos_vertex>\x0a\x09#include\x20<envmap_vertex>\x0a\x09#include\x20<shadowmap_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','WebGLTextures:\x20sRGB\x20encoded\x20textures\x20have\x20to\x20use\x20RGBAFormat\x20and\x20UnsignedByteType.','MeshBasicMaterial','forceContextLoss','intersectsTriangle','bufferSubData','halfWidth','order','R8I','#ifdef\x20USE_CLEARCOATMAP\x0a\x09uniform\x20sampler2D\x20clearcoatMap;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09uniform\x20sampler2D\x20clearcoatNormalMap;\x0a\x09uniform\x20vec2\x20clearcoatNormalScale;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09uniform\x20sampler2D\x20clearcoatRoughnessMap;\x0a#endif','setTextureCube','getTargetRaySpace','mouseButtons','instanceMatrix','__boundDepthTexture','ArrayElement','shadowBias','BYTE','width','setResponseType','face','#define\x20PREMULTIPLIED_ALPHA','referenceCount','setValues','shaderType','#define\x20EMISSIVEMAP_UV\x20','stencilFuncMask','groups','isInstancedBufferGeometry','transmissionRenderTarget','_setSize','batching','isWebGLRenderer','computeBoneTexture','getCenter','setTexture2DArray','sizeAttenuation','height','ValueBufferType','image','radius','numRectAreaLights','uniform2i','backgroundRotation','isData3DTexture','NeedsUpdate','requestPaint','decompose','aomap','updateCoordinateSystem','uniform\x20mat4\x20viewMatrix;','setXY','update','isBufferGeometry','SRC_ALPHA','createInterpolant','setupDepthRenderbuffer','blendAlpha','directional','newAttributes','MAX_VERTEX_ATTRIBS','_alphaTest','306GOlKBY','makePerspective','#define\x20IRIDESCENCE_THICKNESSMAP_UV\x20','_localRoot','code','move','setSize','skeleton','uniform\x20float\x20rotation;\x0auniform\x20vec2\x20center;\x0a#include\x20<common>\x0a#include\x20<uv_pars_vertex>\x0a#include\x20<fog_pars_vertex>\x0a#include\x20<logdepthbuf_pars_vertex>\x0a#include\x20<clipping_planes_pars_vertex>\x0avoid\x20main()\x20{\x0a\x09#include\x20<uv_vertex>\x0a\x09vec4\x20mvPosition\x20=\x20modelViewMatrix[\x203\x20];\x0a\x09vec2\x20scale\x20=\x20vec2(\x20length(\x20modelMatrix[\x200\x20].xyz\x20),\x20length(\x20modelMatrix[\x201\x20].xyz\x20)\x20);\x0a\x09#ifndef\x20USE_SIZEATTENUATION\x0a\x09\x09bool\x20isPerspective\x20=\x20isPerspectiveMatrix(\x20projectionMatrix\x20);\x0a\x09\x09if\x20(\x20isPerspective\x20)\x20scale\x20*=\x20-\x20mvPosition.z;\x0a\x09#endif\x0a\x09vec2\x20alignedPosition\x20=\x20(\x20position.xy\x20-\x20(\x20center\x20-\x20vec2(\x200.5\x20)\x20)\x20)\x20*\x20scale;\x0a\x09vec2\x20rotatedPosition;\x0a\x09rotatedPosition.x\x20=\x20cos(\x20rotation\x20)\x20*\x20alignedPosition.x\x20-\x20sin(\x20rotation\x20)\x20*\x20alignedPosition.y;\x0a\x09rotatedPosition.y\x20=\x20sin(\x20rotation\x20)\x20*\x20alignedPosition.x\x20+\x20cos(\x20rotation\x20)\x20*\x20alignedPosition.y;\x0a\x09mvPosition.xy\x20+=\x20rotatedPosition;\x0a\x09gl_Position\x20=\x20projectionMatrix\x20*\x20mvPosition;\x0a\x09#include\x20<logdepthbuf_vertex>\x0a\x09#include\x20<clipping_planes_vertex>\x0a\x09#include\x20<fog_vertex>\x0a}','uniform\x20mat4\x20projectionMatrix;','Unable\x20to\x20determine\x20texture\x20byte\x20length\x20for\x20','_elapsed','WebGLRenderer:\x20Texture\x20samplers\x20can\x20not\x20be\x20part\x20of\x20an\x20uniforms\x20group.','connect','morphTargetsCount','UNPACK_SKIP_IMAGES','SRGB8_ALPHA8','#ifdef\x20USE_FOG\x0a\x09#ifdef\x20FOG_EXP2\x0a\x09\x09float\x20fogFactor\x20=\x201.0\x20-\x20exp(\x20-\x20fogDensity\x20*\x20fogDensity\x20*\x20vFogDepth\x20*\x20vFogDepth\x20);\x0a\x09#else\x0a\x09\x09float\x20fogFactor\x20=\x20smoothstep(\x20fogNear,\x20fogFar,\x20vFogDepth\x20);\x0a\x09#endif\x0a\x09gl_FragColor.rgb\x20=\x20mix(\x20gl_FragColor.rgb,\x20fogColor,\x20fogFactor\x20);\x0a#endif','parameters','area','getY','origin','\x09return\x20','_setValue_unavailable','morphTargetDictionary','DRAW_FRAMEBUFFER','frontFace','uniformsGroups','specularIntensity','removeHandler','attenuationDistance','lerpVectors','intersectSphere','multiply','copyLinearToSRGB','uniform4uiv','ONE_MINUS_DST_COLOR','start','numSpotLightMaps','renderTarget','_removeInactiveAction','varying\x20vec3\x20vWorldDirection;\x0a#include\x20<common>\x0avoid\x20main()\x20{\x0a\x09vWorldDirection\x20=\x20transformDirection(\x20position,\x20modelMatrix\x20);\x0a\x09#include\x20<begin_vertex>\x0a\x09#include\x20<project_vertex>\x0a}','indirectOffset','lastIndex','thetaLength','morphNormals','uuid','float\x20G_BlinnPhong_Implicit(\x20)\x20{\x0a\x09return\x200.25;\x0a}\x0afloat\x20D_BlinnPhong(\x20const\x20in\x20float\x20shininess,\x20const\x20in\x20float\x20dotNH\x20)\x20{\x0a\x09return\x20RECIPROCAL_PI\x20*\x20(\x20shininess\x20*\x200.5\x20+\x201.0\x20)\x20*\x20pow(\x20dotNH,\x20shininess\x20);\x0a}\x0avec3\x20BRDF_BlinnPhong(\x20const\x20in\x20vec3\x20lightDir,\x20const\x20in\x20vec3\x20viewDir,\x20const\x20in\x20vec3\x20normal,\x20const\x20in\x20vec3\x20specularColor,\x20const\x20in\x20float\x20shininess\x20)\x20{\x0a\x09vec3\x20halfDir\x20=\x20normalize(\x20lightDir\x20+\x20viewDir\x20);\x0a\x09float\x20dotNH\x20=\x20saturate(\x20dot(\x20normal,\x20halfDir\x20)\x20);\x0a\x09float\x20dotVH\x20=\x20saturate(\x20dot(\x20viewDir,\x20halfDir\x20)\x20);\x0a\x09vec3\x20F\x20=\x20F_Schlick(\x20specularColor,\x201.0,\x20dotVH\x20);\x0a\x09float\x20G\x20=\x20G_BlinnPhong_Implicit(\x20);\x0a\x09float\x20D\x20=\x20D_BlinnPhong(\x20shininess,\x20dotNH\x20);\x0a\x09return\x20F\x20*\x20(\x20G\x20*\x20D\x20);\x0a}\x20//\x20validated','materialIndex','abortController','isAmbientLight','parse','computeTangents','render','decodeVideoTextureEmissive','capabilities','__autoAllocateDepthBuffer','iridescenceThicknessMap','linearVelocity','enabled','#define\x20SHADER_NAME\x20','renderLists','matcap','phi','attachShader','fromBufferAttribute','Direct','bumpMapUv','getObjectByProperty','COMPRESSED_SRGB_S3TC_DXT1_EXT','compile','createFramebuffer','_sizeLods','RGB32I','_startTime','fadeOut','inputsourceschange','scale','RawShaderMaterial','colorSpace','flipEnvMap','hemisphereLights','depthWrite','bumpMap','isPresenting','error','addUpdateRange','getParameter','emissive','shaderID','blendColor','WebGLTextures:\x20Unsupported\x20texture\x20color\x20space:','joints','alphaMap','seq','clone','format','now','map','lightProbeGrid','url','fromEquirectangular','_clip','resolution','complete','webgl2','diffuse','uniform3uiv','values','fromJSON','directionalLightShadows','releaseShaderCache','_pingPongRenderTarget','347830jcNMvm','lightProbe','squeeze','clearColor','abs','texImage3D','rotateY','isArrayCamera','isCompressedTexture','gpuType','spotLength','setRequestHeader','source','cumulativeWeight','LINES','constant','shadowNormalBias','BACK','display','uniformsNeedUpdate','raycast','ValueTypeName','_weightInterpolant','__bindingPointIndex','GetterByBindingType','drawRange','getRenderTarget','FRONT','Skeleton:\x20Number\x20of\x20inverse\x20bone\x20matrices\x20does\x20not\x20match\x20amount\x20of\x20bones.','shaderName','call','applyAxisAngle','dispersion','useMultisampledRTT','wireframeLinecap','getRoot','COMPRESSED_RGBA_ASTC_10x5_KHR','getValueSize','sortObjects','time','roughness','cube_frag','pivot','getDepthInformation','setMask','setGlobalState','_timeScaleInterpolant','onStart','getActiveCubeFace','BindingType','createTexture','asin','stencilBuffer','DEFAULT_UP','refreshFogUniforms','closestPointToPoint','stencilRef','shadowSide','mediump','document','alphaToCoverage','log2','#define\x20USE_THICKNESSMAP','sin','trunc','setDrawRange','object','directionalShadowMatrix','_onChangeCallback','#define\x20DISTANCE\x0auniform\x20vec3\x20referencePosition;\x0auniform\x20float\x20nearDistance;\x0auniform\x20float\x20farDistance;\x0avarying\x20vec3\x20vWorldPosition;\x0a#include\x20<common>\x0a#include\x20<uv_pars_fragment>\x0a#include\x20<map_pars_fragment>\x0a#include\x20<alphamap_pars_fragment>\x0a#include\x20<alphatest_pars_fragment>\x0a#include\x20<alphahash_pars_fragment>\x0a#include\x20<clipping_planes_pars_fragment>\x0avoid\x20main\x20()\x20{\x0a\x09vec4\x20diffuseColor\x20=\x20vec4(\x201.0\x20);\x0a\x09#include\x20<clipping_planes_fragment>\x0a\x09#include\x20<map_fragment>\x0a\x09#include\x20<alphamap_fragment>\x0a\x09#include\x20<alphatest_fragment>\x0a\x09#include\x20<alphahash_fragment>\x0a\x09float\x20dist\x20=\x20length(\x20vWorldPosition\x20-\x20referencePosition\x20);\x0a\x09dist\x20=\x20(\x20dist\x20-\x20nearDistance\x20)\x20/\x20(\x20farDistance\x20-\x20nearDistance\x20);\x0a\x09dist\x20=\x20saturate(\x20dist\x20);\x0a\x09gl_FragColor\x20=\x20vec4(\x20dist,\x200.0,\x200.0,\x201.0\x20);\x0a}','isVector4','hemiLength','isPoints','ShaderMaterial','applyNormalMatrix','biasNode','isScheduled','reflectivity','#define\x20texture2DLodEXT\x20textureLod','texSubImage2D','addColors','timeScale','isImageBitmapLoader','scissorTest','#ifdef\x20USE_DISPLACEMENTMAP\x0a\x09transformed\x20+=\x20normalize(\x20objectNormal\x20)\x20*\x20(\x20texture2D(\x20displacementMap,\x20vDisplacementMapUv\x20).x\x20*\x20displacementScale\x20+\x20displacementBias\x20);\x0a#endif','ONE','#ifdef\x20USE_SKINNING\x0a\x09mat4\x20skinMatrix\x20=\x20mat4(\x200.0\x20);\x0a\x09skinMatrix\x20+=\x20skinWeight.x\x20*\x20boneMatX;\x0a\x09skinMatrix\x20+=\x20skinWeight.y\x20*\x20boneMatY;\x0a\x09skinMatrix\x20+=\x20skinWeight.z\x20*\x20boneMatZ;\x0a\x09skinMatrix\x20+=\x20skinWeight.w\x20*\x20boneMatW;\x0a\x09skinMatrix\x20=\x20bindMatrixInverse\x20*\x20skinMatrix\x20*\x20bindMatrix;\x0a\x09objectNormal\x20=\x20vec4(\x20skinMatrix\x20*\x20vec4(\x20objectNormal,\x200.0\x20)\x20).xyz;\x0a\x09#ifdef\x20USE_TANGENT\x0a\x09\x09objectTangent\x20=\x20vec4(\x20skinMatrix\x20*\x20vec4(\x20objectTangent,\x200.0\x20)\x20).xyz;\x0a\x09#endif\x0a#endif','unshift','getVertexPosition','clearcoatRoughnessMap','UNSIGNED_INT_5_9_9_9_REV','clearcoatRoughnessMapUv','round','setIndex','setFromQuaternion','normalize','offset','Euler:\x20.setFromRotationMatrix()\x20encountered\x20an\x20unknown\x20order:\x20','_isActiveAction','pop','_setValue_fromArray_setMatrixWorldNeedsUpdate','WEBGL_multisampled_render_to_texture','_bindings','morphTargets','cache','directionalShadowMap','_transmission','morphTextureStride','MeshPhysicalMaterial','LN2','COMPRESSED_RGBA_ASTC_8x8_KHR','resolveStencilBuffer','tracks','hasAttribute','setFromVector3','#define\x20ROUGHNESSMAP_UV\x20','#define\x20USE_SKINNING','translate','normalMap','compressedTexSubImage3D','transparent','_deactivateAction','anisotropyRotation','deleteRenderbuffer','touches','stencilFunc','normalScale','multiplyMatrices','ZXY','updateRanges','__webglInit','decay','filmOffset','data','setY','isCamera','_setEndings','receiveShadow','random','actionByRoot','numSpotLightShadows','_controlInterpolants','attached','inputState','true','SRC_COLOR','getBoneByName','_setAdditiveIdentityQuaternion','UNSIGNED_BYTE','setViewOffset','getScissorTest','clearcoat','numIntersection','allocateTextureUnit','morphTargetsTexture','_grip','getVertexShaderID','COMPRESSED_RGBA_ASTC_10x6_KHR','setStyle','\x20samplerCube;\x0a\x09precision\x20','pinchend','setXYZ','setFromPoints','WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20in\x20RGBA\x20or\x20implementation\x20defined\x20format.','srgb','makeRotationAxis','EntireArray','DEFAULT_ORDER','isXRRenderTarget','envMap','cumulativeWeightAdditive','sqrt','local-floor','mapping','depthBuffer','iridescence','NEUTRAL_TONE_MAPPING','extractRotation','center','itemError','WebGLRenderer:\x20Attempt\x20to\x20load\x20unsupported\x20compressed\x20texture\x20format\x20in\x20.uploadTexture()','setClearAlpha','accumulate','distanceToSphere','EXT_clip_control','WebGLRenderer:\x20Attempt\x20to\x20load\x20unsupported\x20compressed\x20texture\x20format\x20in\x20.setTextureCube()','morphTargetsRelative','COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR','clearDepth','getContext','UNPACK_ALIGNMENT','multiDrawElementsWEBGL','isEmpty','depthTest','length','getEnvironmentBlendMode','#define\x20FLIP_SIDED','getColorAt','Points','TEXTURE_CUBE_MAP','unproject','nodes','matrixAutoUpdate','binding','bindBuffer','#define\x20USE_BATCHING_COLOR','isSpotLight','#ifdef\x20USE_ALPHAHASH\x0a\x09const\x20float\x20ALPHA_HASH_SCALE\x20=\x200.05;\x0a\x09float\x20hash2D(\x20vec2\x20value\x20)\x20{\x0a\x09\x09return\x20fract(\x201.0e4\x20*\x20sin(\x2017.0\x20*\x20value.x\x20+\x200.1\x20*\x20value.y\x20)\x20*\x20(\x200.1\x20+\x20abs(\x20sin(\x2013.0\x20*\x20value.y\x20+\x20value.x\x20)\x20)\x20)\x20);\x0a\x09}\x0a\x09float\x20hash3D(\x20vec3\x20value\x20)\x20{\x0a\x09\x09return\x20hash2D(\x20vec2(\x20hash2D(\x20value.xy\x20),\x20value.z\x20)\x20);\x0a\x09}\x0a\x09float\x20getAlphaHashThreshold(\x20vec3\x20position\x20)\x20{\x0a\x09\x09float\x20maxDeriv\x20=\x20max(\x0a\x09\x09\x09length(\x20dFdx(\x20position.xyz\x20)\x20),\x0a\x09\x09\x09length(\x20dFdy(\x20position.xyz\x20)\x20)\x0a\x09\x09);\x0a\x09\x09float\x20pixScale\x20=\x201.0\x20/\x20(\x20ALPHA_HASH_SCALE\x20*\x20maxDeriv\x20);\x0a\x09\x09vec2\x20pixScales\x20=\x20vec2(\x0a\x09\x09\x09exp2(\x20floor(\x20log2(\x20pixScale\x20)\x20)\x20),\x0a\x09\x09\x09exp2(\x20ceil(\x20log2(\x20pixScale\x20)\x20)\x20)\x0a\x09\x09);\x0a\x09\x09vec2\x20alpha\x20=\x20vec2(\x0a\x09\x09\x09hash3D(\x20floor(\x20pixScales.x\x20*\x20position.xyz\x20)\x20),\x0a\x09\x09\x09hash3D(\x20floor(\x20pixScales.y\x20*\x20position.xyz\x20)\x20)\x0a\x09\x09);\x0a\x09\x09float\x20lerpFactor\x20=\x20fract(\x20log2(\x20pixScale\x20)\x20);\x0a\x09\x09float\x20x\x20=\x20(\x201.0\x20-\x20lerpFactor\x20)\x20*\x20alpha.x\x20+\x20lerpFactor\x20*\x20alpha.y;\x0a\x09\x09float\x20a\x20=\x20min(\x20lerpFactor,\x201.0\x20-\x20lerpFactor\x20);\x0a\x09\x09vec3\x20cases\x20=\x20vec3(\x0a\x09\x09\x09x\x20*\x20x\x20/\x20(\x202.0\x20*\x20a\x20*\x20(\x201.0\x20-\x20a\x20)\x20),\x0a\x09\x09\x09(\x20x\x20-\x200.5\x20*\x20a\x20)\x20/\x20(\x201.0\x20-\x20a\x20),\x0a\x09\x09\x091.0\x20-\x20(\x20(\x201.0\x20-\x20x\x20)\x20*\x20(\x201.0\x20-\x20x\x20)\x20/\x20(\x202.0\x20*\x20a\x20*\x20(\x201.0\x20-\x20a\x20)\x20)\x20)\x0a\x09\x09);\x0a\x09\x09float\x20threshold\x20=\x20(\x20x\x20<\x20(\x201.0\x20-\x20a\x20)\x20)\x0a\x09\x09\x09?\x20(\x20(\x20x\x20<\x20a\x20)\x20?\x20cases.x\x20:\x20cases.y\x20)\x0a\x09\x09\x09:\x20cases.z;\x0a\x09\x09return\x20clamp(\x20threshold\x20,\x201.0e-6,\x201.0\x20);\x0a\x09}\x0a#endif','from','#define\x20USE_FOG','frustumCulled','name','RGBA32I','ENVMAP_BLENDING_ADD','REINHARD_TONE_MAPPING','stride','getHSL','projectionMatrixInverse','textureFormatReadable','updateRenderTargetMipmap','sheenColorMapUv','isLightProbe','#ifdef\x20DITHERING\x0a\x09gl_FragColor.rgb\x20=\x20dithering(\x20gl_FragColor.rgb\x20);\x0a#endif','clamp','isTexture','bottom','framebufferRenderbuffer','matrixWorld','intersect','clearUpdateRanges','ImageBitmapLoader:\x20fetch()\x20not\x20supported.','polygonOffsetFactor','Invalid\x20component\x20type.','__cacheIndex','renderbufferStorageMultisample','addGroup','mapSize','localClippingEnabled','setValue','compose','textures','replace','toXYZ','files','dispatchEvent','fromArray','type','linewidth','metalnessMap','ZYX','_matricesTexture','ELEMENT_ARRAY_BUFFER','DEFAULT_MATERIAL_NAME','COMPRESSED_RGBA_PVRTC_2BPPV1_IMG','NEVER','DEFAULT_MAPPING','onError','zoom','mipmaps','matrix','PIXEL_PACK_BUFFER','R16F','renderOrder','canvas','_getValue_unbound','attribute','meshphysical_frag','identity','#if\x20defined(\x20USE_UV\x20)\x20||\x20defined(\x20USE_ANISOTROPY\x20)\x0a\x09varying\x20vec2\x20vUv;\x0a#endif\x0a#ifdef\x20USE_MAP\x0a\x09varying\x20vec2\x20vMapUv;\x0a#endif\x0a#ifdef\x20USE_ALPHAMAP\x0a\x09varying\x20vec2\x20vAlphaMapUv;\x0a#endif\x0a#ifdef\x20USE_LIGHTMAP\x0a\x09varying\x20vec2\x20vLightMapUv;\x0a#endif\x0a#ifdef\x20USE_AOMAP\x0a\x09varying\x20vec2\x20vAoMapUv;\x0a#endif\x0a#ifdef\x20USE_BUMPMAP\x0a\x09varying\x20vec2\x20vBumpMapUv;\x0a#endif\x0a#ifdef\x20USE_NORMALMAP\x0a\x09varying\x20vec2\x20vNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_EMISSIVEMAP\x0a\x09varying\x20vec2\x20vEmissiveMapUv;\x0a#endif\x0a#ifdef\x20USE_METALNESSMAP\x0a\x09varying\x20vec2\x20vMetalnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ROUGHNESSMAP\x0a\x09varying\x20vec2\x20vRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_ANISOTROPYMAP\x0a\x09varying\x20vec2\x20vAnisotropyMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOATMAP\x0a\x09varying\x20vec2\x20vClearcoatMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_NORMALMAP\x0a\x09varying\x20vec2\x20vClearcoatNormalMapUv;\x0a#endif\x0a#ifdef\x20USE_CLEARCOAT_ROUGHNESSMAP\x0a\x09varying\x20vec2\x20vClearcoatRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCEMAP\x0a\x09varying\x20vec2\x20vIridescenceMapUv;\x0a#endif\x0a#ifdef\x20USE_IRIDESCENCE_THICKNESSMAP\x0a\x09varying\x20vec2\x20vIridescenceThicknessMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_COLORMAP\x0a\x09varying\x20vec2\x20vSheenColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SHEEN_ROUGHNESSMAP\x0a\x09varying\x20vec2\x20vSheenRoughnessMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09varying\x20vec2\x20vSpecularMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_COLORMAP\x0a\x09varying\x20vec2\x20vSpecularColorMapUv;\x0a#endif\x0a#ifdef\x20USE_SPECULAR_INTENSITYMAP\x0a\x09varying\x20vec2\x20vSpecularIntensityMapUv;\x0a#endif\x0a#ifdef\x20USE_TRANSMISSIONMAP\x0a\x09uniform\x20mat3\x20transmissionMapTransform;\x0a\x09varying\x20vec2\x20vTransmissionMapUv;\x0a#endif\x0a#ifdef\x20USE_THICKNESSMAP\x0a\x09uniform\x20mat3\x20thicknessMapTransform;\x0a\x09varying\x20vec2\x20vThicknessMapUv;\x0a#endif','__cache','specularMap','linedashed_vert','instanceColor','setFromMatrix4','linedashed_frag','times','distanceSqToSegment','isWebGLRenderTarget','ONE_MINUS_CONSTANT_ALPHA','uniform3f','reset','TEXTURE_CUBE_MAP_POSITIVE_X','customFragmentShaderID','_root','cos','constructor','stencilFail','#define\x20','createProjectionLayer','_uuid','index0AttributeName','isLine','directionalLights','readBuffer','sheenColor','#define\x20USE_NORMALMAP_OBJECTSPACE','getShaderSource','computeBoundingBox','itemStart','DEPTH_TEST','KEEP','join','enable','setClear','__data','referencePosition','translateZ','textureUnits','isDataTexture','addVectors','setRGB','applyMatrix4','getImageData','decodeVideoTexture','index\x20is\x20out\x20of\x20range:\x20','sheenColorMap','depthNear','tangent','UNSIGNED_SHORT','_colorsTexture','POINTS','#define\x20MORPHTARGETS_COUNT\x20','makeEmpty','getZ','setFromMatrixPosition','vertexUv3s','addEventListener','glslVersion','_setTextureOptions','LineSegments.computeLineDistances():\x20Computation\x20only\x20possible\x20with\x20non-indexed\x20BufferGeometry.','index','generateMipmaps','UNPACK_SKIP_ROWS','specularColor','linkProgram','multiplyQuaternions','morphTargetInfluences','_order','TimeBufferType','shadow','YXZ','\x0a#define\x20LOW_PRECISION','sampleValues','clipShadows','NEAREST','updateMorphTargets','4005376YFKovg','channel','quaternion','TRIANGLES','MAX_VERTEX_TEXTURE_IMAGE_UNITS','isWebGLArrayRenderTarget','target','webglcontextrestored','WebGLRenderer.render:\x20camera\x20is\x20not\x20an\x20instance\x20of\x20THREE.Camera.','renderEnd','WebGL','availableGeometryIds','_abortController','assign','uniform\x20mat4\x20modelViewMatrix;','LineSegments','isWebGLCubeRenderTarget','colorWrite','LESS','reversedDepth','uniform\x20mat3\x20normalMatrix;','ior','angularVelocity','_depthTexture','\x09attribute\x20vec4\x20skinWeight;','aoMapIntensity','renderInstances','Can\x20not\x20resolve\x20#include\x20<','tEquirect','texImage2D','_removeInactiveBinding','transfer','_setValue_arrayElement','currentProgram','observe','isShaderMaterial','needsPMREMUpdate','#define\x20USE_EMISSIVEMAP','UNPACK_ROW_LENGTH','5XyYxMZ','batchingColor','load','parseAnimation','THREE.KeyframeTrack:\x20track\x20name\x20is\x20undefined','envMapCubeUVHeight','register','scalar','lines','varying\x20vec3\x20vViewPosition;\x0astruct\x20LambertMaterial\x20{\x0a\x09vec3\x20diffuseColor;\x0a\x09float\x20specularStrength;\x0a};\x0avoid\x20RE_Direct_Lambert(\x20const\x20in\x20IncidentLight\x20directLight,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20LambertMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09float\x20dotNL\x20=\x20saturate(\x20dot(\x20geometryNormal,\x20directLight.direction\x20)\x20);\x0a\x09vec3\x20irradiance\x20=\x20dotNL\x20*\x20directLight.color;\x0a\x09reflectedLight.directDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0avoid\x20RE_IndirectDiffuse_Lambert(\x20const\x20in\x20vec3\x20irradiance,\x20const\x20in\x20vec3\x20geometryPosition,\x20const\x20in\x20vec3\x20geometryNormal,\x20const\x20in\x20vec3\x20geometryViewDir,\x20const\x20in\x20vec3\x20geometryClearcoatNormal,\x20const\x20in\x20LambertMaterial\x20material,\x20inout\x20ReflectedLight\x20reflectedLight\x20)\x20{\x0a\x09reflectedLight.indirectDiffuse\x20+=\x20irradiance\x20*\x20BRDF_Lambert(\x20material.diffuseColor\x20);\x0a}\x0a#define\x20RE_Direct\x09\x09\x09\x09RE_Direct_Lambert\x0a#define\x20RE_IndirectDiffuse\x09\x09RE_IndirectDiffuse_Lambert','blendDstAlpha','attenuationColor','getPixelRatio','setTest','EXT_texture_filter_anisotropic','depth','addLayerUpdate','#define\x20attribute\x20in','attribute\x20vec3\x20position;','copyTexSubImage2D','setFromAxisAngle','power','premultipliedAlpha','ImageBitmapLoader:\x20createImageBitmap()\x20not\x20supported.','arrayBuffers','PropertyBinding:\x20Can\x20not\x20bind\x20to\x20material\x20as\x20node\x20does\x20not\x20have\x20a\x20material.','isArrayTexture','_delta','removeEventListener','DEPTH_ATTACHMENT','displacementMap','000000','setUvTransform','aspect','anisotropy','enqueue','isLineLoop','autoClear','wrapR','near','stopWarping','bind','hasRenderPass','clampWhenFinished','highp','FRAMEBUFFER','fromScene','slerpFlat','divideScalar','texStorage2D','arrayBuffer','Error\x20creating\x20WebGL\x20context\x20with\x20your\x20selected\x20attributes.','__webglFramebuffer','#define\x20USE_ALPHAMAP','resetState','COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR','fogExp2','floor','valueSize','needsLights','#define\x20USE_ENVMAP','setTexture3D','path','getTransfer','boundary','distanceToSquared','value','init','setOptional','clippingState','groundColor','cameras','getDepthTexture','RGB8UI','_ggxMaterial','getViewSubImage','roughnessMap','parameterPositions','8213711cJIOpn','dot','conjugate','setViewport','ENVMAP_TYPE_CUBE','isScene','#define\x20USE_LIGHT_PROBES_GRID','FLOAT','COMPRESSED_RG11_EAC','mapType','sanitizeNodeName','HALF_FLOAT','far','boundingBox','RGBA16_SNORM_EXT','bumpScale','requestHeader','wireframeLinejoin','sub','existingAction','backgroundCube_vert','applyQuaternion','lookAt','splice','_multiDrawCounts','top','vertexTangents','meshnormal_vert','uniforms','mask','hidden','_document','multiplyScalar','morphAttributes','isMaterial','metalnessMapUv','max','test','reversedDepthBuffer','displayWidth','expandByPoint','depthTexture','doubleSided','RGBA32F','iridescenceIOR','uniform4i','setFromRotationMatrix','aoMapUv','clearBufferiv','THREE.WebGLRenderer.readRenderTargetPixelsAsync:\x20requested\x20read\x20bounds\x20are\x20out\x20of\x20range.','background','ZERO','position','_cachedIndex','viewport','float\x20specularStrength;\x0a#ifdef\x20USE_SPECULARMAP\x0a\x09vec4\x20texelSpecular\x20=\x20texture2D(\x20specularMap,\x20vSpecularMapUv\x20);\x0a\x09specularStrength\x20=\x20texelSpecular.r;\x0a#else\x0a\x09specularStrength\x20=\x201.0;\x0a#endif','wireframe','LINK_STATUS','isReady','apply','arraybuffer','resolvedProperty','_targetRay','setW','WEBGL_lose_context','__webglTexture','instancingMorph','isSkinnedMesh','framebufferTextureLayer','uniformBlockBinding','bufferData','iterator','setComponent','containsPoint','logarithmicDepthBuffer','prev','displacementBias','getHex','location','clearcoatNormalMap','PMREM.Background','ceil','validate','isMeshPhongMaterial','sourceTexture','isMeshLambertMaterial','trim','manhattanDistanceTo','containsBox','pushShadow','setRotationFromMatrix','BYTES_PER_ELEMENT','35idTNtf','outTangents','getW','_blurMaterial','sheenRoughness'];a0=function(){return vb;};return a0();}function qu(){let a4={};return{'get':function(a5){const sm=a1;if(a4[a5['id']]!==void 0x0)return a4[a5['id']];let a6;switch(a5['type']){case'DirectionalLight':a6={'shadowIntensity':0x1,'shadowBias':0x0,'shadowNormalBias':0x0,'shadowRadius':0x1,'shadowMapSize':new U()};break;case sm(0x573):a6={'shadowIntensity':0x1,'shadowBias':0x0,'shadowNormalBias':0x0,'shadowRadius':0x1,'shadowMapSize':new U()};break;case'PointLight':a6={'shadowIntensity':0x1,'shadowBias':0x0,'shadowNormalBias':0x0,'shadowRadius':0x1,'shadowMapSize':new U(),'shadowCameraNear':0x1,'shadowCameraFar':0x3e8};break;}return a4[a5['id']]=a6,a6;}};}var Ju=0x0;function Yu(a4,a5){const sp=d4;return(a5['castShadow']?0x2:0x0)-(a4[sp(0x594)]?0x2:0x0)+ +!!a5[sp(0x2db)]-!!a4['map'];}function Xu(a4){const sq=d4;let a5=new Ku(),a6=qu(),a7={'version':0x0,'hash':{'directionalLength':-0x1,'pointLength':-0x1,'spotLength':-0x1,'rectAreaLength':-0x1,'hemiLength':-0x1,'numDirectionalShadows':-0x1,'numPointShadows':-0x1,'numSpotShadows':-0x1,'numSpotMaps':-0x1,'numLightProbes':-0x1},'ambient':[0x0,0x0,0x0],'probe':[],'directional':[],'directionalShadow':[],'directionalShadowMap':[],'directionalShadowMatrix':[],'spot':[],'spotLightMap':[],'spotShadow':[],'spotShadowMap':[],'spotLightMatrix':[],'rectArea':[],'rectAreaLTC1':null,'rectAreaLTC2':null,'point':[],'pointShadow':[],'pointShadowMap':[],'pointShadowMatrix':[],'hemi':[],'numSpotLightShadowsWithMaps':0x0,'numLightProbes':0x0};for(let ah=0x0;ah<0x9;ah++)a7[sq(0x580)]['push'](new W());let a8=new W(),a9=new J(),ab=new J();function af(aj){const sv=sq;let ak=0x0,am=0x0,ap=0x0;for(let aG=0x0;aG<0x9;aG++)a7['probe'][aG]['set'](0x0,0x0,0x0);let aq=0x0,av=0x0,aw=0x0,ax=0x0,ay=0x0,az=0x0,aA=0x0,aB=0x0,aC=0x0,aD=0x0,aE=0x0;aj['sort'](Yu);for(let aH=0x0,aI=aj[sv(0x3ac)];aH<aI;aH++){let aJ=aj[aH],aK=aJ[sv(0x180)],aL=aJ['intensity'],aM=aJ['distance'],aN=null;if(aJ['shadow']&&aJ['shadow'][sv(0x2db)]&&(aN=aJ['shadow']['map']['texture']['format']===0x406?aJ['shadow'][sv(0x2db)]['texture']:aJ['shadow']['map']['depthTexture']||aJ['shadow']['map']['texture']),aJ['isAmbientLight'])ak+=aK['r']*aL,am+=aK['g']*aL,ap+=aK['b']*aL;else{if(aJ[sv(0x3c7)]){for(let aO=0x0;aO<0x9;aO++)a7['probe'][aO]['addScaledVector'](aJ['sh']['coefficients'][aO],aL);aE++;}else{if(aJ['isDirectionalLight']){let aP=a5[sv(0x61a)](aJ);if(aP['color']['copy'](aJ['color'])['multiplyScalar'](aJ['intensity']),aJ['castShadow']){let aQ=aJ['shadow'],aR=a6['get'](aJ);aR['shadowIntensity']=aQ['intensity'],aR[sv(0x24b)]=aQ['bias'],aR['shadowNormalBias']=aQ['normalBias'],aR['shadowRadius']=aQ[sv(0x263)],aR['shadowMapSize']=aQ['mapSize'],a7['directionalShadow'][aq]=aR,a7['directionalShadowMap'][aq]=aN,a7[sv(0x32d)][aq]=aJ[sv(0x43d)]['matrix'],az++;}a7[sv(0x275)][aq]=aP,aq++;}else{if(aJ[sv(0x3b8)]){let aS=a5['get'](aJ);aS['position']['setFromMatrixPosition'](aJ['matrixWorld']),aS['color']['copy'](aK)['multiplyScalar'](aL),aS['distance']=aM,aS['coneCos']=Math['cos'](aJ['angle']),aS['penumbraCos']=Math['cos'](aJ['angle']*(0x1-aJ['penumbra'])),aS['decay']=aJ['decay'],a7['spot'][aw]=aS;let aT=aJ['shadow'];if(aJ['map']&&(a7['spotLightMap'][aC]=aJ[sv(0x2db)],aC++,aT['updateMatrices'](aJ),aJ[sv(0x594)]&&aD++),a7['spotLightMatrix'][aw]=aT[sv(0x3ed)],aJ['castShadow']){let aU=a6[sv(0x61a)](aJ);aU['shadowIntensity']=aT['intensity'],aU['shadowBias']=aT[sv(0x160)],aU['shadowNormalBias']=aT['normalBias'],aU['shadowRadius']=aT['radius'],aU['shadowMapSize']=aT['mapSize'],a7['spotShadow'][aw]=aU,a7['spotShadowMap'][aw]=aN,aB++;}aw++;}else{if(aJ['isRectAreaLight']){let aV=a5['get'](aJ);aV['color']['copy'](aK)['multiplyScalar'](aL),aV['halfWidth']['set'](aJ['width']*0.5,0x0,0x0),aV['halfHeight']['set'](0x0,aJ['height']*0.5,0x0),a7['rectArea'][ax]=aV,ax++;}else{if(aJ[sv(0x602)]){let aW=a5['get'](aJ);if(aW['color']['copy'](aJ['color'])['multiplyScalar'](aJ['intensity']),aW['distance']=aJ['distance'],aW['decay']=aJ['decay'],aJ['castShadow']){let aX=aJ[sv(0x43d)],aY=a6['get'](aJ);aY['shadowIntensity']=aX['intensity'],aY['shadowBias']=aX['bias'],aY[sv(0x2fa)]=aX[sv(0x554)],aY[sv(0x5b8)]=aX[sv(0x263)],aY['shadowMapSize']=aX['mapSize'],aY['shadowCameraNear']=aX['camera']['near'],aY['shadowCameraFar']=aX['camera']['far'],a7['pointShadow'][av]=aY,a7['pointShadowMap'][av]=aN,a7['pointShadowMatrix'][av]=aJ['shadow']['matrix'],aA++;}a7['point'][av]=aW,av++;}else{if(aJ['isHemisphereLight']){let aZ=a5['get'](aJ);aZ['skyColor'][sv(0x647)](aJ['color'])['multiplyScalar'](aL),aZ['groundColor']['copy'](aJ['groundColor'])['multiplyScalar'](aL),a7['hemi'][ay]=aZ,ay++;}}}}}}}}ax>0x0&&(a4['has']('OES_texture_float_linear')===!0x0?(a7['rectAreaLTC1']=$['LTC_FLOAT_1'],a7['rectAreaLTC2']=$[sv(0x613)]):(a7['rectAreaLTC1']=$['LTC_HALF_1'],a7['rectAreaLTC2']=$['LTC_HALF_2'])),a7['ambient'][0x0]=ak,a7['ambient'][0x1]=am,a7['ambient'][0x2]=ap;let aF=a7['hash'];(aF['directionalLength']!==aq||aF[sv(0x627)]!==av||aF[sv(0x2f4)]!==aw||aF['rectAreaLength']!==ax||aF[sv(0x331)]!==ay||aF['numDirectionalShadows']!==az||aF['numPointShadows']!==aA||aF[sv(0x533)]!==aB||aF['numSpotMaps']!==aC||aF['numLightProbes']!==aE)&&(a7['directional'][sv(0x3ac)]=aq,a7[sv(0x567)]['length']=aw,a7[sv(0x198)]['length']=ax,a7['point']['length']=av,a7['hemi'][sv(0x3ac)]=ay,a7[sv(0x19a)]['length']=az,a7[sv(0x353)]['length']=az,a7['pointShadow'][sv(0x3ac)]=aA,a7['pointShadowMap']['length']=aA,a7['spotShadow']['length']=aB,a7['spotShadowMap'][sv(0x3ac)]=aB,a7[sv(0x32d)]['length']=az,a7['pointShadowMatrix']['length']=aA,a7['spotLightMatrix'][sv(0x3ac)]=aB+aC-aD,a7['spotLightMap']['length']=aC,a7['numSpotLightShadowsWithMaps']=aD,a7['numLightProbes']=aE,aF['directionalLength']=aq,aF['pointLength']=av,aF['spotLength']=aw,aF['rectAreaLength']=ax,aF['hemiLength']=ay,aF['numDirectionalShadows']=az,aF['numPointShadows']=aA,aF['numSpotShadows']=aB,aF['numSpotMaps']=aC,aF['numLightProbes']=aE,a7['version']=Ju++);}function ag(aj,ak){const sw=sq;let am=0x0,ap=0x0,aq=0x0,av=0x0,aw=0x0,ax=ak[sw(0x1ed)];for(let ay=0x0,az=aj['length'];ay<az;ay++){let aA=aj[ay];if(aA['isDirectionalLight']){let aB=a7['directional'][am];aB['direction']['setFromMatrixPosition'](aA['matrixWorld']),a8['setFromMatrixPosition'](aA['target']['matrixWorld']),aB['direction']['sub'](a8),aB['direction']['transformDirection'](ax),am++;}else{if(aA[sw(0x3b8)]){let aC=a7[sw(0x567)][aq];aC[sw(0x4ed)]['setFromMatrixPosition'](aA['matrixWorld']),aC['position']['applyMatrix4'](ax),aC['direction']['setFromMatrixPosition'](aA['matrixWorld']),a8['setFromMatrixPosition'](aA['target']['matrixWorld']),aC['direction']['sub'](a8),aC['direction']['transformDirection'](ax),aq++;}else{if(aA['isRectAreaLight']){let aD=a7['rectArea'][av];aD['position']['setFromMatrixPosition'](aA['matrixWorld']),aD['position'][sw(0x421)](ax),ab[sw(0x3f5)](),a9['copy'](aA['matrixWorld']),a9['premultiply'](ax),ab[sw(0x39b)](a9),aD[sw(0x241)]['set'](aA['width']*0.5,0x0,0x0),aD['halfHeight'][sw(0x23a)](0x0,aA['height']*0.5,0x0),aD[sw(0x241)][sw(0x421)](ab),aD['halfHeight']['applyMatrix4'](ab),av++;}else{if(aA['isPointLight']){let aE=a7['point'][ap];aE['position'][sw(0x42e)](aA['matrixWorld']),aE['position'][sw(0x421)](ax),ap++;}else{if(aA['isHemisphereLight']){let aF=a7['hemi'][aw];aF['direction']['setFromMatrixPosition'](aA[sw(0x3cd)]),aF['direction']['transformDirection'](ax),aw++;}}}}}}}return{'setup':af,'setupView':ag,'state':a7};}function Zu(a4){let a5=new Xu(a4),a6=[],a7=[],a8=[];function a9(am){const sx=a1;ak['camera']=am,a6[sx(0x3ac)]=0x0,a7['length']=0x0,a8[sx(0x3ac)]=0x0;}function ab(am){const sy=a1;a6[sy(0x5d4)](am);}function af(am){a7['push'](am);}function ag(am){a8['push'](am);}function ah(){a5['setup'](a6);}function aj(am){a5['setupView'](a6,am);}let ak={'lightsArray':a6,'shadowsArray':a7,'lightProbeGridArray':a8,'camera':null,'lights':a5,'transmissionRenderTarget':{},'textureUnits':0x0};return{'init':a9,'state':ak,'setupLights':ah,'setupLightsView':aj,'pushLight':ab,'pushShadow':af,'pushLightProbeGrid':ag};}function Qu(a4){let a5=new WeakMap();function a6(a8,a9=0x0){let ab=a5['get'](a8),af;return ab===void 0x0?(af=new Zu(a4),a5['set'](a8,[af])):a9>=ab['length']?(af=new Zu(a4),ab['push'](af)):af=ab[a9],af;}function a7(){a5=new WeakMap();}return{'get':a6,'dispose':a7};}var $u='void\x20main()\x20{\x0a\x09gl_Position\x20=\x20vec4(\x20position,\x201.0\x20);\x0a}',ed='uniform\x20sampler2D\x20shadow_pass;\x0auniform\x20vec2\x20resolution;\x0auniform\x20float\x20radius;\x0avoid\x20main()\x20{\x0a\x09const\x20float\x20samples\x20=\x20float(\x20VSM_SAMPLES\x20);\x0a\x09float\x20mean\x20=\x200.0;\x0a\x09float\x20squared_mean\x20=\x200.0;\x0a\x09float\x20uvStride\x20=\x20samples\x20<=\x201.0\x20?\x200.0\x20:\x202.0\x20/\x20(\x20samples\x20-\x201.0\x20);\x0a\x09float\x20uvStart\x20=\x20samples\x20<=\x201.0\x20?\x200.0\x20:\x20-\x201.0;\x0a\x09for\x20(\x20float\x20i\x20=\x200.0;\x20i\x20<\x20samples;\x20i\x20++\x20)\x20{\x0a\x09\x09float\x20uvOffset\x20=\x20uvStart\x20+\x20i\x20*\x20uvStride;\x0a\x09\x09#ifdef\x20HORIZONTAL_PASS\x0a\x09\x09\x09vec2\x20distribution\x20=\x20texture2D(\x20shadow_pass,\x20(\x20gl_FragCoord.xy\x20+\x20vec2(\x20uvOffset,\x200.0\x20)\x20*\x20radius\x20)\x20/\x20resolution\x20).rg;\x0a\x09\x09\x09mean\x20+=\x20distribution.x;\x0a\x09\x09\x09squared_mean\x20+=\x20distribution.y\x20*\x20distribution.y\x20+\x20distribution.x\x20*\x20distribution.x;\x0a\x09\x09#else\x0a\x09\x09\x09float\x20depth\x20=\x20texture2D(\x20shadow_pass,\x20(\x20gl_FragCoord.xy\x20+\x20vec2(\x200.0,\x20uvOffset\x20)\x20*\x20radius\x20)\x20/\x20resolution\x20).r;\x0a\x09\x09\x09mean\x20+=\x20depth;\x0a\x09\x09\x09squared_mean\x20+=\x20depth\x20*\x20depth;\x0a\x09\x09#endif\x0a\x09}\x0a\x09mean\x20=\x20mean\x20/\x20samples;\x0a\x09squared_mean\x20=\x20squared_mean\x20/\x20samples;\x0a\x09float\x20std_dev\x20=\x20sqrt(\x20max(\x200.0,\x20squared_mean\x20-\x20mean\x20*\x20mean\x20)\x20);\x0a\x09gl_FragColor\x20=\x20vec4(\x20mean,\x20std_dev,\x200.0,\x201.0\x20);\x0a}',td=[new W(0x1,0x0,0x0),new W(-0x1,0x0,0x0),new W(0x0,0x1,0x0),new W(0x0,-0x1,0x0),new W(0x0,0x0,0x1),new W(0x0,0x0,-0x1)],nd=[new W(0x0,-0x1,0x0),new W(0x0,-0x1,0x0),new W(0x0,0x0,0x1),new W(0x0,0x0,-0x1),new W(0x0,-0x1,0x0),new W(0x0,-0x1,0x0)],rd=new J(),id=new W(),ad=new W();function od(a4,a5,a6){const sz=d4;let a7=new Xi(),a8=new U(),a9=new U(),ab=new q(),af=new Do(),ag=new Oo(),ah={},aj=a6[sz(0x5f3)],ak={0x0:0x1,0x1:0x0,0x2:0x2},am=new xo({'defines':{'VSM_SAMPLES':0x8},'uniforms':{'shadow_pass':{'value':null},'resolution':{'value':new U()},'radius':{'value':0x4}},'vertexShader':$u,'fragmentShader':ed}),ap=am['clone']();ap['defines']['HORIZONTAL_PASS']=0x1;let aq=new Wr();aq['setAttribute']('position',new kr(new Float32Array([-0x1,-0x1,0.5,0x3,-0x1,0.5,-0x1,0x3,0.5]),0x3));let av=new gi(aq,am),aw=this;this[sz(0x2b4)]=!0x1,this['autoUpdate']=!0x0,this['needsUpdate']=!0x1,this['type']=0x1;let ax=this['type'];this['render']=function(aC,aD,aE){const sA=sz;if(aw['enabled']===!0x1||aw['autoUpdate']===!0x1&&aw[sA(0x55b)]===!0x1||aC['length']===0x0)return;this[sA(0x3e0)]===0x2&&(z('WebGLShadowMap:\x20PCFSoftShadowMap\x20has\x20been\x20deprecated.\x20Using\x20PCFShadowMap\x20instead.'),this[sA(0x3e0)]=0x1);let aF=a4['getRenderTarget'](),aG=a4['getActiveCubeFace'](),aH=a4['getActiveMipmapLevel'](),aI=a4['state'];aI['setBlending'](0x0),aI['buffers'][sA(0x47a)]['getReversed']()===!0x0?aI['buffers'][sA(0x180)]['setClear'](0x0,0x0,0x0,0x0):aI['buffers']['color']['setClear'](0x1,0x1,0x1,0x1),aI[sA(0x18b)][sA(0x47a)][sA(0x478)](!0x0),aI['setScissorTest'](!0x1);let aJ=ax!==this['type'];aJ&&aD['traverse'](function(aK){const sB=sA;aK['material']&&(Array['isArray'](aK['material'])?aK[sB(0x22b)]['forEach'](aL=>aL[sB(0x55b)]=!0x0):aK['material']['needsUpdate']=!0x0);});for(let aK=0x0,aL=aC['length'];aK<aL;aK++){let aM=aC[aK],aN=aM[sA(0x43d)];if(aN===void 0x0){z('WebGLShadowMap:',aM,'has\x20no\x20shadow.');continue;}if(aN['autoUpdate']===!0x1&&aN['needsUpdate']===!0x1)continue;a8[sA(0x647)](aN['mapSize']);let aO=aN['getFrameExtents']();a8['multiply'](aO),a9[sA(0x647)](aN['mapSize']),(a8['x']>aj||a8['y']>aj)&&(a8['x']>aj&&(a9['x']=Math['floor'](aj/aO['x']),a8['x']=a9['x']*aO['x'],aN[sA(0x3d6)]['x']=a9['x']),a8['y']>aj&&(a9['y']=Math['floor'](aj/aO['y']),a8['y']=a9['y']*aO['y'],aN[sA(0x3d6)]['y']=a9['y']));let aP=a4['state'][sA(0x18b)]['depth']['getReversed']();if(aN['camera']['_reversedDepth']=aP,aN[sA(0x2db)]===null||aJ===!0x0){if(aN[sA(0x2db)]!==null&&(aN['map']['depthTexture']!==null&&(aN['map']['depthTexture']['dispose'](),aN[sA(0x2db)]['depthTexture']=null),aN['map']['dispose']()),this[sA(0x3e0)]===0x3){if(aM['isPointLight']){z('WebGLShadowMap:\x20VSM\x20shadow\x20maps\x20are\x20not\x20supported\x20for\x20PointLights.\x20Use\x20PCF\x20or\x20BasicShadowMap\x20instead.');continue;}aN[sA(0x2db)]=new fn(a8['x'],a8['y'],{'format':P,'type':te,'minFilter':S,'magFilter':S,'generateMipmaps':!0x1}),aN['map']['texture'][sA(0x3bd)]=aM[sA(0x3bd)]+'.shadowMap',aN['map'][sA(0x4e2)]=new ya(a8['x'],a8['y'],A),aN['map']['depthTexture']['name']=aM['name']+'.shadowMapDepth',aN['map']['depthTexture'][sA(0x2d9)]=se,aN['map']['depthTexture']['compareFunction']=null,aN['map']['depthTexture']['minFilter']=y,aN[sA(0x2db)]['depthTexture']['magFilter']=y;}else aM['isPointLight']?(aN['map']=new Lc(a8['x']),aN[sA(0x2db)]['depthTexture']=new ba(a8['x'],k)):(aN['map']=new fn(a8['x'],a8['y']),aN['map']['depthTexture']=new ya(a8['x'],a8['y'],k)),aN['map']['depthTexture'][sA(0x3bd)]=aM['name']+'.shadowMap',aN['map']['depthTexture'][sA(0x2d9)]=se,this['type']===0x1?(aN['map']['depthTexture']['compareFunction']=aP?0x206:0x203,aN['map']['depthTexture']['minFilter']=S,aN['map']['depthTexture']['magFilter']=S):(aN['map']['depthTexture']['compareFunction']=null,aN['map']['depthTexture']['minFilter']=y,aN['map']['depthTexture']['magFilter']=y);aN['camera']['updateProjectionMatrix']();}let aQ=aN['map']['isWebGLCubeRenderTarget']?0x6:0x1;for(let aR=0x0;aR<aQ;aR++){if(aN[sA(0x2db)]['isWebGLCubeRenderTarget'])a4[sA(0x644)](aN['map'],aR),a4['clear']();else{aR===0x0&&(a4['setRenderTarget'](aN['map']),a4[sA(0x54f)]());let aS=aN['getViewport'](aR);ab['set'](a9['x']*aS['x'],a9['y']*aS['y'],a9['x']*aS['z'],a9['y']*aS['w']),aI[sA(0x4ef)](ab);}if(aM['isPointLight']){let aT=aN['camera'],aU=aN['matrix'],aV=aM['distance']||aT['far'];aV!==aT['far']&&(aT['far']=aV,aT['updateProjectionMatrix']()),id['setFromMatrixPosition'](aM['matrixWorld']),aT['position']['copy'](id),ad[sA(0x647)](aT['position']),ad['add'](td[aR]),aT['up']['copy'](nd[aR]),aT['lookAt'](ad),aT[sA(0x5d0)](),aU['makeTranslation'](-id['x'],-id['y'],-id['z']),rd[sA(0x369)](aT['projectionMatrix'],aT['matrixWorldInverse']),aN['_frustum'][sA(0x60a)](rd,aT[sA(0x1b3)],aT['reversedDepth']);}else aN['updateMatrices'](aM);a7=aN['getFrustum'](),aA(aD,aE,aN['camera'],aM,this[sA(0x3e0)]);}aN[sA(0x625)]!==!0x0&&this['type']===0x3&&ay(aN,aE),aN['needsUpdate']=!0x1;}ax=this['type'],aw['needsUpdate']=!0x1,a4['setRenderTarget'](aF,aG,aH);};function ay(aC,aD){const sC=sz;let aE=a5['update'](av);am['defines']['VSM_SAMPLES']!==aC['blurSamples']&&(am['defines']['VSM_SAMPLES']=aC[sC(0x17c)],ap['defines']['VSM_SAMPLES']=aC['blurSamples'],am['needsUpdate']=!0x0,ap['needsUpdate']=!0x0),aC['mapPass']===null&&(aC['mapPass']=new fn(a8['x'],a8['y'],{'format':P,'type':te})),am['uniforms']['shadow_pass']['value']=aC['map']['depthTexture'],am['uniforms']['resolution'][sC(0x4ad)]=aC['mapSize'],am[sC(0x4d5)]['radius']['value']=aC['radius'],a4[sC(0x644)](aC['mapPass']),a4['clear'](),a4['renderBufferDirect'](aD,null,aE,am,av,null),ap['uniforms']['shadow_pass']['value']=aC['mapPass']['texture'],ap['uniforms']['resolution']['value']=aC['mapSize'],ap['uniforms']['radius']['value']=aC['radius'],a4['setRenderTarget'](aC[sC(0x2db)]),a4['clear'](),a4['renderBufferDirect'](aD,null,aE,ap,av,null);}function az(aC,aD,aE,aF){const sD=sz;let aG=null,aH=aE[sD(0x602)]===!0x0?aC[sD(0x1cd)]:aC['customDepthMaterial'];if(aH!==void 0x0)aG=aH;else{if(aG=aE[sD(0x602)]===!0x0?ag:af,a4[sD(0x3d7)]&&aD['clipShadows']===!0x0&&Array['isArray'](aD['clippingPlanes'])&&aD[sD(0x58d)]['length']!==0x0||aD['displacementMap']&&aD[sD(0x187)]!==0x0||aD['alphaMap']&&aD['alphaTest']>0x0||aD['map']&&aD[sD(0x5e2)]>0x0||aD['alphaToCoverage']===!0x0){let aI=aG['uuid'],aJ=aD['uuid'],aK=ah[aI];aK===void 0x0&&(aK={},ah[aI]=aK);let aL=aK[aJ];aL===void 0x0&&(aL=aG['clone'](),aK[aJ]=aL,aD['addEventListener']('dispose',aB)),aG=aL;}}if(aG['visible']=aD['visible'],aG['wireframe']=aD['wireframe'],aF===0x3?aG['side']=aD['shadowSide']===null?aD['side']:aD['shadowSide']:aG['side']=aD['shadowSide']===null?ak[aD['side']]:aD['shadowSide'],aG['alphaMap']=aD[sD(0x2d6)],aG[sD(0x5e2)]=aD['alphaToCoverage']===!0x0?0.5:aD['alphaTest'],aG[sD(0x2db)]=aD['map'],aG[sD(0x441)]=aD['clipShadows'],aG['clippingPlanes']=aD['clippingPlanes'],aG['clipIntersection']=aD[sD(0x14d)],aG['displacementMap']=aD['displacementMap'],aG['displacementScale']=aD['displacementScale'],aG[sD(0x505)]=aD['displacementBias'],aG['wireframeLinewidth']=aD['wireframeLinewidth'],aG['linewidth']=aD[sD(0x3e1)],aE['isPointLight']===!0x0&&aG['isMeshDistanceMaterial']===!0x0){let aM=a4['properties'][sD(0x61a)](aG);aM['light']=aE;}return aG;}function aA(aC,aD,aE,aF,aG){const sE=sz;if(aC[sE(0x181)]===!0x1)return;if(aC['layers']['test'](aD[sE(0x1aa)])&&(aC['isMesh']||aC[sE(0x40d)]||aC['isPoints'])&&(aC[sE(0x594)]||aC[sE(0x373)]&&aG===0x3)&&(!aC['frustumCulled']||a7['intersectsObject'](aC))){aC['modelViewMatrix']['multiplyMatrices'](aE['matrixWorldInverse'],aC['matrixWorld']);let aI=a5['update'](aC),aJ=aC['material'];if(Array['isArray'](aJ)){let aK=aI[sE(0x256)];for(let aL=0x0,aM=aK['length'];aL<aM;aL++){let aN=aK[aL],aO=aJ[aN['materialIndex']];if(aO&&aO['visible']){let aP=az(aC,aO,aF,aG);aC['onBeforeShadow'](a4,aC,aD,aE,aI,aP,aN),a4['renderBufferDirect'](aE,null,aI,aP,aC,aN),aC['onAfterShadow'](a4,aC,aD,aE,aI,aP,aN);}}}else{if(aJ['visible']){let aQ=az(aC,aJ,aF,aG);aC['onBeforeShadow'](a4,aC,aD,aE,aI,aQ,null),a4[sE(0x21e)](aE,null,aI,aQ,aC,null),aC['onAfterShadow'](a4,aC,aD,aE,aI,aQ,null);}}}let aH=aC['children'];for(let aR=0x0,aS=aH['length'];aR<aS;aR++)aA(aH[aR],aD,aE,aF,aG);}function aB(aC){const sF=sz;aC[sF(0x44a)]['removeEventListener']('dispose',aB);for(let aD in ah){let aE=ah[aD],aF=aC[sF(0x44a)]['uuid'];aF in aE&&(aE[aF][sF(0x565)](),delete aE[aF]);}}}function sd(a4,a5){const sK=d4;function a6(){let bI=!0x1,bJ=new q(),bK=null,bL=new q(0x0,0x0,0x0,0x0);return{'setMask':function(bM){bK!==bM&&!bI&&(a4['colorMask'](bM,bM,bM,bM),bK=bM);},'setLocked':function(bM){bI=bM;},'setClear':function(bM,bN,bO,bP,bQ){const sG=a1;bQ===!0x0&&(bM*=bP,bN*=bP,bO*=bP),bJ['set'](bM,bN,bO,bP),bL[sG(0x5b9)](bJ)===!0x1&&(a4[sG(0x2ed)](bM,bN,bO,bP),bL['copy'](bJ));},'reset':function(){bI=!0x1,bK=null,bL['set'](-0x1,0x0,0x0,0x0);}};}function a7(){let bI=!0x1,bJ=!0x1,bK=null,bL=null,bM=null;return{'setReversed':function(bN){if(bJ!==bN){let bO=a5['get']('EXT_clip_control');bN?bO['clipControlEXT'](bO['LOWER_LEFT_EXT'],bO['ZERO_TO_ONE_EXT']):bO['clipControlEXT'](bO['LOWER_LEFT_EXT'],bO['NEGATIVE_ONE_TO_ONE_EXT']),bJ=bN;let bP=bM;bM=null,this['setClear'](bP);}},'getReversed':function(){return bJ;},'setTest':function(bN){const sH=a1;bN?aY(a4['DEPTH_TEST']):aZ(a4[sH(0x415)]);},'setMask':function(bN){bK!==bN&&!bI&&(a4['depthMask'](bN),bK=bN);},'setFunc':function(bN){const sI=a1;if(bJ&&(bN=bt[bN]),bL!==bN){switch(bN){case 0x0:a4['depthFunc'](a4['NEVER']);break;case 0x1:a4['depthFunc'](a4['ALWAYS']);break;case 0x2:a4['depthFunc'](a4[sI(0x456)]);break;case 0x3:a4['depthFunc'](a4['LEQUAL']);break;case 0x4:a4['depthFunc'](a4['EQUAL']);break;case 0x5:a4[sI(0x569)](a4['GEQUAL']);break;case 0x6:a4['depthFunc'](a4['GREATER']);break;case 0x7:a4['depthFunc'](a4['NOTEQUAL']);break;default:a4['depthFunc'](a4['LEQUAL']);}bL=bN;}},'setLocked':function(bN){bI=bN;},'setClear':function(bN){bM!==bN&&(bM=bN,bJ&&(bN=0x1-bN),a4['clearDepth'](bN));},'reset':function(){bI=!0x1,bK=null,bL=null,bM=null,bJ=!0x1;}};}function a8(){let bI=!0x1,bJ=null,bK=null,bL=null,bM=null,bN=null,bO=null,bP=null,bQ=null;return{'setTest':function(bR){bI||(bR?aY(a4['STENCIL_TEST']):aZ(a4['STENCIL_TEST']));},'setMask':function(bR){bJ!==bR&&!bI&&(a4['stencilMask'](bR),bJ=bR);},'setFunc':function(bR,bS,bT){const sJ=a1;(bK!==bR||bL!==bS||bM!==bT)&&(a4[sJ(0x367)](bR,bS,bT),bK=bR,bL=bS,bM=bT);},'setOp':function(bR,bS,bT){(bN!==bR||bO!==bS||bP!==bT)&&(a4['stencilOp'](bR,bS,bT),bN=bR,bO=bS,bP=bT);},'setLocked':function(bR){bI=bR;},'setClear':function(bR){bQ!==bR&&(a4['clearStencil'](bR),bQ=bR);},'reset':function(){bI=!0x1,bJ=null,bK=null,bL=null,bM=null,bN=null,bO=null,bP=null,bQ=null;}};}let a9=new a6(),ab=new a7(),af=new a8(),ag=new WeakMap(),ah=new WeakMap(),aj={},ak={},am={},ap=new WeakMap(),aq=[],av=null,aw=!0x1,ax=null,ay=null,az=null,aA=null,aB=null,aC=null,aD=null,aE=new Y(0x0,0x0,0x0),aF=0x0,aG=!0x1,aH=null,aI=null,aJ=null,aK=null,aL=null,aM=a4['getParameter'](a4[sK(0x19f)]),aN=!0x1,aO=0x0,aP=a4['getParameter'](a4['VERSION']);aP['indexOf'](sK(0x44e))===-0x1?aP['indexOf']('OpenGL\x20ES')!==-0x1&&(aO=parseFloat(/^OpenGL ES (\d)/['exec'](aP)[0x1]),aN=aO>=0x2):(aO=parseFloat(/^WebGL (\d)/[sK(0x14a)](aP)[0x1]),aN=aO>=0x1);let aQ=null,aR={},aS=a4['getParameter'](a4['SCISSOR_BOX']),aT=a4['getParameter'](a4['VIEWPORT']),aU=new q()['fromArray'](aS),aV=new q()['fromArray'](aT);function aW(bI,bJ,bK,bL){const sL=sK;let bM=new Uint8Array(0x4),bN=a4['createTexture']();a4[sL(0x13f)](bI,bN),a4['texParameteri'](bI,a4['TEXTURE_MIN_FILTER'],a4['NEAREST']),a4['texParameteri'](bI,a4['TEXTURE_MAG_FILTER'],a4[sL(0x442)]);for(let bO=0x0;bO<bK;bO++)bI===a4['TEXTURE_3D']||bI===a4['TEXTURE_2D_ARRAY']?a4[sL(0x2ef)](bJ,0x0,a4['RGBA'],0x1,0x1,bL,0x0,a4['RGBA'],a4[sL(0x37e)],bM):a4['texImage2D'](bJ+bO,0x0,a4['RGBA'],0x1,0x1,0x0,a4['RGBA'],a4[sL(0x37e)],bM);return bN;}let aX={};aX[a4[sK(0x146)]]=aW(a4['TEXTURE_2D'],a4['TEXTURE_2D'],0x1),aX[a4[sK(0x3b1)]]=aW(a4['TEXTURE_CUBE_MAP'],a4['TEXTURE_CUBE_MAP_POSITIVE_X'],0x6),aX[a4['TEXTURE_2D_ARRAY']]=aW(a4['TEXTURE_2D_ARRAY'],a4['TEXTURE_2D_ARRAY'],0x1,0x1),aX[a4['TEXTURE_3D']]=aW(a4['TEXTURE_3D'],a4['TEXTURE_3D'],0x1,0x1),a9['setClear'](0x0,0x0,0x0,0x1),ab['setClear'](0x1),af[sK(0x419)](0x0),aY(a4[sK(0x415)]),ab['setFunc'](0x3),b7(!0x1),b8(0x1),aY(a4['CULL_FACE']),b5(0x0);function aY(bI){aj[bI]!==!0x0&&(a4['enable'](bI),aj[bI]=!0x0);}function aZ(bI){aj[bI]!==!0x1&&(a4['disable'](bI),aj[bI]=!0x1);}function b0(bI,bJ){const sM=sK;return am[bI]===bJ?!0x1:(a4['bindFramebuffer'](bI,bJ),am[bI]=bJ,bI===a4['DRAW_FRAMEBUFFER']&&(am[a4['FRAMEBUFFER']]=bJ),bI===a4['FRAMEBUFFER']&&(am[a4[sM(0x292)]]=bJ),!0x0);}function b1(bI,bJ){const sN=sK;let bK=aq,bL=!0x1;if(bI){bK=ap['get'](bJ),bK===void 0x0&&(bK=[],ap['set'](bJ,bK));let bM=bI[sN(0x3da)];if(bK['length']!==bM[sN(0x3ac)]||bK[0x0]!==a4[sN(0x5e1)]){for(let bN=0x0,bO=bM['length'];bN<bO;bN++)bK[bN]=a4[sN(0x5e1)]+bN;bK['length']=bM[sN(0x3ac)],bL=!0x0;}}else bK[0x0]!==a4['BACK']&&(bK[0x0]=a4['BACK'],bL=!0x0);bL&&a4['drawBuffers'](bK);}function b2(bI){return av===bI?!0x1:(a4['useProgram'](bI),av=bI,!0x0);}let b3={0x64:a4[sK(0x192)],0x65:a4['FUNC_SUBTRACT'],0x66:a4['FUNC_REVERSE_SUBTRACT']};b3[0x67]=a4['MIN'],b3[0x68]=a4['MAX'];let b4={0xc8:a4['ZERO'],0xc9:a4['ONE'],0xca:a4[sK(0x37b)],0xcc:a4['SRC_ALPHA'],0xd2:a4['SRC_ALPHA_SATURATE'],0xd0:a4['DST_COLOR'],0xce:a4['DST_ALPHA'],0xcb:a4[sK(0x1e3)],0xcd:a4[sK(0x5a6)],0xd1:a4[sK(0x29d)],0xcf:a4['ONE_MINUS_DST_ALPHA'],0xd3:a4['CONSTANT_COLOR'],0xd4:a4['ONE_MINUS_CONSTANT_COLOR'],0xd5:a4['CONSTANT_ALPHA'],0xd6:a4[sK(0x400)]};function b5(bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR){const sO=sK;if(bI===0x0){aw===!0x0&&(aZ(a4['BLEND']),aw=!0x1);return;}if(aw===!0x1&&(aY(a4['BLEND']),aw=!0x0),bI!==0x5){if(bI!==ax||bR!==aG){if((ay!==0x64||aB!==0x64)&&(a4['blendEquation'](a4['FUNC_ADD']),ay=0x64,aB=0x64),bR)switch(bI){case 0x1:a4['blendFuncSeparate'](a4['ONE'],a4['ONE_MINUS_SRC_ALPHA'],a4['ONE'],a4['ONE_MINUS_SRC_ALPHA']);break;case 0x2:a4['blendFunc'](a4['ONE'],a4['ONE']);break;case 0x3:a4['blendFuncSeparate'](a4['ZERO'],a4['ONE_MINUS_SRC_COLOR'],a4['ZERO'],a4[sO(0x33f)]);break;case 0x4:a4['blendFuncSeparate'](a4['DST_COLOR'],a4['ONE_MINUS_SRC_ALPHA'],a4[sO(0x4ec)],a4['ONE']);break;default:B('WebGLState:\x20Invalid\x20blending:\x20',bI);break;}else switch(bI){case 0x1:a4['blendFuncSeparate'](a4[sO(0x271)],a4['ONE_MINUS_SRC_ALPHA'],a4['ONE'],a4['ONE_MINUS_SRC_ALPHA']);break;case 0x2:a4['blendFuncSeparate'](a4['SRC_ALPHA'],a4[sO(0x33f)],a4[sO(0x33f)],a4['ONE']);break;case 0x3:B('WebGLState:\x20SubtractiveBlending\x20requires\x20material.premultipliedAlpha\x20=\x20true');break;case 0x4:B('WebGLState:\x20MultiplyBlending\x20requires\x20material.premultipliedAlpha\x20=\x20true');break;default:B('WebGLState:\x20Invalid\x20blending:\x20',bI);break;}az=null,aA=null,aC=null,aD=null,aE['set'](0x0,0x0,0x0),aF=0x0,ax=bI,aG=bR;}return;}bM=bM||bJ,bN=bN||bK,bO=bO||bL,(bJ!==ay||bM!==aB)&&(a4['blendEquationSeparate'](b3[bJ],b3[bM]),ay=bJ,aB=bM),(bK!==az||bL!==aA||bN!==aC||bO!==aD)&&(a4['blendFuncSeparate'](b4[bK],b4[bL],b4[bN],b4[bO]),az=bK,aA=bL,aC=bN,aD=bO),(bP['equals'](aE)===!0x1||bQ!==aF)&&(a4['blendColor'](bP['r'],bP['g'],bP['b'],bQ),aE[sO(0x647)](bP),aF=bQ),ax=bI,aG=!0x1;}function b6(bI,bJ){const sP=sK;bI['side']===0x2?aZ(a4['CULL_FACE']):aY(a4['CULL_FACE']);let bK=bI['side']===0x1;bJ&&(bK=!bK),b7(bK),bI['blending']===0x1&&bI['transparent']===!0x1?b5(0x0):b5(bI['blending'],bI['blendEquation'],bI['blendSrc'],bI[sP(0x206)],bI['blendEquationAlpha'],bI['blendSrcAlpha'],bI['blendDstAlpha'],bI['blendColor'],bI['blendAlpha'],bI['premultipliedAlpha']),ab['setFunc'](bI['depthFunc']),ab['setTest'](bI['depthTest']),ab['setMask'](bI['depthWrite']),a9['setMask'](bI['colorWrite']);let bL=bI['stencilWrite'];af['setTest'](bL),bL&&(af['setMask'](bI['stencilWriteMask']),af['setFunc'](bI['stencilFunc'],bI['stencilRef'],bI['stencilFuncMask']),af['setOp'](bI['stencilFail'],bI[sP(0x166)],bI['stencilZPass'])),bb(bI['polygonOffset'],bI['polygonOffsetFactor'],bI['polygonOffsetUnits']),bI['alphaToCoverage']===!0x0?aY(a4['SAMPLE_ALPHA_TO_COVERAGE']):aZ(a4['SAMPLE_ALPHA_TO_COVERAGE']);}function b7(bI){const sQ=sK;aH!==bI&&(bI?a4['frontFace'](a4['CW']):a4[sQ(0x293)](a4['CCW']),aH=bI);}function b8(bI){const sR=sK;bI===0x0?aZ(a4[sR(0x5bb)]):(aY(a4['CULL_FACE']),bI!==aI&&(bI===0x1?a4['cullFace'](a4[sR(0x2fb)]):bI===0x2?a4['cullFace'](a4[sR(0x305)]):a4['cullFace'](a4['FRONT_AND_BACK']))),aI=bI;}function b9(bI){bI!==aJ&&(aN&&a4['lineWidth'](bI),aJ=bI);}function bb(bI,bJ,bK){const sS=sK;bI?(aY(a4['POLYGON_OFFSET_FILL']),(aK!==bJ||aL!==bK)&&(aK=bJ,aL=bK,ab[sS(0x566)]()&&(bJ=-bJ),a4['polygonOffset'](bJ,bK))):aZ(a4['POLYGON_OFFSET_FILL']);}function bf(bI){bI?aY(a4['SCISSOR_TEST']):aZ(a4['SCISSOR_TEST']);}function bg(bI){const sT=sK;bI===void 0x0&&(bI=a4['TEXTURE0']+aM-0x1),aQ!==bI&&(a4[sT(0x603)](bI),aQ=bI);}function bh(bI,bJ,bK){const sU=sK;bK===void 0x0&&(bK=aQ===null?a4['TEXTURE0']+aM-0x1:aQ);let bL=aR[bK];bL===void 0x0&&(bL={'type':void 0x0,'texture':void 0x0},aR[bK]=bL),(bL['type']!==bI||bL[sU(0x1b5)]!==bJ)&&(aQ!==bK&&(a4['activeTexture'](bK),aQ=bK),a4['bindTexture'](bI,bJ||aX[bI]),bL['type']=bI,bL[sU(0x1b5)]=bJ);}function bj(){let bI=aR[aQ];bI!==void 0x0&&bI['type']!==void 0x0&&(a4['bindTexture'](bI['type'],null),bI['type']=void 0x0,bI['texture']=void 0x0);}function bk(){try{a4['compressedTexImage2D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bm(){try{a4['compressedTexImage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bp(){try{a4['texSubImage2D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bq(){try{a4['texSubImage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bv(){try{a4['compressedTexSubImage2D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bw(){try{a4['compressedTexSubImage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bx(){try{a4['texStorage2D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function by(){try{a4['texStorage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bz(){try{a4['texImage2D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bA(){try{a4['texImage3D'](...arguments);}catch(bI){B('WebGLState:',bI);}}function bB(bI){return ak[bI]===void 0x0?a4['getParameter'](bI):ak[bI];}function bC(bI,bJ){ak[bI]!==bJ&&(a4['pixelStorei'](bI,bJ),ak[bI]=bJ);}function bD(bI){const sV=sK;aU['equals'](bI)===!0x1&&(a4[sV(0x51f)](bI['x'],bI['y'],bI['z'],bI['w']),aU['copy'](bI));}function bE(bI){const sW=sK;aV['equals'](bI)===!0x1&&(a4['viewport'](bI['x'],bI['y'],bI['z'],bI['w']),aV[sW(0x647)](bI));}function bF(bI,bJ){const sX=sK;let bK=ah['get'](bJ);bK===void 0x0&&(bK=new WeakMap(),ah['set'](bJ,bK));let bL=bK['get'](bI);bL===void 0x0&&(bL=a4['getUniformBlockIndex'](bJ,bI[sX(0x3bd)]),bK['set'](bI,bL));}function bG(bI,bJ){const sY=sK;let bK=ah['get'](bJ)['get'](bI);ag[sY(0x61a)](bJ)!==bK&&(a4[sY(0x4fe)](bJ,bK,bI[sY(0x301)]),ag['set'](bJ,bK));}function bH(){const sZ=sK;a4['disable'](a4['BLEND']),a4['disable'](a4['CULL_FACE']),a4['disable'](a4[sZ(0x415)]),a4['disable'](a4['POLYGON_OFFSET_FILL']),a4[sZ(0x597)](a4['SCISSOR_TEST']),a4['disable'](a4['STENCIL_TEST']),a4['disable'](a4['SAMPLE_ALPHA_TO_COVERAGE']),a4[sZ(0x5c1)](a4['FUNC_ADD']),a4['blendFunc'](a4['ONE'],a4['ZERO']),a4['blendFuncSeparate'](a4['ONE'],a4['ZERO'],a4[sZ(0x33f)],a4['ZERO']),a4['blendColor'](0x0,0x0,0x0,0x0),a4['colorMask'](!0x0,!0x0,!0x0,!0x0),a4['clearColor'](0x0,0x0,0x0,0x0),a4['depthMask'](!0x0),a4[sZ(0x569)](a4[sZ(0x456)]),ab['setReversed'](!0x1),a4['clearDepth'](0x1),a4['stencilMask'](0xffffffff),a4['stencilFunc'](a4['ALWAYS'],0x0,0xffffffff),a4['stencilOp'](a4['KEEP'],a4[sZ(0x416)],a4['KEEP']),a4['clearStencil'](0x0),a4['cullFace'](a4['BACK']),a4[sZ(0x293)](a4['CCW']),a4['polygonOffset'](0x0,0x0),a4['activeTexture'](a4['TEXTURE0']),a4['bindFramebuffer'](a4['FRAMEBUFFER'],null),a4[sZ(0x5e3)](a4['DRAW_FRAMEBUFFER'],null),a4['bindFramebuffer'](a4['READ_FRAMEBUFFER'],null),a4['useProgram'](null),a4[sZ(0x521)](0x1),a4['scissor'](0x0,0x0,a4['canvas']['width'],a4['canvas']['height']),a4['viewport'](0x0,0x0,a4['canvas']['width'],a4['canvas']['height']),a4['pixelStorei'](a4[sZ(0x1c0)],0x4),a4['pixelStorei'](a4['UNPACK_ALIGNMENT'],0x4),a4[sZ(0x145)](a4['UNPACK_FLIP_Y_WEBGL'],!0x1),a4['pixelStorei'](a4['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],!0x1),a4[sZ(0x145)](a4['UNPACK_COLORSPACE_CONVERSION_WEBGL'],a4['BROWSER_DEFAULT_WEBGL']),a4['pixelStorei'](a4[sZ(0x645)],0x0),a4[sZ(0x145)](a4['PACK_SKIP_PIXELS'],0x0),a4['pixelStorei'](a4['PACK_SKIP_ROWS'],0x0),a4['pixelStorei'](a4['UNPACK_ROW_LENGTH'],0x0),a4['pixelStorei'](a4['UNPACK_IMAGE_HEIGHT'],0x0),a4['pixelStorei'](a4['UNPACK_SKIP_PIXELS'],0x0),a4['pixelStorei'](a4['UNPACK_SKIP_ROWS'],0x0),a4[sZ(0x145)](a4['UNPACK_SKIP_IMAGES'],0x0),aj={},ak={},aQ=null,aR={},am={},ap=new WeakMap(),aq=[],av=null,aw=!0x1,ax=null,ay=null,az=null,aA=null,aB=null,aC=null,aD=null,aE=new Y(0x0,0x0,0x0),aF=0x0,aG=!0x1,aH=null,aI=null,aJ=null,aK=null,aL=null,aU['set'](0x0,0x0,a4['canvas']['width'],a4['canvas']['height']),aV['set'](0x0,0x0,a4['canvas']['width'],a4[sZ(0x3f1)]['height']),a9[sZ(0x402)](),ab[sZ(0x402)](),af['reset']();}return{'buffers':{'color':a9,'depth':ab,'stencil':af},'enable':aY,'disable':aZ,'bindFramebuffer':b0,'drawBuffers':b1,'useProgram':b2,'setBlending':b5,'setMaterial':b6,'setFlipSided':b7,'setCullFace':b8,'setLineWidth':b9,'setPolygonOffset':bb,'setScissorTest':bf,'activeTexture':bg,'bindTexture':bh,'unbindTexture':bj,'compressedTexImage2D':bk,'compressedTexImage3D':bm,'texImage2D':bz,'texImage3D':bA,'pixelStorei':bC,'getParameter':bB,'updateUBOMapping':bF,'uniformBlockBinding':bG,'texStorage2D':bx,'texStorage3D':by,'texSubImage2D':bp,'texSubImage3D':bq,'compressedTexSubImage2D':bv,'compressedTexSubImage3D':bw,'scissor':bD,'viewport':bE,'reset':bH};}function cd(a4,a5,a6,a7,a8,a9,ab){const t0=d4;let af=a5['has'](t0(0x34f))?a5['get']('WEBGL_multisampled_render_to_texture'):null,ag=typeof navigator>'u'?!0x1:/OculusBrowser/g['test'](navigator['userAgent']),ah=new U(),aj=new WeakMap(),ak=new Set(),am,ap=new WeakMap(),aq=!0x1;try{aq=typeof OffscreenCanvas<'u'&&new OffscreenCanvas(0x1,0x1)['getContext']('2d')!==null;}catch(bm){}function av(bp,bq){const t1=t0;return aq?new OffscreenCanvas(bp,bq):ft(t1(0x3f1));}function aw(bp,bq,bv){const t2=t0;let bw=0x1,bx=bk(bp);if((bx['width']>bv||bx['height']>bv)&&(bw=bv/Math[t2(0x4dd)](bx[t2(0x24d)],bx['height'])),bw<0x1){if(typeof HTMLImageElement<'u'&&bp instanceof HTMLImageElement||typeof HTMLCanvasElement<'u'&&bp instanceof HTMLCanvasElement||typeof ImageBitmap<'u'&&bp instanceof ImageBitmap||typeof VideoFrame<'u'&&bp instanceof VideoFrame){let by=Math[t2(0x4a4)](bw*bx['width']),bz=Math['floor'](bw*bx['height']);am===void 0x0&&(am=av(by,bz));let bA=bq?av(by,bz):am;return bA['width']=by,bA['height']=bz,bA[t2(0x3a7)]('2d')[t2(0x61e)](bp,0x0,0x0,by,bz),z('WebGLRenderer:\x20Texture\x20has\x20been\x20resized\x20from\x20('+bx[t2(0x24d)]+'x'+bx['height']+')\x20to\x20('+by+'x'+bz+').'),bA;}else return'data'in bp&&z('WebGLRenderer:\x20Image\x20in\x20DataTexture\x20is\x20too\x20big\x20('+bx['width']+'x'+bx['height']+').'),bp;}return bp;}function ax(bp){return bp['generateMipmaps'];}function ay(bp){a4['generateMipmap'](bp);}function az(bp){return bp['isWebGLCubeRenderTarget']?a4['TEXTURE_CUBE_MAP']:bp['isWebGL3DRenderTarget']?a4['TEXTURE_3D']:bp['isWebGLArrayRenderTarget']||bp['isCompressedArrayTexture']?a4['TEXTURE_2D_ARRAY']:a4['TEXTURE_2D'];}function aA(bp,bq,bv,bw,bx,by=!0x1){const t3=t0;if(bp!==null){if(a4[bp]!==void 0x0)return a4[bp];z('WebGLRenderer:\x20Attempt\x20to\x20use\x20non-existing\x20WebGL\x20internal\x20format\x20\x27'+bp+'\x27');}let bz;bw&&(bz=a5['get']('EXT_texture_norm16'),bz||z('WebGLRenderer:\x20Unable\x20to\x20use\x20normalized\x20textures\x20without\x20EXT_texture_norm16\x20extension'));let bA=bq;if(bq===a4['RED']&&(bv===a4[t3(0x4c0)]&&(bA=a4[t3(0x5d2)]),bv===a4['HALF_FLOAT']&&(bA=a4[t3(0x3ef)]),bv===a4['UNSIGNED_BYTE']&&(bA=a4['R8']),bv===a4['UNSIGNED_SHORT']&&bz&&(bA=bz['R16_EXT']),bv===a4['SHORT']&&bz&&(bA=bz['R16_SNORM_EXT'])),bq===a4['RED_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4[t3(0x5a2)]),bv===a4['UNSIGNED_SHORT']&&(bA=a4['R16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4['R32UI']),bv===a4['BYTE']&&(bA=a4[t3(0x243)]),bv===a4['SHORT']&&(bA=a4['R16I']),bv===a4['INT']&&(bA=a4['R32I'])),bq===a4['RG']&&(bv===a4['FLOAT']&&(bA=a4['RG32F']),bv===a4['HALF_FLOAT']&&(bA=a4['RG16F']),bv===a4[t3(0x37e)]&&(bA=a4['RG8']),bv===a4[t3(0x428)]&&bz&&(bA=bz['RG16_EXT']),bv===a4['SHORT']&&bz&&(bA=bz['RG16_SNORM_EXT'])),bq===a4['RG_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4['RG8UI']),bv===a4['UNSIGNED_SHORT']&&(bA=a4['RG16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4[t3(0x1c2)]),bv===a4['BYTE']&&(bA=a4['RG8I']),bv===a4['SHORT']&&(bA=a4['RG16I']),bv===a4['INT']&&(bA=a4['RG32I'])),bq===a4['RGB_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4[t3(0x4b4)]),bv===a4[t3(0x428)]&&(bA=a4['RGB16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4[t3(0x52f)]),bv===a4['BYTE']&&(bA=a4['RGB8I']),bv===a4['SHORT']&&(bA=a4['RGB16I']),bv===a4['INT']&&(bA=a4[t3(0x2c2)])),bq===a4['RGBA_INTEGER']&&(bv===a4['UNSIGNED_BYTE']&&(bA=a4['RGBA8UI']),bv===a4['UNSIGNED_SHORT']&&(bA=a4['RGBA16UI']),bv===a4['UNSIGNED_INT']&&(bA=a4[t3(0x1b2)]),bv===a4['BYTE']&&(bA=a4[t3(0x136)]),bv===a4[t3(0x5a8)]&&(bA=a4['RGBA16I']),bv===a4[t3(0x57f)]&&(bA=a4[t3(0x3be)])),bq===a4['RGB']&&(bv===a4['UNSIGNED_SHORT']&&bz&&(bA=bz['RGB16_EXT']),bv===a4['SHORT']&&bz&&(bA=bz['RGB16_SNORM_EXT']),bv===a4[t3(0x344)]&&(bA=a4['RGB9_E5']),bv===a4['UNSIGNED_INT_10F_11F_11F_REV']&&(bA=a4['R11F_G11F_B10F'])),bq===a4[t3(0x21d)]){let bB=by?at:K['getTransfer'](bx);bv===a4['FLOAT']&&(bA=a4[t3(0x4e4)]),bv===a4[t3(0x4c4)]&&(bA=a4['RGBA16F']),bv===a4['UNSIGNED_BYTE']&&(bA=bB==='srgb'?a4[t3(0x289)]:a4['RGBA8']),bv===a4[t3(0x428)]&&bz&&(bA=bz['RGBA16_EXT']),bv===a4['SHORT']&&bz&&(bA=bz[t3(0x4c7)]),bv===a4['UNSIGNED_SHORT_4_4_4_4']&&(bA=a4['RGBA4']),bv===a4['UNSIGNED_SHORT_5_5_5_1']&&(bA=a4['RGB5_A1']);}return(bA===a4[t3(0x3ef)]||bA===a4['R32F']||bA===a4['RG16F']||bA===a4['RG32F']||bA===a4['RGBA16F']||bA===a4['RGBA32F'])&&a5['get']('EXT_color_buffer_float'),bA;}function aB(bp,bq){const t4=t0;let bv;return bp?bq===null||bq===0x3f6||bq===0x3fc?bv=a4['DEPTH24_STENCIL8']:bq===0x3f7?bv=a4[t4(0x225)]:bq===0x3f4&&(bv=a4['DEPTH24_STENCIL8'],z('DepthTexture:\x2016\x20bit\x20depth\x20attachment\x20is\x20not\x20supported\x20with\x20stencil.\x20Using\x2024-bit\x20attachment.')):bq===null||bq===0x3f6||bq===0x3fc?bv=a4['DEPTH_COMPONENT24']:bq===0x3f7?bv=a4['DEPTH_COMPONENT32F']:bq===0x3f4&&(bv=a4['DEPTH_COMPONENT16']),bv;}function aC(bp,bq){const t5=t0;return ax(bp)===!0x0||bp['isFramebufferTexture']&&bp['minFilter']!==0x3eb&&bp[t5(0x62f)]!==0x3ee?Math[t5(0x327)](Math['max'](bq[t5(0x24d)],bq[t5(0x260)]))+0x1:bp['mipmaps']!==void 0x0&&bp[t5(0x3ec)]['length']>0x0?bp['mipmaps']['length']:bp[t5(0x2f2)]&&Array['isArray'](bp['image'])?bq['mipmaps']['length']:0x1;}function aD(bp){let bq=bp['target'];bq['removeEventListener']('dispose',aD),aF(bq),bq['isVideoTexture']&&aj['delete'](bq),bq['isHTMLTexture']&&ak['delete'](bq);}function aE(bp){let bq=bp['target'];bq['removeEventListener']('dispose',aE),aH(bq);}function aF(bp){const t6=t0;let bq=a7['get'](bp);if(bq['__webglInit']===void 0x0)return;let bv=bp[t6(0x2f6)],bw=ap['get'](bv);if(bw){let bx=bw[bq['__cacheKey']];bx['usedTimes']--,bx['usedTimes']===0x0&&aG(bp),Object['keys'](bw)['length']===0x0&&ap['delete'](bv);}a7['remove'](bp);}function aG(bp){let bq=a7['get'](bp);a4['deleteTexture'](bq['__webglTexture']);let bv=bp['source'],bw=ap['get'](bv);delete bw[bq['__cacheKey']],ab['memory']['textures']--;}function aH(bp){const t7=t0;let bq=a7['get'](bp);if(bp['depthTexture']&&(bp[t7(0x4e2)]['dispose'](),a7['remove'](bp['depthTexture'])),bp['isWebGLCubeRenderTarget'])for(let bw=0x0;bw<0x6;bw++){if(Array['isArray'](bq['__webglFramebuffer'][bw])){for(let bx=0x0;bx<bq['__webglFramebuffer'][bw]['length'];bx++)a4['deleteFramebuffer'](bq['__webglFramebuffer'][bw][bx]);}else a4['deleteFramebuffer'](bq['__webglFramebuffer'][bw]);bq['__webglDepthbuffer']&&a4['deleteRenderbuffer'](bq['__webglDepthbuffer'][bw]);}else{if(Array[t7(0x571)](bq['__webglFramebuffer'])){for(let by=0x0;by<bq[t7(0x49f)]['length'];by++)a4['deleteFramebuffer'](bq['__webglFramebuffer'][by]);}else a4['deleteFramebuffer'](bq['__webglFramebuffer']);if(bq['__webglDepthbuffer']&&a4['deleteRenderbuffer'](bq['__webglDepthbuffer']),bq['__webglMultisampledFramebuffer']&&a4['deleteFramebuffer'](bq['__webglMultisampledFramebuffer']),bq['__webglColorRenderbuffer']){for(let bz=0x0;bz<bq['__webglColorRenderbuffer']['length'];bz++)bq['__webglColorRenderbuffer'][bz]&&a4[t7(0x365)](bq['__webglColorRenderbuffer'][bz]);}bq['__webglDepthRenderbuffer']&&a4['deleteRenderbuffer'](bq['__webglDepthRenderbuffer']);}let bv=bp['textures'];for(let bA=0x0,bB=bv['length'];bA<bB;bA++){let bC=a7[t7(0x61a)](bv[bA]);bC['__webglTexture']&&(a4['deleteTexture'](bC[t7(0x4fa)]),ab['memory']['textures']--),a7[t7(0x57b)](bv[bA]);}a7[t7(0x57b)](bp);}let aI=0x0;function aJ(){aI=0x0;}function aK(){return aI;}function aL(bp){aI=bp;}function aM(){let bp=aI;return bp>=a8['maxTextures']&&z('WebGLTextures:\x20Trying\x20to\x20use\x20'+bp+'\x20texture\x20units\x20while\x20this\x20GPU\x20supports\x20only\x20'+a8['maxTextures']),aI+=0x1,bp;}function aN(bp){const t8=t0;let bq=[];return bq[t8(0x5d4)](bp[t8(0x58f)]),bq['push'](bp[t8(0x5dd)]),bq['push'](bp[t8(0x491)]||0x0),bq[t8(0x5d4)](bp['magFilter']),bq[t8(0x5d4)](bp[t8(0x62f)]),bq[t8(0x5d4)](bp['anisotropy']),bq['push'](bp['internalFormat']),bq['push'](bp['format']),bq['push'](bp['type']),bq['push'](bp['generateMipmaps']),bq['push'](bp['premultiplyAlpha']),bq['push'](bp['flipY']),bq['push'](bp['unpackAlignment']),bq['push'](bp['colorSpace']),bq['join']();}function aO(bp,bq){const t9=t0;let bv=a7['get'](bp);if(bp['isVideoTexture']&&bh(bp),bp['isRenderTargetTexture']===!0x1&&bp['isExternalTexture']!==!0x0&&bp['version']>0x0&&bv['__version']!==bp['version']){let bw=bp[t9(0x262)];if(bw===null)z('WebGLRenderer:\x20Texture\x20marked\x20for\x20update\x20but\x20no\x20image\x20data\x20found.');else{if(bw['complete']===!0x1)z('WebGLRenderer:\x20Texture\x20marked\x20for\x20update\x20but\x20image\x20is\x20incomplete');else{aZ(bv,bp,bq);return;}}}else bp['isExternalTexture']&&(bv['__webglTexture']=bp['sourceTexture']?bp['sourceTexture']:null);a6['bindTexture'](a4['TEXTURE_2D'],bv['__webglTexture'],a4['TEXTURE0']+bq);}function aP(bp,bq){const tb=t0;let bv=a7['get'](bp);if(bp[tb(0x161)]===!0x1&&bp['version']>0x0&&bv['__version']!==bp['version']){aZ(bv,bp,bq);return;}else bp['isExternalTexture']&&(bv['__webglTexture']=bp['sourceTexture']?bp[tb(0x50d)]:null);a6['bindTexture'](a4['TEXTURE_2D_ARRAY'],bv['__webglTexture'],a4['TEXTURE0']+bq);}function aQ(bp,bq){const tf=t0;let bv=a7['get'](bp);if(bp['isRenderTargetTexture']===!0x1&&bp[tf(0x584)]>0x0&&bv['__version']!==bp['version']){aZ(bv,bp,bq);return;}a6['bindTexture'](a4['TEXTURE_3D'],bv['__webglTexture'],a4['TEXTURE0']+bq);}function aR(bp,bq){const tg=t0;let bv=a7['get'](bp);if(bp['isCubeDepthTexture']!==!0x0&&bp['version']>0x0&&bv['__version']!==bp['version']){b0(bv,bp,bq);return;}a6['bindTexture'](a4[tg(0x3b1)],bv[tg(0x4fa)],a4[tg(0x1e5)]+bq);}let aS={[g]:a4['REPEAT'],[_]:a4['CLAMP_TO_EDGE'],[v]:a4['MIRRORED_REPEAT']},aT={[y]:a4['NEAREST'],[b]:a4['NEAREST_MIPMAP_NEAREST'],[x]:a4['NEAREST_MIPMAP_LINEAR'],[S]:a4['LINEAR'],[C]:a4['LINEAR_MIPMAP_NEAREST'],[w]:a4['LINEAR_MIPMAP_LINEAR']},aU={0x200:a4[t0(0x3e8)],0x207:a4['ALWAYS'],0x201:a4[t0(0x456)],0x203:a4['LEQUAL'],0x202:a4['EQUAL'],0x206:a4['GEQUAL'],0x204:a4['GREATER'],0x205:a4['NOTEQUAL']};function aV(bp,bq){const th=t0;if(bq['type']===0x3f7&&a5['has']('OES_texture_float_linear')===!0x1&&(bq['magFilter']===0x3ee||bq['magFilter']===0x3ef||bq[th(0x237)]===0x3ed||bq['magFilter']===0x3f0||bq['minFilter']===0x3ee||bq['minFilter']===0x3ef||bq['minFilter']===0x3ed||bq['minFilter']===0x3f0)&&z('WebGLRenderer:\x20Unable\x20to\x20use\x20linear\x20filtering\x20with\x20floating\x20point\x20textures.\x20OES_texture_float_linear\x20not\x20supported\x20on\x20this\x20device.'),a4['texParameteri'](bp,a4['TEXTURE_WRAP_S'],aS[bq['wrapS']]),a4['texParameteri'](bp,a4['TEXTURE_WRAP_T'],aS[bq[th(0x5dd)]]),(bp===a4['TEXTURE_3D']||bp===a4[th(0x54d)])&&a4['texParameteri'](bp,a4['TEXTURE_WRAP_R'],aS[bq['wrapR']]),a4['texParameteri'](bp,a4['TEXTURE_MAG_FILTER'],aT[bq['magFilter']]),a4['texParameteri'](bp,a4['TEXTURE_MIN_FILTER'],aT[bq['minFilter']]),bq['compareFunction']&&(a4[th(0x5fe)](bp,a4['TEXTURE_COMPARE_MODE'],a4[th(0x574)]),a4['texParameteri'](bp,a4['TEXTURE_COMPARE_FUNC'],aU[bq['compareFunction']])),a5['has']('EXT_texture_filter_anisotropic')===!0x0){if(bq[th(0x237)]===0x3eb||bq['minFilter']!==0x3ed&&bq['minFilter']!==0x3f0||bq['type']===0x3f7&&a5['has'](th(0x137))===!0x1)return;if(bq['anisotropy']>0x1||a7['get'](bq)['__currentAnisotropy']){let bv=a5['get']('EXT_texture_filter_anisotropic');a4['texParameterf'](bp,bv['TEXTURE_MAX_ANISOTROPY_EXT'],Math['min'](bq['anisotropy'],a8['getMaxAnisotropy']())),a7['get'](bq)['__currentAnisotropy']=bq[th(0x48d)];}}}function aW(bp,bq){const tj=t0;let bv=!0x1;bp['__webglInit']===void 0x0&&(bp['__webglInit']=!0x0,bq['addEventListener']('dispose',aD));let bw=bq['source'],bx=ap['get'](bw);bx===void 0x0&&(bx={},ap['set'](bw,bx));let by=aN(bq);if(by!==bp['__cacheKey']){bx[by]===void 0x0&&(bx[by]={'texture':a4['createTexture'](),'usedTimes':0x0},ab['memory']['textures']++,bv=!0x0),bx[by]['usedTimes']++;let bz=bx[bp['__cacheKey']];bz!==void 0x0&&(bx[bp['__cacheKey']][tj(0x211)]--,bz[tj(0x211)]===0x0&&aG(bq)),bp['__cacheKey']=by,bp['__webglTexture']=bx[by]['texture'];}return bv;}function aX(bp,bq,bv){const tk=t0;return Math[tk(0x4a4)](Math['floor'](bp/bv)/bq);}function aY(bp,bq,bv,bw){const tm=t0;let bx=bp['updateRanges'];if(bx['length']===0x0)a6['texSubImage2D'](a4['TEXTURE_2D'],0x0,0x0,0x0,bq['width'],bq[tm(0x260)],bv,bw,bq['data']);else{bx['sort']((bC,bD)=>bC['start']-bD['start']);let by=0x0;for(let bC=0x1;bC<bx['length'];bC++){let bD=bx[by],bE=bx[bC],bF=bD['start']+bD['count'],bG=aX(bE['start'],bq['width'],0x4),bH=aX(bD[tm(0x29e)],bq[tm(0x24d)],0x4);bE['start']<=bF+0x1&&bG===bH&&aX(bE['start']+bE['count']-0x1,bq['width'],0x4)===bG?bD['count']=Math['max'](bD['count'],bE['start']+bE['count']-bD['start']):(++by,bx[by]=bE);}bx['length']=by+0x1;let bz=a6[tm(0x2d0)](a4['UNPACK_ROW_LENGTH']),bA=a6['getParameter'](a4['UNPACK_SKIP_PIXELS']),bB=a6[tm(0x2d0)](a4[tm(0x436)]);a6['pixelStorei'](a4['UNPACK_ROW_LENGTH'],bq['width']);for(let bI=0x0,bJ=bx[tm(0x3ac)];bI<bJ;bI++){let bK=bx[bI],bL=Math['floor'](bK['start']/0x4),bM=Math['ceil'](bK['count']/0x4),bN=bL%bq['width'],bO=Math['floor'](bL/bq[tm(0x24d)]),bP=bM;a6['pixelStorei'](a4['UNPACK_SKIP_PIXELS'],bN),a6['pixelStorei'](a4[tm(0x436)],bO),a6['texSubImage2D'](a4['TEXTURE_2D'],0x0,bN,bO,bP,0x1,bv,bw,bq['data']);}bp[tm(0x3cf)](),a6['pixelStorei'](a4['UNPACK_ROW_LENGTH'],bz),a6['pixelStorei'](a4['UNPACK_SKIP_PIXELS'],bA),a6[tm(0x145)](a4[tm(0x436)],bB);}}function aZ(bp,bq,bv){const tp=t0;let bw=a4['TEXTURE_2D'];(bq[tp(0x223)]||bq['isCompressedArrayTexture'])&&(bw=a4[tp(0x54d)]),bq['isData3DTexture']&&(bw=a4[tp(0x207)]);let bx=aW(bp,bq),by=bq['source'];a6['bindTexture'](bw,bp['__webglTexture'],a4['TEXTURE0']+bv);let bz=a7['get'](by);if(by['version']!==bz['__version']||bx===!0x0){if(a6[tp(0x603)](a4['TEXTURE0']+bv),!(typeof ImageBitmap<'u'&&bq['image']instanceof ImageBitmap)){let bK=K['getPrimaries'](K['workingColorSpace']),bL=bq['colorSpace']===''?null:K['getPrimaries'](bq['colorSpace']),bM=bq['colorSpace']===''||bK===bL?a4[tp(0x568)]:a4['BROWSER_DEFAULT_WEBGL'];a6['pixelStorei'](a4['UNPACK_FLIP_Y_WEBGL'],bq['flipY']),a6['pixelStorei'](a4['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],bq['premultiplyAlpha']),a6[tp(0x145)](a4['UNPACK_COLORSPACE_CONVERSION_WEBGL'],bM);}a6[tp(0x145)](a4['UNPACK_ALIGNMENT'],bq['unpackAlignment']);let bA=aw(bq[tp(0x262)],!0x1,a8['maxTextureSize']);bA=bj(bq,bA);let bB=a9['convert'](bq['format'],bq['colorSpace']),bC=a9['convert'](bq[tp(0x3e0)]),bD=aA(bq['internalFormat'],bB,bC,bq['normalized'],bq['colorSpace'],bq['isVideoTexture']);aV(bw,bq);let bE,bF=bq['mipmaps'],bG=bq['isVideoTexture']!==!0x0,bH=bz['__version']===void 0x0||bx===!0x0,bI=by['dataReady'],bJ=aC(bq,bA);if(bq['isDepthTexture'])bD=aB(bq['format']===ce,bq['type']),bH&&(bG?a6['texStorage2D'](a4['TEXTURE_2D'],0x1,bD,bA['width'],bA['height']):a6['texImage2D'](a4['TEXTURE_2D'],0x0,bD,bA['width'],bA['height'],0x0,bB,bC,null));else{if(bq['isDataTexture']){if(bF['length']>0x0){bG&&bH&&a6['texStorage2D'](a4[tp(0x146)],bJ,bD,bF[0x0]['width'],bF[0x0][tp(0x260)]);for(let bN=0x0,bO=bF['length'];bN<bO;bN++)bE=bF[bN],bG?bI&&a6[tp(0x339)](a4['TEXTURE_2D'],bN,0x0,0x0,bE[tp(0x24d)],bE['height'],bB,bC,bE[tp(0x36f)]):a6['texImage2D'](a4['TEXTURE_2D'],bN,bD,bE['width'],bE[tp(0x260)],0x0,bB,bC,bE['data']);bq['generateMipmaps']=!0x1;}else bG?(bH&&a6[tp(0x49c)](a4['TEXTURE_2D'],bJ,bD,bA['width'],bA[tp(0x260)]),bI&&aY(bq,bA,bB,bC)):a6['texImage2D'](a4['TEXTURE_2D'],0x0,bD,bA['width'],bA['height'],0x0,bB,bC,bA[tp(0x36f)]);}else{if(bq['isCompressedTexture']){if(bq['isCompressedArrayTexture']){bG&&bH&&a6['texStorage3D'](a4['TEXTURE_2D_ARRAY'],bJ,bD,bF[0x0]['width'],bF[0x0][tp(0x260)],bA['depth']);for(let bP=0x0,bQ=bF['length'];bP<bQ;bP++)if(bE=bF[bP],bq['format']!==0x3ff){if(bB!==null){if(bG){if(bI){if(bq['layerUpdates']['size']>0x0){let bR=ic(bE['width'],bE['height'],bq['format'],bq['type']);for(let bS of bq['layerUpdates']){let bT=bE['data']['subarray'](bS*bR/bE[tp(0x36f)][tp(0x514)],(bS+0x1)*bR/bE['data'][tp(0x514)]);a6[tp(0x361)](a4['TEXTURE_2D_ARRAY'],bP,0x0,0x0,bS,bE['width'],bE['height'],0x1,bB,bT);}bq['clearLayerUpdates']();}else a6['compressedTexSubImage3D'](a4['TEXTURE_2D_ARRAY'],bP,0x0,0x0,0x0,bE['width'],bE['height'],bA['depth'],bB,bE[tp(0x36f)]);}}else a6['compressedTexImage3D'](a4[tp(0x54d)],bP,bD,bE[tp(0x24d)],bE['height'],bA['depth'],0x0,bE['data'],0x0,0x0);}else z(tp(0x39e));}else bG?bI&&a6['texSubImage3D'](a4[tp(0x54d)],bP,0x0,0x0,0x0,bE['width'],bE['height'],bA['depth'],bB,bC,bE['data']):a6['texImage3D'](a4['TEXTURE_2D_ARRAY'],bP,bD,bE['width'],bE['height'],bA['depth'],0x0,bB,bC,bE['data']);}else{bG&&bH&&a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,bF[0x0]['width'],bF[0x0]['height']);for(let bU=0x0,bV=bF['length'];bU<bV;bU++)bE=bF[bU],bq[tp(0x2d9)]===0x3ff?bG?bI&&a6[tp(0x339)](a4['TEXTURE_2D'],bU,0x0,0x0,bE['width'],bE['height'],bB,bC,bE[tp(0x36f)]):a6['texImage2D'](a4[tp(0x146)],bU,bD,bE['width'],bE['height'],0x0,bB,bC,bE[tp(0x36f)]):bB===null?z('WebGLRenderer:\x20Attempt\x20to\x20load\x20unsupported\x20compressed\x20texture\x20format\x20in\x20.uploadTexture()'):bG?bI&&a6['compressedTexSubImage2D'](a4[tp(0x146)],bU,0x0,0x0,bE['width'],bE['height'],bB,bE['data']):a6['compressedTexImage2D'](a4['TEXTURE_2D'],bU,bD,bE['width'],bE['height'],0x0,bE['data']);}}else{if(bq['isDataArrayTexture']){if(bG){if(bH&&a6[tp(0x163)](a4['TEXTURE_2D_ARRAY'],bJ,bD,bA['width'],bA['height'],bA['depth']),bI){if(bq['layerUpdates'][tp(0x60e)]>0x0){let bW=ic(bA['width'],bA['height'],bq['format'],bq['type']);for(let bX of bq['layerUpdates']){let bY=bA[tp(0x36f)]['subarray'](bX*bW/bA['data']['BYTES_PER_ELEMENT'],(bX+0x1)*bW/bA['data']['BYTES_PER_ELEMENT']);a6['texSubImage3D'](a4['TEXTURE_2D_ARRAY'],0x0,0x0,0x0,bX,bA['width'],bA['height'],0x1,bB,bC,bY);}bq['clearLayerUpdates']();}else a6['texSubImage3D'](a4['TEXTURE_2D_ARRAY'],0x0,0x0,0x0,0x0,bA['width'],bA['height'],bA[tp(0x47a)],bB,bC,bA['data']);}}else a6['texImage3D'](a4['TEXTURE_2D_ARRAY'],0x0,bD,bA['width'],bA['height'],bA[tp(0x47a)],0x0,bB,bC,bA[tp(0x36f)]);}else{if(bq['isData3DTexture'])bG?(bH&&a6['texStorage3D'](a4['TEXTURE_3D'],bJ,bD,bA['width'],bA['height'],bA['depth']),bI&&a6['texSubImage3D'](a4[tp(0x207)],0x0,0x0,0x0,0x0,bA['width'],bA[tp(0x260)],bA['depth'],bB,bC,bA['data'])):a6['texImage3D'](a4['TEXTURE_3D'],0x0,bD,bA['width'],bA['height'],bA['depth'],0x0,bB,bC,bA[tp(0x36f)]);else{if(bq['isFramebufferTexture']){if(bH){if(bG)a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,bA['width'],bA['height']);else{let bZ=bA['width'],c0=bA[tp(0x260)];for(let c1=0x0;c1<bJ;c1++)a6['texImage2D'](a4['TEXTURE_2D'],c1,bD,bZ,c0,0x0,bB,bC,null),bZ>>=0x1,c0>>=0x1;}}}else{if(bq['isHTMLTexture']){if('texElementImage2D'in a4){let c2=a4['canvas'];if(c2[tp(0x35b)]('layoutsubtree')||c2[tp(0x5ae)]('layoutsubtree',tp(0x37a)),bA['parentNode']!==c2){c2['appendChild'](bA),ak['add'](bq),c2['onpaint']=c6=>{let c7=c6['changedElements'];for(let c8 of ak)c7['includes'](c8['image'])&&(c8['needsUpdate']=!0x0);},c2[tp(0x269)]();return;}let c3=a4['RGBA'],c4=a4[tp(0x21d)],c5=a4['UNSIGNED_BYTE'];a4['texElementImage2D'](a4['TEXTURE_2D'],0x0,c3,c4,c5,bA),a4['texParameteri'](a4['TEXTURE_2D'],a4['TEXTURE_MIN_FILTER'],a4['LINEAR']),a4['texParameteri'](a4['TEXTURE_2D'],a4['TEXTURE_WRAP_S'],a4['CLAMP_TO_EDGE']),a4['texParameteri'](a4[tp(0x146)],a4['TEXTURE_WRAP_T'],a4['CLAMP_TO_EDGE']);}}else{if(bF[tp(0x3ac)]>0x0){if(bG&&bH){let c6=bk(bF[0x0]);a6['texStorage2D'](a4['TEXTURE_2D'],bJ,bD,c6['width'],c6['height']);}for(let c7=0x0,c8=bF['length'];c7<c8;c7++)bE=bF[c7],bG?bI&&a6[tp(0x339)](a4['TEXTURE_2D'],c7,0x0,0x0,bB,bC,bE):a6['texImage2D'](a4['TEXTURE_2D'],c7,bD,bB,bC,bE);bq['generateMipmaps']=!0x1;}else{if(bG){if(bH){let c9=bk(bA);a6['texStorage2D'](a4[tp(0x146)],bJ,bD,c9['width'],c9[tp(0x260)]);}bI&&a6['texSubImage2D'](a4['TEXTURE_2D'],0x0,0x0,0x0,bB,bC,bA);}else a6['texImage2D'](a4[tp(0x146)],0x0,bD,bB,bC,bA);}}}}}}}}ax(bq)&&ay(bw),bz['__version']=by['version'],bq[tp(0x142)]&&bq['onUpdate'](bq);}bp['__version']=bq['version'];}function b0(bp,bq,bv){const tq=t0;if(bq['image']['length']!==0x6)return;let bw=aW(bp,bq),bx=bq['source'];a6['bindTexture'](a4['TEXTURE_CUBE_MAP'],bp['__webglTexture'],a4['TEXTURE0']+bv);let by=a7['get'](bx);if(bx['version']!==by[tq(0x234)]||bw===!0x0){a6[tq(0x603)](a4['TEXTURE0']+bv);let bz=K['getPrimaries'](K['workingColorSpace']),bA=bq['colorSpace']===''?null:K['getPrimaries'](bq['colorSpace']),bB=bq['colorSpace']===''||bz===bA?a4['NONE']:a4['BROWSER_DEFAULT_WEBGL'];a6['pixelStorei'](a4['UNPACK_FLIP_Y_WEBGL'],bq['flipY']),a6['pixelStorei'](a4['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],bq['premultiplyAlpha']),a6['pixelStorei'](a4[tq(0x3a8)],bq['unpackAlignment']),a6['pixelStorei'](a4['UNPACK_COLORSPACE_CONVERSION_WEBGL'],bB);let bC=bq['isCompressedTexture']||bq['image'][0x0]['isCompressedTexture'],bD=bq['image'][0x0]&&bq['image'][0x0][tq(0x41e)],bE=[];for(let bO=0x0;bO<0x6;bO++)!bC&&!bD?bE[bO]=aw(bq[tq(0x262)][bO],!0x0,a8['maxCubemapSize']):bE[bO]=bD?bq['image'][bO][tq(0x262)]:bq['image'][bO],bE[bO]=bj(bq,bE[bO]);let bF=bE[0x0],bG=a9['convert'](bq['format'],bq['colorSpace']),bH=a9[tq(0x5e6)](bq['type']),bI=aA(bq['internalFormat'],bG,bH,bq[tq(0x20f)],bq['colorSpace']),bJ=bq['isVideoTexture']!==!0x0,bK=by[tq(0x234)]===void 0x0||bw===!0x0,bL=bx['dataReady'],bM=aC(bq,bF);aV(a4['TEXTURE_CUBE_MAP'],bq);let bN;if(bC){bJ&&bK&&a6[tq(0x49c)](a4['TEXTURE_CUBE_MAP'],bM,bI,bF['width'],bF['height']);for(let bP=0x0;bP<0x6;bP++){bN=bE[bP]['mipmaps'];for(let bQ=0x0;bQ<bN['length'];bQ++){let bR=bN[bQ];bq[tq(0x2d9)]===0x3ff?bJ?bL&&a6[tq(0x339)](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,0x0,0x0,bR['width'],bR['height'],bG,bH,bR['data']):a6[tq(0x461)](a4[tq(0x403)]+bP,bQ,bI,bR['width'],bR['height'],0x0,bG,bH,bR[tq(0x36f)]):bG===null?z(tq(0x3a3)):bJ?bL&&a6['compressedTexSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,0x0,0x0,bR['width'],bR['height'],bG,bR['data']):a6['compressedTexImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bP,bQ,bI,bR['width'],bR['height'],0x0,bR['data']);}}}else{if(bN=bq['mipmaps'],bJ&&bK){bN['length']>0x0&&bM++;let bS=bk(bE[0x0]);a6['texStorage2D'](a4[tq(0x3b1)],bM,bI,bS['width'],bS['height']);}for(let bT=0x0;bT<0x6;bT++)if(bD){bJ?bL&&a6['texSubImage2D'](a4[tq(0x403)]+bT,0x0,0x0,0x0,bE[bT]['width'],bE[bT]['height'],bG,bH,bE[bT]['data']):a6['texImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,0x0,bI,bE[bT]['width'],bE[bT]['height'],0x0,bG,bH,bE[bT]['data']);for(let bU=0x0;bU<bN['length'];bU++){let bV=bN[bU][tq(0x262)][bT]['image'];bJ?bL&&a6['texSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bU+0x1,0x0,0x0,bV['width'],bV['height'],bG,bH,bV['data']):a6['texImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bU+0x1,bI,bV['width'],bV['height'],0x0,bG,bH,bV['data']);}}else{bJ?bL&&a6['texSubImage2D'](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,0x0,0x0,0x0,bG,bH,bE[bT]):a6['texImage2D'](a4[tq(0x403)]+bT,0x0,bI,bG,bH,bE[bT]);for(let bW=0x0;bW<bN['length'];bW++){let bX=bN[bW];bJ?bL&&a6[tq(0x339)](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bW+0x1,0x0,0x0,bG,bH,bX['image'][bT]):a6[tq(0x461)](a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bT,bW+0x1,bI,bG,bH,bX[tq(0x262)][bT]);}}}ax(bq)&&ay(a4['TEXTURE_CUBE_MAP']),by['__version']=bx['version'],bq['onUpdate']&&bq['onUpdate'](bq);}bp['__version']=bq['version'];}function b1(bp,bq,bv,bw,bx,by){const tv=t0;let bz=a9['convert'](bv['format'],bv['colorSpace']),bA=a9['convert'](bv['type']),bB=aA(bv['internalFormat'],bz,bA,bv['normalized'],bv[tv(0x2c8)]),bC=a7[tv(0x61a)](bq),bD=a7['get'](bv);if(bD['__renderTarget']=bq,!bC[tv(0x54a)]){let bE=Math['max'](0x1,bq['width']>>by),bF=Math[tv(0x4dd)](0x1,bq[tv(0x260)]>>by);bx===a4[tv(0x207)]||bx===a4['TEXTURE_2D_ARRAY']?a6['texImage3D'](bx,by,bB,bE,bF,bq[tv(0x47a)],0x0,bz,bA,null):a6[tv(0x461)](bx,by,bB,bE,bF,0x0,bz,bA,null);}a6['bindFramebuffer'](a4['FRAMEBUFFER'],bp),bg(bq)?af['framebufferTexture2DMultisampleEXT'](a4['FRAMEBUFFER'],bw,bx,bD['__webglTexture'],0x0,bf(bq)):(bx===a4['TEXTURE_2D']||bx>=a4['TEXTURE_CUBE_MAP_POSITIVE_X']&&bx<=a4['TEXTURE_CUBE_MAP_NEGATIVE_Z'])&&a4['framebufferTexture2D'](a4['FRAMEBUFFER'],bw,bx,bD['__webglTexture'],by),a6[tv(0x5e3)](a4['FRAMEBUFFER'],null);}function b2(bp,bq,bv){const tw=t0;if(a4['bindRenderbuffer'](a4['RENDERBUFFER'],bp),bq['depthBuffer']){let bw=bq['depthTexture'],bx=bw&&bw['isDepthTexture']?bw['type']:null,by=aB(bq['stencilBuffer'],bx),bz=bq['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'];bg(bq)?af['renderbufferStorageMultisampleEXT'](a4['RENDERBUFFER'],bf(bq),by,bq['width'],bq['height']):bv?a4['renderbufferStorageMultisample'](a4['RENDERBUFFER'],bf(bq),by,bq[tw(0x24d)],bq['height']):a4['renderbufferStorage'](a4['RENDERBUFFER'],by,bq['width'],bq['height']),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],bz,a4['RENDERBUFFER'],bp);}else{let bA=bq['textures'];for(let bB=0x0;bB<bA['length'];bB++){let bC=bA[bB],bD=a9['convert'](bC['format'],bC['colorSpace']),bE=a9['convert'](bC['type']),bF=aA(bC['internalFormat'],bD,bE,bC['normalized'],bC['colorSpace']);bg(bq)?af[tw(0x138)](a4['RENDERBUFFER'],bf(bq),bF,bq['width'],bq['height']):bv?a4[tw(0x3d4)](a4['RENDERBUFFER'],bf(bq),bF,bq[tw(0x24d)],bq[tw(0x260)]):a4['renderbufferStorage'](a4[tw(0x191)],bF,bq['width'],bq[tw(0x260)]);}}a4[tw(0x5b4)](a4['RENDERBUFFER'],null);}function b3(bp,bq,bv){const tx=t0;let bw=bq[tx(0x454)]===!0x0;if(a6['bindFramebuffer'](a4['FRAMEBUFFER'],bp),!(bq[tx(0x4e2)]&&bq['depthTexture']['isDepthTexture']))throw Error('renderTarget.depthTexture\x20must\x20be\x20an\x20instance\x20of\x20THREE.DepthTexture');let bx=a7['get'](bq['depthTexture']);if(bx['__renderTarget']=bq,(!bx[tx(0x4fa)]||bq['depthTexture'][tx(0x262)]['width']!==bq['width']||bq[tx(0x4e2)]['image']['height']!==bq['height'])&&(bq[tx(0x4e2)][tx(0x262)]['width']=bq['width'],bq[tx(0x4e2)]['image']['height']=bq[tx(0x260)],bq['depthTexture'][tx(0x55b)]=!0x0),bw){if(bx[tx(0x36c)]===void 0x0&&(bx['__webglInit']=!0x0,bq['depthTexture']['addEventListener']('dispose',aD)),bx['__webglTexture']===void 0x0){bx['__webglTexture']=a4[tx(0x31c)](),a6[tx(0x13f)](a4['TEXTURE_CUBE_MAP'],bx['__webglTexture']),aV(a4['TEXTURE_CUBE_MAP'],bq['depthTexture']);let bC=a9[tx(0x5e6)](bq['depthTexture'][tx(0x2d9)]),bD=a9['convert'](bq['depthTexture']['type']),bE;bq['depthTexture']['format']===0x402?bE=a4['DEPTH_COMPONENT24']:bq['depthTexture'][tx(0x2d9)]===0x403&&(bE=a4['DEPTH24_STENCIL8']);for(let bF=0x0;bF<0x6;bF++)a4['texImage2D'](a4[tx(0x403)]+bF,0x0,bE,bq['width'],bq['height'],0x0,bC,bD,null);}}else aO(bq[tx(0x4e2)],0x0);let by=bx['__webglTexture'],bz=bf(bq),bA=bw?a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bv:a4['TEXTURE_2D'],bB=bq[tx(0x4e2)][tx(0x2d9)]===0x403?a4['DEPTH_STENCIL_ATTACHMENT']:a4[tx(0x488)];if(bq[tx(0x4e2)]['format']===0x402)bg(bq)?af['framebufferTexture2DMultisampleEXT'](a4[tx(0x498)],bB,bA,by,0x0,bz):a4['framebufferTexture2D'](a4['FRAMEBUFFER'],bB,bA,by,0x0);else{if(bq['depthTexture']['format']===0x403)bg(bq)?af['framebufferTexture2DMultisampleEXT'](a4['FRAMEBUFFER'],bB,bA,by,0x0,bz):a4['framebufferTexture2D'](a4['FRAMEBUFFER'],bB,bA,by,0x0);else throw Error('Unknown\x20depthTexture\x20format');}}function b4(bp){const ty=t0;let bq=a7['get'](bp),bv=bp['isWebGLCubeRenderTarget']===!0x0;if(bq['__boundDepthTexture']!==bp['depthTexture']){let bw=bp[ty(0x4e2)];if(bq['__depthDisposeCallback']&&bq['__depthDisposeCallback'](),bw){let bx=()=>{delete bq['__boundDepthTexture'],delete bq['__depthDisposeCallback'],bw['removeEventListener']('dispose',bx);};bw['addEventListener']('dispose',bx),bq['__depthDisposeCallback']=bx;}bq[ty(0x249)]=bw;}if(bp['depthTexture']&&!bq['__autoAllocateDepthBuffer']){if(bv){for(let by=0x0;by<0x6;by++)b3(bq['__webglFramebuffer'][by],bp,by);}else{let bz=bp['texture']['mipmaps'];bz&&bz['length']>0x0?b3(bq['__webglFramebuffer'][0x0],bp,0x0):b3(bq['__webglFramebuffer'],bp,0x0);}}else{if(bv){bq['__webglDepthbuffer']=[];for(let bA=0x0;bA<0x6;bA++)if(a6['bindFramebuffer'](a4['FRAMEBUFFER'],bq['__webglFramebuffer'][bA]),bq['__webglDepthbuffer'][bA]===void 0x0)bq['__webglDepthbuffer'][bA]=a4['createRenderbuffer'](),b2(bq[ty(0x592)][bA],bp,!0x1);else{let bB=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'],bC=bq['__webglDepthbuffer'][bA];a4['bindRenderbuffer'](a4['RENDERBUFFER'],bC),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],bB,a4[ty(0x191)],bC);}}else{let bD=bp['texture']['mipmaps'];if(bD&&bD['length']>0x0?a6[ty(0x5e3)](a4['FRAMEBUFFER'],bq['__webglFramebuffer'][0x0]):a6['bindFramebuffer'](a4['FRAMEBUFFER'],bq[ty(0x49f)]),bq[ty(0x592)]===void 0x0)bq['__webglDepthbuffer']=a4['createRenderbuffer'](),b2(bq['__webglDepthbuffer'],bp,!0x1);else{let bE=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'],bF=bq[ty(0x592)];a4['bindRenderbuffer'](a4['RENDERBUFFER'],bF),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],bE,a4['RENDERBUFFER'],bF);}}}a6['bindFramebuffer'](a4['FRAMEBUFFER'],null);}function b5(bp,bq,bv){const tz=t0;let bw=a7['get'](bp);bq!==void 0x0&&b1(bw['__webglFramebuffer'],bp,bp['texture'],a4[tz(0x5e1)],a4[tz(0x146)],0x0),bv!==void 0x0&&b4(bp);}function b6(bp){const tA=t0;let bq=bp[tA(0x1b5)],bv=a7[tA(0x61a)](bp),bw=a7[tA(0x61a)](bq);bp['addEventListener']('dispose',aE);let bx=bp['textures'],by=bp['isWebGLCubeRenderTarget']===!0x0,bz=bx['length']>0x1;if(bz||(bw['__webglTexture']===void 0x0&&(bw['__webglTexture']=a4['createTexture']()),bw['__version']=bq['version'],ab['memory']['textures']++),by){bv['__webglFramebuffer']=[];for(let bA=0x0;bA<0x6;bA++)if(bq['mipmaps']&&bq['mipmaps'][tA(0x3ac)]>0x0){bv['__webglFramebuffer'][bA]=[];for(let bB=0x0;bB<bq['mipmaps']['length'];bB++)bv['__webglFramebuffer'][bA][bB]=a4['createFramebuffer']();}else bv['__webglFramebuffer'][bA]=a4['createFramebuffer']();}else{if(bq['mipmaps']&&bq['mipmaps']['length']>0x0){bv['__webglFramebuffer']=[];for(let bC=0x0;bC<bq['mipmaps']['length'];bC++)bv['__webglFramebuffer'][bC]=a4['createFramebuffer']();}else bv['__webglFramebuffer']=a4['createFramebuffer']();if(bz)for(let bD=0x0,bE=bx[tA(0x3ac)];bD<bE;bD++){let bF=a7['get'](bx[bD]);bF[tA(0x4fa)]===void 0x0&&(bF[tA(0x4fa)]=a4['createTexture'](),ab['memory']['textures']++);}if(bp['samples']>0x0&&bg(bp)===!0x1){bv['__webglMultisampledFramebuffer']=a4['createFramebuffer'](),bv['__webglColorRenderbuffer']=[],a6['bindFramebuffer'](a4['FRAMEBUFFER'],bv['__webglMultisampledFramebuffer']);for(let bG=0x0;bG<bx['length'];bG++){let bH=bx[bG];bv['__webglColorRenderbuffer'][bG]=a4[tA(0x205)](),a4[tA(0x5b4)](a4['RENDERBUFFER'],bv['__webglColorRenderbuffer'][bG]);let bI=a9['convert'](bH[tA(0x2d9)],bH['colorSpace']),bJ=a9[tA(0x5e6)](bH[tA(0x3e0)]),bK=aA(bH[tA(0x14b)],bI,bJ,bH['normalized'],bH['colorSpace'],bp['isXRRenderTarget']===!0x0),bL=bf(bp);a4['renderbufferStorageMultisample'](a4['RENDERBUFFER'],bL,bK,bp['width'],bp['height']),a4[tA(0x3cc)](a4[tA(0x498)],a4[tA(0x5e1)]+bG,a4['RENDERBUFFER'],bv['__webglColorRenderbuffer'][bG]);}a4['bindRenderbuffer'](a4[tA(0x191)],null),bp['depthBuffer']&&(bv['__webglDepthRenderbuffer']=a4['createRenderbuffer'](),b2(bv['__webglDepthRenderbuffer'],bp,!0x0)),a6[tA(0x5e3)](a4['FRAMEBUFFER'],null);}}if(by){a6['bindTexture'](a4[tA(0x3b1)],bw['__webglTexture']),aV(a4['TEXTURE_CUBE_MAP'],bq);for(let bM=0x0;bM<0x6;bM++)if(bq['mipmaps']&&bq['mipmaps']['length']>0x0){for(let bN=0x0;bN<bq['mipmaps'][tA(0x3ac)];bN++)b1(bv['__webglFramebuffer'][bM][bN],bp,bq,a4[tA(0x5e1)],a4[tA(0x403)]+bM,bN);}else b1(bv[tA(0x49f)][bM],bp,bq,a4['COLOR_ATTACHMENT0'],a4['TEXTURE_CUBE_MAP_POSITIVE_X']+bM,0x0);ax(bq)&&ay(a4['TEXTURE_CUBE_MAP']),a6['unbindTexture']();}else{if(bz){for(let bO=0x0,bP=bx['length'];bO<bP;bO++){let bQ=bx[bO],bR=a7['get'](bQ),bS=a4['TEXTURE_2D'];(bp['isWebGL3DRenderTarget']||bp[tA(0x449)])&&(bS=bp['isWebGL3DRenderTarget']?a4['TEXTURE_3D']:a4['TEXTURE_2D_ARRAY']),a6['bindTexture'](bS,bR['__webglTexture']),aV(bS,bQ),b1(bv['__webglFramebuffer'],bp,bQ,a4[tA(0x5e1)]+bO,bS,0x0),ax(bQ)&&ay(bS);}a6['unbindTexture']();}else{let bT=a4['TEXTURE_2D'];if((bp[tA(0x590)]||bp['isWebGLArrayRenderTarget'])&&(bT=bp['isWebGL3DRenderTarget']?a4['TEXTURE_3D']:a4['TEXTURE_2D_ARRAY']),a6['bindTexture'](bT,bw['__webglTexture']),aV(bT,bq),bq['mipmaps']&&bq[tA(0x3ec)]['length']>0x0){for(let bU=0x0;bU<bq[tA(0x3ec)][tA(0x3ac)];bU++)b1(bv['__webglFramebuffer'][bU],bp,bq,a4['COLOR_ATTACHMENT0'],bT,bU);}else b1(bv['__webglFramebuffer'],bp,bq,a4['COLOR_ATTACHMENT0'],bT,0x0);ax(bq)&&ay(bT),a6['unbindTexture']();}}bp['depthBuffer']&&b4(bp);}function b7(bp){const tB=t0;let bq=bp[tB(0x3da)];for(let bv=0x0,bw=bq[tB(0x3ac)];bv<bw;bv++){let bx=bq[bv];if(ax(bx)){let by=az(bp),bz=a7[tB(0x61a)](bx)['__webglTexture'];a6['bindTexture'](by,bz),ay(by),a6['unbindTexture']();}}}let b8=[],b9=[];function bb(bp){const tC=t0;if(bp['samples']>0x0){if(bg(bp)===!0x1){let bq=bp['textures'],bv=bp['width'],bw=bp['height'],bx=a4[tC(0x620)],by=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'],bz=a7['get'](bp),bA=bq['length']>0x1;if(bA){for(let bC=0x0;bC<bq[tC(0x3ac)];bC++)a6['bindFramebuffer'](a4['FRAMEBUFFER'],bz['__webglMultisampledFramebuffer']),a4['framebufferRenderbuffer'](a4['FRAMEBUFFER'],a4['COLOR_ATTACHMENT0']+bC,a4['RENDERBUFFER'],null),a6['bindFramebuffer'](a4['FRAMEBUFFER'],bz['__webglFramebuffer']),a4['framebufferTexture2D'](a4['DRAW_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0']+bC,a4['TEXTURE_2D'],null,0x0);}a6['bindFramebuffer'](a4[tC(0x604)],bz[tC(0x577)]);let bB=bp['texture']['mipmaps'];bB&&bB['length']>0x0?a6['bindFramebuffer'](a4['DRAW_FRAMEBUFFER'],bz[tC(0x49f)][0x0]):a6['bindFramebuffer'](a4['DRAW_FRAMEBUFFER'],bz['__webglFramebuffer']);for(let bD=0x0;bD<bq['length'];bD++){if(bp['resolveDepthBuffer']&&(bp[tC(0x398)]&&(bx|=a4['DEPTH_BUFFER_BIT']),bp['stencilBuffer']&&bp[tC(0x359)]&&(bx|=a4['STENCIL_BUFFER_BIT'])),bA){a4['framebufferRenderbuffer'](a4['READ_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0'],a4['RENDERBUFFER'],bz['__webglColorRenderbuffer'][bD]);let bE=a7['get'](bq[bD])['__webglTexture'];a4['framebufferTexture2D'](a4['DRAW_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0'],a4['TEXTURE_2D'],bE,0x0);}a4['blitFramebuffer'](0x0,0x0,bv,bw,0x0,0x0,bv,bw,bx,a4['NEAREST']),ag===!0x0&&(b8['length']=0x0,b9['length']=0x0,b8['push'](a4[tC(0x5e1)]+bD),bp['depthBuffer']&&bp['resolveDepthBuffer']===!0x1&&(b8['push'](by),b9['push'](by),a4['invalidateFramebuffer'](a4[tC(0x292)],b9)),a4['invalidateFramebuffer'](a4['READ_FRAMEBUFFER'],b8));}if(a6['bindFramebuffer'](a4['READ_FRAMEBUFFER'],null),a6[tC(0x5e3)](a4['DRAW_FRAMEBUFFER'],null),bA)for(let bF=0x0;bF<bq['length'];bF++){a6[tC(0x5e3)](a4['FRAMEBUFFER'],bz['__webglMultisampledFramebuffer']),a4[tC(0x3cc)](a4[tC(0x498)],a4['COLOR_ATTACHMENT0']+bF,a4['RENDERBUFFER'],bz['__webglColorRenderbuffer'][bF]);let bG=a7['get'](bq[bF])['__webglTexture'];a6[tC(0x5e3)](a4['FRAMEBUFFER'],bz['__webglFramebuffer']),a4['framebufferTexture2D'](a4['DRAW_FRAMEBUFFER'],a4['COLOR_ATTACHMENT0']+bF,a4['TEXTURE_2D'],bG,0x0);}a6['bindFramebuffer'](a4['DRAW_FRAMEBUFFER'],bz['__webglMultisampledFramebuffer']);}else{if(bp['depthBuffer']&&bp['resolveDepthBuffer']===!0x1&&ag){let bH=bp['stencilBuffer']?a4['DEPTH_STENCIL_ATTACHMENT']:a4['DEPTH_ATTACHMENT'];a4['invalidateFramebuffer'](a4['DRAW_FRAMEBUFFER'],[bH]);}}}}function bf(bp){return Math['min'](a8['maxSamples'],bp['samples']);}function bg(bp){const tD=t0;let bq=a7['get'](bp);return bp['samples']>0x0&&a5[tD(0x550)]('WEBGL_multisampled_render_to_texture')===!0x0&&bq['__useRenderToTexture']!==!0x1;}function bh(bp){const tE=t0;let bq=ab['render'][tE(0x621)];aj['get'](bp)!==bq&&(aj['set'](bp,bq),bp['update']());}function bj(bp,bq){const tF=t0;let bv=bp[tF(0x2c8)],bw=bp['format'],bx=bp[tF(0x3e0)];return bp[tF(0x2f2)]===!0x0||bp['isVideoTexture']===!0x0||bv!=='srgb-linear'&&bv!==''&&(K['getTransfer'](bv)==='srgb'?(bw!==0x3ff||bx!==0x3f1)&&z(tF(0x23c)):B(tF(0x2d4),bv)),bq;}function bk(bp){return typeof HTMLImageElement<'u'&&bp instanceof HTMLImageElement?(ah['width']=bp['naturalWidth']||bp['width'],ah['height']=bp['naturalHeight']||bp['height']):typeof VideoFrame<'u'&&bp instanceof VideoFrame?(ah['width']=bp['displayWidth'],ah['height']=bp['displayHeight']):(ah['width']=bp['width'],ah['height']=bp['height']),ah;}this[t0(0x383)]=aM,this['resetTextureUnits']=aJ,this['getTextureUnits']=aK,this['setTextureUnits']=aL,this['setTexture2D']=aO,this[t0(0x25e)]=aP,this['setTexture3D']=aQ,this[t0(0x245)]=aR,this['rebindTextures']=b5,this['setupRenderTarget']=b6,this['updateRenderTargetMipmap']=b7,this['updateMultisampleRenderTarget']=bb,this[t0(0x273)]=b4,this['setupFrameBufferTexture']=b1,this['useMultisampledRTT']=bg,this['isReversedDepthBuffer']=function(){const tG=t0;return a6[tG(0x18b)]['depth']['getReversed']();};}function ld(a4,a5){function a6(a7,a8=''){const tH=a1;let a9,ab=K['getTransfer'](a8);if(a7===0x3f1)return a4['UNSIGNED_BYTE'];if(a7===0x3f9)return a4['UNSIGNED_SHORT_4_4_4_4'];if(a7===0x3fa)return a4['UNSIGNED_SHORT_5_5_5_1'];if(a7===0x8c3e)return a4['UNSIGNED_INT_5_9_9_9_REV'];if(a7===0x8c3b)return a4['UNSIGNED_INT_10F_11F_11F_REV'];if(a7===0x3f2)return a4['BYTE'];if(a7===0x3f3)return a4['SHORT'];if(a7===0x3f4)return a4['UNSIGNED_SHORT'];if(a7===0x3f5)return a4['INT'];if(a7===0x3f6)return a4['UNSIGNED_INT'];if(a7===0x3f7)return a4['FLOAT'];if(a7===0x3f8)return a4['HALF_FLOAT'];if(a7===0x3fd)return a4['ALPHA'];if(a7===0x3fe)return a4['RGB'];if(a7===0x3ff)return a4['RGBA'];if(a7===0x402)return a4['DEPTH_COMPONENT'];if(a7===0x403)return a4['DEPTH_STENCIL'];if(a7===0x404)return a4['RED'];if(a7===0x405)return a4['RED_INTEGER'];if(a7===0x406)return a4['RG'];if(a7===0x407)return a4['RG_INTEGER'];if(a7===0x409)return a4['RGBA_INTEGER'];if(a7===0x83f0||a7===0x83f1||a7===0x83f2||a7===0x83f3){if(ab==='srgb'){if(a9=a5['get']('WEBGL_compressed_texture_s3tc_srgb'),a9!==null){if(a7===0x83f0)return a9[tH(0x2be)];if(a7===0x83f1)return a9['COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT'];if(a7===0x83f2)return a9['COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT'];if(a7===0x83f3)return a9['COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT'];}else return null;}else{if(a9=a5['get']('WEBGL_compressed_texture_s3tc'),a9!==null){if(a7===0x83f0)return a9[tH(0x217)];if(a7===0x83f1)return a9['COMPRESSED_RGBA_S3TC_DXT1_EXT'];if(a7===0x83f2)return a9['COMPRESSED_RGBA_S3TC_DXT3_EXT'];if(a7===0x83f3)return a9['COMPRESSED_RGBA_S3TC_DXT5_EXT'];}else return null;}}if(a7===0x8c00||a7===0x8c01||a7===0x8c02||a7===0x8c03){if(a9=a5['get']('WEBGL_compressed_texture_pvrtc'),a9!==null){if(a7===0x8c00)return a9['COMPRESSED_RGB_PVRTC_4BPPV1_IMG'];if(a7===0x8c01)return a9['COMPRESSED_RGB_PVRTC_2BPPV1_IMG'];if(a7===0x8c02)return a9['COMPRESSED_RGBA_PVRTC_4BPPV1_IMG'];if(a7===0x8c03)return a9[tH(0x3e7)];}else return null;}if(a7===0x8d64||a7===0x9274||a7===0x9278||a7===0x9270||a7===0x9271||a7===0x9272||a7===0x9273){if(a9=a5['get'](tH(0x201)),a9!==null){if(a7===0x8d64||a7===0x9274)return ab==='srgb'?a9['COMPRESSED_SRGB8_ETC2']:a9['COMPRESSED_RGB8_ETC2'];if(a7===0x9278)return ab===tH(0x38e)?a9['COMPRESSED_SRGB8_ALPHA8_ETC2_EAC']:a9['COMPRESSED_RGBA8_ETC2_EAC'];if(a7===0x9270)return a9[tH(0x608)];if(a7===0x9271)return a9['COMPRESSED_SIGNED_R11_EAC'];if(a7===0x9272)return a9[tH(0x4c1)];if(a7===0x9273)return a9['COMPRESSED_SIGNED_RG11_EAC'];}else return null;}if(a7===0x93b0||a7===0x93b1||a7===0x93b2||a7===0x93b3||a7===0x93b4||a7===0x93b5||a7===0x93b6||a7===0x93b7||a7===0x93b8||a7===0x93b9||a7===0x93ba||a7===0x93bb||a7===0x93bc||a7===0x93bd){if(a9=a5['get']('WEBGL_compressed_texture_astc'),a9!==null){if(a7===0x93b0)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR']:a9['COMPRESSED_RGBA_ASTC_4x4_KHR'];if(a7===0x93b1)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR']:a9['COMPRESSED_RGBA_ASTC_5x4_KHR'];if(a7===0x93b2)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR']:a9['COMPRESSED_RGBA_ASTC_5x5_KHR'];if(a7===0x93b3)return ab===tH(0x38e)?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR']:a9['COMPRESSED_RGBA_ASTC_6x5_KHR'];if(a7===0x93b4)return ab===tH(0x38e)?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR']:a9['COMPRESSED_RGBA_ASTC_6x6_KHR'];if(a7===0x93b5)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR']:a9['COMPRESSED_RGBA_ASTC_8x5_KHR'];if(a7===0x93b6)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR']:a9['COMPRESSED_RGBA_ASTC_8x6_KHR'];if(a7===0x93b7)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR']:a9[tH(0x358)];if(a7===0x93b8)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR']:a9[tH(0x30e)];if(a7===0x93b9)return ab==='srgb'?a9[tH(0x642)]:a9[tH(0x387)];if(a7===0x93ba)return ab==='srgb'?a9[tH(0x4a2)]:a9[tH(0x5fd)];if(a7===0x93bb)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR']:a9['COMPRESSED_RGBA_ASTC_10x10_KHR'];if(a7===0x93bc)return ab===tH(0x38e)?a9[tH(0x3a5)]:a9['COMPRESSED_RGBA_ASTC_12x10_KHR'];if(a7===0x93bd)return ab==='srgb'?a9['COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR']:a9['COMPRESSED_RGBA_ASTC_12x12_KHR'];}else return null;}if(a7===0x8e8c||a7===0x8e8e||a7===0x8e8f){if(a9=a5['get']('EXT_texture_compression_bptc'),a9!==null){if(a7===0x8e8c)return ab==='srgb'?a9['COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT']:a9['COMPRESSED_RGBA_BPTC_UNORM_EXT'];if(a7===0x8e8e)return a9['COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT'];if(a7===0x8e8f)return a9['COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT'];}else return null;}if(a7===0x8dbb||a7===0x8dbc||a7===0x8dbd||a7===0x8dbe){if(a9=a5['get']('EXT_texture_compression_rgtc'),a9!==null){if(a7===0x8dbb)return a9[tH(0x236)];if(a7===0x8dbc)return a9['COMPRESSED_SIGNED_RED_RGTC1_EXT'];if(a7===0x8dbd)return a9['COMPRESSED_RED_GREEN_RGTC2_EXT'];if(a7===0x8dbe)return a9['COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT'];}else return null;}return a7===0x3fc?a4['UNSIGNED_INT_24_8']:a4[a7]===void 0x0?null:a4[a7];}return{'convert':a6};}var ud='\x0avoid\x20main()\x20{\x0a\x0a\x09gl_Position\x20=\x20vec4(\x20position,\x201.0\x20);\x0a\x0a}',dd='\x0auniform\x20sampler2DArray\x20depthColor;\x0auniform\x20float\x20depthWidth;\x0auniform\x20float\x20depthHeight;\x0a\x0avoid\x20main()\x20{\x0a\x0a\x09vec2\x20coord\x20=\x20vec2(\x20gl_FragCoord.x\x20/\x20depthWidth,\x20gl_FragCoord.y\x20/\x20depthHeight\x20);\x0a\x0a\x09if\x20(\x20coord.x\x20>=\x201.0\x20)\x20{\x0a\x0a\x09\x09gl_FragDepth\x20=\x20texture(\x20depthColor,\x20vec3(\x20coord.x\x20-\x201.0,\x20coord.y,\x201\x20)\x20).r;\x0a\x0a\x09}\x20else\x20{\x0a\x0a\x09\x09gl_FragDepth\x20=\x20texture(\x20depthColor,\x20vec3(\x20coord.x,\x20coord.y,\x200\x20)\x20).r;\x0a\x0a\x09}\x0a\x0a}',fd=class{constructor(){const tI=d4;this['texture']=null,this['mesh']=null,this['depthNear']=0x0,this[tI(0x21a)]=0x0;}[d4(0x4ae)](a4,a5){const tJ=d4;if(this['texture']===null){let a6=new xa(a4[tJ(0x1b5)]);(a4[tJ(0x426)]!==a5[tJ(0x426)]||a4['depthFar']!==a5['depthFar'])&&(this['depthNear']=a4['depthNear'],this['depthFar']=a4['depthFar']),this['texture']=a6;}}['getMesh'](a4){if(this['texture']!==null&&this['mesh']===null){let a5=a4['cameras'][0x0]['viewport'],a6=new xo({'vertexShader':ud,'fragmentShader':dd,'uniforms':{'depthColor':{'value':this['texture']},'depthWidth':{'value':a5['z']},'depthHeight':{'value':a5['w']}}});this['mesh']=new gi(new uo(0x14,0x14),a6);}return this['mesh'];}['reset'](){this['texture']=null,this['mesh']=null;}[d4(0x4b3)](){return this['texture'];}},pd=class extends xt{constructor(a4,a5){const tK=d4;super();let a6=this,a7=null,a8=0x1,a9=null,ab=tK(0x396),af=0x1,ag=null,ah=null,aj=null,ak=null,am=null,ap=null,aq=typeof XRWebGLBinding<'u',av=new fd(),aw={},ax=a5['getContextAttributes'](),ay=null,az=null,aA=[],aB=[],aC=new U(),aD=null,aE=new bs();aE['viewport']=new q();let aF=new bs();aF['viewport']=new q();let aG=[aE,aF],aH=new Is(),aI=null,aJ=null;this['cameraAutoUpdate']=!0x0,this[tK(0x2b4)]=!0x1,this['isPresenting']=!0x1,this['getController']=function(aV){const tL=tK;let aW=aA[aV];return aW===void 0x0&&(aW=new Wn(),aA[aV]=aW),aW[tL(0x246)]();},this[tK(0x214)]=function(aV){let aW=aA[aV];return aW===void 0x0&&(aW=new Wn(),aA[aV]=aW),aW['getGripSpace']();},this['getHand']=function(aV){let aW=aA[aV];return aW===void 0x0&&(aW=new Wn(),aA[aV]=aW),aW['getHandSpace']();};function aK(aV){const tM=tK;let aW=aB['indexOf'](aV[tM(0x133)]);if(aW===-0x1)return;let aX=aA[aW];aX!==void 0x0&&(aX[tM(0x26f)](aV['inputSource'],aV['frame'],ag||a9),aX[tM(0x3de)]({'type':aV['type'],'data':aV['inputSource']}));}function aL(){const tN=tK;a7[tN(0x487)]('select',aK),a7['removeEventListener']('selectstart',aK),a7['removeEventListener'](tN(0x55c),aK),a7[tN(0x487)]('squeeze',aK),a7['removeEventListener']('squeezestart',aK),a7['removeEventListener']('squeezeend',aK),a7['removeEventListener']('end',aL),a7[tN(0x487)](tN(0x2c5),aM);for(let aV=0x0;aV<aA['length'];aV++){let aW=aB[aV];aW!==null&&(aB[aV]=null,aA[aV]['disconnect'](aW));}aI=null,aJ=null,av['reset']();for(let aX in aw)delete aw[aX];a4['setRenderTarget'](ay),am=null,ak=null,aj=null,a7=null,az=null,aU['stop'](),a6['isPresenting']=!0x1,a4['setPixelRatio'](aD),a4[tN(0x27f)](aC['width'],aC['height'],!0x1),a6['dispatchEvent']({'type':'sessionend'});}this['setFramebufferScaleFactor']=function(aV){a8=aV,a6['isPresenting']===!0x0&&z('WebXRManager:\x20Cannot\x20change\x20framebuffer\x20scale\x20while\x20presenting.');},this['setReferenceSpaceType']=function(aV){ab=aV,a6['isPresenting']===!0x0&&z('WebXRManager:\x20Cannot\x20change\x20reference\x20space\x20type\x20while\x20presenting.');},this['getReferenceSpace']=function(){return ag||a9;},this[tK(0x174)]=function(aV){ag=aV;},this['getBaseLayer']=function(){return ak===null?am:ak;},this['getBinding']=function(){return aj===null&&aq&&(aj=new XRWebGLBinding(a7,a5)),aj;},this['getFrame']=function(){return ap;},this['getSession']=function(){return a7;},this['setSession']=(function(){var aV=a3(function*(aW){const tO=a1;if(a7=aW,a7!==null){if(ay=a4['getRenderTarget'](),a7['addEventListener']('select',aK),a7['addEventListener']('selectstart',aK),a7['addEventListener']('selectend',aK),a7['addEventListener'](tO(0x2ec),aK),a7['addEventListener']('squeezestart',aK),a7['addEventListener']('squeezeend',aK),a7[tO(0x430)]('end',aL),a7['addEventListener']('inputsourceschange',aM),ax['xrCompatible']!==!0x0&&(yield a5['makeXRCompatible']()),aD=a4[tO(0x477)](),a4['getSize'](aC),aq&&tO(0x40a)in XRWebGLBinding['prototype']){let aX=null,aY=null,aZ=null;ax['depth']&&(aZ=ax['stencil']?a5['DEPTH24_STENCIL8']:a5['DEPTH_COMPONENT24'],aX=ax['stencil']?ce:se,aY=ax[tO(0x1ab)]?re:k);let b0={'colorFormat':a5[tO(0x172)],'depthFormat':aZ,'scaleFactor':a8};aj=this['getBinding'](),ak=aj[tO(0x40a)](b0),a7['updateRenderState']({'layers':[ak]}),a4['setPixelRatio'](0x1),a4[tO(0x27f)](ak[tO(0x15a)],ak['textureHeight'],!0x1),az=new fn(ak['textureWidth'],ak['textureHeight'],{'format':oe,'type':T,'depthTexture':new ya(ak[tO(0x15a)],ak['textureHeight'],aY,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,aX),'stencilBuffer':ax['stencil'],'colorSpace':a4['outputColorSpace'],'samples':ax['antialias']?0x4:0x0,'resolveDepthBuffer':ak['ignoreDepthValues']===!0x1,'resolveStencilBuffer':ak['ignoreDepthValues']===!0x1});}else{let b1={'antialias':ax['antialias'],'alpha':!0x0,'depth':ax['depth'],'stencil':ax[tO(0x1ab)],'framebufferScaleFactor':a8};am=new XRWebGLLayer(a7,a5,b1),a7['updateRenderState']({'baseLayer':am}),a4['setPixelRatio'](0x1),a4['setSize'](am['framebufferWidth'],am['framebufferHeight'],!0x1),az=new fn(am['framebufferWidth'],am['framebufferHeight'],{'format':oe,'type':T,'colorSpace':a4['outputColorSpace'],'stencilBuffer':ax['stencil'],'resolveDepthBuffer':am['ignoreDepthValues']===!0x1,'resolveStencilBuffer':am['ignoreDepthValues']===!0x1});}az[tO(0x392)]=!0x0,this['setFoveation'](af),ag=null,a9=yield a7['requestReferenceSpace'](ab),aU['setContext'](a7),aU[tO(0x29e)](),a6['isPresenting']=!0x0,a6['dispatchEvent']({'type':'sessionstart'});}});return function(aW){return aV['apply'](this,arguments);};}()),this['getEnvironmentBlendMode']=function(){if(a7!==null)return a7['environmentBlendMode'];},this['getDepthTexture']=function(){return av['getDepthTexture']();};function aM(aV){for(let aW=0x0;aW<aV['removed']['length'];aW++){let aX=aV['removed'][aW],aY=aB['indexOf'](aX);aY>=0x0&&(aB[aY]=null,aA[aY]['disconnect'](aX));}for(let aZ=0x0;aZ<aV['added']['length'];aZ++){let b0=aV['added'][aZ],b1=aB['indexOf'](b0);if(b1===-0x1){for(let b3=0x0;b3<aA['length'];b3++)if(b3>=aB['length']){aB['push'](b0),b1=b3;break;}else{if(aB[b3]===null){aB[b3]=b0,b1=b3;break;}}if(b1===-0x1)break;}let b2=aA[b1];b2&&b2['connect'](b0);}}let aN=new W(),aO=new W();function aP(aV,aW,aX){const tP=tK;aN['setFromMatrixPosition'](aW['matrixWorld']),aO['setFromMatrixPosition'](aX['matrixWorld']);let aY=aN['distanceTo'](aO),aZ=aW['projectionMatrix'][tP(0x633)],b0=aX['projectionMatrix']['elements'],b1=aZ[0xe]/(aZ[0xa]-0x1),b2=aZ[0xe]/(aZ[0xa]+0x1),b3=(aZ[0x9]+0x1)/aZ[0x5],b4=(aZ[0x9]-0x1)/aZ[0x5],b5=(aZ[0x8]-0x1)/aZ[0x0],b6=(b0[0x8]+0x1)/b0[0x0],b7=b1*b5,b8=b1*b6,b9=aY/(-b5+b6),bb=b9*-b5;if(aW['matrixWorld'][tP(0x26a)](aV[tP(0x4ed)],aV['quaternion'],aV[tP(0x2c6)]),aV['translateX'](bb),aV['translateZ'](b9),aV['matrixWorld']['compose'](aV['position'],aV['quaternion'],aV['scale']),aV[tP(0x1ed)]['copy'](aV['matrixWorld'])['invert'](),aZ[0xa]===-0x1)aV['projectionMatrix']['copy'](aW['projectionMatrix']),aV['projectionMatrixInverse']['copy'](aW['projectionMatrixInverse']);else{let bf=b1+b9,bg=b2+b9,bh=b7-bb,bj=b8+(aY-bb),bk=b3*b2/bg*bf,bm=b4*b2/bg*bf;aV[tP(0x60d)]['makePerspective'](bh,bj,bk,bm,bf,bg),aV[tP(0x3c3)]['copy'](aV['projectionMatrix'])[tP(0x545)]();}}function aQ(aV,aW){const tQ=tK;aW===null?aV['matrixWorld']['copy'](aV['matrix']):aV['matrixWorld']['multiplyMatrices'](aW['matrixWorld'],aV['matrix']),aV['matrixWorldInverse'][tQ(0x647)](aV[tQ(0x3cd)])['invert']();}this['updateCamera']=function(aV){const tR=tK;if(a7===null)return;let aW=aV['near'],aX=aV['far'];av['texture']!==null&&(av[tR(0x426)]>0x0&&(aW=av[tR(0x426)]),av['depthFar']>0x0&&(aX=av['depthFar'])),aH[tR(0x492)]=aF['near']=aE[tR(0x492)]=aW,aH['far']=aF['far']=aE['far']=aX,(aI!==aH['near']||aJ!==aH['far'])&&(a7[tR(0x1f5)]({'depthNear':aH['near'],'depthFar':aH['far']}),aI=aH[tR(0x492)],aJ=aH[tR(0x4c5)]),aH['layers'][tR(0x4d6)]=aV[tR(0x1aa)]['mask']|0x6,aE['layers']['mask']=aH[tR(0x1aa)]['mask']&-0x5,aF['layers']['mask']=aH[tR(0x1aa)]['mask']&-0x3;let aY=aV['parent'],aZ=aH['cameras'];aQ(aH,aY);for(let b0=0x0;b0<aZ[tR(0x3ac)];b0++)aQ(aZ[b0],aY);aZ['length']===0x2?aP(aH,aE,aF):aH[tR(0x60d)]['copy'](aE[tR(0x60d)]),aR(aV,aH,aY);};function aR(aV,aW,aX){const tS=tK;aX===null?aV['matrix']['copy'](aW['matrixWorld']):(aV['matrix']['copy'](aX[tS(0x3cd)]),aV['matrix']['invert'](),aV['matrix']['multiply'](aW[tS(0x3cd)])),aV['matrix']['decompose'](aV[tS(0x4ed)],aV['quaternion'],aV[tS(0x2c6)]),aV[tS(0x5d0)](!0x0),aV['projectionMatrix']['copy'](aW[tS(0x60d)]),aV['projectionMatrixInverse'][tS(0x647)](aW[tS(0x3c3)]),aV['isPerspectiveCamera']&&(aV['fov']=Tt*0x2*Math['atan'](0x1/aV['projectionMatrix'][tS(0x633)][0x5]),aV['zoom']=0x1);}this['getCamera']=function(){return aH;},this['getFoveation']=function(){if(!(ak===null&&am===null))return af;},this['setFoveation']=function(aV){const tT=tK;af=aV,ak!==null&&(ak[tT(0x529)]=aV),am!==null&&am[tT(0x529)]!==void 0x0&&(am[tT(0x529)]=aV);},this['hasDepthSensing']=function(){const tU=tK;return av[tU(0x1b5)]!==null;},this['getDepthSensingMesh']=function(){return av['getMesh'](aH);},this['getCameraTexture']=function(aV){return aw[aV];};let aS=null;function aT(aV,aW){const tV=tK;if(ah=aW['getViewerPose'](ag||a9),ap=aW,ah!==null){let aX=ah['views'];am!==null&&(a4['setRenderTargetFramebuffer'](az,am['framebuffer']),a4['setRenderTarget'](az));let aY=!0x1;aX['length']!==aH[tV(0x4b2)]['length']&&(aH['cameras']['length']=0x0,aY=!0x0);for(let b0=0x0;b0<aX[tV(0x3ac)];b0++){let b1=aX[b0],b2=null;if(am!==null)b2=am['getViewport'](b1);else{let b4=aj[tV(0x4b6)](ak,b1);b2=b4['viewport'],b0===0x0&&(a4['setRenderTargetTextures'](az,b4['colorTexture'],b4['depthStencilTexture']),a4['setRenderTarget'](az));}let b3=aG[b0];b3===void 0x0&&(b3=new bs(),b3['layers']['enable'](b0),b3['viewport']=new q(),aG[b0]=b3),b3[tV(0x3ed)]['fromArray'](b1['transform']['matrix']),b3['matrix']['decompose'](b3['position'],b3['quaternion'],b3['scale']),b3[tV(0x60d)]['fromArray'](b1['projectionMatrix']),b3['projectionMatrixInverse']['copy'](b3['projectionMatrix'])[tV(0x545)](),b3['viewport']['set'](b2['x'],b2['y'],b2['width'],b2['height']),b0===0x0&&(aH['matrix'][tV(0x647)](b3['matrix']),aH['matrix']['decompose'](aH[tV(0x4ed)],aH[tV(0x446)],aH[tV(0x2c6)])),aY===!0x0&&aH[tV(0x4b2)]['push'](b3);}let aZ=a7['enabledFeatures'];if(aZ&&aZ['includes']('depth-sensing')&&a7[tV(0x5ff)]=='gpu-optimized'&&aq){aj=a6['getBinding']();let b5=aj[tV(0x315)](aX[0x0]);b5&&b5['isValid']&&b5['texture']&&av['init'](b5,a7['renderState']);}if(aZ&&aZ['includes'](tV(0x128))&&aq){a4['state']['unbindTexture'](),aj=a6['getBinding']();for(let b6=0x0;b6<aX['length'];b6++){let b7=aX[b6]['camera'];if(b7){let b8=aw[b7];b8||(b8=new xa(),aw[b7]=b8);let b9=aj[tV(0x5d6)](b7);b8[tV(0x50d)]=b9;}}}}for(let bb=0x0;bb<aA[tV(0x3ac)];bb++){let bf=aB[bb],bg=aA[bb];bf!==null&&bg!==void 0x0&&bg['update'](bf,aW,ag||a9);}aS&&aS(aV,aW),aW['detectedPlanes']&&a6['dispatchEvent']({'type':'planesdetected','data':aW}),ap=null;}let aU=new oc();aU['setAnimationLoop'](aT),this['setAnimationLoop']=function(aV){aS=aV;},this['dispose']=function(){};}},md=new J(),hd=new G();hd[d4(0x23a)](-0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1);function gd(a4,a5){function a6(aw,ax){aw['matrixAutoUpdate']===!0x0&&aw['updateMatrix'](),ax['value']['copy'](aw['matrix']);}function a7(aw,ax){const tW=a1;ax[tW(0x180)]['getRGB'](aw['fogColor']['value'],_o(a4)),ax['isFog']?(aw['fogNear']['value']=ax['near'],aw['fogFar']['value']=ax['far']):ax['isFogExp2']&&(aw['fogDensity']['value']=ax['density']);}function a8(aw,ax,ay,az,aA){const tX=a1;ax['isNodeMaterial']?ax['uniformsNeedUpdate']=!0x1:ax['isMeshBasicMaterial']?a9(aw,ax):ax['isMeshLambertMaterial']?(a9(aw,ax),ax[tX(0x393)]&&(aw['envMapIntensity']['value']=ax['envMapIntensity'])):ax['isMeshToonMaterial']?(a9(aw,ax),ak(aw,ax)):ax['isMeshPhongMaterial']?(a9(aw,ax),aj(aw,ax),ax['envMap']&&(aw['envMapIntensity']['value']=ax[tX(0x1a0)])):ax[tX(0x147)]?(a9(aw,ax),am(aw,ax),ax['isMeshPhysicalMaterial']&&ap(aw,ax,aA)):ax['isMeshMatcapMaterial']?(a9(aw,ax),aq(aw,ax)):ax['isMeshDepthMaterial']?a9(aw,ax):ax['isMeshDistanceMaterial']?(a9(aw,ax),av(aw,ax)):ax['isMeshNormalMaterial']?a9(aw,ax):ax[tX(0x1a1)]?(ab(aw,ax),ax['isLineDashedMaterial']&&af(aw,ax)):ax['isPointsMaterial']?ag(aw,ax,ay,az):ax['isSpriteMaterial']?ah(aw,ax):ax['isShadowMaterial']?(aw['color'][tX(0x4ad)]['copy'](ax['color']),aw['opacity']['value']=ax['opacity']):ax[tX(0x467)]&&(ax['uniformsNeedUpdate']=!0x1);}function a9(aw,ax){const tY=a1;aw['opacity']['value']=ax['opacity'],ax['color']&&aw['diffuse'][tY(0x4ad)][tY(0x647)](ax[tY(0x180)]),ax['emissive']&&aw['emissive']['value'][tY(0x647)](ax['emissive'])['multiplyScalar'](ax['emissiveIntensity']),ax['map']&&(aw['map']['value']=ax['map'],a6(ax['map'],aw[tY(0x1f7)])),ax[tY(0x2d6)]&&(aw['alphaMap']['value']=ax['alphaMap'],a6(ax[tY(0x2d6)],aw['alphaMapTransform'])),ax['bumpMap']&&(aw['bumpMap']['value']=ax[tY(0x2cc)],a6(ax['bumpMap'],aw['bumpMapTransform']),aw['bumpScale']['value']=ax['bumpScale'],ax['side']===0x1&&(aw['bumpScale'][tY(0x4ad)]*=-0x1)),ax[tY(0x360)]&&(aw['normalMap'][tY(0x4ad)]=ax['normalMap'],a6(ax['normalMap'],aw['normalMapTransform']),aw[tY(0x368)][tY(0x4ad)]['copy'](ax['normalScale']),ax['side']===0x1&&aw['normalScale']['value'][tY(0x13d)]()),ax[tY(0x489)]&&(aw['displacementMap']['value']=ax['displacementMap'],a6(ax['displacementMap'],aw['displacementMapTransform']),aw[tY(0x187)][tY(0x4ad)]=ax['displacementScale'],aw['displacementBias']['value']=ax['displacementBias']),ax['emissiveMap']&&(aw[tY(0x5d1)]['value']=ax['emissiveMap'],a6(ax[tY(0x5d1)],aw['emissiveMapTransform'])),ax['specularMap']&&(aw['specularMap']['value']=ax['specularMap'],a6(ax['specularMap'],aw['specularMapTransform'])),ax['alphaTest']>0x0&&(aw[tY(0x5e2)]['value']=ax['alphaTest']);let ay=a5['get'](ax),az=ay['envMap'],aA=ay['envMapRotation'];az&&(aw['envMap'][tY(0x4ad)]=az,aw[tY(0x52b)]['value'][tY(0x3fb)](md['makeRotationFromEuler'](aA))[tY(0x188)](),az[tY(0x189)]&&az['isRenderTargetTexture']===!0x1&&aw[tY(0x52b)][tY(0x4ad)]['premultiply'](hd),aw['reflectivity']['value']=ax[tY(0x337)],aw['ior']['value']=ax['ior'],aw['refractionRatio']['value']=ax['refractionRatio']),ax['lightMap']&&(aw['lightMap']['value']=ax['lightMap'],aw['lightMapIntensity']['value']=ax['lightMapIntensity'],a6(ax['lightMap'],aw['lightMapTransform'])),ax['aoMap']&&(aw[tY(0x5b1)][tY(0x4ad)]=ax['aoMap'],aw[tY(0x45d)]['value']=ax['aoMapIntensity'],a6(ax['aoMap'],aw['aoMapTransform']));}function ab(aw,ax){const tZ=a1;aw['diffuse'][tZ(0x4ad)]['copy'](ax['color']),aw['opacity']['value']=ax['opacity'],ax['map']&&(aw[tZ(0x2db)]['value']=ax['map'],a6(ax['map'],aw['mapTransform']));}function af(aw,ax){aw['dashSize']['value']=ax['dashSize'],aw['totalSize']['value']=ax['dashSize']+ax['gapSize'],aw['scale']['value']=ax['scale'];}function ag(aw,ax,ay,az){const u0=a1;aw['diffuse']['value']['copy'](ax['color']),aw['opacity'][u0(0x4ad)]=ax[u0(0x5b6)],aw['size']['value']=ax['size']*ay,aw['scale']['value']=az*0.5,ax['map']&&(aw['map'][u0(0x4ad)]=ax['map'],a6(ax['map'],aw['uvTransform'])),ax['alphaMap']&&(aw[u0(0x2d6)]['value']=ax['alphaMap'],a6(ax['alphaMap'],aw['alphaMapTransform'])),ax['alphaTest']>0x0&&(aw['alphaTest']['value']=ax[u0(0x5e2)]);}function ah(aw,ax){const u1=a1;aw[u1(0x2e3)]['value']['copy'](ax['color']),aw['opacity']['value']=ax['opacity'],aw['rotation']['value']=ax['rotation'],ax['map']&&(aw['map']['value']=ax[u1(0x2db)],a6(ax[u1(0x2db)],aw[u1(0x1f7)])),ax['alphaMap']&&(aw['alphaMap']['value']=ax['alphaMap'],a6(ax['alphaMap'],aw['alphaMapTransform'])),ax['alphaTest']>0x0&&(aw['alphaTest']['value']=ax[u1(0x5e2)]);}function aj(aw,ax){const u2=a1;aw['specular']['value']['copy'](ax['specular']),aw['shininess']['value']=Math[u2(0x4dd)](ax[u2(0x600)],0.0001);}function ak(aw,ax){const u3=a1;ax['gradientMap']&&(aw[u3(0x59f)]['value']=ax['gradientMap']);}function am(aw,ax){const u4=a1;aw[u4(0x1e4)]['value']=ax['metalness'],ax['metalnessMap']&&(aw[u4(0x3e2)]['value']=ax['metalnessMap'],a6(ax['metalnessMap'],aw[u4(0x224)])),aw['roughness']['value']=ax['roughness'],ax['roughnessMap']&&(aw['roughnessMap'][u4(0x4ad)]=ax['roughnessMap'],a6(ax['roughnessMap'],aw['roughnessMapTransform'])),ax['envMap']&&(aw[u4(0x1a0)][u4(0x4ad)]=ax['envMapIntensity']);}function ap(aw,ax,ay){const u5=a1;aw[u5(0x459)]['value']=ax['ior'],ax['sheen']>0x0&&(aw['sheenColor'][u5(0x4ad)]['copy'](ax[u5(0x410)])['multiplyScalar'](ax['sheen']),aw['sheenRoughness']['value']=ax['sheenRoughness'],ax['sheenColorMap']&&(aw['sheenColorMap'][u5(0x4ad)]=ax['sheenColorMap'],a6(ax['sheenColorMap'],aw['sheenColorMapTransform'])),ax['sheenRoughnessMap']&&(aw['sheenRoughnessMap']['value']=ax['sheenRoughnessMap'],a6(ax['sheenRoughnessMap'],aw['sheenRoughnessMapTransform']))),ax[u5(0x381)]>0x0&&(aw['clearcoat']['value']=ax['clearcoat'],aw['clearcoatRoughness']['value']=ax['clearcoatRoughness'],ax['clearcoatMap']&&(aw['clearcoatMap']['value']=ax['clearcoatMap'],a6(ax[u5(0x1f2)],aw['clearcoatMapTransform'])),ax['clearcoatRoughnessMap']&&(aw['clearcoatRoughnessMap']['value']=ax[u5(0x343)],a6(ax[u5(0x343)],aw['clearcoatRoughnessMapTransform'])),ax['clearcoatNormalMap']&&(aw['clearcoatNormalMap']['value']=ax['clearcoatNormalMap'],a6(ax['clearcoatNormalMap'],aw['clearcoatNormalMapTransform']),aw['clearcoatNormalScale']['value']['copy'](ax['clearcoatNormalScale']),ax['side']===0x1&&aw['clearcoatNormalScale']['value']['negate']())),ax['dispersion']>0x0&&(aw['dispersion']['value']=ax[u5(0x30a)]),ax['iridescence']>0x0&&(aw['iridescence']['value']=ax['iridescence'],aw[u5(0x4e5)][u5(0x4ad)]=ax[u5(0x4e5)],aw['iridescenceThicknessMinimum']['value']=ax['iridescenceThicknessRange'][0x0],aw['iridescenceThicknessMaximum']['value']=ax['iridescenceThicknessRange'][0x1],ax['iridescenceMap']&&(aw['iridescenceMap']['value']=ax['iridescenceMap'],a6(ax['iridescenceMap'],aw['iridescenceMapTransform'])),ax[u5(0x2b2)]&&(aw['iridescenceThicknessMap']['value']=ax['iridescenceThicknessMap'],a6(ax['iridescenceThicknessMap'],aw['iridescenceThicknessMapTransform']))),ax['transmission']>0x0&&(aw['transmission']['value']=ax['transmission'],aw['transmissionSamplerMap']['value']=ay[u5(0x1b5)],aw['transmissionSamplerSize'][u5(0x4ad)]['set'](ay[u5(0x24d)],ay['height']),ax['transmissionMap']&&(aw['transmissionMap']['value']=ax['transmissionMap'],a6(ax['transmissionMap'],aw['transmissionMapTransform'])),aw['thickness']['value']=ax['thickness'],ax['thicknessMap']&&(aw[u5(0x5e0)]['value']=ax['thicknessMap'],a6(ax['thicknessMap'],aw['thicknessMapTransform'])),aw['attenuationDistance']['value']=ax['attenuationDistance'],aw['attenuationColor']['value']['copy'](ax['attenuationColor'])),ax[u5(0x48d)]>0x0&&(aw['anisotropyVector'][u5(0x4ad)][u5(0x23a)](ax[u5(0x48d)]*Math['cos'](ax['anisotropyRotation']),ax['anisotropy']*Math['sin'](ax['anisotropyRotation'])),ax['anisotropyMap']&&(aw['anisotropyMap']['value']=ax['anisotropyMap'],a6(ax['anisotropyMap'],aw['anisotropyMapTransform']))),aw['specularIntensity']['value']=ax['specularIntensity'],aw[u5(0x437)]['value']['copy'](ax['specularColor']),ax['specularColorMap']&&(aw['specularColorMap'][u5(0x4ad)]=ax['specularColorMap'],a6(ax['specularColorMap'],aw['specularColorMapTransform'])),ax['specularIntensityMap']&&(aw['specularIntensityMap']['value']=ax['specularIntensityMap'],a6(ax['specularIntensityMap'],aw['specularIntensityMapTransform']));}function aq(aw,ax){const u6=a1;ax[u6(0x2b7)]&&(aw[u6(0x2b7)]['value']=ax[u6(0x2b7)]);}function av(aw,ax){const u7=a1;let ay=a5['get'](ax)['light'];aw[u7(0x41b)][u7(0x4ad)]['setFromMatrixPosition'](ay['matrixWorld']),aw['nearDistance']['value']=ay['shadow']['camera']['near'],aw['farDistance']['value']=ay[u7(0x43d)][u7(0x17b)]['far'];}return{'refreshFogUniforms':a7,'refreshMaterialUniforms':a8};}function _d(a4,a5,a6,a7){let a8={},a9={},ab=[],af=a4['getParameter'](a4['MAX_UNIFORM_BUFFER_BINDINGS']);function ag(ay,az){let aA=az['program'];a7['uniformBlockBinding'](ay,aA);}function ah(ay,az){const u8=a1;let aA=a8[ay['id']];aA===void 0x0&&(aq(ay),aA=aj(ay),a8[ay['id']]=aA,ay[u8(0x430)]('dispose',aw));let aB=az['program'];a7['updateUBOMapping'](ay,aB);let aC=a5['render'][u8(0x621)];a9[ay['id']]!==aC&&(am(ay),a9[ay['id']]=aC);}function aj(ay){const u9=a1;let az=ak();ay['__bindingPointIndex']=az;let aA=a4['createBuffer'](),aB=ay['__size'],aC=ay['usage'];return a4['bindBuffer'](a4['UNIFORM_BUFFER'],aA),a4[u9(0x4ff)](a4['UNIFORM_BUFFER'],aB,aC),a4['bindBuffer'](a4['UNIFORM_BUFFER'],null),a4['bindBufferBase'](a4['UNIFORM_BUFFER'],az,aA),aA;}function ak(){const ub=a1;for(let ay=0x0;ay<af;ay++)if(ab[ub(0x5bd)](ay)===-0x1)return ab['push'](ay),ay;return B('WebGLRenderer:\x20Maximum\x20number\x20of\x20simultaneously\x20usable\x20uniforms\x20groups\x20reached.'),0x0;}function am(ay){const uf=a1;let az=a8[ay['id']],aA=ay['uniforms'],aB=ay['__cache'];a4[uf(0x3b6)](a4[uf(0x578)],az);for(let aC=0x0,aD=aA['length'];aC<aD;aC++){let aE=Array['isArray'](aA[aC])?aA[aC]:[aA[aC]];for(let aF=0x0,aG=aE['length'];aF<aG;aF++){let aH=aE[aF];if(ap(aH,aC,aF,aB)===!0x0){let aI=aH[uf(0x5fb)],aJ=Array[uf(0x571)](aH[uf(0x4ad)])?aH['value']:[aH['value']],aK=0x0;for(let aL=0x0;aL<aJ['length'];aL++){let aM=aJ[aL],aN=av(aM);typeof aM=='number'||typeof aM==uf(0x213)?(aH['__data'][0x0]=aM,a4['bufferSubData'](a4['UNIFORM_BUFFER'],aI+aK,aH['__data'])):aM['isMatrix3']?(aH['__data'][0x0]=aM[uf(0x633)][0x0],aH['__data'][0x1]=aM['elements'][0x1],aH['__data'][0x2]=aM['elements'][0x2],aH['__data'][0x3]=0x0,aH[uf(0x41a)][0x4]=aM['elements'][0x3],aH[uf(0x41a)][0x5]=aM['elements'][0x4],aH['__data'][0x6]=aM['elements'][0x5],aH['__data'][0x7]=0x0,aH[uf(0x41a)][0x8]=aM['elements'][0x6],aH['__data'][0x9]=aM['elements'][0x7],aH['__data'][0xa]=aM['elements'][0x8],aH['__data'][0xb]=0x0):ArrayBuffer['isView'](aM)?aH['__data']['set'](new aM['constructor'](aM['buffer'],aM['byteOffset'],aH['__data']['length'])):(aM['toArray'](aH['__data'],aK),aK+=aN['storage']/Float32Array[uf(0x514)]);}a4[uf(0x240)](a4['UNIFORM_BUFFER'],aI,aH[uf(0x41a)]);}}}a4['bindBuffer'](a4['UNIFORM_BUFFER'],null);}function ap(ay,az,aA,aB){const ug=a1;let aC=ay['value'],aD=az+'_'+aA;if(aB[aD]===void 0x0)return typeof aC=='number'||typeof aC==ug(0x213)?aB[aD]=aC:ArrayBuffer['isView'](aC)?aB[aD]=aC['slice']():aB[aD]=aC['clone'](),!0x0;{let aE=aB[aD];if(typeof aC==ug(0x51b)||typeof aC=='boolean'){if(aE!==aC)return aB[aD]=aC,!0x0;}else{if(ArrayBuffer['isView'](aC))return!0x0;else{if(aE[ug(0x5b9)](aC)===!0x1)return aE['copy'](aC),!0x0;}}}return!0x1;}function aq(ay){const uh=a1;let az=ay['uniforms'],aA=0x0;for(let aC=0x0,aD=az['length'];aC<aD;aC++){let aE=Array['isArray'](az[aC])?az[aC]:[az[aC]];for(let aF=0x0,aG=aE['length'];aF<aG;aF++){let aH=aE[aF],aI=Array[uh(0x571)](aH['value'])?aH['value']:[aH['value']];for(let aJ=0x0,aK=aI['length'];aJ<aK;aJ++){let aL=aI[aJ],aM=av(aL),aN=aA%0x10,aO=aN%aM['boundary'],aP=aN+aO;aA+=aO,aP!==0x0&&0x10-aP<aM['storage']&&(aA+=0x10-aP),aH['__data']=new Float32Array(aM['storage']/Float32Array[uh(0x514)]),aH['__offset']=aA,aA+=aM['storage'];}}}let aB=aA%0x10;return aB>0x0&&(aA+=0x10-aB),ay['__size']=aA,ay[uh(0x3f7)]={},this;}function av(ay){const uj=a1;let az={'boundary':0x0,'storage':0x0};return typeof ay=='number'||typeof ay=='boolean'?(az['boundary']=0x4,az['storage']=0x4):ay['isVector2']?(az['boundary']=0x8,az['storage']=0x8):ay['isVector3']||ay['isColor']?(az['boundary']=0x10,az['storage']=0xc):ay['isVector4']?(az[uj(0x4ab)]=0x10,az['storage']=0x10):ay['isMatrix3']?(az['boundary']=0x30,az['storage']=0x30):ay['isMatrix4']?(az['boundary']=0x40,az[uj(0x559)]=0x40):ay['isTexture']?z(uj(0x285)):ArrayBuffer['isView'](ay)?(az['boundary']=0x10,az['storage']=ay['byteLength']):z('WebGLRenderer:\x20Unsupported\x20uniform\x20value\x20type.',ay),az;}function aw(ay){let az=ay['target'];az['removeEventListener']('dispose',aw);let aA=ab['indexOf'](az['__bindingPointIndex']);ab['splice'](aA,0x1),a4['deleteBuffer'](a8[az['id']]),delete a8[az['id']],delete a9[az['id']];}function ax(){for(let ay in a8)a4['deleteBuffer'](a8[ay]);ab=[],a8={},a9={};}return{'bind':ag,'update':ah,'dispose':ax};}var vd=new Uint16Array([0x30b5,0x3ad1,0x314c,0x3a4d,0x33d2,0x391c,0x35ef,0x3828,0x37f3,0x36a6,0x38d1,0x3539,0x3979,0x3410,0x39f8,0x3252,0x3a53,0x30f0,0x3a94,0x2fc9,0x3abf,0x2e35,0x3ada,0x2d05,0x3ae8,0x2c1f,0x3aed,0x2ae0,0x3aea,0x29d1,0x3ae1,0x28ff,0x3638,0x38e4,0x364a,0x38ce,0x3699,0x385e,0x374e,0x372c,0x3839,0x35a4,0x38dc,0x3462,0x396e,0x32c4,0x39de,0x3134,0x3a2b,0x3003,0x3a59,0x2e3a,0x3a6d,0x2ce1,0x3a6e,0x2bba,0x3a5f,0x2a33,0x3a49,0x290a,0x3a2d,0x2826,0x3a0a,0x26e8,0x3894,0x36d7,0x3897,0x36c9,0x38a3,0x3675,0x38bc,0x35ac,0x38ee,0x349c,0x393e,0x3332,0x3997,0x3186,0x39e2,0x3038,0x3a13,0x2e75,0x3a29,0x2cf5,0x3a2d,0x2bac,0x3a21,0x29ff,0x3a04,0x28bc,0x39dc,0x2790,0x39ad,0x261a,0x3978,0x24fa,0x39ac,0x34a8,0x39ac,0x34a3,0x39ae,0x3480,0x39ae,0x3423,0x39b1,0x330e,0x39c2,0x31a9,0x39e0,0x3063,0x39fc,0x2eb5,0x3a0c,0x2d1d,0x3a14,0x2bcf,0x3a07,0x29ff,0x39e9,0x28a3,0x39be,0x273c,0x3989,0x25b3,0x394a,0x2488,0x3907,0x2345,0x3a77,0x3223,0x3a76,0x321f,0x3a73,0x3204,0x3a6a,0x31b3,0x3a58,0x3114,0x3a45,0x303b,0x3a34,0x2eb6,0x3a26,0x2d31,0x3a1e,0x2bef,0x3a0b,0x2a0d,0x39ec,0x28a1,0x39c0,0x271b,0x3987,0x2580,0x3944,0x2449,0x38fa,0x22bd,0x38ac,0x2155,0x3b07,0x2fca,0x3b06,0x2fca,0x3b00,0x2fb8,0x3af4,0x2f7c,0x3adb,0x2eea,0x3ab4,0x2e00,0x3a85,0x2cec,0x3a5e,0x2bc5,0x3a36,0x2a00,0x3a0d,0x2899,0x39dc,0x2707,0x39a0,0x2562,0x395a,0x2424,0x390b,0x2268,0x38b7,0x20fd,0x385f,0x1fd1,0x3b69,0x2cb9,0x3b68,0x2cbb,0x3b62,0x2cbb,0x3b56,0x2cae,0x3b3b,0x2c78,0x3b0d,0x2c0a,0x3acf,0x2ae3,0x3a92,0x2998,0x3a54,0x2867,0x3a17,0x26d0,0x39d3,0x253c,0x3989,0x2402,0x3935,0x2226,0x38dc,0x20bd,0x387d,0x1f54,0x381d,0x1db3,0x3ba9,0x296b,0x3ba8,0x296f,0x3ba3,0x297b,0x3b98,0x2987,0x3b7f,0x2976,0x3b4e,0x2927,0x3b0e,0x2895,0x3ac2,0x27b7,0x3a73,0x263b,0x3a23,0x24e7,0x39d0,0x239b,0x3976,0x21d9,0x3917,0x207e,0x38b2,0x1ee7,0x384b,0x1d53,0x37c7,0x1c1e,0x3bd2,0x25cb,0x3bd1,0x25d3,0x3bcd,0x25f0,0x3bc2,0x261f,0x3bad,0x2645,0x3b7d,0x262d,0x3b3e,0x25c4,0x3aec,0x250f,0x3a93,0x243a,0x3a32,0x22ce,0x39d0,0x215b,0x3969,0x202a,0x38fe,0x1e6e,0x388f,0x1cf1,0x381f,0x1b9b,0x3762,0x19dd,0x3be9,0x21ab,0x3be9,0x21b7,0x3be5,0x21e5,0x3bdd,0x2241,0x3bc9,0x22a7,0x3ba0,0x22ec,0x3b62,0x22cd,0x3b0f,0x2247,0x3aae,0x2175,0x3a44,0x2088,0x39d4,0x1f49,0x3960,0x1dbe,0x38e9,0x1c77,0x3870,0x1ae8,0x37f1,0x1953,0x3708,0x181b,0x3bf6,0x1cea,0x3bf6,0x1cfb,0x3bf3,0x1d38,0x3bec,0x1dbd,0x3bda,0x1e7c,0x3bb7,0x1f25,0x3b7d,0x1f79,0x3b2c,0x1f4c,0x3ac6,0x1ea6,0x3a55,0x1dbb,0x39da,0x1cbd,0x395a,0x1b9d,0x38d8,0x1a00,0x3855,0x18ac,0x37ab,0x173c,0x36b7,0x1598,0x3bfc,0x1736,0x3bfc,0x1759,0x3bf9,0x17e7,0x3bf4,0x1896,0x3be4,0x1997,0x3bc6,0x1aa8,0x3b91,0x1b84,0x3b43,0x1bd2,0x3ade,0x1b8a,0x3a65,0x1acd,0x39e2,0x19d3,0x3957,0x18cd,0x38ca,0x17b3,0x383e,0x1613,0x376d,0x14bf,0x366f,0x135e,0x3bff,0x101b,0x3bff,0x1039,0x3bfc,0x10c8,0x3bf9,0x1226,0x3bea,0x1428,0x3bcf,0x1584,0x3b9f,0x16c5,0x3b54,0x179a,0x3af0,0x17ce,0x3a76,0x1771,0x39ea,0x16a4,0x3956,0x15a7,0x38bf,0x14a7,0x3829,0x1379,0x3735,0x11ea,0x362d,0x10a1,0x3c00,0x61b,0x3c00,0x66a,0x3bfe,0x81c,0x3bfa,0xa4c,0x3bed,0xd16,0x3bd5,0xfb3,0x3ba9,0x114d,0x3b63,0x127c,0x3b01,0x132f,0x3a85,0x1344,0x39f4,0x12d2,0x3957,0x120d,0x38b5,0x1122,0x3817,0x103c,0x3703,0xed3,0x35f0,0xd6d,0x3c00,0x7a,0x3c00,0x89,0x3bfe,0x11d,0x3bfb,0x27c,0x3bf0,0x4fa,0x3bda,0x881,0x3bb1,0xacd,0x3b6f,0xc97,0x3b10,0xd7b,0x3a93,0xdf1,0x39fe,0xdef,0x3959,0xd8a,0x38af,0xce9,0x3808,0xc31,0x36d5,0xaf0,0x35b9,0x9a3,0x3c00,0x0,0x3c00,0x1,0x3bff,0x15,0x3bfb,0x59,0x3bf2,0xfd,0x3bdd,0x1df,0x3bb7,0x31c,0x3b79,0x47c,0x3b1d,0x5d4,0x3aa0,0x6d5,0x3a08,0x75a,0x395d,0x75e,0x38aa,0x6f7,0x37f4,0x648,0x36ac,0x576,0x3586,0x49f]),yd=null;function bd(){const uk=d4;return yd===null&&(yd=new Ai(vd,0x10,0x10,P,te),yd['name']='DFG_LUT',yd['minFilter']=S,yd['magFilter']=S,yd['wrapS']=_,yd[uk(0x5dd)]=_,yd['generateMipmaps']=!0x1,yd['needsUpdate']=!0x0),yd;}var xd=class{constructor(a4={}){const um=d4;let {canvas:a5=pt(),context:a6=null,depth:a7=!0x0,stencil:a8=!0x1,alpha:a9=!0x1,antialias:ab=!0x1,premultipliedAlpha:af=!0x0,preserveDrawingBuffer:ag=!0x1,powerPreference:ah='default',failIfMajorPerformanceCaveat:aj=!0x1,reversedDepthBuffer:ak=!0x1,outputBufferType:am=T}=a4;this[um(0x25b)]=!0x0;let ap;if(a6!==null){if(typeof WebGLRenderingContext<'u'&&a6 instanceof WebGLRenderingContext)throw Error('THREE.WebGLRenderer:\x20WebGL\x201\x20is\x20not\x20supported\x20since\x20r163.');ap=a6['getContextAttributes']()['alpha'];}else ap=a9;let aq=am,av=new Set([fe,de,ue]),aw=new Set([T,k,ee,re,j,ne]),ax=new Uint32Array(0x4),ay=new Int32Array(0x4),az=new W(),aA=null,aB=null,aC=[],aD=[],aE=null;this[um(0x5f9)]=a5,this['debug']={'checkShaderErrors':!0x0,'onShaderError':null},this['autoClear']=!0x0,this['autoClearColor']=!0x0,this['autoClearDepth']=!0x0,this['autoClearStencil']=!0x0,this[um(0x310)]=!0x0,this['clippingPlanes']=[],this['localClippingEnabled']=!0x1,this['toneMapping']=0x0,this['toneMappingExposure']=0x1,this['transmissionResolutionScale']=0x1;let aF=this,aG=!0x1,aH=null;this['_outputColorSpace']=rt;let aI=0x0,aJ=0x0,aK=null,aL=-0x1,aM=null,aN=new q(),aO=new q(),aP=null,aQ=new Y(0x0),aR=0x0,aS=a5[um(0x24d)],aT=a5[um(0x260)],aU=0x1,aV=null,aW=null,aX=new q(0x0,0x0,aS,aT),aY=new q(0x0,0x0,aS,aT),aZ=!0x1,b0=new Xi(),b1=!0x1,b2=!0x1,b3=new J(),b4=new W(),b5=new q(),b6={'background':null,'fog':null,'environment':null,'overrideMaterial':null,'isScene':!0x0},b7=!0x1;function b8(){return aK===null?aU:0x1;}let b9=a6;function bb(ch,cj){return a5['getContext'](ch,cj);}try{let ch={'alpha':!0x0,'depth':a7,'stencil':a8,'antialias':ab,'premultipliedAlpha':af,'preserveDrawingBuffer':ag,'powerPreference':ah,'failIfMajorPerformanceCaveat':aj};if('setAttribute'in a5&&a5['setAttribute']('data-engine','three.js\x20r184'),a5['addEventListener']('webglcontextlost',bM,!0x1),a5['addEventListener'](um(0x44b),bN,!0x1),a5['addEventListener'](um(0x572),bO,!0x1),b9===null){let cj=um(0x2e2);if(b9=bb(cj,ch),b9===null)throw bb(cj)?Error(um(0x49e)):Error('Error\x20creating\x20WebGL\x20context.');}}catch(ck){throw B('WebGLRenderer:\x20'+ck['message']),ck;}let bf,bg,bh,bj,bk,bm,bp,bq,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI,bJ;function bK(){const up=um;bf=new zc(b9),bf['init'](),bH=new ld(b9,bf),bg=new hc(b9,bf,a4,bH),bh=new sd(b9,bf),bg[up(0x4df)]&&ak&&bh['buffers']['depth'][up(0x1c7)](!0x0),bj=new Hc(b9),bk=new Vu(),bm=new cd(b9,bf,bh,bk,bg,bH,bj),bp=new Rc(aF),bq=new sc(b9),bI=new pc(b9,bq),bv=new Bc(b9,bq,bj,bI),bw=new Wc(b9,bv,bq,bI,bj),bE=new Uc(b9,bg,bm),bB=new gc(bk),bx=new Bu(aF,bp,bf,bg,bI,bB),by=new gd(aF,bk),bz=new Gu(),bA=new Qu(bf),bD=new fc(aF,bp,bh,bw,ap,af),bC=new od(aF,bw,bg),bJ=new _d(b9,bj,bg,bh),bF=new mc(b9,bf,bj),bG=new Vc(b9,bf,bj),bj['programs']=bx['programs'],aF[up(0x2b0)]=bg,aF['extensions']=bf,aF['properties']=bk,aF[up(0x2b6)]=bz,aF['shadowMap']=bC,aF['state']=bh,aF['info']=bj;}bK(),aq!==0x3f1&&(aE=new Kc(aq,a5['width'],a5['height'],a7,a8));let bL=new pd(aF,b9);this['xr']=bL,this['getContext']=function(){return b9;},this['getContextAttributes']=function(){return b9['getContextAttributes']();},this[um(0x23e)]=function(){let cm=bf['get']('WEBGL_lose_context');cm&&cm['loseContext']();},this['forceContextRestore']=function(){const uq=um;let cm=bf['get'](uq(0x4f9));cm&&cm['restoreContext']();},this['getPixelRatio']=function(){return aU;},this['setPixelRatio']=function(cm){cm!==void 0x0&&(aU=cm,this['setSize'](aS,aT,!0x1));},this['getSize']=function(cm){return cm['set'](aS,aT);},this['setSize']=function(cm,cp,cq=!0x0){if(bL['isPresenting']){z('WebGLRenderer:\x20Can\x27t\x20change\x20size\x20while\x20VR\x20device\x20is\x20presenting.');return;}aS=cm,aT=cp,a5['width']=Math['floor'](cm*aU),a5['height']=Math['floor'](cp*aU),cq===!0x0&&(a5['style']['width']=cm+'px',a5['style']['height']=cp+'px'),aE!==null&&aE['setSize'](a5['width'],a5['height']),this['setViewport'](0x0,0x0,cm,cp);},this['getDrawingBufferSize']=function(cm){return cm['set'](aS*aU,aT*aU)['floor']();},this['setDrawingBufferSize']=function(cm,cp,cq){const uv=um;aS=cm,aT=cp,aU=cq,a5['width']=Math[uv(0x4a4)](cm*cq),a5['height']=Math['floor'](cp*cq),this[uv(0x4bc)](0x0,0x0,cm,cp);},this['setEffects']=function(cm){if(aq===0x3f1){B('THREE.WebGLRenderer:\x20setEffects()\x20requires\x20outputBufferType\x20set\x20to\x20HalfFloatType\x20or\x20FloatType.');return;}if(cm){for(let cp=0x0;cp<cm['length'];cp++)if(cm[cp]['isOutputPass']===!0x0){z('THREE.WebGLRenderer:\x20OutputPass\x20is\x20not\x20needed\x20in\x20setEffects().\x20Tone\x20mapping\x20and\x20color\x20space\x20conversion\x20are\x20applied\x20automatically.');break;}}aE['setEffects'](cm||[]);},this['getCurrentViewport']=function(cm){return cm['copy'](aN);},this['getViewport']=function(cm){const uw=um;return cm[uw(0x647)](aX);},this['setViewport']=function(cm,cp,cq,cv){const ux=um;cm[ux(0x330)]?aX['set'](cm['x'],cm['y'],cm['z'],cm['w']):aX['set'](cm,cp,cq,cv),bh['viewport'](aN['copy'](aX)['multiplyScalar'](aU)['round']());},this['getScissor']=function(cm){const uy=um;return cm[uy(0x647)](aY);},this['setScissor']=function(cm,cp,cq,cv){cm['isVector4']?aY['set'](cm['x'],cm['y'],cm['z'],cm['w']):aY['set'](cm,cp,cq,cv),bh['scissor'](aO['copy'](aY)['multiplyScalar'](aU)['round']());},this[um(0x380)]=function(){return aZ;},this['setScissorTest']=function(cm){bh['setScissorTest'](aZ=cm);},this['setOpaqueSort']=function(cm){aV=cm;},this['setTransparentSort']=function(cm){aW=cm;},this[um(0x532)]=function(cm){const uz=um;return cm['copy'](bD[uz(0x532)]());},this['setClearColor']=function(){bD['setClearColor'](...arguments);},this['getClearAlpha']=function(){return bD['getClearAlpha']();},this[um(0x39f)]=function(){bD['setClearAlpha'](...arguments);},this['clear']=function(cm=!0x0,cp=!0x0,cq=!0x0){const uA=um;let cv=0x0;if(cm){let cw=!0x1;if(aK!==null){let cx=aK[uA(0x1b5)]['format'];cw=av[uA(0x550)](cx);}if(cw){let cy=aK['texture']['type'],cz=aw['has'](cy),cA=bD['getClearColor'](),cB=bD['getClearAlpha'](),cC=cA['r'],cD=cA['g'],cE=cA['b'];cz?(ax[0x0]=cC,ax[0x1]=cD,ax[0x2]=cE,ax[0x3]=cB,b9['clearBufferuiv'](b9['COLOR'],0x0,ax)):(ay[0x0]=cC,ay[0x1]=cD,ay[0x2]=cE,ay[0x3]=cB,b9[uA(0x4e9)](b9['COLOR'],0x0,ay));}else cv|=b9['COLOR_BUFFER_BIT'];}cp&&(cv|=b9['DEPTH_BUFFER_BIT'],this[uA(0x127)]['buffers']['depth']['setMask'](!0x0)),cq&&(cv|=b9['STENCIL_BUFFER_BIT'],this[uA(0x127)]['buffers']['stencil']['setMask'](0xffffffff)),cv!==0x0&&b9[uA(0x54f)](cv);},this['clearColor']=function(){this['clear'](!0x0,!0x1,!0x1);},this['clearDepth']=function(){const uB=um;this[uB(0x54f)](!0x1,!0x0,!0x1);},this['clearStencil']=function(){this['clear'](!0x1,!0x1,!0x0);},this['setNodesHandler']=function(cm){cm['setRenderer'](this),aH=cm;},this['dispose']=function(){const uC=um;a5['removeEventListener'](uC(0x5e8),bM,!0x1),a5['removeEventListener'](uC(0x44b),bN,!0x1),a5['removeEventListener']('webglcontextcreationerror',bO,!0x1),bD['dispose'](),bz['dispose'](),bA[uC(0x565)](),bk[uC(0x565)](),bp['dispose'](),bw['dispose'](),bI['dispose'](),bJ[uC(0x565)](),bx['dispose'](),bL['dispose'](),bL['removeEventListener']('sessionstart',bV),bL['removeEventListener']('sessionend',bW),bX['stop']();};function bM(cm){cm['preventDefault'](),gt('WebGLRenderer:\x20Context\x20Lost.'),aG=!0x0;}function bN(){const uD=um;gt('WebGLRenderer:\x20Context\x20Restored.'),aG=!0x1;let cm=bj[uD(0x586)],cp=bC['enabled'],cq=bC['autoUpdate'],cv=bC['needsUpdate'],cw=bC['type'];bK(),bj['autoReset']=cm,bC['enabled']=cp,bC['autoUpdate']=cq,bC['needsUpdate']=cv,bC['type']=cw;}function bO(cm){B('WebGLRenderer:\x20A\x20WebGL\x20context\x20could\x20not\x20be\x20created.\x20Reason:\x20',cm['statusMessage']);}function bP(cm){const uE=um;let cp=cm['target'];cp['removeEventListener'](uE(0x565),bP),bQ(cp);}function bQ(cm){bR(cm),bk['remove'](cm);}function bR(cm){const uF=um;let cp=bk['get'](cm)['programs'];cp!==void 0x0&&(cp['forEach'](function(cq){bx['releaseProgram'](cq);}),cm['isShaderMaterial']&&bx[uF(0x2e8)](cm));}this['renderBufferDirect']=function(cm,cp,cq,cv,cw,cx){const uG=um;cp===null&&(cp=b6);let cy=cw['isMesh']&&cw['matrixWorld']['determinant']()<0x0,cz=c7(cm,cp,cq,cv,cw);bh['setMaterial'](cv,cy);let cA=cq['index'],cB=0x1;if(cv['wireframe']===!0x0){if(cA=bv['getWireframeAttribute'](cq),cA===void 0x0)return;cB=0x2;}let cC=cq['drawRange'],cD=cq['attributes']['position'],cE=cC['start']*cB,cF=(cC['start']+cC['count'])*cB;cx!==null&&(cE=Math['max'](cE,cx['start']*cB),cF=Math['min'](cF,(cx['start']+cx['count'])*cB)),cA===null?cD!=null&&(cE=Math['max'](cE,0x0),cF=Math['min'](cF,cD['count'])):(cE=Math['max'](cE,0x0),cF=Math['min'](cF,cA[uG(0x218)]));let cG=cF-cE;if(cG<0x0||cG===Infinity)return;bI['setup'](cw,cv,cz,cq,cA);let cH,cI=bF;if(cA!==null&&(cH=bq['get'](cA),cI=bG,cI['setIndex'](cH)),cw['isMesh'])cv['wireframe']===!0x0?(bh['setLineWidth'](cv['wireframeLinewidth']*b8()),cI['setMode'](b9[uG(0x2f8)])):cI['setMode'](b9['TRIANGLES']);else{if(cw['isLine']){let cJ=cv['linewidth'];cJ===void 0x0&&(cJ=0x1),bh[uG(0x5d5)](cJ*b8()),cw['isLineSegments']?cI['setMode'](b9['LINES']):cw[uG(0x48f)]?cI[uG(0x1d6)](b9[uG(0x173)]):cI['setMode'](b9['LINE_STRIP']);}else cw['isPoints']?cI['setMode'](b9['POINTS']):cw['isSprite']&&cI['setMode'](b9['TRIANGLES']);}if(cw['isBatchedMesh']){if(bf['get']('WEBGL_multi_draw'))cI[uG(0x1e9)](cw['_multiDrawStarts'],cw['_multiDrawCounts'],cw['_multiDrawCount']);else{let cK=cw['_multiDrawStarts'],cL=cw[uG(0x4d1)],cM=cw['_multiDrawCount'],cN=cA?bq['get'](cA)['bytesPerElement']:0x1,cO=bk['get'](cv)['currentProgram']['getUniforms']();for(let cP=0x0;cP<cM;cP++)cO[uG(0x3d8)](b9,'_gl_DrawID',cP),cI['render'](cK[cP]/cN,cL[cP]);}}else{if(cw['isInstancedMesh'])cI[uG(0x45e)](cE,cG,cw['count']);else{if(cq['isInstancedBufferGeometry']){let cQ=cq['_maxInstanceCount']===void 0x0?Infinity:cq['_maxInstanceCount'],cR=Math['min'](cq['instanceCount'],cQ);cI[uG(0x45e)](cE,cG,cR);}else cI['render'](cE,cG);}}};function bS(cm,cp,cq){const uH=um;cm['transparent']===!0x0&&cm['side']===0x2&&cm['forceSinglePass']===!0x1?(cm['side']=0x1,cm[uH(0x55b)]=!0x0,c3(cm,cp,cq),cm['side']=0x0,cm['needsUpdate']=!0x0,c3(cm,cp,cq),cm['side']=0x2):c3(cm,cp,cq);}this['compile']=function(cm,cp,cq=null){const uI=um;cq===null&&(cq=cm),aB=bA['get'](cq),aB[uI(0x4ae)](cp),aD['push'](aB),cq['traverseVisible'](function(cw){const uJ=uI;cw['isLight']&&cw['layers']['test'](cp['layers'])&&(aB['pushLight'](cw),cw['castShadow']&&aB[uJ(0x512)](cw));}),cm!==cq&&cm['traverseVisible'](function(cw){const uK=uI;cw['isLight']&&cw['layers']['test'](cp['layers'])&&(aB[uK(0x5eb)](cw),cw['castShadow']&&aB['pushShadow'](cw));}),aB['setupLights']();let cv=new Set();return cm['traverse'](function(cw){const uL=uI;if(!(cw['isMesh']||cw['isPoints']||cw['isLine']||cw['isSprite']))return;let cx=cw['material'];if(cx){if(Array['isArray'](cx))for(let cy=0x0;cy<cx[uL(0x3ac)];cy++){let cz=cx[cy];bS(cz,cq,cw),cv[uL(0x232)](cz);}else bS(cx,cq,cw),cv['add'](cx);}}),aB=aD['pop'](),cv;},this['compileAsync']=function(cm,cp,cq=null){const uM=um;let cv=this[uM(0x2bf)](cm,cp,cq);return new Promise(cw=>{function cx(){if(cv['forEach'](function(cy){const uN=a1;bk[uN(0x61a)](cy)['currentProgram']['isReady']()&&cv['delete'](cy);}),cv['size']===0x0){cw(cm);return;}setTimeout(cx,0xa);}bf['get']('KHR_parallel_shader_compile')===null?setTimeout(cx,0xa):cx();});};let bT=null;function bU(cm){bT&&bT(cm);}function bV(){bX['stop']();}function bW(){bX['start']();}let bX=new oc();bX['setAnimationLoop'](bU),typeof self<'u'&&bX['setContext'](self),this['setAnimationLoop']=function(cm){bT=cm,bL['setAnimationLoop'](cm),cm===null?bX['stop']():bX['start']();},bL['addEventListener']('sessionstart',bV),bL['addEventListener']('sessionend',bW),this[um(0x2ae)]=function(cm,cp){const uO=um;if(cp!==void 0x0&&cp[uO(0x371)]!==!0x0){B(uO(0x44c));return;}if(aG===!0x0)return;aH!==null&&aH['renderStart'](cm,cp);let cq=bL[uO(0x2b4)]===!0x0&&bL['isPresenting']===!0x0,cv=aE!==null&&(aK===null||cq)&&aE['begin'](aF,aK);if(cm['matrixWorldAutoUpdate']===!0x0&&cm['updateMatrixWorld'](),cp['parent']===null&&cp['matrixWorldAutoUpdate']===!0x0&&cp['updateMatrixWorld'](),bL[uO(0x2b4)]===!0x0&&bL[uO(0x2cd)]===!0x0&&(aE===null||aE[uO(0x1a8)]()===!0x1)&&(bL['cameraAutoUpdate']===!0x0&&bL['updateCamera'](cp),cp=bL[uO(0x5d7)]()),cm[uO(0x4be)]===!0x0&&cm['onBeforeRender'](aF,cm,cp,aK),aB=bA['get'](cm,aD[uO(0x3ac)]),aB['init'](cp),aB[uO(0x127)][uO(0x41d)]=bm['getTextureUnits'](),aD['push'](aB),b3['multiplyMatrices'](cp[uO(0x60d)],cp['matrixWorldInverse']),b0['setFromProjectionMatrix'](b3,lt,cp[uO(0x457)]),b2=this['localClippingEnabled'],b1=bB['init'](this['clippingPlanes'],b2),aA=bz[uO(0x61a)](cm,aC['length']),aA['init'](),aC[uO(0x5d4)](aA),bL[uO(0x2b4)]===!0x0&&bL['isPresenting']===!0x0){let cx=aF['xr']['getDepthSensingMesh']();cx!==null&&bY(cx,cp,-Infinity,aF['sortObjects']);}bY(cm,cp,0x0,aF['sortObjects']),aA['finish'](),aF['sortObjects']===!0x0&&aA['sort'](aV,aW),b7=bL[uO(0x2b4)]===!0x1||bL['isPresenting']===!0x1||bL['hasDepthSensing']()===!0x1,b7&&bD['addToRenderList'](aA,cm),this['info']['render'][uO(0x621)]++,b1===!0x0&&bB['beginShadows']();let cw=aB['state'][uO(0x5ee)];if(bC['render'](cw,cm,cp),b1===!0x0&&bB['endShadows'](),this['info'][uO(0x586)]===!0x0&&this[uO(0x1de)]['reset'](),(cv&&aE['hasRenderPass']())===!0x1){let cy=aA['opaque'],cz=aA['transmissive'];if(aB['setupLights'](),cp[uO(0x2f1)]){let cA=cp['cameras'];if(cz['length']>0x0)for(let cB=0x0,cC=cA['length'];cB<cC;cB++){let cD=cA[cB];c0(cy,cz,cm,cD);}b7&&bD['render'](cm);for(let cE=0x0,cF=cA['length'];cE<cF;cE++){let cG=cA[cE];bZ(aA,cm,cG,cG['viewport']);}}else cz['length']>0x0&&c0(cy,cz,cm,cp),b7&&bD['render'](cm),bZ(aA,cm,cp);}aK!==null&&aJ===0x0&&(bm['updateMultisampleRenderTarget'](aK),bm['updateRenderTargetMipmap'](aK)),cv&&aE[uO(0x130)](aF),cm['isScene']===!0x0&&cm[uO(0x1df)](aF,cm,cp),bI['resetDefaultState'](),aL=-0x1,aM=null,aD['pop'](),aD['length']>0x0?(aB=aD[aD['length']-0x1],bm['setTextureUnits'](aB[uO(0x127)]['textureUnits']),b1===!0x0&&bB[uO(0x317)](aF['clippingPlanes'],aB['state']['camera'])):aB=null,aC[uO(0x34d)](),aA=aC['length']>0x0?aC[aC['length']-0x1]:null,aH!==null&&aH[uO(0x44d)]();};function bY(cm,cp,cq,cv){const uP=um;if(cm['visible']===!0x1)return;if(cm['layers']['test'](cp['layers'])){if(cm['isGroup'])cq=cm['renderOrder'];else{if(cm['isLOD'])cm['autoUpdate']===!0x0&&cm[uP(0x26f)](cp);else{if(cm['isLightProbeGrid'])aB['pushLightProbeGrid'](cm);else{if(cm['isLight'])aB['pushLight'](cm),cm['castShadow']&&aB['pushShadow'](cm);else{if(cm['isSprite']){if(!cm['frustumCulled']||b0[uP(0x5c5)](cm)){cv&&b5[uP(0x42e)](cm[uP(0x3cd)])['applyMatrix4'](b3);let cx=bw['update'](cm),cy=cm['material'];cy['visible']&&aA[uP(0x5d4)](cm,cx,cy,cq,b5['z'],null);}}else{if((cm['isMesh']||cm['isLine']||cm['isPoints'])&&(!cm['frustumCulled']||b0['intersectsObject'](cm))){let cz=bw['update'](cm),cA=cm[uP(0x22b)];if(cv&&(cm['boundingSphere']===void 0x0?(cz['boundingSphere']===null&&cz[uP(0x16b)](),b5[uP(0x647)](cz['boundingSphere']['center'])):(cm['boundingSphere']===null&&cm[uP(0x16b)](),b5['copy'](cm['boundingSphere']['center'])),b5['applyMatrix4'](cm['matrixWorld'])['applyMatrix4'](b3)),Array['isArray'](cA)){let cB=cz['groups'];for(let cC=0x0,cD=cB['length'];cC<cD;cC++){let cE=cB[cC],cF=cA[cE['materialIndex']];cF&&cF['visible']&&aA[uP(0x5d4)](cm,cz,cF,cq,b5['z'],cE);}}else cA[uP(0x181)]&&aA[uP(0x5d4)](cm,cz,cA,cq,b5['z'],null);}}}}}}}let cw=cm['children'];for(let cG=0x0,cH=cw['length'];cG<cH;cG++)bY(cw[cG],cp,cq,cv);}function bZ(cm,cp,cq,cv){const uQ=um;let {opaque:cw,transmissive:cx,transparent:cy}=cm;aB['setupLightsView'](cq),b1===!0x0&&bB[uQ(0x317)](aF['clippingPlanes'],cq),cv&&bh['viewport'](aN[uQ(0x647)](cv)),cw[uQ(0x3ac)]>0x0&&c1(cw,cp,cq),cx[uQ(0x3ac)]>0x0&&c1(cx,cp,cq),cy['length']>0x0&&c1(cy,cp,cq),bh['buffers'][uQ(0x47a)]['setTest'](!0x0),bh[uQ(0x18b)]['depth']['setMask'](!0x0),bh['buffers']['color'][uQ(0x316)](!0x0),bh['setPolygonOffset'](!0x1);}function c0(cm,cp,cq,cv){const uR=um;if((cq[uR(0x4be)]===!0x0?cq['overrideMaterial']:null)!==null)return;if(aB['state'][uR(0x258)][cv['id']]===void 0x0){let cD=bf[uR(0x550)]('EXT_color_buffer_half_float')||bf['has']('EXT_color_buffer_float');aB['state'][uR(0x258)][cv['id']]=new fn(0x1,0x1,{'generateMipmaps':!0x0,'type':cD?te:T,'minFilter':w,'samples':Math['max'](0x4,bg[uR(0x1fc)]),'stencilBuffer':a8,'resolveDepthBuffer':!0x1,'resolveStencilBuffer':!0x1,'colorSpace':K['workingColorSpace']});}let cw=aB['state']['transmissionRenderTarget'][cv['id']],cx=cv['viewport']||aN;cw['setSize'](cx['z']*aF['transmissionResolutionScale'],cx['w']*aF['transmissionResolutionScale']);let cy=aF[uR(0x304)](),cz=aF['getActiveCubeFace'](),cA=aF['getActiveMipmapLevel']();aF['setRenderTarget'](cw),aF['getClearColor'](aQ),aR=aF['getClearAlpha'](),aR<0x1&&aF['setClearColor'](0xffffff,0.5),aF[uR(0x54f)](),b7&&bD[uR(0x2ae)](cq);let cB=aF[uR(0x185)];aF[uR(0x185)]=0x0;let cC=cv['viewport'];if(cv['viewport']!==void 0x0&&(cv[uR(0x4ef)]=void 0x0),aB['setupLightsView'](cv),b1===!0x0&&bB['setGlobalState'](aF['clippingPlanes'],cv),c1(cm,cq,cv),bm['updateMultisampleRenderTarget'](cw),bm['updateRenderTargetMipmap'](cw),bf['has'](uR(0x34f))===!0x1){let cE=!0x1;for(let cF=0x0,cG=cp['length'];cF<cG;cF++){let {object:cH,geometry:cI,material:cJ,group:cK}=cp[cF];if(cJ['side']===0x2&&cH[uR(0x1aa)]['test'](cv['layers'])){let cL=cJ['side'];cJ[uR(0x53d)]=0x1,cJ['needsUpdate']=!0x0,c2(cH,cq,cv,cI,cJ,cK),cJ['side']=cL,cJ['needsUpdate']=!0x0,cE=!0x0;}}cE===!0x0&&(bm[uR(0x548)](cw),bm[uR(0x3c5)](cw));}aF['setRenderTarget'](cy,cz,cA),aF['setClearColor'](aQ,aR),cC!==void 0x0&&(cv['viewport']=cC),aF['toneMapping']=cB;}function c1(cm,cp,cq){const uS=um;let cv=cp[uS(0x4be)]===!0x0?cp['overrideMaterial']:null;for(let cw=0x0,cx=cm['length'];cw<cx;cw++){let cy=cm[cw],{object:cz,geometry:cA,group:cB}=cy,cC=cy[uS(0x22b)];cC[uS(0x5f6)]===!0x0&&cv!==null&&(cC=cv),cz[uS(0x1aa)]['test'](cq['layers'])&&c2(cz,cp,cq,cA,cC,cB);}}function c2(cm,cp,cq,cv,cw,cx){const uT=um;cm['onBeforeRender'](aF,cp,cq,cv,cw,cx),cm['modelViewMatrix']['multiplyMatrices'](cq['matrixWorldInverse'],cm['matrixWorld']),cm['normalMatrix']['getNormalMatrix'](cm['modelViewMatrix']),cw['onBeforeRender'](aF,cp,cq,cv,cm,cx),cw['transparent']===!0x0&&cw['side']===0x2&&cw['forceSinglePass']===!0x1?(cw['side']=0x1,cw[uT(0x55b)]=!0x0,aF['renderBufferDirect'](cq,cp,cv,cw,cm,cx),cw[uT(0x53d)]=0x0,cw['needsUpdate']=!0x0,aF['renderBufferDirect'](cq,cp,cv,cw,cm,cx),cw['side']=0x2):aF['renderBufferDirect'](cq,cp,cv,cw,cm,cx),cm['onAfterRender'](aF,cp,cq,cv,cw,cx);}function c3(cm,cp,cq){const uU=um;cp['isScene']!==!0x0&&(cp=b6);let cv=bk['get'](cm),cw=aB['state']['lights'],cx=aB['state']['shadowsArray'],cy=cw[uU(0x127)]['version'],cz=bx[uU(0x20d)](cm,cw['state'],cx,cp,cq,aB['state']['lightProbeGridArray']),cA=bx['getProgramCacheKey'](cz),cB=cv['programs'];cv['environment']=cm['isMeshStandardMaterial']||cm[uU(0x50e)]||cm['isMeshPhongMaterial']?cp['environment']:null,cv['fog']=cp['fog'];let cC=cm['isMeshStandardMaterial']||cm['isMeshLambertMaterial']&&!cm['envMap']||cm['isMeshPhongMaterial']&&!cm['envMap'];cv[uU(0x393)]=bp['get'](cm['envMap']||cv['environment'],cC),cv[uU(0x52b)]=cv['environment']!==null&&cm['envMap']===null?cp['environmentRotation']:cm['envMapRotation'],cB===void 0x0&&(cm['addEventListener'](uU(0x565),bP),cB=new Map(),cv['programs']=cB);let cD=cB['get'](cA);if(cD!==void 0x0){if(cv['currentProgram']===cD&&cv[uU(0x1f1)]===cy)return c5(cm,cz),cD;}else cz[uU(0x4d5)]=bx['getUniforms'](cm),aH!==null&&cm['isNodeMaterial']&&aH['build'](cm,cq,cz),cm['onBeforeCompile'](cz,aF),cD=bx[uU(0x5af)](cz,cA),cB['set'](cA,cD),cv['uniforms']=cz[uU(0x4d5)];let cE=cv['uniforms'];return(!cm['isShaderMaterial']&&!cm[uU(0x17a)]||cm['clipping']===!0x0)&&(cE[uU(0x58d)]=bB['uniform']),c5(cm,cz),cv['needsLights']=c9(cm),cv['lightsStateVersion']=cy,cv['needsLights']&&(cE['ambientLightColor'][uU(0x4ad)]=cw['state']['ambient'],cE[uU(0x2eb)]['value']=cw['state']['probe'],cE['directionalLights']['value']=cw['state']['directional'],cE['directionalLightShadows'][uU(0x4ad)]=cw['state']['directionalShadow'],cE['spotLights']['value']=cw['state']['spot'],cE['spotLightShadows']['value']=cw['state']['spotShadow'],cE['rectAreaLights']['value']=cw['state']['rectArea'],cE[uU(0x5fc)]['value']=cw['state']['rectAreaLTC1'],cE['ltc_2']['value']=cw['state']['rectAreaLTC2'],cE['pointLights']['value']=cw['state']['point'],cE[uU(0x5ea)]['value']=cw[uU(0x127)]['pointShadow'],cE[uU(0x2ca)][uU(0x4ad)]=cw[uU(0x127)]['hemi'],cE['directionalShadowMatrix']['value']=cw['state']['directionalShadowMatrix'],cE['spotLightMatrix'][uU(0x4ad)]=cw['state']['spotLightMatrix'],cE['spotLightMap']['value']=cw['state']['spotLightMap'],cE['pointShadowMatrix']['value']=cw['state']['pointShadowMatrix']),cv[uU(0x2dc)]=aB[uU(0x127)]['lightProbeGridArray']['length']>0x0,cv['currentProgram']=cD,cv['uniformsList']=null,cD;}function c4(cm){const uV=um;if(cm['uniformsList']===null){let cp=cm[uV(0x465)]['getUniforms']();cm['uniformsList']=$l['seqWithValue'](cp['seq'],cm[uV(0x4d5)]);}return cm['uniformsList'];}function c5(cm,cp){const uW=um;let cq=bk[uW(0x61a)](cm);cq['outputColorSpace']=cp['outputColorSpace'],cq['batching']=cp[uW(0x25a)],cq['batchingColor']=cp['batchingColor'],cq['instancing']=cp['instancing'],cq['instancingColor']=cp['instancingColor'],cq['instancingMorph']=cp['instancingMorph'],cq['skinning']=cp['skinning'],cq['morphTargets']=cp['morphTargets'],cq['morphNormals']=cp[uW(0x2a6)],cq['morphColors']=cp['morphColors'],cq[uW(0x287)]=cp['morphTargetsCount'],cq['numClippingPlanes']=cp['numClippingPlanes'],cq['numIntersection']=cp['numClipIntersection'],cq['vertexAlphas']=cp['vertexAlphas'],cq['vertexTangents']=cp[uW(0x4d3)],cq['toneMapping']=cp[uW(0x185)];}function c6(cm,cp){const uX=um;if(cm['length']===0x0)return null;if(cm['length']===0x1)return cm[0x0]['texture']===null?null:cm[0x0];az[uX(0x42e)](cp['matrixWorld']);for(let cq=0x0,cv=cm['length'];cq<cv;cq++){let cw=cm[cq];if(cw['texture']!==null&&cw['boundingBox'][uX(0x502)](az))return cw;}return null;}function c7(cm,cp,cq,cv,cw){const uY=um;cp['isScene']!==!0x0&&(cp=b6),bm['resetTextureUnits']();let cx=cp['fog'],cy=cv['isMeshStandardMaterial']||cv['isMeshLambertMaterial']||cv['isMeshPhongMaterial']?cp['environment']:null,cz=aK===null?aF['outputColorSpace']:aK['isXRRenderTarget']===!0x0?aK['texture']['colorSpace']:K['workingColorSpace'],cA=cv['isMeshStandardMaterial']||cv['isMeshLambertMaterial']&&!cv['envMap']||cv['isMeshPhongMaterial']&&!cv['envMap'],cB=bp[uY(0x61a)](cv['envMap']||cy,cA),cC=cv['vertexColors']===!0x0&&!!cq[uY(0x1b6)]['color']&&cq[uY(0x1b6)]['color']['itemSize']===0x4,cD=!!cq['attributes'][uY(0x427)]&&(!!cv[uY(0x360)]||cv[uY(0x48d)]>0x0),cE=!!cq[uY(0x4da)]['position'],cF=!!cq['morphAttributes']['normal'],cG=!!cq['morphAttributes']['color'],cH=0x0;cv['toneMapped']&&(aK===null||aK['isXRRenderTarget']===!0x0)&&(cH=aF['toneMapping']);let cI=cq[uY(0x4da)]['position']||cq['morphAttributes']['normal']||cq['morphAttributes'][uY(0x180)],cJ=cI===void 0x0?0x0:cI['length'],cK=bk['get'](cv),cL=aB['state']['lights'];if(b1===!0x0&&(b2===!0x0||cm!==aM)){let cU=cm===aM&&cv['id']===aL;bB['setState'](cv,cm,cU);}let cM=!0x1;cv[uY(0x584)]===cK['__version']?cK[uY(0x4a6)]&&cK['lightsStateVersion']!==cL['state']['version']?cM=!0x0:cK['outputColorSpace']===cz?cw['isBatchedMesh']&&cK[uY(0x25a)]===!0x1||!cw[uY(0x194)]&&cK['batching']===!0x0||cw['isBatchedMesh']&&cK['batchingColor']===!0x0&&cw['colorTexture']===null||cw['isBatchedMesh']&&cK['batchingColor']===!0x1&&cw['colorTexture']!==null||cw['isInstancedMesh']&&cK['instancing']===!0x1||!cw['isInstancedMesh']&&cK['instancing']===!0x0||cw['isSkinnedMesh']&&cK['skinning']===!0x1||!cw[uY(0x4fc)]&&cK['skinning']===!0x0||cw[uY(0x624)]&&cK['instancingColor']===!0x0&&cw['instanceColor']===null||cw['isInstancedMesh']&&cK['instancingColor']===!0x1&&cw['instanceColor']!==null||cw[uY(0x624)]&&cK[uY(0x4fb)]===!0x0&&cw['morphTexture']===null||cw['isInstancedMesh']&&cK[uY(0x4fb)]===!0x1&&cw['morphTexture']!==null?cM=!0x0:cK['envMap']===cB?cv[uY(0x5b2)]===!0x0&&cK['fog']!==cx||cK['numClippingPlanes']!==void 0x0&&(cK[uY(0x5a0)]!==bB[uY(0x52d)]||cK['numIntersection']!==bB['numIntersection'])?cM=!0x0:cK['vertexAlphas']===cC&&cK['vertexTangents']===cD&&cK['morphTargets']===cE&&cK['morphNormals']===cF&&cK['morphColors']===cG&&cK[uY(0x185)]===cH&&cK['morphTargetsCount']===cJ?!!cK['lightProbeGrid']!=aB['state']['lightProbeGridArray']['length']>0x0&&(cM=!0x0):cM=!0x0:cM=!0x0:cM=!0x0:(cM=!0x0,cK['__version']=cv['version']);let cN=cK['currentProgram'];cM===!0x0&&(cN=c3(cv,cp,cw),aH&&cv['isNodeMaterial']&&aH['onUpdateProgram'](cv,cN,cK));let cO=!0x1,cP=!0x1,cQ=!0x1,cR=cN['getUniforms'](),cS=cK[uY(0x4d5)];if(bh['useProgram'](cN['program'])&&(cO=!0x0,cP=!0x0,cQ=!0x0),cv['id']!==aL&&(aL=cv['id'],cP=!0x0),cK['needsLights']){let cV=c6(aB[uY(0x127)]['lightProbeGridArray'],cw);cK['lightProbeGrid']!==cV&&(cK['lightProbeGrid']=cV,cP=!0x0);}if(cO||aM!==cm){bh['buffers']['depth']['getReversed']()&&cm[uY(0x457)]!==!0x0&&(cm['_reversedDepth']=!0x0,cm['updateProjectionMatrix']()),cR['setValue'](b9,'projectionMatrix',cm['projectionMatrix']),cR['setValue'](b9,'viewMatrix',cm['matrixWorldInverse']);let cW=cR[uY(0x2db)]['cameraPosition'];cW!==void 0x0&&cW[uY(0x3d8)](b9,b4['setFromMatrixPosition'](cm[uY(0x3cd)])),bg['logarithmicDepthBuffer']&&cR['setValue'](b9,'logDepthBufFC',0x2/(Math['log'](cm['far']+0x1)/Math['LN2'])),(cv[uY(0x50c)]||cv['isMeshToonMaterial']||cv['isMeshLambertMaterial']||cv['isMeshBasicMaterial']||cv['isMeshStandardMaterial']||cv['isShaderMaterial'])&&cR[uY(0x3d8)](b9,'isOrthographic',cm[uY(0x552)]===!0x0),aM!==cm&&(aM=cm,cP=!0x0,cQ=!0x0);}if(cK['needsLights']&&(cL[uY(0x127)][uY(0x353)]['length']>0x0&&cR['setValue'](b9,'directionalShadowMap',cL['state']['directionalShadowMap'],bm),cL['state']['spotShadowMap']['length']>0x0&&cR['setValue'](b9,'spotShadowMap',cL['state']['spotShadowMap'],bm),cL['state']['pointShadowMap']['length']>0x0&&cR[uY(0x3d8)](b9,'pointShadowMap',cL[uY(0x127)]['pointShadowMap'],bm)),cw[uY(0x4fc)]){cR['setOptional'](b9,cw,'bindMatrix'),cR['setOptional'](b9,cw,'bindMatrixInverse');let cX=cw[uY(0x280)];cX&&(cX['boneTexture']===null&&cX['computeBoneTexture'](),cR[uY(0x3d8)](b9,'boneTexture',cX['boneTexture'],bm));}cw[uY(0x194)]&&(cR['setOptional'](b9,cw,'batchingTexture'),cR['setValue'](b9,'batchingTexture',cw[uY(0x3e4)],bm),cR['setOptional'](b9,cw,'batchingIdTexture'),cR[uY(0x3d8)](b9,'batchingIdTexture',cw[uY(0x1ae)],bm),cR['setOptional'](b9,cw,'batchingColorTexture'),cw['_colorsTexture']!==null&&cR['setValue'](b9,'batchingColorTexture',cw['_colorsTexture'],bm));let cT=cq[uY(0x4da)];if((cT['position']!==void 0x0||cT['normal']!==void 0x0||cT['color']!==void 0x0)&&bE['update'](cw,cq,cN),(cP||cK['receiveShadow']!==cw[uY(0x373)])&&(cK['receiveShadow']=cw['receiveShadow'],cR['setValue'](b9,uY(0x373),cw['receiveShadow'])),(cv['isMeshStandardMaterial']||cv['isMeshLambertMaterial']||cv['isMeshPhongMaterial'])&&cv['envMap']===null&&cp['environment']!==null&&(cS[uY(0x1a0)]['value']=cp['environmentIntensity']),cS['dfgLUT']!==void 0x0&&(cS['dfgLUT']['value']=bd()),cP){if(cR['setValue'](b9,'toneMappingExposure',aF['toneMappingExposure']),cK[uY(0x4a6)]&&c8(cS,cQ),cx&&cv[uY(0x5b2)]===!0x0&&by[uY(0x320)](cS,cx),by['refreshMaterialUniforms'](cS,cv,aU,aT,aB['state'][uY(0x258)][cm['id']]),cK['needsLights']&&cK[uY(0x2dc)]){let cY=cK['lightProbeGrid'];cS['probesSH']['value']=cY['texture'],cS['probesMin'][uY(0x4ad)][uY(0x647)](cY['boundingBox']['min']),cS['probesMax']['value']['copy'](cY['boundingBox']['max']),cS[uY(0x640)][uY(0x4ad)]['copy'](cY[uY(0x2e0)]);}$l['upload'](b9,c4(cK),cS,bm);}if(cv['isShaderMaterial']&&cv[uY(0x2fd)]===!0x0&&($l['upload'](b9,c4(cK),cS,bm),cv['uniformsNeedUpdate']=!0x1),cv[uY(0x5e9)]&&cR['setValue'](b9,'center',cw['center']),cR['setValue'](b9,'modelViewMatrix',cw[uY(0x5b0)]),cR[uY(0x3d8)](b9,'normalMatrix',cw['normalMatrix']),cR[uY(0x3d8)](b9,uY(0x1da),cw['matrixWorld']),cv['uniformsGroups']!==void 0x0){let cZ=cv['uniformsGroups'];for(let d0=0x0,d1=cZ['length'];d0<d1;d0++){let d2=cZ[d0];bJ[uY(0x26f)](d2,cN),bJ['bind'](d2,cN);}}return cN;}function c8(cm,cp){const uZ=um;cm['ambientLightColor']['needsUpdate']=cp,cm[uZ(0x2eb)]['needsUpdate']=cp,cm[uZ(0x40e)]['needsUpdate']=cp,cm[uZ(0x2e7)][uZ(0x55b)]=cp,cm['pointLights'][uZ(0x55b)]=cp,cm['pointLightShadows']['needsUpdate']=cp,cm['spotLights']['needsUpdate']=cp,cm['spotLightShadows']['needsUpdate']=cp,cm['rectAreaLights']['needsUpdate']=cp,cm['hemisphereLights']['needsUpdate']=cp;}function c9(cm){const v0=um;return cm['isMeshLambertMaterial']||cm['isMeshToonMaterial']||cm[v0(0x50c)]||cm['isMeshStandardMaterial']||cm['isShadowMaterial']||cm['isShaderMaterial']&&cm['lights']===!0x0;}this['getActiveCubeFace']=function(){return aI;},this['getActiveMipmapLevel']=function(){return aJ;},this['getRenderTarget']=function(){return aK;},this['setRenderTargetTextures']=function(cm,cp,cq){const v1=um;let cv=bk['get'](cm);cv[v1(0x2b1)]=cm['resolveDepthBuffer']===!0x1,cv['__autoAllocateDepthBuffer']===!0x1&&(cv['__useRenderToTexture']=!0x1),bk['get'](cm['texture'])['__webglTexture']=cp,bk['get'](cm[v1(0x4e2)])['__webglTexture']=cv['__autoAllocateDepthBuffer']?void 0x0:cq,cv['__hasExternalTextures']=!0x0;},this[um(0x5c2)]=function(cm,cp){const v2=um;let cq=bk['get'](cm);cq[v2(0x49f)]=cp,cq['__useDefaultFramebuffer']=cp===void 0x0;};let cb=b9['createFramebuffer']();this['setRenderTarget']=function(cm,cp=0x0,cq=0x0){const v3=um;aK=cm,aI=cp,aJ=cq;let cv=null,cw=!0x1,cx=!0x1;if(cm){let cy=bk[v3(0x61a)](cm);if(cy['__useDefaultFramebuffer']!==void 0x0){bh['bindFramebuffer'](b9['FRAMEBUFFER'],cy[v3(0x49f)]),aN['copy'](cm['viewport']),aO[v3(0x647)](cm['scissor']),aP=cm['scissorTest'],bh['viewport'](aN),bh[v3(0x51f)](aO),bh['setScissorTest'](aP),aL=-0x1;return;}else{if(cy['__webglFramebuffer']===void 0x0)bm['setupRenderTarget'](cm);else{if(cy['__hasExternalTextures'])bm['rebindTextures'](cm,bk['get'](cm[v3(0x1b5)])['__webglTexture'],bk['get'](cm['depthTexture'])['__webglTexture']);else{if(cm['depthBuffer']){let cB=cm['depthTexture'];if(cy['__boundDepthTexture']!==cB){if(cB!==null&&bk['has'](cB)&&(cm['width']!==cB['image']['width']||cm['height']!==cB['image']['height']))throw Error('WebGLRenderTarget:\x20Attached\x20DepthTexture\x20is\x20initialized\x20to\x20the\x20incorrect\x20size.');bm['setupDepthRenderbuffer'](cm);}}}}}let cz=cm[v3(0x1b5)];(cz['isData3DTexture']||cz['isDataArrayTexture']||cz['isCompressedArrayTexture'])&&(cx=!0x0);let cA=bk['get'](cm)[v3(0x49f)];cm['isWebGLCubeRenderTarget']?(cv=Array[v3(0x571)](cA[cp])?cA[cp][cq]:cA[cp],cw=!0x0):cv=cm['samples']>0x0&&bm[v3(0x30b)](cm)===!0x1?bk['get'](cm)[v3(0x577)]:Array['isArray'](cA)?cA[cq]:cA,aN['copy'](cm['viewport']),aO['copy'](cm['scissor']),aP=cm['scissorTest'];}else aN[v3(0x647)](aX)['multiplyScalar'](aU)['floor'](),aO['copy'](aY)['multiplyScalar'](aU)['floor'](),aP=aZ;if(cq!==0x0&&(cv=cb),bh[v3(0x5e3)](b9['FRAMEBUFFER'],cv)&&bh['drawBuffers'](cm,cv),bh['viewport'](aN),bh['scissor'](aO),bh['setScissorTest'](aP),cw){let cC=bk['get'](cm[v3(0x1b5)]);b9['framebufferTexture2D'](b9['FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_CUBE_MAP_POSITIVE_X']+cp,cC[v3(0x4fa)],cq);}else{if(cx){let cD=cp;for(let cE=0x0;cE<cm['textures']['length'];cE++){let cF=bk['get'](cm[v3(0x3da)][cE]);b9['framebufferTextureLayer'](b9['FRAMEBUFFER'],b9['COLOR_ATTACHMENT0']+cE,cF['__webglTexture'],cq,cD);}}else{if(cm!==null&&cq!==0x0){let cG=bk['get'](cm[v3(0x1b5)]);b9['framebufferTexture2D'](b9['FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_2D'],cG[v3(0x4fa)],cq);}}}aL=-0x1;},this['readRenderTargetPixels']=function(cm,cp,cq,cv,cw,cx,cy,cz=0x0){const v4=um;if(!(cm&&cm['isWebGLRenderTarget'])){B('WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20THREE.WebGLRenderTarget.');return;}let cA=bk['get'](cm)['__webglFramebuffer'];if(cm[v4(0x454)]&&cy!==void 0x0&&(cA=cA[cy]),cA){bh[v4(0x5e3)](b9['FRAMEBUFFER'],cA);try{let cB=cm[v4(0x3da)][cz],cC=cB[v4(0x2d9)],cD=cB['type'];if(cm['textures']['length']>0x1&&b9[v4(0x40f)](b9['COLOR_ATTACHMENT0']+cz),!bg[v4(0x3c4)](cC)){B(v4(0x38d));return;}if(!bg['textureTypeReadable'](cD)){B('WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20in\x20UnsignedByteType\x20or\x20implementation\x20defined\x20type.');return;}cp>=0x0&&cp<=cm['width']-cv&&cq>=0x0&&cq<=cm['height']-cw&&b9[v4(0x20c)](cp,cq,cv,cw,bH['convert'](cC),bH['convert'](cD),cx);}finally{let cE=aK===null?null:bk['get'](aK)['__webglFramebuffer'];bh['bindFramebuffer'](b9['FRAMEBUFFER'],cE);}}},this['readRenderTargetPixelsAsync']=(function(){var cm=a3(function*(cp,cq,cv,cw,cx,cy,cz,cA=0x0){const v5=a1;if(!(cp&&cp['isWebGLRenderTarget']))throw Error('THREE.WebGLRenderer.readRenderTargetPixels:\x20renderTarget\x20is\x20not\x20THREE.WebGLRenderTarget.');let cB=bk['get'](cp)['__webglFramebuffer'];if(cp[v5(0x454)]&&cz!==void 0x0&&(cB=cB[cz]),cB){if(cq>=0x0&&cq<=cp['width']-cw&&cv>=0x0&&cv<=cp['height']-cx){bh[v5(0x5e3)](b9['FRAMEBUFFER'],cB);let cC=cp['textures'][cA],cD=cC['format'],cE=cC['type'];if(cp['textures']['length']>0x1&&b9['readBuffer'](b9[v5(0x5e1)]+cA),!bg['textureFormatReadable'](cD))throw Error('THREE.WebGLRenderer.readRenderTargetPixelsAsync:\x20renderTarget\x20is\x20not\x20in\x20RGBA\x20or\x20implementation\x20defined\x20format.');if(!bg[v5(0x626)](cE))throw Error('THREE.WebGLRenderer.readRenderTargetPixelsAsync:\x20renderTarget\x20is\x20not\x20in\x20UnsignedByteType\x20or\x20implementation\x20defined\x20type.');let cF=b9['createBuffer']();b9['bindBuffer'](b9[v5(0x3ee)],cF),b9['bufferData'](b9['PIXEL_PACK_BUFFER'],cy[v5(0x1f4)],b9['STREAM_READ']),b9[v5(0x20c)](cq,cv,cw,cx,bH['convert'](cD),bH[v5(0x5e6)](cE),0x0);let cG=aK===null?null:bk['get'](aK)['__webglFramebuffer'];bh['bindFramebuffer'](b9['FRAMEBUFFER'],cG);let cH=b9['fenceSync'](b9['SYNC_GPU_COMMANDS_COMPLETE'],0x0);return b9['flush'](),yield yt(b9,cH,0x4),b9['bindBuffer'](b9['PIXEL_PACK_BUFFER'],cF),b9['getBufferSubData'](b9['PIXEL_PACK_BUFFER'],0x0,cy),b9['deleteBuffer'](cF),b9['deleteSync'](cH),cy;}else throw Error(v5(0x4ea));}});return function(cp,cq,cv,cw,cx,cy,cz){return cm['apply'](this,arguments);};}()),this['copyFramebufferToTexture']=function(cm,cp=null,cq=0x0){const v6=um;let cv=Math['pow'](0x2,-cq),cw=Math[v6(0x4a4)](cm[v6(0x262)]['width']*cv),cx=Math['floor'](cm['image']['height']*cv),cy=cp===null?0x0:cp['x'],cz=cp===null?0x0:cp['y'];bm['setTexture2D'](cm,0x0),b9['copyTexSubImage2D'](b9['TEXTURE_2D'],cq,0x0,0x0,cy,cz,cw,cx),bh['unbindTexture']();};let cf=b9['createFramebuffer'](),cg=b9[um(0x2c0)]();this[um(0x5ad)]=function(cm,cp,cq=null,cv=null,cw=0x0,cx=0x0){const v7=um;let cy,cz,cA,cB,cC,cD,cE,cF,cG,cH=cm['isCompressedTexture']?cm['mipmaps'][cx]:cm['image'];if(cq!==null)cy=cq['max']['x']-cq['min']['x'],cz=cq['max']['y']-cq['min']['y'],cA=cq['isBox3']?cq['max']['z']-cq['min']['z']:0x1,cB=cq['min']['x'],cC=cq['min']['y'],cD=cq['isBox3']?cq['min']['z']:0x0;else{let cS=Math['pow'](0x2,-cw);cy=Math[v7(0x4a4)](cH['width']*cS),cz=Math['floor'](cH['height']*cS),cA=cm['isDataArrayTexture']?cH['depth']:cm['isData3DTexture']?Math[v7(0x4a4)](cH[v7(0x47a)]*cS):0x1,cB=0x0,cC=0x0,cD=0x0;}cv===null?(cE=0x0,cF=0x0,cG=0x0):(cE=cv['x'],cF=cv['y'],cG=cv['z']);let cI=bH['convert'](cp[v7(0x2d9)]),cJ=bH['convert'](cp['type']),cK;cp['isData3DTexture']?(bm[v7(0x4a8)](cp,0x0),cK=b9[v7(0x207)]):cp[v7(0x223)]||cp['isCompressedArrayTexture']?(bm['setTexture2DArray'](cp,0x0),cK=b9['TEXTURE_2D_ARRAY']):(bm['setTexture2D'](cp,0x0),cK=b9['TEXTURE_2D']),bh['activeTexture'](b9['TEXTURE0']),bh[v7(0x145)](b9['UNPACK_FLIP_Y_WEBGL'],cp['flipY']),bh['pixelStorei'](b9['UNPACK_PREMULTIPLY_ALPHA_WEBGL'],cp['premultiplyAlpha']),bh[v7(0x145)](b9['UNPACK_ALIGNMENT'],cp['unpackAlignment']);let cL=bh['getParameter'](b9['UNPACK_ROW_LENGTH']),cM=bh['getParameter'](b9['UNPACK_IMAGE_HEIGHT']),cN=bh['getParameter'](b9['UNPACK_SKIP_PIXELS']),cO=bh[v7(0x2d0)](b9['UNPACK_SKIP_ROWS']),cP=bh['getParameter'](b9['UNPACK_SKIP_IMAGES']);bh[v7(0x145)](b9[v7(0x46a)],cH['width']),bh['pixelStorei'](b9['UNPACK_IMAGE_HEIGHT'],cH['height']),bh[v7(0x145)](b9[v7(0x5b3)],cB),bh['pixelStorei'](b9['UNPACK_SKIP_ROWS'],cC),bh['pixelStorei'](b9[v7(0x288)],cD);let cQ=cm['isDataArrayTexture']||cm['isData3DTexture'],cR=cp['isDataArrayTexture']||cp[v7(0x267)];if(cm['isDepthTexture']){let cT=bk['get'](cm),cU=bk['get'](cp),cV=bk['get'](cT['__renderTarget']),cW=bk[v7(0x61a)](cU['__renderTarget']);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],cV[v7(0x49f)]),bh[v7(0x5e3)](b9['DRAW_FRAMEBUFFER'],cW['__webglFramebuffer']);for(let cX=0x0;cX<cA;cX++)cQ&&(b9['framebufferTextureLayer'](b9['READ_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],bk['get'](cm)['__webglTexture'],cw,cD+cX),b9[v7(0x4fd)](b9['DRAW_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],bk[v7(0x61a)](cp)['__webglTexture'],cx,cG+cX)),b9['blitFramebuffer'](cB,cC,cy,cz,cE,cF,cy,cz,b9['DEPTH_BUFFER_BIT'],b9['NEAREST']);bh[v7(0x5e3)](b9[v7(0x604)],null),bh['bindFramebuffer'](b9['DRAW_FRAMEBUFFER'],null);}else{if(cw!==0x0||cm['isRenderTargetTexture']||bk['has'](cm)){let cY=bk['get'](cm),cZ=bk['get'](cp);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],cf),bh['bindFramebuffer'](b9['DRAW_FRAMEBUFFER'],cg);for(let d0=0x0;d0<cA;d0++)cQ?b9['framebufferTextureLayer'](b9['READ_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],cY[v7(0x4fa)],cw,cD+d0):b9['framebufferTexture2D'](b9['READ_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_2D'],cY['__webglTexture'],cw),cR?b9[v7(0x4fd)](b9['DRAW_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],cZ['__webglTexture'],cx,cG+d0):b9['framebufferTexture2D'](b9['DRAW_FRAMEBUFFER'],b9['COLOR_ATTACHMENT0'],b9['TEXTURE_2D'],cZ['__webglTexture'],cx),cw===0x0?cR?b9['copyTexSubImage3D'](cK,cx,cE,cF,cG+d0,cB,cC,cy,cz):b9[v7(0x47e)](cK,cx,cE,cF,cB,cC,cy,cz):b9['blitFramebuffer'](cB,cC,cy,cz,cE,cF,cy,cz,b9['COLOR_BUFFER_BIT'],b9['NEAREST']);bh['bindFramebuffer'](b9['READ_FRAMEBUFFER'],null),bh['bindFramebuffer'](b9[v7(0x292)],null);}else cR?cm['isDataTexture']||cm[v7(0x267)]?b9['texSubImage3D'](cK,cx,cE,cF,cG,cy,cz,cA,cI,cJ,cH['data']):cp['isCompressedArrayTexture']?b9['compressedTexSubImage3D'](cK,cx,cE,cF,cG,cy,cz,cA,cI,cH['data']):b9['texSubImage3D'](cK,cx,cE,cF,cG,cy,cz,cA,cI,cJ,cH):cm[v7(0x41e)]?b9['texSubImage2D'](b9['TEXTURE_2D'],cx,cE,cF,cy,cz,cI,cJ,cH['data']):cm['isCompressedTexture']?b9['compressedTexSubImage2D'](b9['TEXTURE_2D'],cx,cE,cF,cH[v7(0x24d)],cH[v7(0x260)],cI,cH['data']):b9['texSubImage2D'](b9['TEXTURE_2D'],cx,cE,cF,cy,cz,cI,cJ,cH);}bh['pixelStorei'](b9['UNPACK_ROW_LENGTH'],cL),bh['pixelStorei'](b9['UNPACK_IMAGE_HEIGHT'],cM),bh[v7(0x145)](b9['UNPACK_SKIP_PIXELS'],cN),bh['pixelStorei'](b9['UNPACK_SKIP_ROWS'],cO),bh['pixelStorei'](b9[v7(0x288)],cP),cx===0x0&&cp['generateMipmaps']&&b9['generateMipmap'](cK),bh['unbindTexture']();},this['initRenderTarget']=function(cm){const v8=um;bk[v8(0x61a)](cm)['__webglFramebuffer']===void 0x0&&bm['setupRenderTarget'](cm);},this['initTexture']=function(cm){const v9=um;cm['isCubeTexture']?bm[v9(0x245)](cm,0x0):cm['isData3DTexture']?bm[v9(0x4a8)](cm,0x0):cm['isDataArrayTexture']||cm['isCompressedArrayTexture']?bm['setTexture2DArray'](cm,0x0):bm['setTexture2D'](cm,0x0),bh['unbindTexture']();},this[um(0x4a1)]=function(){aI=0x0,aJ=0x0,aK=null,bh['reset'](),bI['reset']();},typeof __THREE_DEVTOOLS__<'u'&&__THREE_DEVTOOLS__['dispatchEvent'](new CustomEvent('observe',{'detail':this}));}get['coordinateSystem'](){return lt;}get['outputColorSpace'](){return this['_outputColorSpace'];}set['outputColorSpace'](a4){this['_outputColorSpace']=a4;let a5=this['getContext']();a5['drawingBufferColorSpace']=K['_getDrawingBufferColorSpace'](a4),a5['unpackColorSpace']=K['_getUnpackColorSpace']();}};export{J as $,Hi as A,fo as At,ua as B,W as Bt,ns as C,g as Ct,cs as D,Ni as Dt,Hn as E,so as Et,Xe as F,os as Ft,it as G,S as H,Go as Ht,qe as I,Ls as It,Zo as J,$o as K,Je as L,ur as Lt,Gr as M,Ss as Mt,qr as N,m as Nt,Ms as O,Oi as Ot,No as P,un as Pt,G as Q,aa as R,Ar as Rt,wn as S,ks as St,tc as T,Xn as Tt,w as U,la as V,q as Vt,C as W,Yr as X,p as Y,Kt as Z,Ea as _,da as _t,nc as a,Co as at,as as b,Uo as bt,Sa as c,x as ct,Ca as d,Vn as dt,gi as et,_ as f,Ts as ft,rc as g,ga as gt,Ta as h,ws as ht,$s as i,wo as it,jr as j,ec as jt,Pi as k,Ir as kt,kr as l,b as lt,K as m,Ki as mt,Os as n,Eo as nt,ki as o,v as ot,Y as p,bs as pt,As as q,Ko as r,To as rt,dr as s,y as st,xd as t,ii as tt,Wr as u,Vo as ut,wa as v,Z as vt,X as w,rt as wt,Ds as x,ri as xt,Ai as y,qt as yt,Zi as z,U as zt};