index.js 197 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602
  1. !function () {
  2. function e(e) {
  3. return e && e.__esModule ? e.default : e
  4. }
  5. function t(e, t, r) {
  6. Object.defineProperty(e, t, {get: r, enumerable: !0})
  7. }
  8. var r, n, o = !1;
  9. function a() {
  10. return o || (o = !0, n = e => {
  11. var t = ["attribute vec4 vertexPos;", "attribute vec4 texturePos;", "varying vec2 textureCoord;", "void main()", "{", "gl_Position = vertexPos;", "textureCoord = texturePos.xy;", "}"].join("\n"),
  12. r = ["precision highp float;", "varying highp vec2 textureCoord;", "uniform sampler2D ySampler;", "uniform sampler2D uSampler;", "uniform sampler2D vSampler;", "const mat4 YUV2RGB = mat4", "(", "1.1643828125, 0, 1.59602734375, -.87078515625,", "1.1643828125, -.39176171875, -.81296875, .52959375,", "1.1643828125, 2.017234375, 0, -1.081390625,", "0, 0, 0, 1", ");", "void main(void) {", "highp float y = texture2D(ySampler, textureCoord).r;", "highp float u = texture2D(uSampler, textureCoord).r;", "highp float v = texture2D(vSampler, textureCoord).r;", "gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;", "}"].join("\n"),
  13. n = e.createShader(e.VERTEX_SHADER);
  14. e.shaderSource(n, t), e.compileShader(n), e.getShaderParameter(n, e.COMPILE_STATUS) || console.log("Vertex shader failed to compile: " + e.getShaderInfoLog(n));
  15. var o = e.createShader(e.FRAGMENT_SHADER);
  16. e.shaderSource(o, r), e.compileShader(o), e.getShaderParameter(o, e.COMPILE_STATUS) || console.log("Fragment shader failed to compile: " + e.getShaderInfoLog(o));
  17. var a = e.createProgram();
  18. e.attachShader(a, n), e.attachShader(a, o), e.linkProgram(a), e.getProgramParameter(a, e.LINK_STATUS) || console.log("Program failed to compile: " + e.getProgramInfoLog(a)), e.useProgram(a);
  19. var i = e.createBuffer();
  20. e.bindBuffer(e.ARRAY_BUFFER, i), e.bufferData(e.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), e.STATIC_DRAW);
  21. var s = e.getAttribLocation(a, "vertexPos");
  22. e.enableVertexAttribArray(s), e.vertexAttribPointer(s, 2, e.FLOAT, !1, 0, 0);
  23. var u = e.createBuffer();
  24. e.bindBuffer(e.ARRAY_BUFFER, u), e.bufferData(e.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), e.STATIC_DRAW);
  25. var c = e.getAttribLocation(a, "texturePos");
  26. function l(t, r) {
  27. var n = e.createTexture();
  28. return e.bindTexture(e.TEXTURE_2D, n), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE), e.bindTexture(e.TEXTURE_2D, null), e.uniform1i(e.getUniformLocation(a, t), r), n
  29. }
  30. e.enableVertexAttribArray(c), e.vertexAttribPointer(c, 2, e.FLOAT, !1, 0, 0);
  31. var d = l("ySampler", 0), f = l("uSampler", 1), p = l("vSampler", 2);
  32. return function (t, r, n, o, a) {
  33. e.viewport(0, 0, t, r), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, d), e.texImage2D(e.TEXTURE_2D, 0, e.LUMINANCE, t, r, 0, e.LUMINANCE, e.UNSIGNED_BYTE, n), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, f), e.texImage2D(e.TEXTURE_2D, 0, e.LUMINANCE, t / 2, r / 2, 0, e.LUMINANCE, e.UNSIGNED_BYTE, o), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, p), e.texImage2D(e.TEXTURE_2D, 0, e.LUMINANCE, t / 2, r / 2, 0, e.LUMINANCE, e.UNSIGNED_BYTE, a), e.drawArrays(e.TRIANGLE_STRIP, 0, 4)
  34. }
  35. }, t(r = {}, "default", (function () {
  36. return n
  37. }))), r
  38. }
  39. var i, s, u = !1;
  40. function c() {
  41. i = {}, a(), s = e => {
  42. const t = document.createElement("canvas");
  43. t.style.position = "absolute", t.style.top = 0, t.style.left = 0, e.$container.appendChild(t), e.$canvasElement = t, e.$container.style.overflow = "hidden", "absolute" !== e.$container.style.position && (e.$container.style.position = "relative");
  44. if (!e._supportOffscreen()) {
  45. const t = (() => {
  46. const t = e.$canvasElement;
  47. let r = null;
  48. const n = ["webgl", "experimental-webgl", "moz-webgl", "webkit-3d"];
  49. let o = 0;
  50. for (; !r && o < n.length;) {
  51. const a = n[o];
  52. try {
  53. let n = {preserveDrawingBuffer: !0};
  54. e._opt.contextOptions && (n = Object.assign(n, e._opt.contextOptions)), r = t.getContext(a, n)
  55. } catch (e) {
  56. r = null
  57. }
  58. r && "function" == typeof r.getParameter || (r = null), ++o
  59. }
  60. return r
  61. })();
  62. e._contextGLRender = a().default(t), e._contextGL = t
  63. }
  64. e._destroyContextGL = () => {
  65. e._contextGL && (e._contextGL = null), e._contextGLRender && (e._contextGLRender = null), e._bitmaprenderer && (e._bitmaprenderer = null)
  66. }
  67. }, t(i, "default", (function () {
  68. return s
  69. }))
  70. }
  71. function l() {
  72. return u || (u = !0, c()), i
  73. }
  74. var d, f, p, h, m, A, g = !1;
  75. function v() {
  76. return g || (g = !0, f = {
  77. videoBuffer: .5,
  78. vod: !1,
  79. isResize: !0,
  80. isFullSize: !1,
  81. debug: !1,
  82. timeout: 30,
  83. supportDblclickFullscreen: !1,
  84. showBandwidth: !1,
  85. keepScreenOn: !1,
  86. isNotMute: !1,
  87. hasAudio: !0,
  88. operateBtns: {fullscreen: !1, screenshot: !1, play: !1, audio: !1},
  89. loadingText: "",
  90. background: "",
  91. decoder: "index.js",
  92. rotate: 0,
  93. forceNoOffscreen: !1
  94. }, t(d = {}, "DEFAULT_OPTIONS", (function () {
  95. return f
  96. })), p = {
  97. init: "init",
  98. initSize: "initSize",
  99. render: "render",
  100. playAudio: "playAudio",
  101. print: "print",
  102. printErr: "printErr",
  103. initAudioPlanar: "initAudioPlanar",
  104. kBps: "kBps"
  105. }, t(d, "CMD_TYPE", (function () {
  106. return p
  107. })), h = {
  108. close: "close",
  109. play: "play",
  110. setVideoBuffer: "setVideoBuffer",
  111. init: "init"
  112. }, t(d, "POST_MESSAGE", (function () {
  113. return h
  114. })), m = {
  115. fullscreen: "fullscreen",
  116. play: "play",
  117. pause: "pause",
  118. mute: "mute",
  119. load: "load",
  120. videoInfo: "videoInfo",
  121. timeUpdate: "timeUpdate",
  122. audioInfo: "audioInfo",
  123. log: "log",
  124. error: "error",
  125. kBps: "kBps",
  126. timeout: "timeout",
  127. stats: "stats",
  128. performance: "performance",
  129. record: "record",
  130. buffer: "buffer",
  131. videoFrame: "videoFrame",
  132. start: "start",
  133. metadata: "metadata"
  134. }, t(d, "EVEMTS", (function () {
  135. return m
  136. })), A = {empty: "empty", buffering: "buffering", full: "full"}, t(d, "BUFFER_STATUS", (function () {
  137. return A
  138. }))), d
  139. }
  140. var E, y = !1;
  141. function w(e) {
  142. e.resume();
  143. const t = e.createBufferSource();
  144. t.buffer = e.createBuffer(1, 1, 22050), t.connect(e.destination), t.noteOn ? t.noteOn(0) : t.start(0)
  145. }
  146. function _(e, t) {
  147. e && (e.style.display = t ? "block" : "none")
  148. }
  149. function b(e = "") {
  150. const t = e.split(","), r = atob(t[1]), n = t[0].replace("data:", "").replace(";base64", "");
  151. let o = r.length, a = new Uint8Array(o);
  152. for (; o--;) a[o] = r.charCodeAt(o);
  153. return new File([a], "file", {type: n})
  154. }
  155. function k(e, t) {
  156. const r = document.createElement("a");
  157. r.download = t, r.href = URL.createObjectURL(e), r.click(), URL.revokeObjectURL(e)
  158. }
  159. function T(e) {
  160. if (null == e || "" === e) return "0 KB/S";
  161. let t = parseFloat(e);
  162. return t = t.toFixed(2), t + "KB/S"
  163. }
  164. function D(e) {
  165. let t = 0;
  166. return e >= 24 ? t = 2 : e >= 15 && (t = 1), t
  167. }
  168. function S(e, t) {
  169. Object.keys(t || {}).forEach((function (r) {
  170. e.style[r] = t[r]
  171. }))
  172. }
  173. function C() {
  174. let e = document.fullscreenElement || window.webkitFullscreenElement || document.msFullscreenElement;
  175. return void 0 === e && (e = !1), !!e
  176. }
  177. function O() {
  178. }
  179. function P() {
  180. return (new Date).getTime()
  181. }
  182. function x(e) {
  183. Object.keys(e || {}).forEach((t => {
  184. "bgDom" !== t && _(e[t], !1)
  185. }))
  186. }
  187. function B(e) {
  188. _(e.pauseDom, !0), _(e.screenshotsDom, !0), _(e.fullscreenDom, !0), _(e.quietAudioDom, !0), _(e.textDom, !0), _(e.speedDom, !0), _(e.recordDom, !0), _(e.loadingDom, !1), _(e.playDom, !1), _(e.playBigDom, !1), _(e.bgDom, !1)
  189. }
  190. function M(e, t) {
  191. let r = v().BUFFER_STATUS.buffering;
  192. return 0 === e ? r = v().BUFFER_STATUS.empty : e >= t && (r = v().BUFFER_STATUS.full), r
  193. }
  194. function R() {
  195. return y || (y = !0, E = {}, v(), t(E, "audioContextUnlock", (function () {
  196. return w
  197. })), t(E, "$domToggle", (function () {
  198. return _
  199. })), t(E, "dataURLToFile", (function () {
  200. return b
  201. })), t(E, "downloadImg", (function () {
  202. return k
  203. })), t(E, "bpsSize", (function () {
  204. return T
  205. })), t(E, "fpsStatus", (function () {
  206. return D
  207. })), t(E, "setStyle", (function () {
  208. return S
  209. })), t(E, "checkFull", (function () {
  210. return C
  211. })), t(E, "noop", (function () {
  212. return O
  213. })), t(E, "now", (function () {
  214. return P
  215. })), t(E, "$hideBtns", (function () {
  216. return x
  217. })), t(E, "$initBtns", (function () {
  218. return B
  219. })), t(E, "bufferStatus", (function () {
  220. return M
  221. }))), E
  222. }
  223. var L, I, F = !1;
  224. function U() {
  225. return F || (F = !0, L = {}, R(), I = e => {
  226. e._audioContext = new (window.AudioContext || window.webkitAudioContext), e._gainNode = e._audioContext.createGain(), e._audioEnabled = t => {
  227. t ? (R().audioContextUnlock(e._audioContext), e._audioEnabled = t => {
  228. t ? e._audioContext.resume() : e._audioContext.suspend()
  229. }, e._audioContext.resume()) : e._audioContext.suspend()
  230. }, e._audioEnabled(!0), e._mute = () => {
  231. e._audioEnabled(!1), e.quieting = !0
  232. }, e._cancelMute = () => {
  233. e._audioEnabled(!0), e.quieting = !1
  234. }, e._audioResume = () => {
  235. e._cancelMute()
  236. }, e._initAudioPlanar = t => {
  237. const r = e._audioContext;
  238. if (!r) return !1;
  239. let n = [];
  240. const o = r.createScriptProcessor(1024, 0, 2);
  241. o.onaudioprocess = function (e) {
  242. if (n.length) {
  243. const r = n.shift();
  244. for (let n = 0; n < t.channels; n++) {
  245. const t = r[n], o = e.outputBuffer.getChannelData(n);
  246. for (let e = 0; e < 1024; e++) o[e] = t[e]
  247. }
  248. }
  249. }, o.connect(e._gainNode), e._closeAudio = () => {
  250. o.disconnect(e._gainNode), e._gainNode.disconnect(r.destination), delete e._closeAudio, n = []
  251. }, e._gainNode.connect(r.destination), e._playAudio = e => n.push(e)
  252. }, e._destroyAudioContext = () => {
  253. e._audioContext.close(), e._audioContext = null, e._gainNode = null
  254. }
  255. }, t(L, "default", (function () {
  256. return I
  257. }))), L
  258. }
  259. var N, j, G = !1;
  260. function z() {
  261. return G || (G = !0, N = {}, R(), j = e => {
  262. e._resize$2 = () => e.resize(), e._handleVisibilityChange$2 = () => e._handleVisibilityChange(), e._onfullscreenchange$2 = () => e._onfullscreenchange(), e._handleWakeLock$2 = () => e._handleWakeLock(), window.addEventListener("resize", e._resize$2), window.addEventListener("fullscreenchange", e._onfullscreenchange$2), document.addEventListener("visibilitychange", e._handleVisibilityChange$2), document.addEventListener("visibilitychange", e._handleWakeLock$2), window.addEventListener("fullscreenchange", e._handleWakeLock$2), e._opt.supportDblclickFullscreen && e.$canvasElement.addEventListener("dblclick", (() => {
  263. e.fullscreen = !e.fullscreen
  264. }), !1), e._removeEventListener = () => {
  265. window.removeEventListener("resize", e._resize$2), window.removeEventListener("fullscreenchange", e._onfullscreenchange$2), document.removeEventListener("visibilitychange", e._handleWakeLock$2), document.removeEventListener("visibilitychange", e._handleVisibilityChange$2), window.removeEventListener("fullscreenchange", e._handleWakeLock$2)
  266. }, e.$doms.playDom && e.$doms.playDom.addEventListener("click", (t => {
  267. t.stopPropagation(), e._play()
  268. }), !1), e.$doms.playBigDom && e.$doms.playBigDom.addEventListener("click", (t => {
  269. t.stopPropagation(), e._play()
  270. }), !1), e.$doms.pauseDom && e.$doms.pauseDom.addEventListener("click", (t => {
  271. t.stopPropagation(), e._pause()
  272. }), !1), e.$doms.screenshotsDom && e.$doms.screenshotsDom.addEventListener("click", (t => {
  273. t.stopPropagation();
  274. const r = e._opt.text + "" + R().now();
  275. e._screenshot(r)
  276. }), !1), e.$doms.fullscreenDom && e.$doms.fullscreenDom.addEventListener("click", (t => {
  277. t.stopPropagation(), e.fullscreen = !0
  278. }), !1), e.$doms.minScreenDom && e.$doms.minScreenDom.addEventListener("click", (t => {
  279. t.stopPropagation(), e.fullscreen = !1
  280. }), !1), e.$doms.recordDom && e.$doms.recordDom.addEventListener("click", (t => {
  281. t.stopPropagation(), e.recording = !0
  282. }), !1), e.$doms.recordingDom && e.$doms.recordingDom.addEventListener("click", (t => {
  283. t.stopPropagation(), e.recording = !1
  284. }), !1), e.$doms.quietAudioDom && e.$doms.quietAudioDom.addEventListener("click", (t => {
  285. t.stopPropagation(), e._cancelMute()
  286. }), !1), e.$doms.playAudioDom && e.$doms.playAudioDom.addEventListener("click", (t => {
  287. t.stopPropagation(), e._mute()
  288. }), !1), e._enableWakeLock()
  289. }, t(N, "default", (function () {
  290. return j
  291. }))), N
  292. }
  293. var W, Y, H = !1;
  294. function $() {
  295. return H || (H = !0, W = {}, R(), z(), Y = e => {
  296. e._showControl = () => {
  297. let t = !1, r = !1;
  298. return Object.keys(e._opt.operateBtns).forEach((t => {
  299. e._opt.operateBtns[t] && (r = !0)
  300. })), (e._opt.showBandwidth || e._opt.text || r) && (t = !0), t
  301. };
  302. const t = {}, r = document.createDocumentFragment(), n = document.createElement("div"),
  303. o = document.createElement("div"), a = document.createElement("div"), i = document.createElement("div"),
  304. s = document.createElement("div"), u = document.createElement("div"), c = document.createElement("div"),
  305. l = document.createElement("div"), d = document.createElement("div"), f = document.createElement("div"),
  306. p = document.createElement("div"), h = document.createElement("div"), m = document.createElement("div"),
  307. A = document.createElement("div"), g = document.createElement("div"), v = document.createElement("div"),
  308. E = document.createElement("div"), y = document.createElement("div");
  309. m.innerText = e._opt.loadingText || "", i.innerText = e._opt.text || "", s.innerText = "", u.title = "播放", l.title = "暂停", d.title = "截屏", f.title = "全屏", p.title = "退出全屏", A.title = "静音", g.title = "取消静音", v.title = "录制", E.title = "取消录制";
  310. let w = {position: "absolute", width: "100%", height: "100%"};
  311. e._opt.background && (w = Object.assign({}, w, {
  312. backgroundRepeat: "no-repeat",
  313. backgroundPosition: "center",
  314. backgroundSize: "100%",
  315. backgroundImage: "url('" + e._opt.background + "')"
  316. }));
  317. const _ = {
  318. position: "absolute",
  319. width: "100%",
  320. height: "100%",
  321. textAlign: "center",
  322. color: "#fff",
  323. display: "none",
  324. backgroundImage: "url('data:image/gif;base64,R0lGODlhgACAAKIAAP///93d3bu7u5mZmQAA/wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBQAEACwCAAIAfAB8AAAD/0i63P4wygYqmDjrzbtflvWNZGliYXiubKuloivPLlzReD7al+7/Eh5wSFQIi8hHYBkwHUmD6CD5YTJLz49USuVYraRsZ7vtar7XnQ1Kjpoz6LRHvGlz35O4nEPP2O94EnpNc2sef1OBGIOFMId/inB6jSmPdpGScR19EoiYmZobnBCIiZ95k6KGGp6ni4wvqxilrqBfqo6skLW2YBmjDa28r6Eosp27w8Rov8ekycqoqUHODrTRvXsQwArC2NLF29UM19/LtxO5yJd4Au4CK7DUNxPebG4e7+8n8iv2WmQ66BtoYpo/dvfacBjIkITBE9DGlMvAsOIIZjIUAixliv9ixYZVtLUos5GjwI8gzc3iCGghypQqrbFsme8lwZgLZtIcYfNmTJ34WPTUZw5oRxdD9w0z6iOpO15MgTh1BTTJUKos39jE+o/KS64IFVmsFfYT0aU7capdy7at27dw48qdS7eu3bt480I02vUbX2F/JxYNDImw4GiGE/P9qbhxVpWOI/eFKtlNZbWXuzlmG1mv58+gQ4seTbq06dOoU6vGQZJy0FNlMcV+czhQ7SQmYd8eMhPs5BxVdfcGEtV3buDBXQ+fURxx8oM6MT9P+Fh6dOrH2zavc13u9JXVJb520Vp8dvC76wXMuN5Sepm/1WtkEZHDefnzR9Qvsd9+/wi8+en3X0ntYVcSdAE+UN4zs7ln24CaLagghIxBaGF8kFGoIYV+Ybghh841GIyI5ICIFoklJsigihmimJOLEbLYIYwxSgigiZ+8l2KB+Ml4oo/w8dijjcrouCORKwIpnJIjMnkkksalNeR4fuBIm5UEYImhIlsGCeWNNJphpJdSTlkml1jWeOY6TnaRpppUctcmFW9mGSaZceYopH9zkjnjUe59iR5pdapWaGqHopboaYua1qije67GJ6CuJAAAIfkEBQUABAAsCgACAFcAMAAAA/9Iutz+ML5Ag7w46z0r5WAoSp43nihXVmnrdusrv+s332dt4Tyo9yOBUJD6oQBIQGs4RBlHySSKyczVTtHoidocPUNZaZAr9F5FYbGI3PWdQWn1mi36buLKFJvojsHjLnshdhl4L4IqbxqGh4gahBJ4eY1kiX6LgDN7fBmQEJI4jhieD4yhdJ2KkZk8oiSqEaatqBekDLKztBG2CqBACq4wJRi4PZu1sA2+v8C6EJexrBAD1AOBzsLE0g/V1UvYR9sN3eR6lTLi4+TlY1wz6Qzr8u1t6FkY8vNzZTxaGfn6mAkEGFDgL4LrDDJDyE4hEIbdHB6ESE1iD4oVLfLAqPETIsOODwmCDJlv5MSGJklaS6khAQAh+QQFBQAEACwfAAIAVwAwAAAD/0i63P5LSAGrvTjrNuf+YKh1nWieIumhbFupkivPBEzR+GnnfLj3ooFwwPqdAshAazhEGUXJJIrJ1MGOUamJ2jQ9QVltkCv0XqFh5IncBX01afGYnDqD40u2z76JK/N0bnxweC5sRB9vF34zh4gjg4uMjXobihWTlJUZlw9+fzSHlpGYhTminKSepqebF50NmTyor6qxrLO0L7YLn0ALuhCwCrJAjrUqkrjGrsIkGMW/BMEPJcphLgDaABjUKNEh29vdgTLLIOLpF80s5xrp8ORVONgi8PcZ8zlRJvf40tL8/QPYQ+BAgjgMxkPIQ6E6hgkdjoNIQ+JEijMsasNY0RQix4gKP+YIKXKkwJIFF6JMudFEAgAh+QQFBQAEACw8AAIAQgBCAAAD/kg0PPowykmrna3dzXvNmSeOFqiRaGoyaTuujitv8Gx/661HtSv8gt2jlwIChYtc0XjcEUnMpu4pikpv1I71astytkGh9wJGJk3QrXlcKa+VWjeSPZHP4Rtw+I2OW81DeBZ2fCB+UYCBfWRqiQp0CnqOj4J1jZOQkpOUIYx/m4oxg5cuAaYBO4Qop6c6pKusrDevIrG2rkwptrupXB67vKAbwMHCFcTFxhLIt8oUzLHOE9Cy0hHUrdbX2KjaENzey9Dh08jkz8Tnx83q66bt8PHy8/T19vf4+fr6AP3+/wADAjQmsKDBf6AOKjS4aaHDgZMeSgTQcKLDhBYPEswoA1BBAgAh+QQFBQAEACxOAAoAMABXAAAD7Ei6vPOjyUkrhdDqfXHm4OZ9YSmNpKmiqVqykbuysgvX5o2HcLxzup8oKLQQix0UcqhcVo5ORi+aHFEn02sDeuWqBGCBkbYLh5/NmnldxajX7LbPBK+PH7K6narfO/t+SIBwfINmUYaHf4lghYyOhlqJWgqDlAuAlwyBmpVnnaChoqOkpaanqKmqKgGtrq+wsbA1srW2ry63urasu764Jr/CAb3Du7nGt7TJsqvOz9DR0tPU1TIA2ACl2dyi3N/aneDf4uPklObj6OngWuzt7u/d8fLY9PXr9eFX+vv8+PnYlUsXiqC3c6PmUUgAACH5BAUFAAQALE4AHwAwAFcAAAPpSLrc/m7IAau9bU7MO9GgJ0ZgOI5leoqpumKt+1axPJO1dtO5vuM9yi8TlAyBvSMxqES2mo8cFFKb8kzWqzDL7Xq/4LB4TC6bz1yBes1uu9uzt3zOXtHv8xN+Dx/x/wJ6gHt2g3Rxhm9oi4yNjo+QkZKTCgGWAWaXmmOanZhgnp2goaJdpKGmp55cqqusrZuvsJays6mzn1m4uRAAvgAvuBW/v8GwvcTFxqfIycA3zA/OytCl0tPPO7HD2GLYvt7dYd/ZX99j5+Pi6tPh6+bvXuTuzujxXens9fr7YPn+7egRI9PPHrgpCQAAIfkEBQUABAAsPAA8AEIAQgAAA/lIutz+UI1Jq7026h2x/xUncmD5jehjrlnqSmz8vrE8u7V5z/m5/8CgcEgsGo/IpHLJbDqf0Kh0ShBYBdTXdZsdbb/Yrgb8FUfIYLMDTVYz2G13FV6Wz+lX+x0fdvPzdn9WeoJGAYcBN39EiIiKeEONjTt0kZKHQGyWl4mZdREAoQAcnJhBXBqioqSlT6qqG6WmTK+rsa1NtaGsuEu6o7yXubojsrTEIsa+yMm9SL8osp3PzM2cStDRykfZ2tfUtS/bRd3ewtzV5pLo4eLjQuUp70Hx8t9E9eqO5Oku5/ztdkxi90qPg3x2EMpR6IahGocPCxp8AGtigwQAIfkEBQUABAAsHwBOAFcAMAAAA/9Iutz+MMo36pg4682J/V0ojs1nXmSqSqe5vrDXunEdzq2ta3i+/5DeCUh0CGnF5BGULC4tTeUTFQVONYAs4CfoCkZPjFar83rBx8l4XDObSUL1Ott2d1U4yZwcs5/xSBB7dBMBhgEYfncrTBGDW4WHhomKUY+QEZKSE4qLRY8YmoeUfkmXoaKInJ2fgxmpqqulQKCvqRqsP7WooriVO7u8mhu5NacasMTFMMHCm8qzzM2RvdDRK9PUwxzLKdnaz9y/Kt8SyR3dIuXmtyHpHMcd5+jvWK4i8/TXHff47SLjQvQLkU+fG29rUhQ06IkEG4X/Rryp4mwUxSgLL/7IqFETB8eONT6ChCFy5ItqJomES6kgAQAh+QQFBQAEACwKAE4AVwAwAAAD/0i63A4QuEmrvTi3yLX/4MeNUmieITmibEuppCu3sDrfYG3jPKbHveDktxIaF8TOcZmMLI9NyBPanFKJp4A2IBx4B5lkdqvtfb8+HYpMxp3Pl1qLvXW/vWkli16/3dFxTi58ZRcChwIYf3hWBIRchoiHiotWj5AVkpIXi4xLjxiaiJR/T5ehoomcnZ+EGamqq6VGoK+pGqxCtaiiuJVBu7yaHrk4pxqwxMUzwcKbyrPMzZG90NGDrh/JH8t72dq3IN1jfCHb3L/e5ebh4ukmxyDn6O8g08jt7tf26ybz+m/W9GNXzUQ9fm1Q/APoSWAhhfkMAmpEbRhFKwsvCsmosRIHx444PoKcIXKkjIImjTzjkQAAIfkEBQUABAAsAgA8AEIAQgAAA/VIBNz+8KlJq72Yxs1d/uDVjVxogmQqnaylvkArT7A63/V47/m2/8CgcEgsGo/IpHLJbDqf0Kh0Sj0FroGqDMvVmrjgrDcTBo8v5fCZki6vCW33Oq4+0832O/at3+f7fICBdzsChgJGeoWHhkV0P4yMRG1BkYeOeECWl5hXQ5uNIAOjA1KgiKKko1CnqBmqqk+nIbCkTq20taVNs7m1vKAnurtLvb6wTMbHsUq4wrrFwSzDzcrLtknW16tI2tvERt6pv0fi48jh5h/U6Zs77EXSN/BE8jP09ZFA+PmhP/xvJgAMSGBgQINvEK5ReIZhQ3QEMTBLAAAh+QQFBQAEACwCAB8AMABXAAAD50i6DA4syklre87qTbHn4OaNYSmNqKmiqVqyrcvBsazRpH3jmC7yD98OCBF2iEXjBKmsAJsWHDQKmw571l8my+16v+CweEwum8+hgHrNbrvbtrd8znbR73MVfg838f8BeoB7doN0cYZvaIuMjY6PkJGSk2gClgJml5pjmp2YYJ6dX6GeXaShWaeoVqqlU62ir7CXqbOWrLafsrNctjIDwAMWvC7BwRWtNsbGFKc+y8fNsTrQ0dK3QtXAYtrCYd3eYN3c49/a5NVj5eLn5u3s6e7x8NDo9fbL+Mzy9/T5+tvUzdN3Zp+GBAAh+QQJBQAEACwCAAIAfAB8AAAD/0i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdArcQK2TOL7/nl4PSMwIfcUk5YhUOh3M5nNKiOaoWCuWqt1Ou16l9RpOgsvEMdocXbOZ7nQ7DjzTaeq7zq6P5fszfIASAYUBIYKDDoaGIImKC4ySH3OQEJKYHZWWi5iZG0ecEZ6eHEOio6SfqCaqpaytrpOwJLKztCO2jLi1uoW8Ir6/wCHCxMG2x7muysukzb230M6H09bX2Nna29zd3t/g4cAC5OXm5+jn3Ons7eba7vHt2fL16tj2+QL0+vXw/e7WAUwnrqDBgwgTKlzIsKHDh2gGSBwAccHEixAvaqTYcFCjRoYeNyoM6REhyZIHT4o0qPIjy5YTTcKUmHImx5cwE85cmJPnSYckK66sSAAj0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gwxZJAAA7')",
  325. backgroundRepeat: "no-repeat",
  326. backgroundPosition: "center",
  327. backgroundSize: "40px 40px"
  328. }, b = {
  329. position: "absolute",
  330. width: "100%",
  331. height: "100%",
  332. display: "none",
  333. background: "rgba(0,0,0,0.4)",
  334. backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwEAYAAAAHkiXEAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAByBJREFUeNrlXFlIVV0U3vsaaINmZoX0YAR6y8oGMkKLoMESSjBoUJEoIogoIggigoryIQoKGqi3Roh6TKGBIkNEe6hMgzTNKLPSUlMrNdvrf/juurlP5zpc7znb+r+X755pn7W+Pe+9zpVimIEUKVKJiUIKKWRqKs5OmwZOTBQkSFBUFK5HR+tPt7WBOzpwX3U1jquqwGVleK6iQkoppSQy7a8xEBERLVwIPnsWXF9PrqCxEXzxInjpUrDH47YO0h2hw8JwtG4deN8+8OzZA0vl7Vt/iZZCCtnUhPPt7fp9o0fjvpgYHHu9uD8+Hsdsh52hggTV1uLg2DHwpUvSIz3S093ttE4hB5qSxYuRAc+f910im5vBFy6As7LALORQ7RgzBullZIBPngQ3NPRt1+vXeH7NGtN69u8oERFFRIDPnQMrZe8YZ0huLhwMDzdjb1gYC4zj4uKAeaFIkbpxAwfWvse48FOngp89s7eeS1p2Nlg63vQF7Y8iRWrlSthZXR2wZhAR0dy55gwlIqI5c8AfPtgbeuUKHIqKMi3soP3z1UzwiRP2NbqtDbxsmXuGacK3tOgG/fwJ3rbNtIDO+J2ZiQzp6ND97uzE+RUrHDaAmxprif/+HQasXm1aKKcBPxcsADc1/VEjFClS8+eH7oXcuSpSpJ480V/Y0wPOyjItjNtgofWmiPHuHa7Hxg79RUT0e1Rjxb/X1ASnDw9vf/3S9bl1K/iEFSlSixbZdz7Xr5t2fLgBuuTn2xfUjRsHmVBYGNg6gWpo+FtHNU4DuowYAZ3Ky+11GzOm/4SIiGjDBvuczM52zAHua4iI6OpVcGEheO1a8PCdP/j9CNRyKFKk9u4doBDWCRXXBOcE0GekgVBUhPuSk00LPTAdCwp0+3n0GBER4AFenbQiJ8cdg7dvpwGB5xunT4PHjTMtuL0/qan29q9fH+AB62jnyxe31moGlwFWNDbCzq1bcez+snLffr14odtrMzrCBet6/Pnz7hoabAZY8fgxT5iGRwbs36/b19kJHjnS49+BEkIIMXmy/vjt26YdCA4pKdgHKC2Fo5cvh2xiFBTu3NGPw8Ox/5CW5tG3/hi8VffokRmDQwUeNOTlwc/KSmRIbq67djx9Cm5p+W2akEKmpfnaSt5zZdTXY8+0udmQcg5h0iQwD3MfPgRPn+7UG6GjUjiqrNSver0eVIWEBP85EiSIN7H/dSxZAuY1roMHHRt02OqamOhrgnoN46SQQn76ZFoad8Hj8kOH4D/PZJOSQvYKW11jYnxNkHWK3NFhWhKz8HrB9+7xaCU06fYKIiBBgiIjfRlgHTf/j+NlNMTFgceOHXJSJEgQ9wXCVyOk9AlvLfEDWDT6X+DAAXSiHz8OOSkppJCRkfrJ9vYR+NHaql8wNV42jVevUFJ37kQ8kHX8PlRMmOD/SYIEtbZ69IAkvsATs38dP36ADx8GJyc7IzyD+xbhqxE1Nb4a8PKlfiE+HsOxyEgYZI1A+9tRUADetQtNTF2dU29CJ84Twhkz9KtVVb4+oKxMvxAWxjM101KFBvX1qNmbNkHwNWucFl4HT/QmTvSfIkGCSks9HC2MsxxzyTekp5uWLjh0dYHz88FeL2ry5ctm7LHq2NMD7rXUg6rC0cKM9+/BfQS1hghDXg1VpEjdvasvLpqHf3VWs/P+/QA3Lltm75jz8T7BZQAvn9tscJgWXpEiNWuWvd2bNwcQwONbnq6p0R8oLnYnA7Zs6Vvw7m7Yd/z4gDe5DQH2Xrum29/SwoObfh7cts1egFWrnDU4Lg785g2Ytx4LC2H4zJmmhe3XD5+dsJsD1xhHjgwwgfBwPFBXpydQXe3uFqXzfU9o7ZUSXFRkX/IHMcENGKXgixY27fBwA8TZudO+5dixY4gJ37xpyQVfvEtmpmnHTQMFMiUFevBeL6OkZMg1GQlER4P5wwTGt29g65bmvw/4HShanD+5mjIlxC+cNw/cKxqYw7RDHZY9TOEXXpEiVVurC8+jtJUrnTNAkSK1fDle2NWlG9DeDs7IMC2UM35zU2Mt8Urhel6eywalp+vCMzhM++hRDlo1LeCg/dNGNdy5Wtt4LvEuCv+HodqHCu/e2Y8Cyss5aNW0sAPzh8fx1uEkgyMGHWxqgjM8NhYGWoNSraMnvm6+89aXDHjmap1AMUpKcD9/+D2MAYNzcsD9fRDNsZMcwsedfehiPJFeUhJ4925wWVnfdvFHiDt2gEM/MXT+rwp47UMKKeT27Ti7Zw+YA6UCgbdKKyr8cTVSSCEbG3Ge/5yDwWtD48fjfv6rAl7C6LUeb4uvX8FnzuD5U6ewjP35s9M6uQaUJP4Qgz8E4SbJ2sk5BV5jevAAvHmzqS9/hs0XJxBi1CgOWtVjVnlHKSEB16Oj/wgoE0L8LsFcM169AldV8Q4UjouKULKtNch9/AdsEf6XQYgIsAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMS0xMlQxMTo1NjowNSswODowMGcMj/QAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDEtMTJUMTE6NTY6MDUrMDg6MDAWUTdIAAAASXRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9wZHMzeWYxNGczYi9ib2Zhbmcuc3Zn11us5wAAAABJRU5ErkJggg==')",
  335. backgroundRepeat: "no-repeat",
  336. backgroundPosition: "center",
  337. backgroundSize: "48px 48px",
  338. cursor: "pointer"
  339. }, k = {position: "absolute", top: 0, height: "100%", display: "flex", alignItems: "center"}, T = {
  340. display: "none",
  341. position: "relative",
  342. fontSize: "13px",
  343. color: "#fff",
  344. lineHeight: "20px",
  345. marginLeft: "5px",
  346. marginRight: "5px",
  347. userSelect: "none"
  348. }, D = {
  349. display: "none",
  350. position: "relative",
  351. width: "16px",
  352. height: "16px",
  353. marginLeft: "8px",
  354. marginRight: "8px",
  355. backgroundRepeat: "no-repeat",
  356. backgroundPosition: "center",
  357. backgroundSize: "100%",
  358. cursor: "pointer"
  359. };
  360. R().setStyle(y, w), R().setStyle(n, {
  361. height: "38px",
  362. zIndex: 11,
  363. position: "absolute",
  364. left: 0,
  365. bottom: 0,
  366. width: "100%",
  367. background: "rgba(0,0,0)"
  368. }), R().setStyle(h, _), R().setStyle(c, b), R().setStyle(m, {
  369. position: "absolute",
  370. width: "100%",
  371. top: "60%",
  372. textAlign: "center"
  373. }), R().setStyle(o, Object.assign({}, k, {left: 0})), R().setStyle(a, Object.assign({}, k, {right: 0})), R().setStyle(i, T), R().setStyle(s, T), R().setStyle(u, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAARVJREFUSMe9laEOglAUhs+5k9lJFpsJ5QWMJoNGbEY0mEy+gr6GNo0a3SiQCegMRILzGdw4hl+Cd27KxPuXb2zA/91z2YXoGRERkX4fvN3A2QxUiv4dFM3n8jZRBLbbVfd+ubJuF4xjiCyXkksueb1uSKCIZYGLBTEx8ekEoV7PkICeVgs8HiGyXoO2bUigCDM4HoPnM7bI8wwJ6Gk0sEXbLSay30Oo2TQkoGcwgFCSQMhxDAvoETEscDiQkJC4LjMz8+XyZ4HrFYWjEQqHQ1asWGWZfmdFAsVINxuw00HhbvfpydpvxWkKTqdYaRCUfUPJCdzv4Gr1uqfli0tOIAzByUT/iCrL6+84y3Bw+D6ui5Ou+jwA8FnIO++FACgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMDhUMTY6NDI6NTMrMDg6MDCKP7wnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAw+2IEmwAAAEl0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fZ2Y3MDBzN2IzZncvYm9mYW5nLnN2Z8fICi0AAAAASUVORK5CYII=')"})), R().setStyle(l, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAHVJREFUSMftkCESwCAMBEOnCtdXVMKHeC7oInkEeQJXkRoEZWraipxZc8lsQqQZBACAlIS1oqGhhTCdu3oyxyyMcdRf79c5J7SWDBky+z4173rbJvR+VF/e/qwKqIAKqMBDgZyFzAQCoZTpxq7HLDyOrw/9b07l3z4dDnI2IAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMS0wOFQxNjo0Mjo1MyswODowMIo/vCcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDEtMDhUMTY6NDI6NTMrMDg6MDD7YgSbAAAASnRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9nZjcwMHM3YjNmdy96YW50aW5nLnN2ZxqNZJkAAAAASUVORK5CYII=')"})), R().setStyle(d, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAaxJREFUSMfNlLFOAkEQhmevAZMjR6OGRBJKsFBzdkYNpYSaWkopIOFRCBWh1ieA+ALGRgutjK0HzV2H5SX7W/zsmY3cnTEhcZovOzcz9+/s7Ir8d4OGht7fBwAgjvEri2OTl1ffSf0xAMBxRIkS1e3Se3+vcszEMe/6OqmT/aN2m1wsNu/o5YVsNHI7BgA4PCRfXzfXCwKy1RLbcXZG9nrkzc12jvT8nPU/PtatOThgAx8fuS4WyZ0de2e+T87n5OcnuVqRsxl5cpImQDnKUc7DA1fVqpimZCu+vCSjiNH9PlmpJNTQ0INBErfeafZRAakC6FWKfH9nwU7H/l6rGdqCOx3y7c3U+aOARsMMp+1vNskwTLjulB23XJL1epqA9OshIiKeJxAIoug7UyA4OuLi6Ynr52deu+NjOy4MSc9Ln8rMDpTLybBpaOjdXbJUIqdTm8a/t2fn/RSQewR24HicTLmGhnbdzcPquvYtGY3+PIR24UKBUXd35v6Sk4lN47+9NXm/FBAEedfGTjw9JYdDm76fm6+hoS8ujGAxT6L9Im7bTKeurvIEb92+AES1b6x283XSAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAwij+8JwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMS0wOFQxNjo0Mjo1MyswODowMPtiBJsAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2dmNzAwczdiM2Z3L2NhbWVyYS5zdmeyubWEAAAAAElFTkSuQmCC')"})), R().setStyle(f, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAALZJREFUSMftVbsORUAQVSj8DomChvh3lU5CoSVCQq2RObeYu8XG3deVoHCak81kds7Oaz3vxRcAAMwztOg6vX9d6/3XFQQC+b7iAoFhYE7Tvx9EIFAcy/ftO3MQGAQkCfM4MmeZWyajiLnvmYuCeduMAuSzvRBVYNluFHCssSgFp7Sq9ALKkjnPf9ubRtkDL27HNT3QtsY9cAjsNAVheHIKBOwD2wpxFHDbJpwmaHH2L1iWx+2BDy8RbXXtqbRBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAwij+8JwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMS0wOFQxNjo0Mjo1MyswODowMPtiBJsAAABTdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2dmNzAwczdiM2Z3L3F1YW5waW5nenVpZGFodWEuc3ZnTBoI7AAAAABJRU5ErkJggg==')"})), R().setStyle(p, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAYJJREFUSMfdVbGKwkAQnQn+geAfWBixUTsVgp3YGKxSWflVNmIjARULwc5KO40ipNHWRgs/wGLniucKa+Jd5ODuuGle5u3szGRmd5bor4iIiMhuB3Sc+HXXBdp2/Lpta7v4dccRJUrUdhtNQIkSVa3C8HwG1uumg34f2OnEB+h0tF1Sv5b+YIsttpZLEhKSdhvscPi8IXFF74GJiYnHY7Cex8zMvFgkbInjmJnv98kqoO30vmhLtaRMB60WtEbDNDudgMUiKiQSzfjOMzFxoQAyCPSfw7/nQZ/PUYnpNGV6OR6BmYzJbzYIoBQCzGaRBDQvJCTdLnTLolg5HN5t6f8V1h/oUT4PrVKJWBotmEzQw+vV3J9Ow851P2/BaoX9Yfh0BrJZYKlk8uUyHOpDeLuBHwzMBJtN2PV6IPUhXK9Nf5cLMAxfluanrmGkRBggtRo03wfq66P/6CsJAnOg+f6rgfZI4BGYiYlHIx048eR6krcnq34kkj1GuVz8+jceo9+SD5A8yGh8CTq7AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAwij+8JwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMS0wOFQxNjo0Mjo1MyswODowMPtiBJsAAABNdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2dmNzAwczdiM2Z3L3p1aXhpYW9odWEuc3ZnoCFr0AAAAABJRU5ErkJggg==')"})), R().setStyle(A, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAR9JREFUSMfVlD0LglAYhe9VkwgNihpsjbYQf4JTS7+iuaGxpcGfJjS0NFRLk2NDi6MogafhJGRIX9yEzvJwrx/nvPd9VYh/F3LkyBuN2g3J1QoAgCQhPe/Hxq5Lo+0WlfJ9dYYAgGaTDAIyy/BUnwcwWJlhcLnZkN2ugIBAuy2kkEL2ep8F73S4kjfFcfn6cMj9KLodrWVBiXyf75tMyOOR+4MBOZ8XLXzorboA5UpnM/J0Ivd7+vX7xX2asqGpVKtFXi5sqWmypXefrfIWAACmU/JwKCoun8hu9zA0uk6u13wgirg+n7+bAcsibbt6SB3n9TQXPxwAwHJJpum7M6BcDDQa0SgMaw9QPkJNIxcLMo4ZcDz+eYDqQFLWbqxKV57EtW1WtMbmAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAwij+8JwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMS0wOFQxNjo0Mjo1MyswODowMPtiBJsAAABKdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2dmNzAwczdiM2Z3L2ppbmd5aW4uc3ZnIlMYaQAAAABJRU5ErkJggg==')"})), R().setStyle(g, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAU5JREFUSMftkzGKwlAURf9PULBQwULSCKK1bZAgNuoaFFyAC3AdZg0uQCwshWzAShEEO7Gy0soUCu9Occ3An5nMGCfdzGsO7+Xy3/03iVL/lbAAACiVIBCI77O37Vi9QCDZbEqLm03ycEBUAoHk818v7nYpul5Jz4tf8HBKYa1mcjwmbzd8rG8NFIsU7ffk8UjmcjE3XK+RtB4G2PT75GbDeblMttumfjSKMRCGLxsQCKTReE9KIJDJxDw/SmKxiOZWWh+ntrSlre2WXRAorbTSrZapip7X66kbMKtQUFBQCENznsmQ93vqBhh5r8fO85jAcsnIrcce1yV3uxgD8zl5uZgU+dGBVlrp6GbTKRPwffaDAek45Gz2/M0AAJ0OeTol+w0rFYrOZ3K1MhNJEjEAwHF4cBA8Z8B1zcXV6msv+JMR2yaHQ1LrXx/8Z+sNRxsWcwZeb6UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMDhUMTY6NDI6NTMrMDg6MDCKP7wnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAw+2IEmwAAAEt0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fZ2Y3MDBzN2IzZncvc2hlbmd5aW4uc3ZnFog1MQAAAABJRU5ErkJggg==')"})), R().setStyle(v, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAPRJREFUSMflVDEOwjAQO0e8gr2sZYVunREbD6ISfAgmkBjpC/hBEQ+AtTWD6QAI0gBlqRfLp+TiXC5n1nXgMUCS5HBoNBqj6IOMMFwuEpsNAABl6d3HihWrOJaBsuRPkGW+c929HAxuYefb6L+R0ZgkMrJYiItCnCT1sl5Y1jwXj0bNniJNJWqujfX7LyrwJh8AYDxWgulU0dPp20IFlxoODm61kpE4VnS9/puBXyPYgH7LbKY3PhwUnUw+NdC4CdW9+71UgyZspwIBB9No3O0klktxUahyx+Pz+lYG0Xzu84lXRqTqwRQAGAzns8R223gUdxZXGcAK5Hp0ClIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMDhUMTY6NDI6NTMrMDg6MDCKP7wnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTA4VDE2OjQyOjUzKzA4OjAw+2IEmwAAAE50RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fZ2Y3MDBzN2IzZncvbHV6aGlzaGlwaW4uc3Zn5Zd7GQAAAABJRU5ErkJggg==')"})), R().setStyle(E, Object.assign({}, D, {backgroundImage: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAahJREFUSMdjYBjpgBFd4NZK+f+soQYG//T+yzFuUFUl2cApjEWM/758UZvysPDn3127GBkZGBgY/v4l6ICb9xTWsRbp6/9f9W8N44Jz5xgCGI4wfGFiIttrR/5n/3/U3KyR8rj8t0RdHS5lcAv+//yXzzhZTY1ii2FAmsGZocna+maD3GnWY62tNzbJBbDOffLkxie5eJYwa2uYMhaigzb2/zyGguPH/y9mTGKYYGlJUIMiYxDjHCen/4oMDAxznJzg4k8Z/jP+l5LCCAFCQP30Y5dfXVZWDI7/zzIs8PNjNGJ4/7/r+XNKA4rkoNZ4/lj0V9TmzUxJv0J+F+jrM3YyvPq/acsWujmA2oBkB9y4LifLxhoa+teAzYFtwtWr/8sZxBj9fHxo7oCbprJ72MqOHWNgZGBkYFy1isGGoZahTFSU0hAgOhcQnfph4P7/df9T9u1jPMn4nyHmxIn/bAzLGe7GxTHsZyj+f+zpUwYGBmmG6bQsiMr+L/v/rqlJY9Njm9889fW4lGEUxXCHwAomUgH3vxBG8c+f1WWf9P98sns3oaJ4FAAAbtWqHTT84QYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMDhUMTY6MzU6MjMrMDg6MDBLHbvEAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTA4VDE2OjM1OjIzKzA4OjAwOkADeAAAAE50RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fcTM1YTFhNHBtY2MvbHV6aGlzaGlwaW4uc3Zn6xlv1QAAAABJRU5ErkJggg==')"})), h.appendChild(m), e._opt.text && (o.appendChild(i), t.textDom = i), e._opt.showBandwidth && (o.appendChild(s), t.speedDom = s), e._opt.operateBtns.record && (a.appendChild(E), a.appendChild(v), t.recordingDom = E, t.recordDom = v), e._opt.operateBtns.screenshot && (a.appendChild(d), t.screenshotsDom = d), e._opt.operateBtns.play && (a.appendChild(u), a.appendChild(l), t.playDom = u, t.pauseDom = l), e._opt.operateBtns.audio && (a.appendChild(g), a.appendChild(A), t.playAudioDom = g, t.quietAudioDom = A), e._opt.operateBtns.fullscreen && (a.appendChild(f), a.appendChild(p), t.fullscreenDom = f, t.minScreenDom = p), n.appendChild(o), n.appendChild(a), r.appendChild(y), t.bgDom = y, r.appendChild(h), t.loadingDom = h, e._showControl() && r.appendChild(n), e._opt.operateBtns.play && (r.appendChild(c), t.playBigDom = c), e.$container.appendChild(r), e.$doms = t, e._removeContainerChild = () => {
  374. for (; e.$container.firstChild;) e.$container.removeChild(e.$container.firstChild)
  375. }, z().default(e), R().$hideBtns(e.$doms), e._opt.isNotMute || e._mute()
  376. }, t(W, "default", (function () {
  377. return Y
  378. }))), W
  379. }
  380. var V, Q, X = !1;
  381. function q() {
  382. return X || (X = !0, V = {}, v(), R(), Q = e => {
  383. const t = new Worker(e._opt.decoder);
  384. t.onmessage = r => {
  385. const n = r.data;
  386. switch (n.cmd) {
  387. case v().CMD_TYPE.init:
  388. e.setBufferTime(e._opt.videoBuffer), t.postMessage({
  389. cmd: v().POST_MESSAGE.init,
  390. opt: JSON.stringify(e._opt),
  391. sampleRate: e._audioContext.sampleRate
  392. }), e._hasLoaded || (e._hasLoaded = !0, e.onLoad(), e._trigger(v().EVEMTS.load));
  393. break;
  394. case v().CMD_TYPE.initSize:
  395. e.$canvasElement.width = n.w, e.$canvasElement.height = n.h, e.onInitSize(), e._resize(), e._trigger(v().EVEMTS.videoInfo, {
  396. w: n.w,
  397. h: n.h
  398. }), e._trigger(v().EVEMTS.start), e._supportOffscreen() && (e._bitmaprenderer = e.$canvasElement.getContext("bitmaprenderer"));
  399. break;
  400. case v().CMD_TYPE.render:
  401. e.loading && (e.loading = !1, e.playing = !0, e._clearCheckLoading()), e.playing && (e._supportOffscreen() ? e._bitmaprenderer.transferFromImageBitmap(n.buffer) : e._contextGLRender(e.$canvasElement.width, e.$canvasElement.height, n.output[0], n.output[1], n.output[2])), e._trigger(v().EVEMTS.timeUpdate, n.ts), e.onTimeUpdate(n.ts), e._updateStats({
  402. buf: n.delay,
  403. ts: n.ts
  404. }), e._checkHeart();
  405. break;
  406. case v().CMD_TYPE.playAudio:
  407. e.playing && !e.quieting && e._playAudio(n.buffer);
  408. break;
  409. case v().CMD_TYPE.print:
  410. e.onLog(n.text), e._trigger(v().EVEMTS.log, n.text);
  411. break;
  412. case v().CMD_TYPE.printErr:
  413. e.onLog(n.text), e._trigger(v().EVEMTS.log, n.text), e.onError(n.text), e._trigger(v().EVEMTS.error, n.text);
  414. break;
  415. case v().CMD_TYPE.initAudioPlanar:
  416. e._initAudioPlanar(n), e._trigger(v().EVEMTS.audioInfo, {
  417. numOfChannels: n.channels,
  418. sampleRate: n.samplerate
  419. });
  420. break;
  421. case v().CMD_TYPE.kBps:
  422. e.playing && (e.$doms.speedDom && (e.$doms.speedDom.innerText = R().bpsSize(n.kBps)), e._trigger(v().EVEMTS.kBps, n.kBps));
  423. default:
  424. e[n.cmd] && e[n.cmd](n)
  425. }
  426. }, e._decoderWorker = t
  427. }, t(V, "default", (function () {
  428. return Q
  429. }))), V
  430. }
  431. var Z, K, J = !1;
  432. function ee() {
  433. return J || (J = !0, Z = {}, R(), v(), K = e => {
  434. e._loading = !0, e._recording = !1, e._playing = !1, e._audioPlaying = !1, e._quieting = !1, e._fullscreen = !1, e._stats = {
  435. buf: 0,
  436. fps: 0,
  437. abps: "",
  438. vbps: "",
  439. ts: ""
  440. }, e._hasLoaded = !1, e._playUrl = "", e._startBpsTime = "", e._bps = 0, e._checkHeartTimeout = null, e._wakeLock = null, e._contextGL = null, e._contextGLRender = null, e._checkLoadingTimeout = null, e._bitmaprenderer = null, e._isPlayingBeforePageHidden = !1, e._initCheckVariable = () => {
  441. e._startBpsTime = "", e._bps = 0, e._clearCheckHeartTimeout(), e._clearCheckLoading()
  442. }, e._clearCheckHeartTimeout = () => {
  443. e._checkHeartTimeout && (clearTimeout(e._checkHeartTimeout), e._checkHeartTimeout = null)
  444. }, e._startCheckHeartTimeout = () => {
  445. e._checkHeartTimeout = setTimeout((function () {
  446. e._trigger(v().EVEMTS.timeout), e.recording = !1, e.playing = !1, e._close()
  447. }), 1e3 * e._opt.timeout)
  448. }, e._clearCheckLoading = () => {
  449. e._checkLoadingTimeout && (clearTimeout(e._checkLoadingTimeout), e._checkLoadingTimeout = null)
  450. }, e._checkLoading = () => {
  451. e._clearCheckLoading(), e._checkLoadingTimeout = setTimeout((() => {
  452. e._trigger(v().EVEMTS.timeout), e.playing = !1, e._close(), R().$domToggle(e.$doms.loadingDom, !1)
  453. }), 1e3 * e._opt.timeout)
  454. }
  455. }, t(Z, "default", (function () {
  456. return K
  457. }))), Z
  458. }
  459. var te, re, ne = !1;
  460. function oe() {
  461. return ne || (ne = !0, te = {}, R(), re = e => {
  462. e.onPlay = R().noop, e.onPause = R().noop, e.onRecord = R().noop, e.onFullscreen = R().noop, e.onMute = R().noop, e.onLoad = R().noop, e.onLog = R().noop, e.onError = R().noop, e.onTimeUpdate = R().noop, e.onInitSize = R().noop
  463. }, t(te, "default", (function () {
  464. return re
  465. }))), te
  466. }
  467. var ae, ie, se = !1;
  468. function ue() {
  469. return se || (se = !0, ie = e => {
  470. e._on = (t, r) => {
  471. let n, o, a;
  472. if (!r) return e;
  473. for (n = e.__events || (e.__events = {}), t = t.split(/\s+/); o = t.shift();) a = n[o] || (n[o] = []), a.push(r);
  474. return e
  475. }, e._off = () => {
  476. let t;
  477. return (t = e.__events) ? (delete e.__events, e) : e
  478. }, e._trigger = (t, ...r) => {
  479. function n(e, t) {
  480. if (e) for (let r = 0, n = e.length; r < n; r += 1) e[r](...t)
  481. }
  482. let o, a, i;
  483. if (!(o = e.__events)) return e;
  484. for (t = t.split(/\s+/); a = t.shift();) (i = o[a]) && (i = i.slice()), n(i, r);
  485. return e
  486. }
  487. }, t(ae = {}, "default", (function () {
  488. return ie
  489. }))), ae
  490. }
  491. var ce, le, de = !1;
  492. function fe() {
  493. return de || (de = !0, ce = {}, R(), v(), le = e => {
  494. e._pause = () => {
  495. e._close(), e.loading && R().$domToggle(e.$doms.loadingDom, !1), e.recording = !1, e.playing = !1
  496. }, e._play = t => {
  497. if (!e._playUrl && !t) return;
  498. let r = !1;
  499. t ? (e._playUrl && (e._close(), r = !0, e.clearView()), e.loading = !0, R().$domToggle(e.$doms.bgDom, !1), e._checkLoading(), e._playUrl = t) : e._playUrl && (e.loading ? (R().$hideBtns(e.$doms), R().$domToggle(e.$doms.fullscreenDom, !0), R().$domToggle(e.$doms.pauseDom, !0), R().$domToggle(e.$doms.loadingDom, !0), e._checkLoading()) : e.playing = !0), e._initCheckVariable(), r ? setTimeout((() => {
  500. e._decoderWorker.postMessage({cmd: v().POST_MESSAGE.play, url: e._playUrl})
  501. }), 300) : e._decoderWorker.postMessage({cmd: v().POST_MESSAGE.play, url: e._playUrl})
  502. }, e._screenshot = (t, r, n) => {
  503. t = t || R().now();
  504. const o = {png: "image/png", jpeg: "image/jpeg", webp: "image/webp"};
  505. let a = .92;
  506. void 0 !== n && (a = Number(n));
  507. const i = e.$canvasElement.toDataURL(o[r] || o.png, a);
  508. R().downloadImg(R().dataURLToFile(i), t)
  509. }, e._close = () => {
  510. e._close$2(), e._clearView()
  511. }, e._close$2 = () => {
  512. e._opt.debug && console.log("_close$2-START"), e._closeAudio && e._closeAudio(), e._audioPlayBuffers = [], e._audioPlaying = !1, e._decoderWorker.postMessage({cmd: v().POST_MESSAGE.close}), delete e._playAudio, e._releaseWakeLock(), e._initCheckVariable(), e._opt.debug && console.log("_close$2-END")
  513. }, e._releaseWakeLock = () => {
  514. e._wakeLock && (e._wakeLock.release(), e._wakeLock = null)
  515. }, e._clearView = () => {
  516. e._contextGL && e._contextGL.clear(e._contextGL.COLOR_BUFFER_BIT)
  517. }, e._resize = () => {
  518. const t = e.$container.clientWidth;
  519. let r = e.$container.clientHeight;
  520. e._showControl() && (r -= 38);
  521. const n = e.$canvasElement.width, o = e.$canvasElement.height, a = e._opt.rotate, i = t / n, s = r / o;
  522. let u = i > s ? s : i;
  523. e._opt.isResize || i !== s && (u = i + "," + s), e._opt.isFullResize && (u = i > s ? i : s);
  524. let c = "scale(" + u + ")";
  525. a && (c += " rotate(" + a + "deg)"), e.$canvasElement.style.transform = c, e.$canvasElement.style.left = (t - n) / 2 + "px", e.$canvasElement.style.top = (r - o) / 2 + "px"
  526. }, e._enableWakeLock = () => {
  527. e._opt.keepScreenOn && "wakeLock" in navigator && navigator.wakeLock.request("screen").then((t => {
  528. e._wakeLock = t
  529. }))
  530. }, e._supportOffscreen = () => !e._opt.forceNoOffscreen && "function" == typeof e.$canvasElement.transferControlToOffscreen, e._checkHeart = () => {
  531. e._clearCheckHeartTimeout(), e._startCheckHeartTimeout()
  532. }, e._updateStats = t => {
  533. t = t || {}, e._startBpsTime || (e._startBpsTime = R().now());
  534. const r = R().now();
  535. r - e._startBpsTime < 1e3 ? e._stats.fps += 1 : (e._stats.ts = t.ts, e._stats.buf = t.buf, e._trigger(v().EVEMTS.stats, e._stats), e._trigger(v().EVEMTS.performance, R().fpsStatus(e._stats.fps)), e._trigger(v().EVEMTS.buffer, R().bufferStatus(e._stats.buf, 1e3 * e._opt.videoBuffer)), e._stats.fps = 0, e._startBpsTime = r)
  536. }, e._onfullscreenchange = () => {
  537. (void 0).fullscreen = R().checkFull()
  538. }, e._handleVisibilityChange = () => {
  539. e._opt.debug && console.log(document.visibilityState, e._isPlayingBeforePageHidden), "visible" === document.visibilityState ? e._isPlayingBeforePageHidden && e._play() : (e._isPlayingBeforePageHidden = e.playing, e.playing && e._pause())
  540. }, e._handleWakeLock = () => {
  541. null !== e._wakeLock && "visible" === document.visibilityState && e._enableWakeLock()
  542. }
  543. }, t(ce, "default", (function () {
  544. return le
  545. }))), ce
  546. }
  547. var pe, he, me = !1;
  548. function Ae() {
  549. return me || (me = !0, pe = {}, ee(), oe(), ue(), fe(), he = e => {
  550. ee().default(e), oe().default(e), ue().default(e), fe().default(e)
  551. }, t(pe, "default", (function () {
  552. return he
  553. }))), pe
  554. }
  555. var ge, ve = !1;
  556. var Ee, ye, we, _e, be, ke, Te, De, Se, Ce, Oe, Pe, xe, Be, Me, Re, Le, Ie, Fe, Ue, Ne, je, Ge, ze, We, Ye, He, $e,
  557. Ve, Qe, Xe, qe, Ze, Ke, Je, et, tt, rt, nt, ot, at, it, st, ut, ct, lt, dt, ft, pt, ht, mt, At, gt, vt, Et, yt, wt,
  558. _t, bt, kt, Tt, Dt, St, Ct, Ot, Pt, xt, Bt, Mt, Rt, Lt, It, Ft, Ut, Nt, jt, Gt, zt, Wt, Yt, Ht, $t, Vt, Qt, Xt, qt,
  559. Zt, Kt, Jt, er, tr, rr, nr, or, ar, ir, sr, ur, cr, lr, dr, fr, pr, hr, mr, Ar, gr, vr, Er, yr, wr, _r, br, kr, Tr,
  560. Dr = !1;
  561. function Sr(e) {
  562. return Ee.locateFile ? Ee.locateFile(e, Oe) : Oe + e
  563. }
  564. function Cr(e) {
  565. Cr.shown || (Cr.shown = {}), Cr.shown[e] || (Cr.shown[e] = 1, Me(e))
  566. }
  567. function Or(e, t) {
  568. e || Yr("Assertion failed: " + t)
  569. }
  570. function Pr(e, t, r) {
  571. for (var n = t + r, o = ""; !(t >= n);) {
  572. var a = e[t++];
  573. if (!a) return o;
  574. if (128 & a) {
  575. var i = 63 & e[t++];
  576. if (192 != (224 & a)) {
  577. var s = 63 & e[t++];
  578. if ((a = 224 == (240 & a) ? (15 & a) << 12 | i << 6 | s : (7 & a) << 18 | i << 12 | s << 6 | 63 & e[t++]) < 65536) o += String.fromCharCode(a); else {
  579. var u = a - 65536;
  580. o += String.fromCharCode(55296 | u >> 10, 56320 | 1023 & u)
  581. }
  582. } else o += String.fromCharCode((31 & a) << 6 | i)
  583. } else o += String.fromCharCode(a)
  584. }
  585. return o
  586. }
  587. function xr(e, t) {
  588. return e ? Pr(We, e, t) : ""
  589. }
  590. function Br(e, t, r, n) {
  591. if (!(n > 0)) return 0;
  592. for (var o = r, a = r + n - 1, i = 0; i < e.length; ++i) {
  593. var s = e.charCodeAt(i);
  594. if (s >= 55296 && s <= 57343) s = 65536 + ((1023 & s) << 10) | 1023 & e.charCodeAt(++i);
  595. if (s <= 127) {
  596. if (r >= a) break;
  597. t[r++] = s
  598. } else if (s <= 2047) {
  599. if (r + 1 >= a) break;
  600. t[r++] = 192 | s >> 6, t[r++] = 128 | 63 & s
  601. } else if (s <= 65535) {
  602. if (r + 2 >= a) break;
  603. t[r++] = 224 | s >> 12, t[r++] = 128 | s >> 6 & 63, t[r++] = 128 | 63 & s
  604. } else {
  605. if (r + 3 >= a) break;
  606. t[r++] = 240 | s >> 18, t[r++] = 128 | s >> 12 & 63, t[r++] = 128 | s >> 6 & 63, t[r++] = 128 | 63 & s
  607. }
  608. }
  609. return t[r] = 0, r - o
  610. }
  611. function Mr(e, t, r) {
  612. return Br(e, We, t, r)
  613. }
  614. function Rr(e) {
  615. for (var t = 0, r = 0; r < e.length; ++r) {
  616. var n = e.charCodeAt(r);
  617. n >= 55296 && n <= 57343 && (n = 65536 + ((1023 & n) << 10) | 1023 & e.charCodeAt(++r)), n <= 127 ? ++t : t += n <= 2047 ? 2 : n <= 65535 ? 3 : 4
  618. }
  619. return t
  620. }
  621. function Lr(e, t) {
  622. for (var r = "", n = 0; !(n >= t / 2); ++n) {
  623. var o = Ye[e + 2 * n >> 1];
  624. if (0 == o) break;
  625. r += String.fromCharCode(o)
  626. }
  627. return r
  628. }
  629. function Ir(e, t, r) {
  630. if (void 0 === r && (r = 2147483647), r < 2) return 0;
  631. for (var n = t, o = (r -= 2) < 2 * e.length ? r / 2 : e.length, a = 0; a < o; ++a) {
  632. var i = e.charCodeAt(a);
  633. Ye[t >> 1] = i, t += 2
  634. }
  635. return Ye[t >> 1] = 0, t - n
  636. }
  637. function Fr(e) {
  638. return 2 * e.length
  639. }
  640. function Ur(e, t) {
  641. for (var r = 0, n = ""; !(r >= t / 4);) {
  642. var o = $e[e + 4 * r >> 2];
  643. if (0 == o) break;
  644. if (++r, o >= 65536) {
  645. var a = o - 65536;
  646. n += String.fromCharCode(55296 | a >> 10, 56320 | 1023 & a)
  647. } else n += String.fromCharCode(o)
  648. }
  649. return n
  650. }
  651. function Nr(e, t, r) {
  652. if (void 0 === r && (r = 2147483647), r < 4) return 0;
  653. for (var n = t, o = n + r - 4, a = 0; a < e.length; ++a) {
  654. var i = e.charCodeAt(a);
  655. if (i >= 55296 && i <= 57343) i = 65536 + ((1023 & i) << 10) | 1023 & e.charCodeAt(++a);
  656. if ($e[t >> 2] = i, (t += 4) + 4 > o) break
  657. }
  658. return $e[t >> 2] = 0, t - n
  659. }
  660. function jr(e) {
  661. for (var t = 0, r = 0; r < e.length; ++r) {
  662. var n = e.charCodeAt(r);
  663. n >= 55296 && n <= 57343 && ++r, t += 4
  664. }
  665. return t
  666. }
  667. function Gr(e) {
  668. var t = Rr(e) + 1, r = Jt(t);
  669. return r && Br(e, ze, r, t), r
  670. }
  671. function zr(e) {
  672. Or(!Se, "addRunDependency cannot be used in a pthread worker"), nt++, Ee.monitorRunDependencies && Ee.monitorRunDependencies(nt)
  673. }
  674. function Wr(e) {
  675. if (nt--, Ee.monitorRunDependencies && Ee.monitorRunDependencies(nt), 0 == nt && (null !== ot && (clearInterval(ot), ot = null), at)) {
  676. var t = at;
  677. at = null, t()
  678. }
  679. }
  680. function Yr(e) {
  681. throw Ee.onAbort && Ee.onAbort(e), Se && console.error("Pthread aborting at " + (new Error).stack), Me(e += ""), je = !0, 1, e = "abort(" + e + "). Build with -s ASSERTIONS=1 for more info.", new WebAssembly.RuntimeError(e)
  682. }
  683. function Hr(e) {
  684. return t = e, r = it, String.prototype.startsWith ? t.startsWith(r) : 0 === t.indexOf(r);
  685. var t, r
  686. }
  687. function $r(e) {
  688. try {
  689. if (e == st && Ie) return new Uint8Array(Ie);
  690. if (xe) return xe(e);
  691. throw"both async and sync fetching of the wasm failed"
  692. } catch (e) {
  693. Yr(e)
  694. }
  695. }
  696. function Vr() {
  697. var e = {a: qt};
  698. function t(e, t) {
  699. var r = e.exports;
  700. Ee.asm = r, Ze = Ee.asm.da, Ne = t, Se || Wr()
  701. }
  702. function r(e) {
  703. t(e.instance, e.module)
  704. }
  705. function n(t) {
  706. return (Ie || !Te && !De || "function" != typeof fetch ? Promise.resolve().then((function () {
  707. return $r(st)
  708. })) : fetch(st, {credentials: "same-origin"}).then((function (e) {
  709. if (!e.ok) throw"failed to load wasm binary file at '" + st + "'";
  710. return e.arrayBuffer()
  711. })).catch((function () {
  712. return $r(st)
  713. }))).then((function (t) {
  714. return WebAssembly.instantiate(t, e)
  715. })).then(t, (function (e) {
  716. Me("failed to asynchronously prepare wasm: " + e), Yr(e)
  717. }))
  718. }
  719. if (Se || zr(), Ee.instantiateWasm) try {
  720. return Ee.instantiateWasm(e, t)
  721. } catch (e) {
  722. return Me("Module.instantiateWasm callback failed with error: " + e), !1
  723. }
  724. return Ie || "function" != typeof WebAssembly.instantiateStreaming || Hr(st) || "function" != typeof fetch ? n(r) : fetch(st, {credentials: "same-origin"}).then((function (t) {
  725. return WebAssembly.instantiateStreaming(t, e).then(r, (function (e) {
  726. return Me("wasm streaming compile failed: " + e), Me("falling back to ArrayBuffer instantiation"), n(r)
  727. }))
  728. })), {}
  729. }
  730. function Qr() {
  731. ft.initRuntime()
  732. }
  733. function Xr(e) {
  734. for (; e.length > 0;) {
  735. var t = e.shift();
  736. if ("function" != typeof t) {
  737. var r = t.func;
  738. "number" == typeof r ? void 0 === t.arg ? Ze.get(r)() : Ze.get(r)(t.arg) : r(void 0 === t.arg ? null : t.arg)
  739. } else t(Ee)
  740. }
  741. }
  742. function qr(e, t) {
  743. if (e <= 0 || e > ze.length || !0 & e || t < 0) return -28;
  744. if (0 == t) return 0;
  745. t >= 2147483647 && (t = 1 / 0);
  746. var r = Atomics.load($e, br >> 2), n = 0;
  747. if (r == e && (Atomics.compareExchange($e, br >> 2, r, 0) == r && (n = 1, --t <= 0))) return 1;
  748. var o = Atomics.notify($e, e >> 2, t);
  749. if (o >= 0) return o + n;
  750. throw"Atomics.notify returned an unexpected value " + o
  751. }
  752. function Zr(e) {
  753. if (Se) throw"Internal Error! cleanupThread() can only ever be called from main application thread!";
  754. if (!e) throw"Internal Error! Null pthread_ptr in cleanupThread!";
  755. $e[e + 12 >> 2] = 0;
  756. var t = ft.pthreads[e];
  757. if (t) {
  758. var r = t.worker;
  759. ft.returnWorkerToPool(r)
  760. }
  761. }
  762. function Kr(e, t) {
  763. yr(e, t), vr(e)
  764. }
  765. function Jr() {
  766. return Fe
  767. }
  768. function en(e, t) {
  769. return Ze.get(e)(t)
  770. }
  771. function tn() {
  772. var e = new Error;
  773. if (!e.stack) {
  774. try {
  775. throw new Error
  776. } catch (t) {
  777. e = t
  778. }
  779. if (!e.stack) return "(no stack trace available)"
  780. }
  781. return e.stack.toString()
  782. }
  783. function rn(e, t, r, n) {
  784. Yr("Assertion failed: " + xr(e) + ", at: " + [t ? xr(t) : "unknown filename", r, n ? xr(n) : "unknown function"])
  785. }
  786. function nn(e) {
  787. return $e[tr() >> 2] = e, e
  788. }
  789. function on(e) {
  790. for (var t = function (e, t) {
  791. return t || (t = Re), Math.ceil(e / t) * t
  792. }(e, 16384), r = Jt(t); e < t;) ze[r + e++] = 0;
  793. return r
  794. }
  795. function an(e, t, r) {
  796. if (Se) return zo(1, 1, e, t, r);
  797. Et.varargs = r;
  798. try {
  799. var n = Et.getStreamFromFD(e);
  800. switch (t) {
  801. case 0:
  802. return (o = Et.get()) < 0 ? -28 : vt.open(n.path, n.flags, 0, o).fd;
  803. case 1:
  804. case 2:
  805. return 0;
  806. case 3:
  807. return n.flags;
  808. case 4:
  809. var o = Et.get();
  810. return n.flags |= o, 0;
  811. case 12:
  812. o = Et.get();
  813. return Ye[o + 0 >> 1] = 2, 0;
  814. case 13:
  815. case 14:
  816. return 0;
  817. case 16:
  818. case 8:
  819. return -28;
  820. case 9:
  821. return nn(28), -1;
  822. default:
  823. return -28
  824. }
  825. } catch (e) {
  826. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), -e.errno
  827. }
  828. }
  829. function sn(e, t, r) {
  830. if (Se) return zo(2, 1, e, t, r);
  831. Et.varargs = r;
  832. try {
  833. var n = Et.getStr(e), o = r ? Et.get() : 0;
  834. return vt.open(n, t, o).fd
  835. } catch (e) {
  836. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), -e.errno
  837. }
  838. }
  839. function un(e) {
  840. switch (e) {
  841. case 1:
  842. return 0;
  843. case 2:
  844. return 1;
  845. case 4:
  846. return 2;
  847. case 8:
  848. return 3;
  849. default:
  850. throw new TypeError("Unknown type size: " + e)
  851. }
  852. }
  853. function cn(e) {
  854. for (var t = "", r = e; We[r];) t += yt[We[r++]];
  855. return t
  856. }
  857. function ln(e) {
  858. if (void 0 === e) return "_unknown";
  859. var t = (e = e.replace(/[^a-zA-Z0-9_]/g, "$")).charCodeAt(0);
  860. return t >= kt && t <= Tt ? "_" + e : e
  861. }
  862. function dn(e, t) {
  863. return e = ln(e), new Function("body", "return function " + e + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)
  864. }
  865. function fn(e, t) {
  866. var r = dn(t, (function (e) {
  867. this.name = t, this.message = e;
  868. var r = new Error(e).stack;
  869. void 0 !== r && (this.stack = this.toString() + "\n" + r.replace(/^Error(:[^\n]*)?\n/, ""))
  870. }));
  871. return r.prototype = Object.create(e.prototype), r.prototype.constructor = r, r.prototype.toString = function () {
  872. return void 0 === this.message ? this.name : this.name + ": " + this.message
  873. }, r
  874. }
  875. function pn(e) {
  876. throw new Dt(e)
  877. }
  878. function hn(e) {
  879. throw new St(e)
  880. }
  881. function mn(e, t, r) {
  882. function n(t) {
  883. var n = r(t);
  884. n.length !== e.length && hn("Mismatched type converter count");
  885. for (var o = 0; o < e.length; ++o) An(e[o], n[o])
  886. }
  887. e.forEach((function (e) {
  888. bt[e] = t
  889. }));
  890. var o = new Array(t.length), a = [], i = 0;
  891. t.forEach((function (e, t) {
  892. _t.hasOwnProperty(e) ? o[t] = _t[e] : (a.push(e), wt.hasOwnProperty(e) || (wt[e] = []), wt[e].push((function () {
  893. o[t] = _t[e], ++i === a.length && n(o)
  894. })))
  895. })), 0 === a.length && n(o)
  896. }
  897. function An(e, t, r) {
  898. if (r = r || {}, !("argPackAdvance" in t)) throw new TypeError("registerType registeredInstance requires argPackAdvance");
  899. var n = t.name;
  900. if (e || pn('type "' + n + '" must have a positive integer typeid pointer'), _t.hasOwnProperty(e)) {
  901. if (r.ignoreDuplicateRegistrations) return;
  902. pn("Cannot register type '" + n + "' twice")
  903. }
  904. if (_t[e] = t, delete bt[e], wt.hasOwnProperty(e)) {
  905. var o = wt[e];
  906. delete wt[e], o.forEach((function (e) {
  907. e()
  908. }))
  909. }
  910. }
  911. function gn(e, t, r, n, o) {
  912. var a = un(r);
  913. An(e, {
  914. name: t = cn(t), fromWireType: function (e) {
  915. return !!e
  916. }, toWireType: function (e, t) {
  917. return t ? n : o
  918. }, argPackAdvance: 8, readValueFromPointer: function (e) {
  919. var n;
  920. if (1 === r) n = ze; else if (2 === r) n = Ye; else {
  921. if (4 !== r) throw new TypeError("Unknown boolean type size: " + t);
  922. n = $e
  923. }
  924. return this.fromWireType(n[e >> a])
  925. }, destructorFunction: null
  926. })
  927. }
  928. function vn(e) {
  929. if (!(this instanceof Cn)) return !1;
  930. if (!(e instanceof Cn)) return !1;
  931. for (var t = this.$$.ptrType.registeredClass, r = this.$$.ptr, n = e.$$.ptrType.registeredClass, o = e.$$.ptr; t.baseClass;) r = t.upcast(r), t = t.baseClass;
  932. for (; n.baseClass;) o = n.upcast(o), n = n.baseClass;
  933. return t === n && r === o
  934. }
  935. function En(e) {
  936. pn(e.$$.ptrType.registeredClass.name + " instance already deleted")
  937. }
  938. function yn(e) {
  939. }
  940. function wn(e) {
  941. e.count.value -= 1, 0 === e.count.value && function (e) {
  942. e.smartPtr ? e.smartPtrType.rawDestructor(e.smartPtr) : e.ptrType.registeredClass.rawDestructor(e.ptr)
  943. }(e)
  944. }
  945. function _n(e) {
  946. return "undefined" == typeof FinalizationGroup ? (_n = function (e) {
  947. return e
  948. }, e) : (Ct = new FinalizationGroup((function (e) {
  949. for (var t = e.next(); !t.done; t = e.next()) {
  950. var r = t.value;
  951. r.ptr ? wn(r) : console.warn("object already deleted: " + r.ptr)
  952. }
  953. })), yn = function (e) {
  954. Ct.unregister(e.$$)
  955. }, (_n = function (e) {
  956. return Ct.register(e, e.$$, e.$$), e
  957. })(e))
  958. }
  959. function bn() {
  960. if (this.$$.ptr || En(this), this.$$.preservePointerOnDelete) return this.$$.count.value += 1, this;
  961. var e, t = _n(Object.create(Object.getPrototypeOf(this), {
  962. $$: {
  963. value: (e = this.$$, {
  964. count: e.count,
  965. deleteScheduled: e.deleteScheduled,
  966. preservePointerOnDelete: e.preservePointerOnDelete,
  967. ptr: e.ptr,
  968. ptrType: e.ptrType,
  969. smartPtr: e.smartPtr,
  970. smartPtrType: e.smartPtrType
  971. })
  972. }
  973. }));
  974. return t.$$.count.value += 1, t.$$.deleteScheduled = !1, t
  975. }
  976. function kn() {
  977. this.$$.ptr || En(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && pn("Object already scheduled for deletion"), yn(this), wn(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0)
  978. }
  979. function Tn() {
  980. return !this.$$.ptr
  981. }
  982. function Dn() {
  983. for (; Pt.length;) {
  984. var e = Pt.pop();
  985. e.$$.deleteScheduled = !1, e.delete()
  986. }
  987. }
  988. function Sn() {
  989. return this.$$.ptr || En(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && pn("Object already scheduled for deletion"), Pt.push(this), 1 === Pt.length && Ot && Ot(Dn), this.$$.deleteScheduled = !0, this
  990. }
  991. function Cn() {
  992. }
  993. function On(e, t, r) {
  994. if (void 0 === e[t].overloadTable) {
  995. var n = e[t];
  996. e[t] = function () {
  997. return e[t].overloadTable.hasOwnProperty(arguments.length) || pn("Function '" + r + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + e[t].overloadTable + ")!"), e[t].overloadTable[arguments.length].apply(this, arguments)
  998. }, e[t].overloadTable = [], e[t].overloadTable[n.argCount] = n
  999. }
  1000. }
  1001. function Pn(e, t, r, n, o, a, i, s) {
  1002. this.name = e, this.constructor = t, this.instancePrototype = r, this.rawDestructor = n, this.baseClass = o, this.getActualType = a, this.upcast = i, this.downcast = s, this.pureVirtualFunctions = []
  1003. }
  1004. function xn(e, t, r) {
  1005. for (; t !== r;) t.upcast || pn("Expected null or instance of " + r.name + ", got an instance of " + t.name), e = t.upcast(e), t = t.baseClass;
  1006. return e
  1007. }
  1008. function Bn(e, t) {
  1009. if (null === t) return this.isReference && pn("null is not a valid " + this.name), 0;
  1010. t.$$ || pn('Cannot pass "' + lo(t) + '" as a ' + this.name), t.$$.ptr || pn("Cannot pass deleted object as a pointer of type " + this.name);
  1011. var r = t.$$.ptrType.registeredClass;
  1012. return xn(t.$$.ptr, r, this.registeredClass)
  1013. }
  1014. function Mn(e, t) {
  1015. var r;
  1016. if (null === t) return this.isReference && pn("null is not a valid " + this.name), this.isSmartPointer ? (r = this.rawConstructor(), null !== e && e.push(this.rawDestructor, r), r) : 0;
  1017. t.$$ || pn('Cannot pass "' + lo(t) + '" as a ' + this.name), t.$$.ptr || pn("Cannot pass deleted object as a pointer of type " + this.name), !this.isConst && t.$$.ptrType.isConst && pn("Cannot convert argument of type " + (t.$$.smartPtrType ? t.$$.smartPtrType.name : t.$$.ptrType.name) + " to parameter type " + this.name);
  1018. var n = t.$$.ptrType.registeredClass;
  1019. if (r = xn(t.$$.ptr, n, this.registeredClass), this.isSmartPointer) switch (void 0 === t.$$.smartPtr && pn("Passing raw pointer to smart pointer is illegal"), this.sharingPolicy) {
  1020. case 0:
  1021. t.$$.smartPtrType === this ? r = t.$$.smartPtr : pn("Cannot convert argument of type " + (t.$$.smartPtrType ? t.$$.smartPtrType.name : t.$$.ptrType.name) + " to parameter type " + this.name);
  1022. break;
  1023. case 1:
  1024. r = t.$$.smartPtr;
  1025. break;
  1026. case 2:
  1027. if (t.$$.smartPtrType === this) r = t.$$.smartPtr; else {
  1028. var o = t.clone();
  1029. r = this.rawShare(r, uo((function () {
  1030. o.delete()
  1031. }))), null !== e && e.push(this.rawDestructor, r)
  1032. }
  1033. break;
  1034. default:
  1035. pn("Unsupporting sharing policy")
  1036. }
  1037. return r
  1038. }
  1039. function Rn(e, t) {
  1040. if (null === t) return this.isReference && pn("null is not a valid " + this.name), 0;
  1041. t.$$ || pn('Cannot pass "' + lo(t) + '" as a ' + this.name), t.$$.ptr || pn("Cannot pass deleted object as a pointer of type " + this.name), t.$$.ptrType.isConst && pn("Cannot convert argument of type " + t.$$.ptrType.name + " to parameter type " + this.name);
  1042. var r = t.$$.ptrType.registeredClass;
  1043. return xn(t.$$.ptr, r, this.registeredClass)
  1044. }
  1045. function Ln(e) {
  1046. return this.fromWireType(Ve[e >> 2])
  1047. }
  1048. function In(e) {
  1049. return this.rawGetPointee && (e = this.rawGetPointee(e)), e
  1050. }
  1051. function Fn(e) {
  1052. this.rawDestructor && this.rawDestructor(e)
  1053. }
  1054. function Un(e) {
  1055. null !== e && e.delete()
  1056. }
  1057. function Nn(e, t, r) {
  1058. if (t === r) return e;
  1059. if (void 0 === r.baseClass) return null;
  1060. var n = Nn(e, t, r.baseClass);
  1061. return null === n ? null : r.downcast(n)
  1062. }
  1063. function jn() {
  1064. return Object.keys(Bt).length
  1065. }
  1066. function Gn() {
  1067. var e = [];
  1068. for (var t in Bt) Bt.hasOwnProperty(t) && e.push(Bt[t]);
  1069. return e
  1070. }
  1071. function zn(e) {
  1072. Ot = e, Pt.length && Ot && Ot(Dn)
  1073. }
  1074. function Wn(e, t) {
  1075. return t = function (e, t) {
  1076. for (void 0 === t && pn("ptr should not be undefined"); e.baseClass;) t = e.upcast(t), e = e.baseClass;
  1077. return t
  1078. }(e, t), Bt[t]
  1079. }
  1080. function Yn(e, t) {
  1081. return t.ptrType && t.ptr || hn("makeClassHandle requires ptr and ptrType"), !!t.smartPtrType !== !!t.smartPtr && hn("Both smartPtrType and smartPtr must be specified"), t.count = {value: 1}, _n(Object.create(e, {$$: {value: t}}))
  1082. }
  1083. function Hn(e) {
  1084. var t = this.getPointee(e);
  1085. if (!t) return this.destructor(e), null;
  1086. var r = Wn(this.registeredClass, t);
  1087. if (void 0 !== r) {
  1088. if (0 === r.$$.count.value) return r.$$.ptr = t, r.$$.smartPtr = e, r.clone();
  1089. var n = r.clone();
  1090. return this.destructor(e), n
  1091. }
  1092. function o() {
  1093. return this.isSmartPointer ? Yn(this.registeredClass.instancePrototype, {
  1094. ptrType: this.pointeeType,
  1095. ptr: t,
  1096. smartPtrType: this,
  1097. smartPtr: e
  1098. }) : Yn(this.registeredClass.instancePrototype, {ptrType: this, ptr: e})
  1099. }
  1100. var a, i = this.registeredClass.getActualType(t), s = xt[i];
  1101. if (!s) return o.call(this);
  1102. a = this.isConst ? s.constPointerType : s.pointerType;
  1103. var u = Nn(t, this.registeredClass, a.registeredClass);
  1104. return null === u ? o.call(this) : this.isSmartPointer ? Yn(a.registeredClass.instancePrototype, {
  1105. ptrType: a,
  1106. ptr: u,
  1107. smartPtrType: this,
  1108. smartPtr: e
  1109. }) : Yn(a.registeredClass.instancePrototype, {ptrType: a, ptr: u})
  1110. }
  1111. function $n(e, t, r, n, o, a, i, s, u, c, l) {
  1112. this.name = e, this.registeredClass = t, this.isReference = r, this.isConst = n, this.isSmartPointer = o, this.pointeeType = a, this.sharingPolicy = i, this.rawGetPointee = s, this.rawConstructor = u, this.rawShare = c, this.rawDestructor = l, o || void 0 !== t.baseClass ? this.toWireType = Mn : n ? (this.toWireType = Bn, this.destructorFunction = null) : (this.toWireType = Rn, this.destructorFunction = null)
  1113. }
  1114. function Vn(e, t, r) {
  1115. return -1 != e.indexOf("j") ? function (e, t, r) {
  1116. var n = Ee["dynCall_" + e];
  1117. return r && r.length ? n.apply(null, [t].concat(r)) : n.call(null, t)
  1118. }(e, t, r) : Ze.get(t).apply(null, r)
  1119. }
  1120. function Qn(e, t) {
  1121. var r, n, o, a = -1 != (e = cn(e)).indexOf("j") ? (r = e, n = t, o = [], function () {
  1122. o.length = arguments.length;
  1123. for (var e = 0; e < arguments.length; e++) o[e] = arguments[e];
  1124. return Vn(r, n, o)
  1125. }) : Ze.get(t);
  1126. return "function" != typeof a && pn("unknown function pointer with signature " + e + ": " + t), a
  1127. }
  1128. function Xn(e) {
  1129. var t = rr(e), r = cn(t);
  1130. return Kt(t), r
  1131. }
  1132. function qn(e, t) {
  1133. var r = [], n = {};
  1134. throw t.forEach((function e(t) {
  1135. n[t] || _t[t] || (bt[t] ? bt[t].forEach(e) : (r.push(t), n[t] = !0))
  1136. })), new Mt(e + ": " + r.map(Xn).join([", "]))
  1137. }
  1138. function Zn(e, t, r, n, o, a, i, s, u, c, l, d, f) {
  1139. l = cn(l), a = Qn(o, a), s && (s = Qn(i, s)), c && (c = Qn(u, c)), f = Qn(d, f);
  1140. var p = ln(l);
  1141. !function (e, t, r) {
  1142. Ee.hasOwnProperty(e) ? ((void 0 === r || void 0 !== Ee[e].overloadTable && void 0 !== Ee[e].overloadTable[r]) && pn("Cannot register public name '" + e + "' twice"), On(Ee, e, e), Ee.hasOwnProperty(r) && pn("Cannot register multiple overloads of a function with the same number of arguments (" + r + ")!"), Ee[e].overloadTable[r] = t) : (Ee[e] = t, void 0 !== r && (Ee[e].numArguments = r))
  1143. }(p, (function () {
  1144. qn("Cannot construct " + l + " due to unbound types", [n])
  1145. })), mn([e, t, r], n ? [n] : [], (function (t) {
  1146. var r, o;
  1147. t = t[0], o = n ? (r = t.registeredClass).instancePrototype : Cn.prototype;
  1148. var i = dn(p, (function () {
  1149. if (Object.getPrototypeOf(this) !== u) throw new Dt("Use 'new' to construct " + l);
  1150. if (void 0 === d.constructor_body) throw new Dt(l + " has no accessible constructor");
  1151. var e = d.constructor_body[arguments.length];
  1152. if (void 0 === e) throw new Dt("Tried to invoke ctor of " + l + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(d.constructor_body).toString() + ") parameters instead!");
  1153. return e.apply(this, arguments)
  1154. })), u = Object.create(o, {constructor: {value: i}});
  1155. i.prototype = u;
  1156. var d = new Pn(l, i, u, f, r, a, s, c), h = new $n(l, d, !0, !1, !1), m = new $n(l + "*", d, !1, !1, !1),
  1157. A = new $n(l + " const*", d, !1, !0, !1);
  1158. return xt[e] = {pointerType: m, constPointerType: A}, function (e, t, r) {
  1159. Ee.hasOwnProperty(e) || hn("Replacing nonexistant public symbol"), void 0 !== Ee[e].overloadTable && void 0 !== r ? Ee[e].overloadTable[r] = t : (Ee[e] = t, Ee[e].argCount = r)
  1160. }(p, i), [h, m, A]
  1161. }))
  1162. }
  1163. function Kn(e, t) {
  1164. for (var r = [], n = 0; n < e; n++) r.push($e[(t >> 2) + n]);
  1165. return r
  1166. }
  1167. function Jn(e) {
  1168. for (; e.length;) {
  1169. var t = e.pop();
  1170. e.pop()(t)
  1171. }
  1172. }
  1173. function eo(e, t, r, n, o, a) {
  1174. Or(t > 0);
  1175. var i = Kn(t, r);
  1176. o = Qn(n, o);
  1177. var s = [a], u = [];
  1178. mn([], [e], (function (e) {
  1179. var r = "constructor " + (e = e[0]).name;
  1180. if (void 0 === e.registeredClass.constructor_body && (e.registeredClass.constructor_body = []), void 0 !== e.registeredClass.constructor_body[t - 1]) throw new Dt("Cannot register multiple constructors with identical number of parameters (" + (t - 1) + ") for class '" + e.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
  1181. return e.registeredClass.constructor_body[t - 1] = function () {
  1182. qn("Cannot construct " + e.name + " due to unbound types", i)
  1183. }, mn([], i, (function (n) {
  1184. return e.registeredClass.constructor_body[t - 1] = function () {
  1185. arguments.length !== t - 1 && pn(r + " called with " + arguments.length + " arguments, expected " + (t - 1)), u.length = 0, s.length = t;
  1186. for (var e = 1; e < t; ++e) s[e] = n[e].toWireType(u, arguments[e - 1]);
  1187. var a = o.apply(null, s);
  1188. return Jn(u), n[0].fromWireType(a)
  1189. }, []
  1190. })), []
  1191. }))
  1192. }
  1193. function to(e, t) {
  1194. if (!(e instanceof Function)) throw new TypeError("new_ called with constructor type " + typeof e + " which is not a function");
  1195. var r = dn(e.name || "unknownFunctionName", (function () {
  1196. }));
  1197. r.prototype = e.prototype;
  1198. var n = new r, o = e.apply(n, t);
  1199. return o instanceof Object ? o : n
  1200. }
  1201. function ro(e, t, r, n, o, a, i, s) {
  1202. var u = Kn(r, n);
  1203. t = cn(t), a = Qn(o, a), mn([], [e], (function (e) {
  1204. var n = (e = e[0]).name + "." + t;
  1205. function o() {
  1206. qn("Cannot call " + n + " due to unbound types", u)
  1207. }
  1208. s && e.registeredClass.pureVirtualFunctions.push(t);
  1209. var c = e.registeredClass.instancePrototype, l = c[t];
  1210. return void 0 === l || void 0 === l.overloadTable && l.className !== e.name && l.argCount === r - 2 ? (o.argCount = r - 2, o.className = e.name, c[t] = o) : (On(c, t, n), c[t].overloadTable[r - 2] = o), mn([], u, (function (o) {
  1211. var s = function (e, t, r, n, o) {
  1212. var a = t.length;
  1213. a < 2 && pn("argTypes array size mismatch! Must at least get return value and 'this' types!");
  1214. for (var i = null !== t[1] && null !== r, s = !1, u = 1; u < t.length; ++u) if (null !== t[u] && void 0 === t[u].destructorFunction) {
  1215. s = !0;
  1216. break
  1217. }
  1218. var c = "void" !== t[0].name, l = "", d = "";
  1219. for (u = 0; u < a - 2; ++u) l += (0 !== u ? ", " : "") + "arg" + u, d += (0 !== u ? ", " : "") + "arg" + u + "Wired";
  1220. var f = "return function " + ln(e) + "(" + l + ") {\nif (arguments.length !== " + (a - 2) + ") {\nthrowBindingError('function " + e + " called with ' + arguments.length + ' arguments, expected " + (a - 2) + " args!');\n}\n";
  1221. s && (f += "var destructors = [];\n");
  1222. var p = s ? "destructors" : "null",
  1223. h = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"],
  1224. m = [pn, n, o, Jn, t[0], t[1]];
  1225. for (i && (f += "var thisWired = classParam.toWireType(" + p + ", this);\n"), u = 0; u < a - 2; ++u) f += "var arg" + u + "Wired = argType" + u + ".toWireType(" + p + ", arg" + u + "); // " + t[u + 2].name + "\n", h.push("argType" + u), m.push(t[u + 2]);
  1226. if (i && (d = "thisWired" + (d.length > 0 ? ", " : "") + d), f += (c ? "var rv = " : "") + "invoker(fn" + (d.length > 0 ? ", " : "") + d + ");\n", s) f += "runDestructors(destructors);\n"; else for (u = i ? 1 : 2; u < t.length; ++u) {
  1227. var A = 1 === u ? "thisWired" : "arg" + (u - 2) + "Wired";
  1228. null !== t[u].destructorFunction && (f += A + "_dtor(" + A + "); // " + t[u].name + "\n", h.push(A + "_dtor"), m.push(t[u].destructorFunction))
  1229. }
  1230. return c && (f += "var ret = retType.fromWireType(rv);\nreturn ret;\n"), f += "}\n", h.push(f), to(Function, h).apply(null, m)
  1231. }(n, o, e, a, i);
  1232. return void 0 === c[t].overloadTable ? (s.argCount = r - 2, c[t] = s) : c[t].overloadTable[r - 2] = s, []
  1233. })), []
  1234. }))
  1235. }
  1236. function no(e, t, r) {
  1237. return e instanceof Object || pn(r + ' with invalid "this": ' + e), e instanceof t.registeredClass.constructor || pn(r + ' incompatible with "this" of type ' + e.constructor.name), e.$$.ptr || pn("cannot call emscripten binding method " + r + " on deleted object"), xn(e.$$.ptr, e.$$.ptrType.registeredClass, t.registeredClass)
  1238. }
  1239. function oo(e, t, r, n, o, a, i, s, u, c) {
  1240. t = cn(t), o = Qn(n, o), mn([], [e], (function (e) {
  1241. var n = (e = e[0]).name + "." + t, l = {
  1242. get: function () {
  1243. qn("Cannot access " + n + " due to unbound types", [r, i])
  1244. }, enumerable: !0, configurable: !0
  1245. };
  1246. return l.set = u ? function () {
  1247. qn("Cannot access " + n + " due to unbound types", [r, i])
  1248. } : function (e) {
  1249. pn(n + " is a read-only property")
  1250. }, Object.defineProperty(e.registeredClass.instancePrototype, t, l), mn([], u ? [r, i] : [r], (function (r) {
  1251. var i = r[0], l = {
  1252. get: function () {
  1253. var t = no(this, e, n + " getter");
  1254. return i.fromWireType(o(a, t))
  1255. }, enumerable: !0
  1256. };
  1257. if (u) {
  1258. u = Qn(s, u);
  1259. var d = r[1];
  1260. l.set = function (t) {
  1261. var r = no(this, e, n + " setter"), o = [];
  1262. u(c, r, d.toWireType(o, t)), Jn(o)
  1263. }
  1264. }
  1265. return Object.defineProperty(e.registeredClass.instancePrototype, t, l), []
  1266. })), []
  1267. }))
  1268. }
  1269. function ao(e) {
  1270. e > 4 && 0 == --Lt[e].refcount && (Lt[e] = void 0, Rt.push(e))
  1271. }
  1272. function io() {
  1273. for (var e = 0, t = 5; t < Lt.length; ++t) void 0 !== Lt[t] && ++e;
  1274. return e
  1275. }
  1276. function so() {
  1277. for (var e = 5; e < Lt.length; ++e) if (void 0 !== Lt[e]) return Lt[e];
  1278. return null
  1279. }
  1280. function uo(e) {
  1281. switch (e) {
  1282. case void 0:
  1283. return 1;
  1284. case null:
  1285. return 2;
  1286. case!0:
  1287. return 3;
  1288. case!1:
  1289. return 4;
  1290. default:
  1291. var t = Rt.length ? Rt.pop() : Lt.length;
  1292. return Lt[t] = {refcount: 1, value: e}, t
  1293. }
  1294. }
  1295. function co(e, t) {
  1296. An(e, {
  1297. name: t = cn(t), fromWireType: function (e) {
  1298. var t = Lt[e].value;
  1299. return ao(e), t
  1300. }, toWireType: function (e, t) {
  1301. return uo(t)
  1302. }, argPackAdvance: 8, readValueFromPointer: Ln, destructorFunction: null
  1303. })
  1304. }
  1305. function lo(e) {
  1306. if (null === e) return "null";
  1307. var t = typeof e;
  1308. return "object" === t || "array" === t || "function" === t ? e.toString() : "" + e
  1309. }
  1310. function fo(e, t) {
  1311. switch (t) {
  1312. case 2:
  1313. return function (e) {
  1314. return this.fromWireType(Qe[e >> 2])
  1315. };
  1316. case 3:
  1317. return function (e) {
  1318. return this.fromWireType(Xe[e >> 3])
  1319. };
  1320. default:
  1321. throw new TypeError("Unknown float type: " + e)
  1322. }
  1323. }
  1324. function po(e, t, r) {
  1325. var n = un(r);
  1326. An(e, {
  1327. name: t = cn(t), fromWireType: function (e) {
  1328. return e
  1329. }, toWireType: function (e, t) {
  1330. if ("number" != typeof t && "boolean" != typeof t) throw new TypeError('Cannot convert "' + lo(t) + '" to ' + this.name);
  1331. return t
  1332. }, argPackAdvance: 8, readValueFromPointer: fo(t, n), destructorFunction: null
  1333. })
  1334. }
  1335. function ho(e, t, r) {
  1336. switch (t) {
  1337. case 0:
  1338. return r ? function (e) {
  1339. return ze[e]
  1340. } : function (e) {
  1341. return We[e]
  1342. };
  1343. case 1:
  1344. return r ? function (e) {
  1345. return Ye[e >> 1]
  1346. } : function (e) {
  1347. return He[e >> 1]
  1348. };
  1349. case 2:
  1350. return r ? function (e) {
  1351. return $e[e >> 2]
  1352. } : function (e) {
  1353. return Ve[e >> 2]
  1354. };
  1355. default:
  1356. throw new TypeError("Unknown integer type: " + e)
  1357. }
  1358. }
  1359. function mo(e, t, r, n, o) {
  1360. t = cn(t), -1 === o && (o = 4294967295);
  1361. var a = un(r), i = function (e) {
  1362. return e
  1363. };
  1364. if (0 === n) {
  1365. var s = 32 - 8 * r;
  1366. i = function (e) {
  1367. return e << s >>> s
  1368. }
  1369. }
  1370. var u = -1 != t.indexOf("unsigned");
  1371. An(e, {
  1372. name: t, fromWireType: i, toWireType: function (e, r) {
  1373. if ("number" != typeof r && "boolean" != typeof r) throw new TypeError('Cannot convert "' + lo(r) + '" to ' + this.name);
  1374. if (r < n || r > o) throw new TypeError('Passing a number "' + lo(r) + '" from JS side to C/C++ side to an argument of type "' + t + '", which is outside the valid range [' + n + ", " + o + "]!");
  1375. return u ? r >>> 0 : 0 | r
  1376. }, argPackAdvance: 8, readValueFromPointer: ho(t, a, 0 !== n), destructorFunction: null
  1377. })
  1378. }
  1379. function Ao(e, t, r) {
  1380. var n = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][t];
  1381. function o(e) {
  1382. var t = Ve, r = t[e >>= 2], o = t[e + 1];
  1383. return new n(Ge, o, r)
  1384. }
  1385. An(e, {
  1386. name: r = cn(r),
  1387. fromWireType: o,
  1388. argPackAdvance: 8,
  1389. readValueFromPointer: o
  1390. }, {ignoreDuplicateRegistrations: !0})
  1391. }
  1392. function go(e, t) {
  1393. var r = "std::string" === (t = cn(t));
  1394. An(e, {
  1395. name: t, fromWireType: function (e) {
  1396. var t, n = Ve[e >> 2];
  1397. if (r) for (var o = e + 4, a = 0; a <= n; ++a) {
  1398. var i = e + 4 + a;
  1399. if (a == n || 0 == We[i]) {
  1400. var s = xr(o, i - o);
  1401. void 0 === t ? t = s : (t += String.fromCharCode(0), t += s), o = i + 1
  1402. }
  1403. } else {
  1404. var u = new Array(n);
  1405. for (a = 0; a < n; ++a) u[a] = String.fromCharCode(We[e + 4 + a]);
  1406. t = u.join("")
  1407. }
  1408. return Kt(e), t
  1409. }, toWireType: function (e, t) {
  1410. t instanceof ArrayBuffer && (t = new Uint8Array(t));
  1411. var n = "string" == typeof t;
  1412. n || t instanceof Uint8Array || t instanceof Uint8ClampedArray || t instanceof Int8Array || pn("Cannot pass non-string to std::string");
  1413. var o = (r && n ? function () {
  1414. return Rr(t)
  1415. } : function () {
  1416. return t.length
  1417. })(), a = Jt(4 + o + 1);
  1418. if (Ve[a >> 2] = o, r && n) Mr(t, a + 4, o + 1); else if (n) for (var i = 0; i < o; ++i) {
  1419. var s = t.charCodeAt(i);
  1420. s > 255 && (Kt(a), pn("String has UTF-16 code units that do not fit in 8 bits")), We[a + 4 + i] = s
  1421. } else for (i = 0; i < o; ++i) We[a + 4 + i] = t[i];
  1422. return null !== e && e.push(Kt, a), a
  1423. }, argPackAdvance: 8, readValueFromPointer: Ln, destructorFunction: function (e) {
  1424. Kt(e)
  1425. }
  1426. })
  1427. }
  1428. function vo(e, t, r) {
  1429. var n, o, a, i, s;
  1430. r = cn(r), 2 === t ? (n = Lr, o = Ir, i = Fr, a = function () {
  1431. return He
  1432. }, s = 1) : 4 === t && (n = Ur, o = Nr, i = jr, a = function () {
  1433. return Ve
  1434. }, s = 2), An(e, {
  1435. name: r, fromWireType: function (e) {
  1436. for (var r, o = Ve[e >> 2], i = a(), u = e + 4, c = 0; c <= o; ++c) {
  1437. var l = e + 4 + c * t;
  1438. if (c == o || 0 == i[l >> s]) {
  1439. var d = n(u, l - u);
  1440. void 0 === r ? r = d : (r += String.fromCharCode(0), r += d), u = l + t
  1441. }
  1442. }
  1443. return Kt(e), r
  1444. }, toWireType: function (e, n) {
  1445. "string" != typeof n && pn("Cannot pass non-string to C++ string type " + r);
  1446. var a = i(n), u = Jt(4 + a + t);
  1447. return Ve[u >> 2] = a >> s, o(n, u + 4, a + t), null !== e && e.push(Kt, u), u
  1448. }, argPackAdvance: 8, readValueFromPointer: Ln, destructorFunction: function (e) {
  1449. Kt(e)
  1450. }
  1451. })
  1452. }
  1453. function Eo(e, t) {
  1454. An(e, {
  1455. isVoid: !0, name: t = cn(t), argPackAdvance: 0, fromWireType: function () {
  1456. }, toWireType: function (e, t) {
  1457. }
  1458. })
  1459. }
  1460. function yo(e, t) {
  1461. if (e == t) postMessage({cmd: "processQueuedMainThreadWork"}); else if (Se) postMessage({
  1462. targetThread: e,
  1463. cmd: "processThreadQueue"
  1464. }); else {
  1465. var r = ft.pthreads[e], n = r && r.worker;
  1466. if (!n) return;
  1467. n.postMessage({cmd: "processThreadQueue"})
  1468. }
  1469. return 1
  1470. }
  1471. function wo(e) {
  1472. return e || pn("Cannot use deleted val. handle = " + e), Lt[e].value
  1473. }
  1474. function _o(e, t) {
  1475. var r = _t[e];
  1476. return void 0 === r && pn(t + " has unknown type " + Xn(e)), r
  1477. }
  1478. function bo(e, t, r) {
  1479. e = wo(e), t = _o(t, "emval::as");
  1480. var n = [], o = uo(n);
  1481. return $e[r >> 2] = o, t.toWireType(n, e)
  1482. }
  1483. function ko(e, t, r, n) {
  1484. var o, a;
  1485. (e = Ft[e])(t = wo(t), r = void 0 === (a = It[o = r]) ? cn(o) : a, null, n)
  1486. }
  1487. function To(e, t) {
  1488. for (var r = function (e, t) {
  1489. for (var r = new Array(e), n = 0; n < e; ++n) r[n] = _o($e[(t >> 2) + n], "parameter " + n);
  1490. return r
  1491. }(e, t), n = r[0], o = n.name + "_$" + r.slice(1).map((function (e) {
  1492. return e.name
  1493. })).join("_") + "$", a = ["retType"], i = [n], s = "", u = 0; u < e - 1; ++u) s += (0 !== u ? ", " : "") + "arg" + u, a.push("argType" + u), i.push(r[1 + u]);
  1494. var c = "return function " + ln("methodCaller_" + o) + "(handle, name, destructors, args) {\n", l = 0;
  1495. for (u = 0; u < e - 1; ++u) c += " var arg" + u + " = argType" + u + ".readValueFromPointer(args" + (l ? "+" + l : "") + ");\n", l += r[u + 1].argPackAdvance;
  1496. c += " var rv = handle[name](" + s + ");\n";
  1497. for (u = 0; u < e - 1; ++u) r[u + 1].deleteObject && (c += " argType" + u + ".deleteObject(arg" + u + ");\n");
  1498. n.isVoid || (c += " return retType.toWireType(destructors, rv);\n"), c += "};\n", a.push(c);
  1499. var d, f, p = to(Function, a).apply(null, i);
  1500. return d = p, f = Ft.length, Ft.push(d), f
  1501. }
  1502. function Do(e) {
  1503. e > 4 && (Lt[e].refcount += 1)
  1504. }
  1505. function So(e) {
  1506. Jn(Lt[e].value), ao(e)
  1507. }
  1508. function Co(e, t) {
  1509. return uo((e = _o(e, "_emval_take_value")).readValueFromPointer(t))
  1510. }
  1511. function Oo() {
  1512. Yr()
  1513. }
  1514. function Po() {
  1515. return void 0 === Po.start && (Po.start = Date.now()), 1e3 * (Date.now() - Po.start) | 0
  1516. }
  1517. function xo(e, t, r) {
  1518. var n = function (e, t) {
  1519. var r;
  1520. Nt.length = 0, t >>= 2;
  1521. for (; r = We[e++];) {
  1522. var n = r < 105;
  1523. n && 1 & t && t++, Nt.push(n ? Xe[t++ >> 1] : $e[t]), ++t
  1524. }
  1525. return Nt
  1526. }(t, r);
  1527. return lt[e].apply(null, n)
  1528. }
  1529. function Bo() {
  1530. De || Cr("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")
  1531. }
  1532. function Mo(e, t) {
  1533. }
  1534. function Ro(e, t, r) {
  1535. if (e <= 0 || e > ze.length || !0 & e) return -28;
  1536. if (Te) {
  1537. if (Atomics.load($e, e >> 2) != t) return -6;
  1538. var n = performance.now(), o = n + r;
  1539. for (Atomics.exchange($e, br >> 2, e); ;) {
  1540. if ((n = performance.now()) > o) return Atomics.exchange($e, br >> 2, 0), -73;
  1541. if (0 == Atomics.exchange($e, br >> 2, 0)) break;
  1542. if (lr(), Atomics.load($e, e >> 2) != t) return -6;
  1543. Atomics.exchange($e, br >> 2, e)
  1544. }
  1545. return 0
  1546. }
  1547. var a = Atomics.wait($e, e >> 2, t, r);
  1548. if ("timed-out" === a) return -73;
  1549. if ("not-equal" === a) return -6;
  1550. if ("ok" === a) return 0;
  1551. throw"Atomics.wait returned an unexpected value " + a
  1552. }
  1553. function Lo(e, t) {
  1554. return (e >>> 0) + 4294967296 * t
  1555. }
  1556. function Io(e, t) {
  1557. if (e <= 0) return e;
  1558. var r = t <= 32 ? Math.abs(1 << t - 1) : Math.pow(2, t - 1);
  1559. return e >= r && (t <= 32 || e > r) && (e = -2 * r + e), e
  1560. }
  1561. function Fo(e, t) {
  1562. return e >= 0 ? e : t <= 32 ? 2 * Math.abs(1 << t - 1) + e : Math.pow(2, t) + e
  1563. }
  1564. function Uo(e) {
  1565. if (!e || !e.callee || !e.callee.name) return [null, "", ""];
  1566. e.callee.toString();
  1567. var t = e.callee.name, r = "(", n = !0;
  1568. for (var o in e) {
  1569. var a = e[o];
  1570. n || (r += ", "), n = !1, r += "number" == typeof a || "string" == typeof a ? a : "(" + typeof a + ")"
  1571. }
  1572. r += ")";
  1573. var i = e.callee.caller;
  1574. return n && (r = ""), [e = i ? i.arguments : [], t, r]
  1575. }
  1576. function No(e, t) {
  1577. 24 & e && (t = t.replace(/\s+$/, ""), t += (t.length > 0 ? "\n" : "") + function (e) {
  1578. var t = tn(), r = t.lastIndexOf("_emscripten_log"), n = t.lastIndexOf("_emscripten_get_callstack"),
  1579. o = t.indexOf("\n", Math.max(r, n)) + 1;
  1580. t = t.slice(o), 32 & e && Cr("EM_LOG_DEMANGLE is deprecated; ignoring"), 8 & e && "undefined" == typeof emscripten_source_map && (Cr('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with "--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js" linker flag to add source map loading to code.'), e ^= 8, e |= 16);
  1581. var a = null;
  1582. if (128 & e) for (a = Uo(arguments); a[1].indexOf("_emscripten_") >= 0;) a = Uo(a[0]);
  1583. var i = t.split("\n");
  1584. t = "";
  1585. var s = new RegExp("\\s*(.*?)@(.*?):([0-9]+):([0-9]+)"), u = new RegExp("\\s*(.*?)@(.*):(.*)(:(.*))?"),
  1586. c = new RegExp("\\s*at (.*?) \\((.*):(.*):(.*)\\)");
  1587. for (var l in i) {
  1588. var d = i[l], f = "", p = "", h = 0, m = 0, A = c.exec(d);
  1589. if (A && 5 == A.length) f = A[1], p = A[2], h = A[3], m = A[4]; else {
  1590. if ((A = s.exec(d)) || (A = u.exec(d)), !(A && A.length >= 4)) {
  1591. t += d + "\n";
  1592. continue
  1593. }
  1594. f = A[1], p = A[2], h = A[3], m = 0 | A[4]
  1595. }
  1596. var g = !1;
  1597. if (8 & e) {
  1598. var v = emscripten_source_map.originalPositionFor({line: h, column: m});
  1599. (g = v && v.source) && (64 & e && (v.source = v.source.substring(v.source.replace(/\\/g, "/").lastIndexOf("/") + 1)), t += " at " + f + " (" + v.source + ":" + v.line + ":" + v.column + ")\n")
  1600. }
  1601. (16 & e || !g) && (64 & e && (p = p.substring(p.replace(/\\/g, "/").lastIndexOf("/") + 1)), t += (g ? " = " + f : " at " + f) + " (" + p + ":" + h + ":" + m + ")\n"), 128 & e && a[0] && (a[1] == f && a[2].length > 0 && (t = t.replace(/\s+$/, ""), t += " with values: " + a[1] + a[2] + "\n"), a = Uo(a[0]))
  1602. }
  1603. return t.replace(/\s+$/, "")
  1604. }(e)), 1 & e ? 4 & e ? console.error(t) : 2 & e ? console.warn(t) : 512 & e ? console.info(t) : 256 & e ? console.debug(t) : console.log(t) : 6 & e ? Me(t) : Be(t)
  1605. }
  1606. function jo(e, t, r) {
  1607. No(e, Pr(function (e, t) {
  1608. var r = e, n = t;
  1609. function o(e) {
  1610. var t;
  1611. return n = function (e, t) {
  1612. return "double" !== t && "i64" !== t || 7 & e && (e += 4), e
  1613. }(n, e), "double" === e ? (t = Xe[n >> 3], n += 8) : "i64" == e ? (t = [$e[n >> 2], $e[n + 4 >> 2]], n += 8) : (e = "i32", t = $e[n >> 2], n += 4), t
  1614. }
  1615. for (var a, i, s, u, c = []; ;) {
  1616. var l = r;
  1617. if (0 === (a = ze[r >> 0])) break;
  1618. if (i = ze[r + 1 >> 0], 37 == a) {
  1619. var d = !1, f = !1, p = !1, h = !1, m = !1;
  1620. e:for (; ;) {
  1621. switch (i) {
  1622. case 43:
  1623. d = !0;
  1624. break;
  1625. case 45:
  1626. f = !0;
  1627. break;
  1628. case 35:
  1629. p = !0;
  1630. break;
  1631. case 48:
  1632. if (h) break e;
  1633. h = !0;
  1634. break;
  1635. case 32:
  1636. m = !0;
  1637. break;
  1638. default:
  1639. break e
  1640. }
  1641. r++, i = ze[r + 1 >> 0]
  1642. }
  1643. var A = 0;
  1644. if (42 == i) A = o("i32"), r++, i = ze[r + 1 >> 0]; else for (; i >= 48 && i <= 57;) A = 10 * A + (i - 48), r++, i = ze[r + 1 >> 0];
  1645. var g, v = !1, E = -1;
  1646. if (46 == i) {
  1647. if (E = 0, v = !0, r++, 42 == (i = ze[r + 1 >> 0])) E = o("i32"), r++; else for (; ;) {
  1648. var y = ze[r + 1 >> 0];
  1649. if (y < 48 || y > 57) break;
  1650. E = 10 * E + (y - 48), r++
  1651. }
  1652. i = ze[r + 1 >> 0]
  1653. }
  1654. switch (E < 0 && (E = 6, v = !1), String.fromCharCode(i)) {
  1655. case"h":
  1656. 104 == ze[r + 2 >> 0] ? (r++, g = 1) : g = 2;
  1657. break;
  1658. case"l":
  1659. 108 == ze[r + 2 >> 0] ? (r++, g = 8) : g = 4;
  1660. break;
  1661. case"L":
  1662. case"q":
  1663. case"j":
  1664. g = 8;
  1665. break;
  1666. case"z":
  1667. case"t":
  1668. case"I":
  1669. g = 4;
  1670. break;
  1671. default:
  1672. g = null
  1673. }
  1674. switch (g && r++, i = ze[r + 1 >> 0], String.fromCharCode(i)) {
  1675. case"d":
  1676. case"i":
  1677. case"u":
  1678. case"o":
  1679. case"x":
  1680. case"X":
  1681. case"p":
  1682. var w = 100 == i || 105 == i;
  1683. s = o("i" + 8 * (g = g || 4)), 8 == g && (s = 117 == i ? (s[0] >>> 0) + 4294967296 * (s[1] >>> 0) : Lo(s[0], s[1])), g <= 4 && (s = (w ? Io : Fo)(s & Math.pow(256, g) - 1, 8 * g));
  1684. var _ = Math.abs(s), b = "";
  1685. if (100 == i || 105 == i) D = Io(s, 8 * g).toString(10); else if (117 == i) D = Fo(s, 8 * g).toString(10), s = Math.abs(s); else if (111 == i) D = (p ? "0" : "") + _.toString(8); else if (120 == i || 88 == i) {
  1686. if (b = p && 0 != s ? "0x" : "", s < 0) {
  1687. s = -s, D = (_ - 1).toString(16);
  1688. for (var k = [], T = 0; T < D.length; T++) k.push((15 - parseInt(D[T], 16)).toString(16));
  1689. for (D = k.join(""); D.length < 2 * g;) D = "f" + D
  1690. } else D = _.toString(16);
  1691. 88 == i && (b = b.toUpperCase(), D = D.toUpperCase())
  1692. } else 112 == i && (0 === _ ? D = "(nil)" : (b = "0x", D = _.toString(16)));
  1693. if (v) for (; D.length < E;) D = "0" + D;
  1694. for (s >= 0 && (d ? b = "+" + b : m && (b = " " + b)), "-" == D.charAt(0) && (b = "-" + b, D = D.substr(1)); b.length + D.length < A;) f ? D += " " : h ? D = "0" + D : b = " " + b;
  1695. (D = b + D).split("").forEach((function (e) {
  1696. c.push(e.charCodeAt(0))
  1697. }));
  1698. break;
  1699. case"f":
  1700. case"F":
  1701. case"e":
  1702. case"E":
  1703. case"g":
  1704. case"G":
  1705. var D;
  1706. if (s = o("double"), isNaN(s)) D = "nan", h = !1; else if (isFinite(s)) {
  1707. var S = !1, C = Math.min(E, 20);
  1708. if (103 == i || 71 == i) {
  1709. S = !0, E = E || 1;
  1710. var O = parseInt(s.toExponential(C).split("e")[1], 10);
  1711. E > O && O >= -4 ? (i = (103 == i ? "f" : "F").charCodeAt(0), E -= O + 1) : (i = (103 == i ? "e" : "E").charCodeAt(0), E--), C = Math.min(E, 20)
  1712. }
  1713. 101 == i || 69 == i ? (D = s.toExponential(C), /[eE][-+]\d$/.test(D) && (D = D.slice(0, -1) + "0" + D.slice(-1))) : 102 != i && 70 != i || (D = s.toFixed(C), 0 === s && ((u = s) < 0 || 0 === u && 1 / u == -1 / 0) && (D = "-" + D));
  1714. var P = D.split("e");
  1715. if (S && !p) for (; P[0].length > 1 && -1 != P[0].indexOf(".") && ("0" == P[0].slice(-1) || "." == P[0].slice(-1));) P[0] = P[0].slice(0, -1); else for (p && -1 == D.indexOf(".") && (P[0] += "."); E > C++;) P[0] += "0";
  1716. D = P[0] + (P.length > 1 ? "e" + P[1] : ""), 69 == i && (D = D.toUpperCase()), s >= 0 && (d ? D = "+" + D : m && (D = " " + D))
  1717. } else D = (s < 0 ? "-" : "") + "inf", h = !1;
  1718. for (; D.length < A;) f ? D += " " : D = !h || "-" != D[0] && "+" != D[0] ? (h ? "0" : " ") + D : D[0] + "0" + D.slice(1);
  1719. i < 97 && (D = D.toUpperCase()), D.split("").forEach((function (e) {
  1720. c.push(e.charCodeAt(0))
  1721. }));
  1722. break;
  1723. case"s":
  1724. var x = o("i8*"), B = x ? er(x) : "(null)".length;
  1725. if (v && (B = Math.min(B, E)), !f) for (; B < A--;) c.push(32);
  1726. if (x) for (T = 0; T < B; T++) c.push(We[x++ >> 0]); else c = c.concat(ga("(null)".substr(0, B), !0));
  1727. if (f) for (; B < A--;) c.push(32);
  1728. break;
  1729. case"c":
  1730. for (f && c.push(o("i8")); --A > 0;) c.push(32);
  1731. f || c.push(o("i8"));
  1732. break;
  1733. case"n":
  1734. var M = o("i32*");
  1735. $e[M >> 2] = c.length;
  1736. break;
  1737. case"%":
  1738. c.push(a);
  1739. break;
  1740. default:
  1741. for (T = l; T < r + 2; T++) c.push(ze[T >> 0])
  1742. }
  1743. r += 2
  1744. } else c.push(a), r += 1
  1745. }
  1746. return c
  1747. }(t, r), 0))
  1748. }
  1749. function Go(e, t, r) {
  1750. We.copyWithin(e, t, t + r)
  1751. }
  1752. function zo(e, t) {
  1753. for (var r = arguments.length - 2, n = gr(), o = r, a = Er(8 * o), i = a >> 3, s = 0; s < r; s++) {
  1754. var u = arguments[2 + s];
  1755. Xe[i + s] = u
  1756. }
  1757. var c = hr(e, o, a, t);
  1758. return vr(n), c
  1759. }
  1760. function Wo(e, t, r) {
  1761. Ut.length = t;
  1762. for (var n = r >> 3, o = 0; o < t; o++) Ut[o] = Xe[n + o];
  1763. return (e < 0 ? lt[-e - 1] : Xt[e]).apply(null, Ut)
  1764. }
  1765. function Yo(e) {
  1766. Yr("OOM")
  1767. }
  1768. function Ho(e, t, r, n) {
  1769. var o, a, i, s = gr(), u = Er(12), c = 0;
  1770. t && (a = Rr(o = t) + 1, i = Jt(a), Mr(o, i, a), c = i), $e[u >> 2] = c, $e[u + 4 >> 2] = r, $e[u + 8 >> 2] = n, mr(0, e, 657457152, 0, c, u), vr(s)
  1771. }
  1772. function $o(e) {
  1773. var t;
  1774. return e = (t = e) > 2 ? xr(t) : t, Gt[e] || ("undefined" != typeof document ? document.querySelector(e) : void 0)
  1775. }
  1776. function Vo(e) {
  1777. return $o(e)
  1778. }
  1779. function Qo(e, t, r) {
  1780. var n = Vo(e);
  1781. if (!n) return -4;
  1782. if (n.canvasSharedPtr && ($e[n.canvasSharedPtr >> 2] = t, $e[n.canvasSharedPtr + 4 >> 2] = r), !n.offscreenCanvas && n.controlTransferredOffscreen) return n.canvasSharedPtr ? (function (e, t, r, n) {
  1783. Ho(e, t = t ? xr(t) : "", r, n)
  1784. }($e[n.canvasSharedPtr + 8 >> 2], e, t, r), 1) : -4;
  1785. n.offscreenCanvas && (n = n.offscreenCanvas);
  1786. var o = !1;
  1787. if (n.GLctxObject && n.GLctxObject.GLctx) {
  1788. var a = n.GLctxObject.GLctx.getParameter(2978);
  1789. o = 0 === a[0] && 0 === a[1] && a[2] === n.width && a[3] === n.height
  1790. }
  1791. return n.width = t, n.height = r, o && n.GLctxObject.GLctx.viewport(0, 0, t, r), 0
  1792. }
  1793. function Xo(e, t, r) {
  1794. return Se ? zo(3, 1, e, t, r) : Qo(e, t, r)
  1795. }
  1796. function qo(e, t, r) {
  1797. return Vo(e) ? Qo(e, t, r) : Xo(e, t, r)
  1798. }
  1799. function Zo(e) {
  1800. }
  1801. function Ko(e, t) {
  1802. return r = e, o = $e[(n = t >> 2) + 6], a = {
  1803. alpha: !!$e[n + 0],
  1804. depth: !!$e[n + 1],
  1805. stencil: !!$e[n + 2],
  1806. antialias: !!$e[n + 3],
  1807. premultipliedAlpha: !!$e[n + 4],
  1808. preserveDrawingBuffer: !!$e[n + 5],
  1809. powerPreference: Wt[o],
  1810. failIfMajorPerformanceCaveat: !!$e[n + 7],
  1811. majorVersion: $e[n + 8],
  1812. minorVersion: $e[n + 9],
  1813. enableExtensionsByDefault: $e[n + 10],
  1814. explicitSwapControl: $e[n + 11],
  1815. proxyContextToMainThread: $e[n + 12],
  1816. renderViaOffscreenBackBuffer: $e[n + 13]
  1817. }, (i = Vo(r)) ? a.explicitSwapControl ? 0 : zt.createContext(i, a) : 0;
  1818. var r, n, o, a, i
  1819. }
  1820. function Jo() {
  1821. if (!Jo.strings) {
  1822. var e = {
  1823. USER: "web_user",
  1824. LOGNAME: "web_user",
  1825. PATH: "/",
  1826. PWD: "/",
  1827. HOME: "/home/web_user",
  1828. LANG: ("object" == typeof navigator && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8",
  1829. _: be || "./this.program"
  1830. };
  1831. for (var t in Yt) e[t] = Yt[t];
  1832. var r = [];
  1833. for (var t in e) r.push(t + "=" + e[t]);
  1834. Jo.strings = r
  1835. }
  1836. return Jo.strings
  1837. }
  1838. function ea(e, t) {
  1839. if (Se) return zo(4, 1, e, t);
  1840. try {
  1841. var r = 0;
  1842. return Jo().forEach((function (n, o) {
  1843. var a = t + r;
  1844. $e[e + 4 * o >> 2] = a, function (e, t, r) {
  1845. for (var n = 0; n < e.length; ++n) ze[t++ >> 0] = e.charCodeAt(n);
  1846. r || (ze[t >> 0] = 0)
  1847. }(n, a), r += n.length + 1
  1848. })), 0
  1849. } catch (e) {
  1850. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1851. }
  1852. }
  1853. function ta(e, t) {
  1854. if (Se) return zo(5, 1, e, t);
  1855. try {
  1856. var r = Jo();
  1857. $e[e >> 2] = r.length;
  1858. var n = 0;
  1859. return r.forEach((function (e) {
  1860. n += e.length + 1
  1861. })), $e[t >> 2] = n, 0
  1862. } catch (e) {
  1863. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1864. }
  1865. }
  1866. function ra(e) {
  1867. if (Se) return zo(6, 1, e);
  1868. try {
  1869. var t = Et.getStreamFromFD(e);
  1870. return vt.close(t), 0
  1871. } catch (e) {
  1872. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1873. }
  1874. }
  1875. function na(e, t) {
  1876. if (Se) return zo(7, 1, e, t);
  1877. try {
  1878. var r = Et.getStreamFromFD(e), n = r.tty ? 2 : vt.isDir(r.mode) ? 3 : vt.isLink(r.mode) ? 7 : 4;
  1879. return ze[t >> 0] = n, 0
  1880. } catch (e) {
  1881. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1882. }
  1883. }
  1884. function oa(e, t, r, n) {
  1885. if (Se) return zo(8, 1, e, t, r, n);
  1886. try {
  1887. var o = Et.getStreamFromFD(e), a = Et.doReadv(o, t, r);
  1888. return $e[n >> 2] = a, 0
  1889. } catch (e) {
  1890. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1891. }
  1892. }
  1893. function aa(e, t, r, n, o) {
  1894. if (Se) return zo(9, 1, e, t, r, n, o);
  1895. try {
  1896. var a = Et.getStreamFromFD(e), i = 4294967296 * r + (t >>> 0), s = 9007199254740992;
  1897. return i <= -s || i >= s ? -61 : (vt.llseek(a, i, n), ct = [a.position >>> 0, (ut = a.position, +Math.abs(ut) >= 1 ? ut > 0 ? (0 | Math.min(+Math.floor(ut / 4294967296), 4294967295)) >>> 0 : ~~+Math.ceil((ut - +(~~ut >>> 0)) / 4294967296) >>> 0 : 0)], $e[o >> 2] = ct[0], $e[o + 4 >> 2] = ct[1], a.getdents && 0 === i && 0 === n && (a.getdents = null), 0)
  1898. } catch (e) {
  1899. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1900. }
  1901. }
  1902. function ia(e, t, r, n) {
  1903. if (Se) return zo(10, 1, e, t, r, n);
  1904. try {
  1905. var o = Et.getStreamFromFD(e), a = Et.doWritev(o, t, r);
  1906. return $e[n >> 2] = a, 0
  1907. } catch (e) {
  1908. return void 0 !== vt && e instanceof vt.ErrnoError || Yr(e), e.errno
  1909. }
  1910. }
  1911. function sa(e) {
  1912. var t = Date.now();
  1913. return $e[e >> 2] = t / 1e3 | 0, $e[e + 4 >> 2] = t % 1e3 * 1e3 | 0, 0
  1914. }
  1915. function ua() {
  1916. if (Se) return zo(11, 1);
  1917. if (!ua.called) {
  1918. ua.called = !0;
  1919. var e = (new Date).getFullYear(), t = new Date(e, 0, 1), r = new Date(e, 6, 1), n = t.getTimezoneOffset(),
  1920. o = r.getTimezoneOffset(), a = Math.max(n, o);
  1921. $e[ir() >> 2] = 60 * a, $e[ar() >> 2] = Number(n != o);
  1922. var i = l(t), s = l(r), u = Gr(i), c = Gr(s);
  1923. o < n ? ($e[or() >> 2] = u, $e[or() + 4 >> 2] = c) : ($e[or() >> 2] = c, $e[or() + 4 >> 2] = u)
  1924. }
  1925. function l(e) {
  1926. var t = e.toTimeString().match(/\(([A-Za-z ]+)\)$/);
  1927. return t ? t[1] : "GMT"
  1928. }
  1929. }
  1930. function ca(e) {
  1931. var t = ft.threadExitHandlers.pop();
  1932. e && t()
  1933. }
  1934. function la(e, t) {
  1935. ft.threadExitHandlers.push((function () {
  1936. Ze.get(e)(t)
  1937. }))
  1938. }
  1939. function da(e) {
  1940. if (Se) throw"Internal Error! spawnThread() can only ever be called from main application thread!";
  1941. var t = ft.getNewWorker();
  1942. if (void 0 !== t.pthread) throw"Internal error!";
  1943. if (!e.pthread_ptr) throw"Internal error, no pthread ptr!";
  1944. ft.runningWorkers.push(t);
  1945. for (var r = Jt(512), n = 0; n < 128; ++n) $e[r + 4 * n >> 2] = 0;
  1946. var o = e.stackBase + e.stackSize, a = ft.pthreads[e.pthread_ptr] = {
  1947. worker: t,
  1948. stackBase: e.stackBase,
  1949. stackSize: e.stackSize,
  1950. allocatedOwnStack: e.allocatedOwnStack,
  1951. threadInfoStruct: e.pthread_ptr
  1952. }, i = a.threadInfoStruct >> 2;
  1953. Atomics.store(Ve, i + 16, e.detached), Atomics.store(Ve, i + 25, r), Atomics.store(Ve, i + 10, a.threadInfoStruct), Atomics.store(Ve, i + 20, e.stackSize), Atomics.store(Ve, i + 19, o), Atomics.store(Ve, i + 26, e.stackSize), Atomics.store(Ve, i + 28, o), Atomics.store(Ve, i + 29, e.detached);
  1954. var s = nr() + 40;
  1955. Atomics.store(Ve, i + 43, s), t.pthread = a;
  1956. var u = {
  1957. cmd: "run",
  1958. start_routine: e.startRoutine,
  1959. arg: e.arg,
  1960. threadInfoStruct: e.pthread_ptr,
  1961. stackBase: e.stackBase,
  1962. stackSize: e.stackSize
  1963. };
  1964. t.runPthread = function () {
  1965. u.time = performance.now(), t.postMessage(u, e.transferList)
  1966. }, t.loaded && (t.runPthread(), delete t.runPthread)
  1967. }
  1968. function fa(e, t, r, n) {
  1969. if ("undefined" == typeof SharedArrayBuffer) return Me("Current environment does not support SharedArrayBuffer, pthreads are not available!"), 6;
  1970. if (!e) return Me("pthread_create called with a null thread pointer!"), 28;
  1971. var o = [];
  1972. if (Se && 0 === o.length) return pr(687865856, e, t, r, n);
  1973. var a = 0, i = 0, s = 0;
  1974. t && -1 != t ? (a = $e[t >> 2], a += 81920, i = $e[t + 8 >> 2], s = 0 !== $e[t + 12 >> 2]) : a = 2097152;
  1975. var u = 0 == i;
  1976. u ? i = wr(16, a) : Or((i -= a) > 0);
  1977. for (var c = Jt(228), l = 0; l < 57; ++l) Ve[(c >> 2) + l] = 0;
  1978. $e[e >> 2] = c, $e[c + 12 >> 2] = c;
  1979. var d = c + 152;
  1980. $e[d >> 2] = d;
  1981. var f = {
  1982. stackBase: i,
  1983. stackSize: a,
  1984. allocatedOwnStack: u,
  1985. detached: s,
  1986. startRoutine: r,
  1987. pthread_ptr: c,
  1988. arg: n,
  1989. transferList: o
  1990. };
  1991. return Se ? (f.cmd = "spawnThread", postMessage(f, o)) : da(f), 0
  1992. }
  1993. function pa() {
  1994. if (Se) {
  1995. var e = sr();
  1996. if (e) if (!Atomics.load(Ve, e + 56 >> 2)) if (2 == Atomics.load(Ve, e + 0 >> 2)) throw"Canceled!"
  1997. }
  1998. }
  1999. function ha(e, t) {
  2000. return function (e, t, r) {
  2001. if (!e) return Me("pthread_join attempted on a null thread pointer!"), dt.ESRCH;
  2002. if (Se && sr() == e) return Me("PThread " + e + " is attempting to join to itself!"), dt.EDEADLK;
  2003. if (!Se && ur() == e) return Me("Main thread " + e + " is attempting to join to itself!"), dt.EDEADLK;
  2004. if ($e[e + 12 >> 2] !== e) return Me("pthread_join attempted on thread " + e + ", which does not point to a valid thread, or does not exist anymore!"), dt.ESRCH;
  2005. if (Atomics.load(Ve, e + 64 >> 2)) return Me("Attempted to join thread " + e + ", which was already detached!"), dt.EINVAL;
  2006. for (r && Bo(); ;) {
  2007. var n = Atomics.load(Ve, e + 0 >> 2);
  2008. if (1 == n) {
  2009. var o = Atomics.load(Ve, e + 4 >> 2);
  2010. return t && ($e[t >> 2] = o), Atomics.store(Ve, e + 64 >> 2, 1), Se ? postMessage({
  2011. cmd: "cleanupThread",
  2012. thread: e
  2013. }) : Zr(e), 0
  2014. }
  2015. if (!r) return dt.EBUSY;
  2016. pa(), Se || lr(), Ro(e + 0, n, Se ? 100 : 1)
  2017. }
  2018. }(e, t, !0)
  2019. }
  2020. function ma(e) {
  2021. Le(0 | e)
  2022. }
  2023. function Aa(e) {
  2024. if (Se) return zo(12, 1, e);
  2025. switch (e) {
  2026. case 30:
  2027. return 16384;
  2028. case 85:
  2029. return We.length / 16384;
  2030. case 132:
  2031. case 133:
  2032. case 12:
  2033. case 137:
  2034. case 138:
  2035. case 15:
  2036. case 235:
  2037. case 16:
  2038. case 17:
  2039. case 18:
  2040. case 19:
  2041. case 20:
  2042. case 149:
  2043. case 13:
  2044. case 10:
  2045. case 236:
  2046. case 153:
  2047. case 9:
  2048. case 21:
  2049. case 22:
  2050. case 159:
  2051. case 154:
  2052. case 14:
  2053. case 77:
  2054. case 78:
  2055. case 139:
  2056. case 82:
  2057. case 68:
  2058. case 67:
  2059. case 164:
  2060. case 11:
  2061. case 29:
  2062. case 47:
  2063. case 48:
  2064. case 95:
  2065. case 52:
  2066. case 51:
  2067. case 46:
  2068. return 200809;
  2069. case 27:
  2070. case 246:
  2071. case 127:
  2072. case 128:
  2073. case 23:
  2074. case 24:
  2075. case 160:
  2076. case 161:
  2077. case 181:
  2078. case 182:
  2079. case 242:
  2080. case 183:
  2081. case 184:
  2082. case 243:
  2083. case 244:
  2084. case 245:
  2085. case 165:
  2086. case 178:
  2087. case 179:
  2088. case 49:
  2089. case 50:
  2090. case 168:
  2091. case 169:
  2092. case 175:
  2093. case 170:
  2094. case 171:
  2095. case 172:
  2096. case 97:
  2097. case 76:
  2098. case 32:
  2099. case 173:
  2100. case 35:
  2101. case 80:
  2102. case 81:
  2103. case 79:
  2104. return -1;
  2105. case 176:
  2106. case 177:
  2107. case 7:
  2108. case 155:
  2109. case 8:
  2110. case 157:
  2111. case 125:
  2112. case 126:
  2113. case 92:
  2114. case 93:
  2115. case 129:
  2116. case 130:
  2117. case 131:
  2118. case 94:
  2119. case 91:
  2120. return 1;
  2121. case 74:
  2122. case 60:
  2123. case 69:
  2124. case 70:
  2125. case 4:
  2126. return 1024;
  2127. case 31:
  2128. case 42:
  2129. case 72:
  2130. return 32;
  2131. case 87:
  2132. case 26:
  2133. case 33:
  2134. return 2147483647;
  2135. case 34:
  2136. case 1:
  2137. return 47839;
  2138. case 38:
  2139. case 36:
  2140. return 99;
  2141. case 43:
  2142. case 37:
  2143. return 2048;
  2144. case 0:
  2145. return 2097152;
  2146. case 3:
  2147. return 65536;
  2148. case 28:
  2149. return 32768;
  2150. case 44:
  2151. return 32767;
  2152. case 75:
  2153. return 16384;
  2154. case 39:
  2155. return 1e3;
  2156. case 89:
  2157. return 700;
  2158. case 71:
  2159. return 256;
  2160. case 40:
  2161. return 255;
  2162. case 2:
  2163. return 100;
  2164. case 180:
  2165. return 64;
  2166. case 25:
  2167. return 20;
  2168. case 5:
  2169. return 16;
  2170. case 6:
  2171. return 6;
  2172. case 73:
  2173. return 4;
  2174. case 84:
  2175. return "object" == typeof navigator && navigator.hardwareConcurrency || 1
  2176. }
  2177. return nn(28), -1
  2178. }
  2179. function ga(e, t, r) {
  2180. var n = r > 0 ? r : Rr(e) + 1, o = new Array(n), a = Br(e, o, 0, o.length);
  2181. return t && (o.length = a), o
  2182. }
  2183. function va(e) {
  2184. this.name = "ExitStatus", this.message = "Program terminated with exit(" + e + ")", this.status = e
  2185. }
  2186. function Ea(e) {
  2187. function t() {
  2188. kr || (kr = !0, Ee.calledRun = !0, je || (!0, Ee.noFSInit || vt.init.initialized || vt.init(), At.init(), Xr(Je), Se || (vt.ignorePermissions = !1, Xr(et)), Ee.onRuntimeInitialized && Ee.onRuntimeInitialized(), function () {
  2189. if (!Se) {
  2190. if (Ee.postRun) for ("function" == typeof Ee.postRun && (Ee.postRun = [Ee.postRun]); Ee.postRun.length;) e = Ee.postRun.shift(), rt.unshift(e);
  2191. var e;
  2192. Xr(rt)
  2193. }
  2194. }()))
  2195. }
  2196. e = e || _e, nt > 0 || (Se ? postMessage({cmd: "loaded"}) : (!function () {
  2197. if (!Se) {
  2198. if (Ee.preRun) for ("function" == typeof Ee.preRun && (Ee.preRun = [Ee.preRun]); Ee.preRun.length;) e = Ee.preRun.shift(), Ke.unshift(e);
  2199. var e;
  2200. Xr(Ke)
  2201. }
  2202. }(), nt > 0 || (Ee.setStatus ? (Ee.setStatus("Running..."), setTimeout((function () {
  2203. setTimeout((function () {
  2204. Ee.setStatus("")
  2205. }), 1), t()
  2206. }), 1)) : t())))
  2207. }
  2208. function ya(e, t) {
  2209. if (!t || !Fe || 0 !== e) {
  2210. if (!t && Se) throw postMessage({cmd: "exitProcess", returnCode: e}), new va(e);
  2211. Fe || (ft.terminateAllThreads(), e, Se || !0, Ee.onExit && Ee.onExit(e), je = !0), ke(e, new va(e))
  2212. }
  2213. }
  2214. function wa() {
  2215. for (we in {}, ye = {}, Ee = void 0 !== Ee ? Ee : {}) Ee.hasOwnProperty(we) && (ye[we] = Ee[we]);
  2216. for (we in _e = [], be = "./this.program", ke = function (e, t) {
  2217. throw t
  2218. }, Te = !1, De = !0, !1, (Se = Ee.ENVIRONMENT_IS_PTHREAD || !1) && (Ge = Ee.buffer), Ce = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0, De && (Ce = self.location.href), Oe = "", (Te || De) && (De ? Oe = self.location.href : "undefined" != typeof document && document.currentScript && (Oe = document.currentScript.src), Oe = 0 !== Oe.indexOf("blob:") ? Oe.substr(0, Oe.lastIndexOf("/") + 1) : "", Pe = function (e) {
  2219. var t = new XMLHttpRequest;
  2220. return t.open("GET", e, !1), t.send(null), t.responseText
  2221. }, De && (xe = function (e) {
  2222. var t = new XMLHttpRequest;
  2223. return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response)
  2224. }), function (e, t, r) {
  2225. var n = new XMLHttpRequest;
  2226. n.open("GET", e, !0), n.responseType = "arraybuffer", n.onload = function () {
  2227. 200 == n.status || 0 == n.status && n.response ? t(n.response) : r()
  2228. }, n.onerror = r, n.send(null)
  2229. }, function (e) {
  2230. document.title = e
  2231. }), Be = Ee.print || console.log.bind(console), Me = Ee.printErr || console.warn.bind(console), ye) ye.hasOwnProperty(we) && (Ee[we] = ye[we]);
  2232. if (ye = null, Ee.arguments && (_e = Ee.arguments), Ee.thisProgram && (be = Ee.thisProgram), Ee.quit && (ke = Ee.quit), Re = 16, 0, Le = function (e) {
  2233. e
  2234. }, Atomics.load, Atomics.store, Atomics.compareExchange, Ee.wasmBinary && (Ie = Ee.wasmBinary), Fe = Ee.noExitRuntime || !0, "object" != typeof WebAssembly && Yr("no native wasm support detected"), je = !1, qe = Ee.INITIAL_MEMORY || 67108864, Se) Ue = Ee.wasmMemory, Ge = Ee.buffer; else if (Ee.wasmMemory) Ue = Ee.wasmMemory; else if (!((Ue = new WebAssembly.Memory({
  2235. initial: qe / 65536,
  2236. maximum: qe / 65536,
  2237. shared: !0
  2238. })).buffer instanceof SharedArrayBuffer)) throw Me("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"), Error("bad memory");
  2239. var t;
  2240. if (Ue && (Ge = Ue.buffer), qe = Ge.byteLength, Ge = t = Ge, Ee.HEAP8 = ze = new Int8Array(t), Ee.HEAP16 = Ye = new Int16Array(t), Ee.HEAP32 = $e = new Int32Array(t), Ee.HEAPU8 = We = new Uint8Array(t), Ee.HEAPU16 = He = new Uint16Array(t), Ee.HEAPU32 = Ve = new Uint32Array(t), Ee.HEAPF32 = Qe = new Float32Array(t), Ee.HEAPF64 = Xe = new Float64Array(t), Ke = [], Je = [], et = [], tt = [], rt = [], !1, !1, Se || Je.push({
  2241. func: function () {
  2242. Zt()
  2243. }
  2244. }), Se && !0, nt = 0, ot = null, at = null, Ee.preloadedImages = {}, Ee.preloadedAudios = {}, it = "data:application/octet-stream;base64,", Hr(st = "ff.wasm") || (st = Sr(st)), lt = {
  2245. 155132: function () {
  2246. throw"Canceled!"
  2247. }, 155395: function (e, t) {
  2248. setTimeout((function () {
  2249. fr(e, t)
  2250. }), 0)
  2251. }
  2252. }, dt = {
  2253. EPERM: 63,
  2254. ENOENT: 44,
  2255. ESRCH: 71,
  2256. EINTR: 27,
  2257. EIO: 29,
  2258. ENXIO: 60,
  2259. E2BIG: 1,
  2260. ENOEXEC: 45,
  2261. EBADF: 8,
  2262. ECHILD: 12,
  2263. EAGAIN: 6,
  2264. EWOULDBLOCK: 6,
  2265. ENOMEM: 48,
  2266. EACCES: 2,
  2267. EFAULT: 21,
  2268. ENOTBLK: 105,
  2269. EBUSY: 10,
  2270. EEXIST: 20,
  2271. EXDEV: 75,
  2272. ENODEV: 43,
  2273. ENOTDIR: 54,
  2274. EISDIR: 31,
  2275. EINVAL: 28,
  2276. ENFILE: 41,
  2277. EMFILE: 33,
  2278. ENOTTY: 59,
  2279. ETXTBSY: 74,
  2280. EFBIG: 22,
  2281. ENOSPC: 51,
  2282. ESPIPE: 70,
  2283. EROFS: 69,
  2284. EMLINK: 34,
  2285. EPIPE: 64,
  2286. EDOM: 18,
  2287. ERANGE: 68,
  2288. ENOMSG: 49,
  2289. EIDRM: 24,
  2290. ECHRNG: 106,
  2291. EL2NSYNC: 156,
  2292. EL3HLT: 107,
  2293. EL3RST: 108,
  2294. ELNRNG: 109,
  2295. EUNATCH: 110,
  2296. ENOCSI: 111,
  2297. EL2HLT: 112,
  2298. EDEADLK: 16,
  2299. ENOLCK: 46,
  2300. EBADE: 113,
  2301. EBADR: 114,
  2302. EXFULL: 115,
  2303. ENOANO: 104,
  2304. EBADRQC: 103,
  2305. EBADSLT: 102,
  2306. EDEADLOCK: 16,
  2307. EBFONT: 101,
  2308. ENOSTR: 100,
  2309. ENODATA: 116,
  2310. ETIME: 117,
  2311. ENOSR: 118,
  2312. ENONET: 119,
  2313. ENOPKG: 120,
  2314. EREMOTE: 121,
  2315. ENOLINK: 47,
  2316. EADV: 122,
  2317. ESRMNT: 123,
  2318. ECOMM: 124,
  2319. EPROTO: 65,
  2320. EMULTIHOP: 36,
  2321. EDOTDOT: 125,
  2322. EBADMSG: 9,
  2323. ENOTUNIQ: 126,
  2324. EBADFD: 127,
  2325. EREMCHG: 128,
  2326. ELIBACC: 129,
  2327. ELIBBAD: 130,
  2328. ELIBSCN: 131,
  2329. ELIBMAX: 132,
  2330. ELIBEXEC: 133,
  2331. ENOSYS: 52,
  2332. ENOTEMPTY: 55,
  2333. ENAMETOOLONG: 37,
  2334. ELOOP: 32,
  2335. EOPNOTSUPP: 138,
  2336. EPFNOSUPPORT: 139,
  2337. ECONNRESET: 15,
  2338. ENOBUFS: 42,
  2339. EAFNOSUPPORT: 5,
  2340. EPROTOTYPE: 67,
  2341. ENOTSOCK: 57,
  2342. ENOPROTOOPT: 50,
  2343. ESHUTDOWN: 140,
  2344. ECONNREFUSED: 14,
  2345. EADDRINUSE: 3,
  2346. ECONNABORTED: 13,
  2347. ENETUNREACH: 40,
  2348. ENETDOWN: 38,
  2349. ETIMEDOUT: 73,
  2350. EHOSTDOWN: 142,
  2351. EHOSTUNREACH: 23,
  2352. EINPROGRESS: 26,
  2353. EALREADY: 7,
  2354. EDESTADDRREQ: 17,
  2355. EMSGSIZE: 35,
  2356. EPROTONOSUPPORT: 66,
  2357. ESOCKTNOSUPPORT: 137,
  2358. EADDRNOTAVAIL: 4,
  2359. ENETRESET: 39,
  2360. EISCONN: 30,
  2361. ENOTCONN: 53,
  2362. ETOOMANYREFS: 141,
  2363. EUSERS: 136,
  2364. EDQUOT: 19,
  2365. ESTALE: 72,
  2366. ENOTSUP: 138,
  2367. ENOMEDIUM: 148,
  2368. EILSEQ: 25,
  2369. EOVERFLOW: 61,
  2370. ECANCELED: 11,
  2371. ENOTRECOVERABLE: 56,
  2372. EOWNERDEAD: 62,
  2373. ESTRPIPE: 135
  2374. }, Ee._emscripten_futex_wake = qr, ft = {
  2375. unusedWorkers: [], runningWorkers: [], initMainThreadBlock: function () {
  2376. }, initRuntime: function () {
  2377. for (var e = Jt(228), t = 0; t < 57; ++t) Ve[e / 4 + t] = 0;
  2378. $e[e + 12 >> 2] = e;
  2379. var r = e + 152;
  2380. $e[r >> 2] = r;
  2381. var n = Jt(512);
  2382. for (t = 0; t < 128; ++t) Ve[n / 4 + t] = 0;
  2383. Atomics.store(Ve, e + 100 >> 2, n), Atomics.store(Ve, e + 40 >> 2, e), Ar(e, !De, 1), dr(e)
  2384. }, initWorker: function () {
  2385. }, pthreads: {}, threadExitHandlers: [], setThreadStatus: function () {
  2386. }, runExitHandlers: function () {
  2387. for (; ft.threadExitHandlers.length > 0;) ft.threadExitHandlers.pop()();
  2388. Se && sr() && cr()
  2389. }, threadExit: function (e) {
  2390. var t = sr();
  2391. t && (Atomics.store(Ve, t + 4 >> 2, e), Atomics.store(Ve, t + 0 >> 2, 1), Atomics.store(Ve, t + 56 >> 2, 1), Atomics.store(Ve, t + 60 >> 2, 0), ft.runExitHandlers(), qr(t + 0, 2147483647), Ar(0, 0, 0), Se && postMessage({cmd: "exit"}))
  2392. }, threadCancel: function () {
  2393. ft.runExitHandlers();
  2394. var e = sr();
  2395. Atomics.store(Ve, e + 4 >> 2, -1), Atomics.store(Ve, e + 0 >> 2, 1), qr(e + 0, 2147483647), Ar(0, 0, 0), postMessage({cmd: "cancelDone"})
  2396. }, terminateAllThreads: function () {
  2397. for (var e in ft.pthreads) {
  2398. (n = ft.pthreads[e]) && n.worker && ft.returnWorkerToPool(n.worker)
  2399. }
  2400. ft.pthreads = {};
  2401. for (var t = 0; t < ft.unusedWorkers.length; ++t) {
  2402. (r = ft.unusedWorkers[t]).terminate()
  2403. }
  2404. ft.unusedWorkers = [];
  2405. for (t = 0; t < ft.runningWorkers.length; ++t) {
  2406. var r, n = (r = ft.runningWorkers[t]).pthread;
  2407. ft.freeThreadData(n), r.terminate()
  2408. }
  2409. ft.runningWorkers = []
  2410. }, freeThreadData: function (e) {
  2411. if (e) {
  2412. if (e.threadInfoStruct) {
  2413. var t = $e[e.threadInfoStruct + 100 >> 2];
  2414. $e[e.threadInfoStruct + 100 >> 2] = 0, Kt(t), Kt(e.threadInfoStruct)
  2415. }
  2416. e.threadInfoStruct = 0, e.allocatedOwnStack && e.stackBase && Kt(e.stackBase), e.stackBase = 0, e.worker && (e.worker.pthread = null)
  2417. }
  2418. }, returnWorkerToPool: function (e) {
  2419. ft.runWithoutMainThreadQueuedCalls((function () {
  2420. delete ft.pthreads[e.pthread.threadInfoStruct], ft.unusedWorkers.push(e), ft.runningWorkers.splice(ft.runningWorkers.indexOf(e), 1), ft.freeThreadData(e.pthread), e.pthread = void 0
  2421. }))
  2422. }, runWithoutMainThreadQueuedCalls: function (e) {
  2423. $e[_r >> 2] = 0;
  2424. try {
  2425. e()
  2426. } finally {
  2427. $e[_r >> 2] = 1
  2428. }
  2429. }, receiveObjectTransfer: function (e) {
  2430. }, loadWasmModuleToWorker: function (e, t) {
  2431. e.onmessage = function (r) {
  2432. var n = r.data, o = n.cmd;
  2433. if (e.pthread && (ft.currentProxiedOperationCallerThread = e.pthread.threadInfoStruct), n.targetThread && n.targetThread != sr()) {
  2434. var a = ft.pthreads[n.targetThread];
  2435. return a ? a.worker.postMessage(r.data, n.transferList) : console.error('Internal error! Worker sent a message "' + o + '" to target pthread ' + n.targetThread + ", but that thread no longer exists!"), void (ft.currentProxiedOperationCallerThread = void 0)
  2436. }
  2437. if ("processQueuedMainThreadWork" === o) lr(); else if ("spawnThread" === o) da(r.data); else if ("cleanupThread" === o) Zr(n.thread); else if ("killThread" === o) !function (e) {
  2438. if (Se) throw"Internal Error! killThread() can only ever be called from main application thread!";
  2439. if (!e) throw"Internal Error! Null pthread_ptr in killThread!";
  2440. $e[e + 12 >> 2] = 0;
  2441. var t = ft.pthreads[e];
  2442. t.worker.terminate(), ft.freeThreadData(t), ft.runningWorkers.splice(ft.runningWorkers.indexOf(t.worker), 1), t.worker.pthread = void 0
  2443. }(n.thread); else if ("cancelThread" === o) !function (e) {
  2444. if (Se) throw"Internal Error! cancelThread() can only ever be called from main application thread!";
  2445. if (!e) throw"Internal Error! Null pthread_ptr in cancelThread!";
  2446. ft.pthreads[e].worker.postMessage({cmd: "cancel"})
  2447. }(n.thread); else if ("loaded" === o) e.loaded = !0, t && t(e), e.runPthread && (e.runPthread(), delete e.runPthread); else if ("print" === o) Be("Thread " + n.threadId + ": " + n.text); else if ("printErr" === o) Me("Thread " + n.threadId + ": " + n.text); else if ("alert" === o) alert("Thread " + n.threadId + ": " + n.text); else if ("exit" === o) {
  2448. e.pthread && Atomics.load(Ve, e.pthread.threadInfoStruct + 64 >> 2) && ft.returnWorkerToPool(e)
  2449. } else if ("exitProcess" === o) try {
  2450. ya(n.returnCode)
  2451. } catch (r) {
  2452. if (r instanceof va) return;
  2453. throw r
  2454. } else "cancelDone" === o ? ft.returnWorkerToPool(e) : "objectTransfer" === o ? ft.receiveObjectTransfer(r.data) : "setimmediate" === r.data.target ? e.postMessage(r.data) : Me("worker sent an unknown command " + o);
  2455. ft.currentProxiedOperationCallerThread = void 0
  2456. }, e.onerror = function (e) {
  2457. Me("pthread sent an error! " + e.filename + ":" + e.lineno + ": " + e.message)
  2458. }, e.postMessage({cmd: "load", urlOrBlob: Ee.mainScriptUrlOrBlob || Ce, wasmMemory: Ue, wasmModule: Ne})
  2459. }, allocateUnusedWorker: function () {
  2460. var e = Sr("ff.worker.js");
  2461. ft.unusedWorkers.push(new Worker(e))
  2462. }, getNewWorker: function () {
  2463. return 0 == ft.unusedWorkers.length && (ft.allocateUnusedWorker(), ft.loadWasmModuleToWorker(ft.unusedWorkers[0])), ft.unusedWorkers.length > 0 ? ft.unusedWorkers.pop() : null
  2464. }, busySpinWait: function (e) {
  2465. for (var t = performance.now() + e; performance.now() < t;) ;
  2466. }
  2467. }, Ee.establishStackSpace = Kr, Ee.getNoExitRuntime = Jr, Ee.invokeEntryPoint = en, pt = Se ? function () {
  2468. return performance.now() - Ee.__performance_now_clock_drift
  2469. } : function () {
  2470. return performance.now()
  2471. }, ht = {
  2472. splitPath: function (e) {
  2473. return /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)
  2474. }, normalizeArray: function (e, t) {
  2475. for (var r = 0, n = e.length - 1; n >= 0; n--) {
  2476. var o = e[n];
  2477. "." === o ? e.splice(n, 1) : ".." === o ? (e.splice(n, 1), r++) : r && (e.splice(n, 1), r--)
  2478. }
  2479. if (t) for (; r; r--) e.unshift("..");
  2480. return e
  2481. }, normalize: function (e) {
  2482. var t = "/" === e.charAt(0), r = "/" === e.substr(-1);
  2483. return (e = ht.normalizeArray(e.split("/").filter((function (e) {
  2484. return !!e
  2485. })), !t).join("/")) || t || (e = "."), e && r && (e += "/"), (t ? "/" : "") + e
  2486. }, dirname: function (e) {
  2487. var t = ht.splitPath(e), r = t[0], n = t[1];
  2488. return r || n ? (n && (n = n.substr(0, n.length - 1)), r + n) : "."
  2489. }, basename: function (e) {
  2490. if ("/" === e) return "/";
  2491. var t = (e = (e = ht.normalize(e)).replace(/\/$/, "")).lastIndexOf("/");
  2492. return -1 === t ? e : e.substr(t + 1)
  2493. }, extname: function (e) {
  2494. return ht.splitPath(e)[3]
  2495. }, join: function () {
  2496. var e = Array.prototype.slice.call(arguments, 0);
  2497. return ht.normalize(e.join("/"))
  2498. }, join2: function (e, t) {
  2499. return ht.normalize(e + "/" + t)
  2500. }
  2501. }, mt = {
  2502. resolve: function () {
  2503. for (var e = "", t = !1, r = arguments.length - 1; r >= -1 && !t; r--) {
  2504. var n = r >= 0 ? arguments[r] : vt.cwd();
  2505. if ("string" != typeof n) throw new TypeError("Arguments to path.resolve must be strings");
  2506. if (!n) return "";
  2507. e = n + "/" + e, t = "/" === n.charAt(0)
  2508. }
  2509. return (t ? "/" : "") + (e = ht.normalizeArray(e.split("/").filter((function (e) {
  2510. return !!e
  2511. })), !t).join("/")) || "."
  2512. }, relative: function (e, t) {
  2513. function r(e) {
  2514. for (var t = 0; t < e.length && "" === e[t]; t++) ;
  2515. for (var r = e.length - 1; r >= 0 && "" === e[r]; r--) ;
  2516. return t > r ? [] : e.slice(t, r - t + 1)
  2517. }
  2518. e = mt.resolve(e).substr(1), t = mt.resolve(t).substr(1);
  2519. for (var n = r(e.split("/")), o = r(t.split("/")), a = Math.min(n.length, o.length), i = a, s = 0; s < a; s++) if (n[s] !== o[s]) {
  2520. i = s;
  2521. break
  2522. }
  2523. var u = [];
  2524. for (s = i; s < n.length; s++) u.push("..");
  2525. return (u = u.concat(o.slice(i))).join("/")
  2526. }
  2527. }, At = {
  2528. ttys: [], init: function () {
  2529. }, shutdown: function () {
  2530. }, register: function (e, t) {
  2531. At.ttys[e] = {input: [], output: [], ops: t}, vt.registerDevice(e, At.stream_ops)
  2532. }, stream_ops: {
  2533. open: function (e) {
  2534. var t = At.ttys[e.node.rdev];
  2535. if (!t) throw new vt.ErrnoError(43);
  2536. e.tty = t, e.seekable = !1
  2537. }, close: function (e) {
  2538. e.tty.ops.flush(e.tty)
  2539. }, flush: function (e) {
  2540. e.tty.ops.flush(e.tty)
  2541. }, read: function (e, t, r, n, o) {
  2542. if (!e.tty || !e.tty.ops.get_char) throw new vt.ErrnoError(60);
  2543. for (var a = 0, i = 0; i < n; i++) {
  2544. var s;
  2545. try {
  2546. s = e.tty.ops.get_char(e.tty)
  2547. } catch (e) {
  2548. throw new vt.ErrnoError(29)
  2549. }
  2550. if (void 0 === s && 0 === a) throw new vt.ErrnoError(6);
  2551. if (null == s) break;
  2552. a++, t[r + i] = s
  2553. }
  2554. return a && (e.node.timestamp = Date.now()), a
  2555. }, write: function (e, t, r, n, o) {
  2556. if (!e.tty || !e.tty.ops.put_char) throw new vt.ErrnoError(60);
  2557. try {
  2558. for (var a = 0; a < n; a++) e.tty.ops.put_char(e.tty, t[r + a])
  2559. } catch (e) {
  2560. throw new vt.ErrnoError(29)
  2561. }
  2562. return n && (e.node.timestamp = Date.now()), a
  2563. }
  2564. }, default_tty_ops: {
  2565. get_char: function (e) {
  2566. if (!e.input.length) {
  2567. var t = null;
  2568. if ("undefined" != typeof window && "function" == typeof window.prompt ? null !== (t = window.prompt("Input: ")) && (t += "\n") : "function" == typeof readline && null !== (t = readline()) && (t += "\n"), !t) return null;
  2569. e.input = ga(t, !0)
  2570. }
  2571. return e.input.shift()
  2572. }, put_char: function (e, t) {
  2573. null === t || 10 === t ? (Be(Pr(e.output, 0)), e.output = []) : 0 != t && e.output.push(t)
  2574. }, flush: function (e) {
  2575. e.output && e.output.length > 0 && (Be(Pr(e.output, 0)), e.output = [])
  2576. }
  2577. }, default_tty1_ops: {
  2578. put_char: function (e, t) {
  2579. null === t || 10 === t ? (Me(Pr(e.output, 0)), e.output = []) : 0 != t && e.output.push(t)
  2580. }, flush: function (e) {
  2581. e.output && e.output.length > 0 && (Me(Pr(e.output, 0)), e.output = [])
  2582. }
  2583. }
  2584. }, gt = {
  2585. ops_table: null, mount: function (e) {
  2586. return gt.createNode(null, "/", 16895, 0)
  2587. }, createNode: function (e, t, r, n) {
  2588. if (vt.isBlkdev(r) || vt.isFIFO(r)) throw new vt.ErrnoError(63);
  2589. gt.ops_table || (gt.ops_table = {
  2590. dir: {
  2591. node: {
  2592. getattr: gt.node_ops.getattr,
  2593. setattr: gt.node_ops.setattr,
  2594. lookup: gt.node_ops.lookup,
  2595. mknod: gt.node_ops.mknod,
  2596. rename: gt.node_ops.rename,
  2597. unlink: gt.node_ops.unlink,
  2598. rmdir: gt.node_ops.rmdir,
  2599. readdir: gt.node_ops.readdir,
  2600. symlink: gt.node_ops.symlink
  2601. }, stream: {llseek: gt.stream_ops.llseek}
  2602. },
  2603. file: {
  2604. node: {getattr: gt.node_ops.getattr, setattr: gt.node_ops.setattr},
  2605. stream: {
  2606. llseek: gt.stream_ops.llseek,
  2607. read: gt.stream_ops.read,
  2608. write: gt.stream_ops.write,
  2609. allocate: gt.stream_ops.allocate,
  2610. mmap: gt.stream_ops.mmap,
  2611. msync: gt.stream_ops.msync
  2612. }
  2613. },
  2614. link: {
  2615. node: {getattr: gt.node_ops.getattr, setattr: gt.node_ops.setattr, readlink: gt.node_ops.readlink},
  2616. stream: {}
  2617. },
  2618. chrdev: {node: {getattr: gt.node_ops.getattr, setattr: gt.node_ops.setattr}, stream: vt.chrdev_stream_ops}
  2619. });
  2620. var o = vt.createNode(e, t, r, n);
  2621. return vt.isDir(o.mode) ? (o.node_ops = gt.ops_table.dir.node, o.stream_ops = gt.ops_table.dir.stream, o.contents = {}) : vt.isFile(o.mode) ? (o.node_ops = gt.ops_table.file.node, o.stream_ops = gt.ops_table.file.stream, o.usedBytes = 0, o.contents = null) : vt.isLink(o.mode) ? (o.node_ops = gt.ops_table.link.node, o.stream_ops = gt.ops_table.link.stream) : vt.isChrdev(o.mode) && (o.node_ops = gt.ops_table.chrdev.node, o.stream_ops = gt.ops_table.chrdev.stream), o.timestamp = Date.now(), e && (e.contents[t] = o, e.timestamp = o.timestamp), o
  2622. }, getFileDataAsTypedArray: function (e) {
  2623. return e.contents ? e.contents.subarray ? e.contents.subarray(0, e.usedBytes) : new Uint8Array(e.contents) : new Uint8Array(0)
  2624. }, expandFileStorage: function (e, t) {
  2625. var r = e.contents ? e.contents.length : 0;
  2626. if (!(r >= t)) {
  2627. t = Math.max(t, r * (r < 1048576 ? 2 : 1.125) >>> 0), 0 != r && (t = Math.max(t, 256));
  2628. var n = e.contents;
  2629. e.contents = new Uint8Array(t), e.usedBytes > 0 && e.contents.set(n.subarray(0, e.usedBytes), 0)
  2630. }
  2631. }, resizeFileStorage: function (e, t) {
  2632. if (e.usedBytes != t) if (0 == t) e.contents = null, e.usedBytes = 0; else {
  2633. var r = e.contents;
  2634. e.contents = new Uint8Array(t), r && e.contents.set(r.subarray(0, Math.min(t, e.usedBytes))), e.usedBytes = t
  2635. }
  2636. }, node_ops: {
  2637. getattr: function (e) {
  2638. var t = {};
  2639. return t.dev = vt.isChrdev(e.mode) ? e.id : 1, t.ino = e.id, t.mode = e.mode, t.nlink = 1, t.uid = 0, t.gid = 0, t.rdev = e.rdev, vt.isDir(e.mode) ? t.size = 4096 : vt.isFile(e.mode) ? t.size = e.usedBytes : vt.isLink(e.mode) ? t.size = e.link.length : t.size = 0, t.atime = new Date(e.timestamp), t.mtime = new Date(e.timestamp), t.ctime = new Date(e.timestamp), t.blksize = 4096, t.blocks = Math.ceil(t.size / t.blksize), t
  2640. }, setattr: function (e, t) {
  2641. void 0 !== t.mode && (e.mode = t.mode), void 0 !== t.timestamp && (e.timestamp = t.timestamp), void 0 !== t.size && gt.resizeFileStorage(e, t.size)
  2642. }, lookup: function (e, t) {
  2643. throw vt.genericErrors[44]
  2644. }, mknod: function (e, t, r, n) {
  2645. return gt.createNode(e, t, r, n)
  2646. }, rename: function (e, t, r) {
  2647. if (vt.isDir(e.mode)) {
  2648. var n;
  2649. try {
  2650. n = vt.lookupNode(t, r)
  2651. } catch (e) {
  2652. }
  2653. if (n) for (var o in n.contents) throw new vt.ErrnoError(55)
  2654. }
  2655. delete e.parent.contents[e.name], e.parent.timestamp = Date.now(), e.name = r, t.contents[r] = e, t.timestamp = e.parent.timestamp, e.parent = t
  2656. }, unlink: function (e, t) {
  2657. delete e.contents[t], e.timestamp = Date.now()
  2658. }, rmdir: function (e, t) {
  2659. var r = vt.lookupNode(e, t);
  2660. for (var n in r.contents) throw new vt.ErrnoError(55);
  2661. delete e.contents[t], e.timestamp = Date.now()
  2662. }, readdir: function (e) {
  2663. var t = [".", ".."];
  2664. for (var r in e.contents) e.contents.hasOwnProperty(r) && t.push(r);
  2665. return t
  2666. }, symlink: function (e, t, r) {
  2667. var n = gt.createNode(e, t, 41471, 0);
  2668. return n.link = r, n
  2669. }, readlink: function (e) {
  2670. if (!vt.isLink(e.mode)) throw new vt.ErrnoError(28);
  2671. return e.link
  2672. }
  2673. }, stream_ops: {
  2674. read: function (e, t, r, n, o) {
  2675. var a = e.node.contents;
  2676. if (o >= e.node.usedBytes) return 0;
  2677. var i = Math.min(e.node.usedBytes - o, n);
  2678. if (i > 8 && a.subarray) t.set(a.subarray(o, o + i), r); else for (var s = 0; s < i; s++) t[r + s] = a[o + s];
  2679. return i
  2680. }, write: function (e, t, r, n, o, a) {
  2681. if (!n) return 0;
  2682. var i = e.node;
  2683. if (i.timestamp = Date.now(), t.subarray && (!i.contents || i.contents.subarray)) {
  2684. if (a) return i.contents = t.subarray(r, r + n), i.usedBytes = n, n;
  2685. if (0 === i.usedBytes && 0 === o) return i.contents = t.slice(r, r + n), i.usedBytes = n, n;
  2686. if (o + n <= i.usedBytes) return i.contents.set(t.subarray(r, r + n), o), n
  2687. }
  2688. if (gt.expandFileStorage(i, o + n), i.contents.subarray && t.subarray) i.contents.set(t.subarray(r, r + n), o); else for (var s = 0; s < n; s++) i.contents[o + s] = t[r + s];
  2689. return i.usedBytes = Math.max(i.usedBytes, o + n), n
  2690. }, llseek: function (e, t, r) {
  2691. var n = t;
  2692. if (1 === r ? n += e.position : 2 === r && vt.isFile(e.node.mode) && (n += e.node.usedBytes), n < 0) throw new vt.ErrnoError(28);
  2693. return n
  2694. }, allocate: function (e, t, r) {
  2695. gt.expandFileStorage(e.node, t + r), e.node.usedBytes = Math.max(e.node.usedBytes, t + r)
  2696. }, mmap: function (e, t, r, n, o, a) {
  2697. if (0 !== t) throw new vt.ErrnoError(28);
  2698. if (!vt.isFile(e.node.mode)) throw new vt.ErrnoError(43);
  2699. var i, s, u = e.node.contents;
  2700. if (2 & a || u.buffer !== Ge) {
  2701. if ((n > 0 || n + r < u.length) && (u = u.subarray ? u.subarray(n, n + r) : Array.prototype.slice.call(u, n, n + r)), s = !0, !(i = on(r))) throw new vt.ErrnoError(48);
  2702. ze.set(u, i)
  2703. } else s = !1, i = u.byteOffset;
  2704. return {ptr: i, allocated: s}
  2705. }, msync: function (e, t, r, n, o) {
  2706. if (!vt.isFile(e.node.mode)) throw new vt.ErrnoError(43);
  2707. if (2 & o) return 0;
  2708. gt.stream_ops.write(e, t, 0, n, r, !1);
  2709. return 0
  2710. }
  2711. }
  2712. }, vt = {
  2713. root: null,
  2714. mounts: [],
  2715. devices: {},
  2716. streams: [],
  2717. nextInode: 1,
  2718. nameTable: null,
  2719. currentPath: "/",
  2720. initialized: !1,
  2721. ignorePermissions: !0,
  2722. trackingDelegate: {},
  2723. tracking: {openFlags: {READ: 1, WRITE: 2}},
  2724. ErrnoError: null,
  2725. genericErrors: {},
  2726. filesystems: null,
  2727. syncFSRequests: 0,
  2728. lookupPath: function (e, t) {
  2729. if (t = t || {}, !(e = mt.resolve(vt.cwd(), e))) return {path: "", node: null};
  2730. var r = {follow_mount: !0, recurse_count: 0};
  2731. for (var n in r) void 0 === t[n] && (t[n] = r[n]);
  2732. if (t.recurse_count > 8) throw new vt.ErrnoError(32);
  2733. for (var o = ht.normalizeArray(e.split("/").filter((function (e) {
  2734. return !!e
  2735. })), !1), a = vt.root, i = "/", s = 0; s < o.length; s++) {
  2736. var u = s === o.length - 1;
  2737. if (u && t.parent) break;
  2738. if (a = vt.lookupNode(a, o[s]), i = ht.join2(i, o[s]), vt.isMountpoint(a) && (!u || u && t.follow_mount) && (a = a.mounted.root), !u || t.follow) for (var c = 0; vt.isLink(a.mode);) {
  2739. var l = vt.readlink(i);
  2740. if (i = mt.resolve(ht.dirname(i), l), a = vt.lookupPath(i, {recurse_count: t.recurse_count}).node, c++ > 40) throw new vt.ErrnoError(32)
  2741. }
  2742. }
  2743. return {path: i, node: a}
  2744. },
  2745. getPath: function (e) {
  2746. for (var t; ;) {
  2747. if (vt.isRoot(e)) {
  2748. var r = e.mount.mountpoint;
  2749. return t ? "/" !== r[r.length - 1] ? r + "/" + t : r + t : r
  2750. }
  2751. t = t ? e.name + "/" + t : e.name, e = e.parent
  2752. }
  2753. },
  2754. hashName: function (e, t) {
  2755. for (var r = 0, n = 0; n < t.length; n++) r = (r << 5) - r + t.charCodeAt(n) | 0;
  2756. return (e + r >>> 0) % vt.nameTable.length
  2757. },
  2758. hashAddNode: function (e) {
  2759. var t = vt.hashName(e.parent.id, e.name);
  2760. e.name_next = vt.nameTable[t], vt.nameTable[t] = e
  2761. },
  2762. hashRemoveNode: function (e) {
  2763. var t = vt.hashName(e.parent.id, e.name);
  2764. if (vt.nameTable[t] === e) vt.nameTable[t] = e.name_next; else for (var r = vt.nameTable[t]; r;) {
  2765. if (r.name_next === e) {
  2766. r.name_next = e.name_next;
  2767. break
  2768. }
  2769. r = r.name_next
  2770. }
  2771. },
  2772. lookupNode: function (e, t) {
  2773. var r = vt.mayLookup(e);
  2774. if (r) throw new vt.ErrnoError(r, e);
  2775. for (var n = vt.hashName(e.id, t), o = vt.nameTable[n]; o; o = o.name_next) {
  2776. var a = o.name;
  2777. if (o.parent.id === e.id && a === t) return o
  2778. }
  2779. return vt.lookup(e, t)
  2780. },
  2781. createNode: function (e, t, r, n) {
  2782. var o = new vt.FSNode(e, t, r, n);
  2783. return vt.hashAddNode(o), o
  2784. },
  2785. destroyNode: function (e) {
  2786. vt.hashRemoveNode(e)
  2787. },
  2788. isRoot: function (e) {
  2789. return e === e.parent
  2790. },
  2791. isMountpoint: function (e) {
  2792. return !!e.mounted
  2793. },
  2794. isFile: function (e) {
  2795. return 32768 == (61440 & e)
  2796. },
  2797. isDir: function (e) {
  2798. return 16384 == (61440 & e)
  2799. },
  2800. isLink: function (e) {
  2801. return 40960 == (61440 & e)
  2802. },
  2803. isChrdev: function (e) {
  2804. return 8192 == (61440 & e)
  2805. },
  2806. isBlkdev: function (e) {
  2807. return 24576 == (61440 & e)
  2808. },
  2809. isFIFO: function (e) {
  2810. return 4096 == (61440 & e)
  2811. },
  2812. isSocket: function (e) {
  2813. return 49152 == (49152 & e)
  2814. },
  2815. flagModes: {r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090},
  2816. modeStringToFlags: function (e) {
  2817. var t = vt.flagModes[e];
  2818. if (void 0 === t) throw new Error("Unknown file open mode: " + e);
  2819. return t
  2820. },
  2821. flagsToPermissionString: function (e) {
  2822. var t = ["r", "w", "rw"][3 & e];
  2823. return 512 & e && (t += "w"), t
  2824. },
  2825. nodePermissions: function (e, t) {
  2826. return vt.ignorePermissions || (-1 === t.indexOf("r") || 292 & e.mode) && (-1 === t.indexOf("w") || 146 & e.mode) && (-1 === t.indexOf("x") || 73 & e.mode) ? 0 : 2
  2827. },
  2828. mayLookup: function (e) {
  2829. var t = vt.nodePermissions(e, "x");
  2830. return t || (e.node_ops.lookup ? 0 : 2)
  2831. },
  2832. mayCreate: function (e, t) {
  2833. try {
  2834. vt.lookupNode(e, t);
  2835. return 20
  2836. } catch (e) {
  2837. }
  2838. return vt.nodePermissions(e, "wx")
  2839. },
  2840. mayDelete: function (e, t, r) {
  2841. var n;
  2842. try {
  2843. n = vt.lookupNode(e, t)
  2844. } catch (e) {
  2845. return e.errno
  2846. }
  2847. var o = vt.nodePermissions(e, "wx");
  2848. if (o) return o;
  2849. if (r) {
  2850. if (!vt.isDir(n.mode)) return 54;
  2851. if (vt.isRoot(n) || vt.getPath(n) === vt.cwd()) return 10
  2852. } else if (vt.isDir(n.mode)) return 31;
  2853. return 0
  2854. },
  2855. mayOpen: function (e, t) {
  2856. return e ? vt.isLink(e.mode) ? 32 : vt.isDir(e.mode) && ("r" !== vt.flagsToPermissionString(t) || 512 & t) ? 31 : vt.nodePermissions(e, vt.flagsToPermissionString(t)) : 44
  2857. },
  2858. MAX_OPEN_FDS: 4096,
  2859. nextfd: function (e, t) {
  2860. e = e || 0, t = t || vt.MAX_OPEN_FDS;
  2861. for (var r = e; r <= t; r++) if (!vt.streams[r]) return r;
  2862. throw new vt.ErrnoError(33)
  2863. },
  2864. getStream: function (e) {
  2865. return vt.streams[e]
  2866. },
  2867. createStream: function (e, t, r) {
  2868. vt.FSStream || (vt.FSStream = function () {
  2869. }, vt.FSStream.prototype = {
  2870. object: {
  2871. get: function () {
  2872. return this.node
  2873. }, set: function (e) {
  2874. this.node = e
  2875. }
  2876. }, isRead: {
  2877. get: function () {
  2878. return 1 != (2097155 & this.flags)
  2879. }
  2880. }, isWrite: {
  2881. get: function () {
  2882. return 0 != (2097155 & this.flags)
  2883. }
  2884. }, isAppend: {
  2885. get: function () {
  2886. return 1024 & this.flags
  2887. }
  2888. }
  2889. });
  2890. var n = new vt.FSStream;
  2891. for (var o in e) n[o] = e[o];
  2892. e = n;
  2893. var a = vt.nextfd(t, r);
  2894. return e.fd = a, vt.streams[a] = e, e
  2895. },
  2896. closeStream: function (e) {
  2897. vt.streams[e] = null
  2898. },
  2899. chrdev_stream_ops: {
  2900. open: function (e) {
  2901. var t = vt.getDevice(e.node.rdev);
  2902. e.stream_ops = t.stream_ops, e.stream_ops.open && e.stream_ops.open(e)
  2903. }, llseek: function () {
  2904. throw new vt.ErrnoError(70)
  2905. }
  2906. },
  2907. major: function (e) {
  2908. return e >> 8
  2909. },
  2910. minor: function (e) {
  2911. return 255 & e
  2912. },
  2913. makedev: function (e, t) {
  2914. return e << 8 | t
  2915. },
  2916. registerDevice: function (e, t) {
  2917. vt.devices[e] = {stream_ops: t}
  2918. },
  2919. getDevice: function (e) {
  2920. return vt.devices[e]
  2921. },
  2922. getMounts: function (e) {
  2923. for (var t = [], r = [e]; r.length;) {
  2924. var n = r.pop();
  2925. t.push(n), r.push.apply(r, n.mounts)
  2926. }
  2927. return t
  2928. },
  2929. syncfs: function (e, t) {
  2930. "function" == typeof e && (t = e, e = !1), vt.syncFSRequests++, vt.syncFSRequests > 1 && Me("warning: " + vt.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work");
  2931. var r = vt.getMounts(vt.root.mount), n = 0;
  2932. function o(e) {
  2933. return vt.syncFSRequests--, t(e)
  2934. }
  2935. function a(e) {
  2936. if (e) return a.errored ? void 0 : (a.errored = !0, o(e));
  2937. ++n >= r.length && o(null)
  2938. }
  2939. r.forEach((function (t) {
  2940. if (!t.type.syncfs) return a(null);
  2941. t.type.syncfs(t, e, a)
  2942. }))
  2943. },
  2944. mount: function (e, t, r) {
  2945. var n, o = "/" === r, a = !r;
  2946. if (o && vt.root) throw new vt.ErrnoError(10);
  2947. if (!o && !a) {
  2948. var i = vt.lookupPath(r, {follow_mount: !1});
  2949. if (r = i.path, n = i.node, vt.isMountpoint(n)) throw new vt.ErrnoError(10);
  2950. if (!vt.isDir(n.mode)) throw new vt.ErrnoError(54)
  2951. }
  2952. var s = {type: e, opts: t, mountpoint: r, mounts: []}, u = e.mount(s);
  2953. return u.mount = s, s.root = u, o ? vt.root = u : n && (n.mounted = s, n.mount && n.mount.mounts.push(s)), u
  2954. },
  2955. unmount: function (e) {
  2956. var t = vt.lookupPath(e, {follow_mount: !1});
  2957. if (!vt.isMountpoint(t.node)) throw new vt.ErrnoError(28);
  2958. var r = t.node, n = r.mounted, o = vt.getMounts(n);
  2959. Object.keys(vt.nameTable).forEach((function (e) {
  2960. for (var t = vt.nameTable[e]; t;) {
  2961. var r = t.name_next;
  2962. -1 !== o.indexOf(t.mount) && vt.destroyNode(t), t = r
  2963. }
  2964. })), r.mounted = null;
  2965. var a = r.mount.mounts.indexOf(n);
  2966. r.mount.mounts.splice(a, 1)
  2967. },
  2968. lookup: function (e, t) {
  2969. return e.node_ops.lookup(e, t)
  2970. },
  2971. mknod: function (e, t, r) {
  2972. var n = vt.lookupPath(e, {parent: !0}).node, o = ht.basename(e);
  2973. if (!o || "." === o || ".." === o) throw new vt.ErrnoError(28);
  2974. var a = vt.mayCreate(n, o);
  2975. if (a) throw new vt.ErrnoError(a);
  2976. if (!n.node_ops.mknod) throw new vt.ErrnoError(63);
  2977. return n.node_ops.mknod(n, o, t, r)
  2978. },
  2979. create: function (e, t) {
  2980. return t = void 0 !== t ? t : 438, t &= 4095, t |= 32768, vt.mknod(e, t, 0)
  2981. },
  2982. mkdir: function (e, t) {
  2983. return t = void 0 !== t ? t : 511, t &= 1023, t |= 16384, vt.mknod(e, t, 0)
  2984. },
  2985. mkdirTree: function (e, t) {
  2986. for (var r = e.split("/"), n = "", o = 0; o < r.length; ++o) if (r[o]) {
  2987. n += "/" + r[o];
  2988. try {
  2989. vt.mkdir(n, t)
  2990. } catch (e) {
  2991. if (20 != e.errno) throw e
  2992. }
  2993. }
  2994. },
  2995. mkdev: function (e, t, r) {
  2996. return void 0 === r && (r = t, t = 438), t |= 8192, vt.mknod(e, t, r)
  2997. },
  2998. symlink: function (e, t) {
  2999. if (!mt.resolve(e)) throw new vt.ErrnoError(44);
  3000. var r = vt.lookupPath(t, {parent: !0}).node;
  3001. if (!r) throw new vt.ErrnoError(44);
  3002. var n = ht.basename(t), o = vt.mayCreate(r, n);
  3003. if (o) throw new vt.ErrnoError(o);
  3004. if (!r.node_ops.symlink) throw new vt.ErrnoError(63);
  3005. return r.node_ops.symlink(r, n, e)
  3006. },
  3007. rename: function (e, t) {
  3008. var r, n, o = ht.dirname(e), a = ht.dirname(t), i = ht.basename(e), s = ht.basename(t);
  3009. if (r = vt.lookupPath(e, {parent: !0}).node, n = vt.lookupPath(t, {parent: !0}).node, !r || !n) throw new vt.ErrnoError(44);
  3010. if (r.mount !== n.mount) throw new vt.ErrnoError(75);
  3011. var u, c = vt.lookupNode(r, i), l = mt.relative(e, a);
  3012. if ("." !== l.charAt(0)) throw new vt.ErrnoError(28);
  3013. if ("." !== (l = mt.relative(t, o)).charAt(0)) throw new vt.ErrnoError(55);
  3014. try {
  3015. u = vt.lookupNode(n, s)
  3016. } catch (e) {
  3017. }
  3018. if (c !== u) {
  3019. var d = vt.isDir(c.mode), f = vt.mayDelete(r, i, d);
  3020. if (f) throw new vt.ErrnoError(f);
  3021. if (f = u ? vt.mayDelete(n, s, d) : vt.mayCreate(n, s)) throw new vt.ErrnoError(f);
  3022. if (!r.node_ops.rename) throw new vt.ErrnoError(63);
  3023. if (vt.isMountpoint(c) || u && vt.isMountpoint(u)) throw new vt.ErrnoError(10);
  3024. if (n !== r && (f = vt.nodePermissions(r, "w"))) throw new vt.ErrnoError(f);
  3025. try {
  3026. vt.trackingDelegate.willMovePath && vt.trackingDelegate.willMovePath(e, t)
  3027. } catch (r) {
  3028. Me("FS.trackingDelegate['willMovePath']('" + e + "', '" + t + "') threw an exception: " + r.message)
  3029. }
  3030. vt.hashRemoveNode(c);
  3031. try {
  3032. r.node_ops.rename(c, n, s)
  3033. } catch (e) {
  3034. throw e
  3035. } finally {
  3036. vt.hashAddNode(c)
  3037. }
  3038. try {
  3039. vt.trackingDelegate.onMovePath && vt.trackingDelegate.onMovePath(e, t)
  3040. } catch (r) {
  3041. Me("FS.trackingDelegate['onMovePath']('" + e + "', '" + t + "') threw an exception: " + r.message)
  3042. }
  3043. }
  3044. },
  3045. rmdir: function (e) {
  3046. var t = vt.lookupPath(e, {parent: !0}).node, r = ht.basename(e), n = vt.lookupNode(t, r),
  3047. o = vt.mayDelete(t, r, !0);
  3048. if (o) throw new vt.ErrnoError(o);
  3049. if (!t.node_ops.rmdir) throw new vt.ErrnoError(63);
  3050. if (vt.isMountpoint(n)) throw new vt.ErrnoError(10);
  3051. try {
  3052. vt.trackingDelegate.willDeletePath && vt.trackingDelegate.willDeletePath(e)
  3053. } catch (t) {
  3054. Me("FS.trackingDelegate['willDeletePath']('" + e + "') threw an exception: " + t.message)
  3055. }
  3056. t.node_ops.rmdir(t, r), vt.destroyNode(n);
  3057. try {
  3058. vt.trackingDelegate.onDeletePath && vt.trackingDelegate.onDeletePath(e)
  3059. } catch (t) {
  3060. Me("FS.trackingDelegate['onDeletePath']('" + e + "') threw an exception: " + t.message)
  3061. }
  3062. },
  3063. readdir: function (e) {
  3064. var t = vt.lookupPath(e, {follow: !0}).node;
  3065. if (!t.node_ops.readdir) throw new vt.ErrnoError(54);
  3066. return t.node_ops.readdir(t)
  3067. },
  3068. unlink: function (e) {
  3069. var t = vt.lookupPath(e, {parent: !0}).node, r = ht.basename(e), n = vt.lookupNode(t, r),
  3070. o = vt.mayDelete(t, r, !1);
  3071. if (o) throw new vt.ErrnoError(o);
  3072. if (!t.node_ops.unlink) throw new vt.ErrnoError(63);
  3073. if (vt.isMountpoint(n)) throw new vt.ErrnoError(10);
  3074. try {
  3075. vt.trackingDelegate.willDeletePath && vt.trackingDelegate.willDeletePath(e)
  3076. } catch (t) {
  3077. Me("FS.trackingDelegate['willDeletePath']('" + e + "') threw an exception: " + t.message)
  3078. }
  3079. t.node_ops.unlink(t, r), vt.destroyNode(n);
  3080. try {
  3081. vt.trackingDelegate.onDeletePath && vt.trackingDelegate.onDeletePath(e)
  3082. } catch (t) {
  3083. Me("FS.trackingDelegate['onDeletePath']('" + e + "') threw an exception: " + t.message)
  3084. }
  3085. },
  3086. readlink: function (e) {
  3087. var t = vt.lookupPath(e).node;
  3088. if (!t) throw new vt.ErrnoError(44);
  3089. if (!t.node_ops.readlink) throw new vt.ErrnoError(28);
  3090. return mt.resolve(vt.getPath(t.parent), t.node_ops.readlink(t))
  3091. },
  3092. stat: function (e, t) {
  3093. var r = vt.lookupPath(e, {follow: !t}).node;
  3094. if (!r) throw new vt.ErrnoError(44);
  3095. if (!r.node_ops.getattr) throw new vt.ErrnoError(63);
  3096. return r.node_ops.getattr(r)
  3097. },
  3098. lstat: function (e) {
  3099. return vt.stat(e, !0)
  3100. },
  3101. chmod: function (e, t, r) {
  3102. var n;
  3103. "string" == typeof e ? n = vt.lookupPath(e, {follow: !r}).node : n = e;
  3104. if (!n.node_ops.setattr) throw new vt.ErrnoError(63);
  3105. n.node_ops.setattr(n, {mode: 4095 & t | -4096 & n.mode, timestamp: Date.now()})
  3106. },
  3107. lchmod: function (e, t) {
  3108. vt.chmod(e, t, !0)
  3109. },
  3110. fchmod: function (e, t) {
  3111. var r = vt.getStream(e);
  3112. if (!r) throw new vt.ErrnoError(8);
  3113. vt.chmod(r.node, t)
  3114. },
  3115. chown: function (e, t, r, n) {
  3116. var o;
  3117. "string" == typeof e ? o = vt.lookupPath(e, {follow: !n}).node : o = e;
  3118. if (!o.node_ops.setattr) throw new vt.ErrnoError(63);
  3119. o.node_ops.setattr(o, {timestamp: Date.now()})
  3120. },
  3121. lchown: function (e, t, r) {
  3122. vt.chown(e, t, r, !0)
  3123. },
  3124. fchown: function (e, t, r) {
  3125. var n = vt.getStream(e);
  3126. if (!n) throw new vt.ErrnoError(8);
  3127. vt.chown(n.node, t, r)
  3128. },
  3129. truncate: function (e, t) {
  3130. if (t < 0) throw new vt.ErrnoError(28);
  3131. var r;
  3132. "string" == typeof e ? r = vt.lookupPath(e, {follow: !0}).node : r = e;
  3133. if (!r.node_ops.setattr) throw new vt.ErrnoError(63);
  3134. if (vt.isDir(r.mode)) throw new vt.ErrnoError(31);
  3135. if (!vt.isFile(r.mode)) throw new vt.ErrnoError(28);
  3136. var n = vt.nodePermissions(r, "w");
  3137. if (n) throw new vt.ErrnoError(n);
  3138. r.node_ops.setattr(r, {size: t, timestamp: Date.now()})
  3139. },
  3140. ftruncate: function (e, t) {
  3141. var r = vt.getStream(e);
  3142. if (!r) throw new vt.ErrnoError(8);
  3143. if (0 == (2097155 & r.flags)) throw new vt.ErrnoError(28);
  3144. vt.truncate(r.node, t)
  3145. },
  3146. utime: function (e, t, r) {
  3147. var n = vt.lookupPath(e, {follow: !0}).node;
  3148. n.node_ops.setattr(n, {timestamp: Math.max(t, r)})
  3149. },
  3150. open: function (e, t, r, n, o) {
  3151. if ("" === e) throw new vt.ErrnoError(44);
  3152. var a;
  3153. if (r = void 0 === r ? 438 : r, r = 64 & (t = "string" == typeof t ? vt.modeStringToFlags(t) : t) ? 4095 & r | 32768 : 0, "object" == typeof e) a = e; else {
  3154. e = ht.normalize(e);
  3155. try {
  3156. a = vt.lookupPath(e, {follow: !(131072 & t)}).node
  3157. } catch (e) {
  3158. }
  3159. }
  3160. var i = !1;
  3161. if (64 & t) if (a) {
  3162. if (128 & t) throw new vt.ErrnoError(20)
  3163. } else a = vt.mknod(e, r, 0), i = !0;
  3164. if (!a) throw new vt.ErrnoError(44);
  3165. if (vt.isChrdev(a.mode) && (t &= -513), 65536 & t && !vt.isDir(a.mode)) throw new vt.ErrnoError(54);
  3166. if (!i) {
  3167. var s = vt.mayOpen(a, t);
  3168. if (s) throw new vt.ErrnoError(s)
  3169. }
  3170. 512 & t && vt.truncate(a, 0), t &= -131713;
  3171. var u = vt.createStream({
  3172. node: a,
  3173. path: vt.getPath(a),
  3174. flags: t,
  3175. seekable: !0,
  3176. position: 0,
  3177. stream_ops: a.stream_ops,
  3178. ungotten: [],
  3179. error: !1
  3180. }, n, o);
  3181. u.stream_ops.open && u.stream_ops.open(u), !Ee.logReadFiles || 1 & t || (vt.readFiles || (vt.readFiles = {}), e in vt.readFiles || (vt.readFiles[e] = 1, Me("FS.trackingDelegate error on read file: " + e)));
  3182. try {
  3183. if (vt.trackingDelegate.onOpenFile) {
  3184. var c = 0;
  3185. 1 != (2097155 & t) && (c |= vt.tracking.openFlags.READ), 0 != (2097155 & t) && (c |= vt.tracking.openFlags.WRITE), vt.trackingDelegate.onOpenFile(e, c)
  3186. }
  3187. } catch (t) {
  3188. Me("FS.trackingDelegate['onOpenFile']('" + e + "', flags) threw an exception: " + t.message)
  3189. }
  3190. return u
  3191. },
  3192. close: function (e) {
  3193. if (vt.isClosed(e)) throw new vt.ErrnoError(8);
  3194. e.getdents && (e.getdents = null);
  3195. try {
  3196. e.stream_ops.close && e.stream_ops.close(e)
  3197. } catch (e) {
  3198. throw e
  3199. } finally {
  3200. vt.closeStream(e.fd)
  3201. }
  3202. e.fd = null
  3203. },
  3204. isClosed: function (e) {
  3205. return null === e.fd
  3206. },
  3207. llseek: function (e, t, r) {
  3208. if (vt.isClosed(e)) throw new vt.ErrnoError(8);
  3209. if (!e.seekable || !e.stream_ops.llseek) throw new vt.ErrnoError(70);
  3210. if (0 != r && 1 != r && 2 != r) throw new vt.ErrnoError(28);
  3211. return e.position = e.stream_ops.llseek(e, t, r), e.ungotten = [], e.position
  3212. },
  3213. read: function (e, t, r, n, o) {
  3214. if (n < 0 || o < 0) throw new vt.ErrnoError(28);
  3215. if (vt.isClosed(e)) throw new vt.ErrnoError(8);
  3216. if (1 == (2097155 & e.flags)) throw new vt.ErrnoError(8);
  3217. if (vt.isDir(e.node.mode)) throw new vt.ErrnoError(31);
  3218. if (!e.stream_ops.read) throw new vt.ErrnoError(28);
  3219. var a = void 0 !== o;
  3220. if (a) {
  3221. if (!e.seekable) throw new vt.ErrnoError(70)
  3222. } else o = e.position;
  3223. var i = e.stream_ops.read(e, t, r, n, o);
  3224. return a || (e.position += i), i
  3225. },
  3226. write: function (e, t, r, n, o, a) {
  3227. if (n < 0 || o < 0) throw new vt.ErrnoError(28);
  3228. if (vt.isClosed(e)) throw new vt.ErrnoError(8);
  3229. if (0 == (2097155 & e.flags)) throw new vt.ErrnoError(8);
  3230. if (vt.isDir(e.node.mode)) throw new vt.ErrnoError(31);
  3231. if (!e.stream_ops.write) throw new vt.ErrnoError(28);
  3232. e.seekable && 1024 & e.flags && vt.llseek(e, 0, 2);
  3233. var i = void 0 !== o;
  3234. if (i) {
  3235. if (!e.seekable) throw new vt.ErrnoError(70)
  3236. } else o = e.position;
  3237. var s = e.stream_ops.write(e, t, r, n, o, a);
  3238. i || (e.position += s);
  3239. try {
  3240. e.path && vt.trackingDelegate.onWriteToFile && vt.trackingDelegate.onWriteToFile(e.path)
  3241. } catch (t) {
  3242. Me("FS.trackingDelegate['onWriteToFile']('" + e.path + "') threw an exception: " + t.message)
  3243. }
  3244. return s
  3245. },
  3246. allocate: function (e, t, r) {
  3247. if (vt.isClosed(e)) throw new vt.ErrnoError(8);
  3248. if (t < 0 || r <= 0) throw new vt.ErrnoError(28);
  3249. if (0 == (2097155 & e.flags)) throw new vt.ErrnoError(8);
  3250. if (!vt.isFile(e.node.mode) && !vt.isDir(e.node.mode)) throw new vt.ErrnoError(43);
  3251. if (!e.stream_ops.allocate) throw new vt.ErrnoError(138);
  3252. e.stream_ops.allocate(e, t, r)
  3253. },
  3254. mmap: function (e, t, r, n, o, a) {
  3255. if (0 != (2 & o) && 0 == (2 & a) && 2 != (2097155 & e.flags)) throw new vt.ErrnoError(2);
  3256. if (1 == (2097155 & e.flags)) throw new vt.ErrnoError(2);
  3257. if (!e.stream_ops.mmap) throw new vt.ErrnoError(43);
  3258. return e.stream_ops.mmap(e, t, r, n, o, a)
  3259. },
  3260. msync: function (e, t, r, n, o) {
  3261. return e && e.stream_ops.msync ? e.stream_ops.msync(e, t, r, n, o) : 0
  3262. },
  3263. munmap: function (e) {
  3264. return 0
  3265. },
  3266. ioctl: function (e, t, r) {
  3267. if (!e.stream_ops.ioctl) throw new vt.ErrnoError(59);
  3268. return e.stream_ops.ioctl(e, t, r)
  3269. },
  3270. readFile: function (e, t) {
  3271. if ((t = t || {}).flags = t.flags || 0, t.encoding = t.encoding || "binary", "utf8" !== t.encoding && "binary" !== t.encoding) throw new Error('Invalid encoding type "' + t.encoding + '"');
  3272. var r, n = vt.open(e, t.flags), o = vt.stat(e).size, a = new Uint8Array(o);
  3273. return vt.read(n, a, 0, o, 0), "utf8" === t.encoding ? r = Pr(a, 0) : "binary" === t.encoding && (r = a), vt.close(n), r
  3274. },
  3275. writeFile: function (e, t, r) {
  3276. (r = r || {}).flags = r.flags || 577;
  3277. var n = vt.open(e, r.flags, r.mode);
  3278. if ("string" == typeof t) {
  3279. var o = new Uint8Array(Rr(t) + 1), a = Br(t, o, 0, o.length);
  3280. vt.write(n, o, 0, a, void 0, r.canOwn)
  3281. } else {
  3282. if (!ArrayBuffer.isView(t)) throw new Error("Unsupported data type");
  3283. vt.write(n, t, 0, t.byteLength, void 0, r.canOwn)
  3284. }
  3285. vt.close(n)
  3286. },
  3287. cwd: function () {
  3288. return vt.currentPath
  3289. },
  3290. chdir: function (e) {
  3291. var t = vt.lookupPath(e, {follow: !0});
  3292. if (null === t.node) throw new vt.ErrnoError(44);
  3293. if (!vt.isDir(t.node.mode)) throw new vt.ErrnoError(54);
  3294. var r = vt.nodePermissions(t.node, "x");
  3295. if (r) throw new vt.ErrnoError(r);
  3296. vt.currentPath = t.path
  3297. },
  3298. createDefaultDirectories: function () {
  3299. vt.mkdir("/tmp"), vt.mkdir("/home"), vt.mkdir("/home/web_user")
  3300. },
  3301. createDefaultDevices: function () {
  3302. vt.mkdir("/dev"), vt.registerDevice(vt.makedev(1, 3), {
  3303. read: function () {
  3304. return 0
  3305. }, write: function (e, t, r, n, o) {
  3306. return n
  3307. }
  3308. }), vt.mkdev("/dev/null", vt.makedev(1, 3)), At.register(vt.makedev(5, 0), At.default_tty_ops), At.register(vt.makedev(6, 0), At.default_tty1_ops), vt.mkdev("/dev/tty", vt.makedev(5, 0)), vt.mkdev("/dev/tty1", vt.makedev(6, 0));
  3309. var e = function () {
  3310. if ("object" == typeof crypto && "function" == typeof crypto.getRandomValues) {
  3311. var e = new Uint8Array(1);
  3312. return function () {
  3313. return crypto.getRandomValues(e), e[0]
  3314. }
  3315. }
  3316. return function () {
  3317. Yr("randomDevice")
  3318. }
  3319. }();
  3320. vt.createDevice("/dev", "random", e), vt.createDevice("/dev", "urandom", e), vt.mkdir("/dev/shm"), vt.mkdir("/dev/shm/tmp")
  3321. },
  3322. createSpecialDirectories: function () {
  3323. vt.mkdir("/proc");
  3324. var e = vt.mkdir("/proc/self");
  3325. vt.mkdir("/proc/self/fd"), vt.mount({
  3326. mount: function () {
  3327. var t = vt.createNode(e, "fd", 16895, 73);
  3328. return t.node_ops = {
  3329. lookup: function (e, t) {
  3330. var r = +t, n = vt.getStream(r);
  3331. if (!n) throw new vt.ErrnoError(8);
  3332. var o = {
  3333. parent: null, mount: {mountpoint: "fake"}, node_ops: {
  3334. readlink: function () {
  3335. return n.path
  3336. }
  3337. }
  3338. };
  3339. return o.parent = o, o
  3340. }
  3341. }, t
  3342. }
  3343. }, {}, "/proc/self/fd")
  3344. },
  3345. createStandardStreams: function () {
  3346. Ee.stdin ? vt.createDevice("/dev", "stdin", Ee.stdin) : vt.symlink("/dev/tty", "/dev/stdin"), Ee.stdout ? vt.createDevice("/dev", "stdout", null, Ee.stdout) : vt.symlink("/dev/tty", "/dev/stdout"), Ee.stderr ? vt.createDevice("/dev", "stderr", null, Ee.stderr) : vt.symlink("/dev/tty1", "/dev/stderr");
  3347. vt.open("/dev/stdin", 0), vt.open("/dev/stdout", 1), vt.open("/dev/stderr", 1)
  3348. },
  3349. ensureErrnoError: function () {
  3350. vt.ErrnoError || (vt.ErrnoError = function (e, t) {
  3351. this.node = t, this.setErrno = function (e) {
  3352. this.errno = e
  3353. }, this.setErrno(e), this.message = "FS error"
  3354. }, vt.ErrnoError.prototype = new Error, vt.ErrnoError.prototype.constructor = vt.ErrnoError, [44].forEach((function (e) {
  3355. vt.genericErrors[e] = new vt.ErrnoError(e), vt.genericErrors[e].stack = "<generic error, no stack>"
  3356. })))
  3357. },
  3358. staticInit: function () {
  3359. vt.ensureErrnoError(), vt.nameTable = new Array(4096), vt.mount(gt, {}, "/"), vt.createDefaultDirectories(), vt.createDefaultDevices(), vt.createSpecialDirectories(), vt.filesystems = {MEMFS: gt}
  3360. },
  3361. init: function (e, t, r) {
  3362. vt.init.initialized = !0, vt.ensureErrnoError(), Ee.stdin = e || Ee.stdin, Ee.stdout = t || Ee.stdout, Ee.stderr = r || Ee.stderr, vt.createStandardStreams()
  3363. },
  3364. quit: function () {
  3365. vt.init.initialized = !1;
  3366. var e = Ee._fflush;
  3367. e && e(0);
  3368. for (var t = 0; t < vt.streams.length; t++) {
  3369. var r = vt.streams[t];
  3370. r && vt.close(r)
  3371. }
  3372. },
  3373. getMode: function (e, t) {
  3374. var r = 0;
  3375. return e && (r |= 365), t && (r |= 146), r
  3376. },
  3377. findObject: function (e, t) {
  3378. var r = vt.analyzePath(e, t);
  3379. return r.exists ? r.object : null
  3380. },
  3381. analyzePath: function (e, t) {
  3382. try {
  3383. e = (n = vt.lookupPath(e, {follow: !t})).path
  3384. } catch (e) {
  3385. }
  3386. var r = {
  3387. isRoot: !1,
  3388. exists: !1,
  3389. error: 0,
  3390. name: null,
  3391. path: null,
  3392. object: null,
  3393. parentExists: !1,
  3394. parentPath: null,
  3395. parentObject: null
  3396. };
  3397. try {
  3398. var n = vt.lookupPath(e, {parent: !0});
  3399. r.parentExists = !0, r.parentPath = n.path, r.parentObject = n.node, r.name = ht.basename(e), n = vt.lookupPath(e, {follow: !t}), r.exists = !0, r.path = n.path, r.object = n.node, r.name = n.node.name, r.isRoot = "/" === n.path
  3400. } catch (e) {
  3401. r.error = e.errno
  3402. }
  3403. return r
  3404. },
  3405. createPath: function (e, t, r, n) {
  3406. e = "string" == typeof e ? e : vt.getPath(e);
  3407. for (var o = t.split("/").reverse(); o.length;) {
  3408. var a = o.pop();
  3409. if (a) {
  3410. var i = ht.join2(e, a);
  3411. try {
  3412. vt.mkdir(i)
  3413. } catch (e) {
  3414. }
  3415. e = i
  3416. }
  3417. }
  3418. return i
  3419. },
  3420. createFile: function (e, t, r, n, o) {
  3421. var a = ht.join2("string" == typeof e ? e : vt.getPath(e), t), i = vt.getMode(n, o);
  3422. return vt.create(a, i)
  3423. },
  3424. createDataFile: function (e, t, r, n, o, a) {
  3425. var i = t ? ht.join2("string" == typeof e ? e : vt.getPath(e), t) : e, s = vt.getMode(n, o),
  3426. u = vt.create(i, s);
  3427. if (r) {
  3428. if ("string" == typeof r) {
  3429. for (var c = new Array(r.length), l = 0, d = r.length; l < d; ++l) c[l] = r.charCodeAt(l);
  3430. r = c
  3431. }
  3432. vt.chmod(u, 146 | s);
  3433. var f = vt.open(u, 577);
  3434. vt.write(f, r, 0, r.length, 0, a), vt.close(f), vt.chmod(u, s)
  3435. }
  3436. return u
  3437. },
  3438. createDevice: function (e, t, r, n) {
  3439. var o = ht.join2("string" == typeof e ? e : vt.getPath(e), t), a = vt.getMode(!!r, !!n);
  3440. vt.createDevice.major || (vt.createDevice.major = 64);
  3441. var i = vt.makedev(vt.createDevice.major++, 0);
  3442. return vt.registerDevice(i, {
  3443. open: function (e) {
  3444. e.seekable = !1
  3445. }, close: function (e) {
  3446. n && n.buffer && n.buffer.length && n(10)
  3447. }, read: function (e, t, n, o, a) {
  3448. for (var i = 0, s = 0; s < o; s++) {
  3449. var u;
  3450. try {
  3451. u = r()
  3452. } catch (e) {
  3453. throw new vt.ErrnoError(29)
  3454. }
  3455. if (void 0 === u && 0 === i) throw new vt.ErrnoError(6);
  3456. if (null == u) break;
  3457. i++, t[n + s] = u
  3458. }
  3459. return i && (e.node.timestamp = Date.now()), i
  3460. }, write: function (e, t, r, o, a) {
  3461. for (var i = 0; i < o; i++) try {
  3462. n(t[r + i])
  3463. } catch (e) {
  3464. throw new vt.ErrnoError(29)
  3465. }
  3466. return o && (e.node.timestamp = Date.now()), i
  3467. }
  3468. }), vt.mkdev(o, a, i)
  3469. },
  3470. forceLoadFile: function (e) {
  3471. if (e.isDevice || e.isFolder || e.link || e.contents) return !0;
  3472. if ("undefined" != typeof XMLHttpRequest) throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
  3473. if (!Pe) throw new Error("Cannot load without read() or XMLHttpRequest.");
  3474. try {
  3475. e.contents = ga(Pe(e.url), !0), e.usedBytes = e.contents.length
  3476. } catch (e) {
  3477. throw new vt.ErrnoError(29)
  3478. }
  3479. },
  3480. createLazyFile: function (e, t, r, n, o) {
  3481. function a() {
  3482. this.lengthKnown = !1, this.chunks = []
  3483. }
  3484. if (a.prototype.get = function (e) {
  3485. if (!(e > this.length - 1 || e < 0)) {
  3486. var t = e % this.chunkSize, r = e / this.chunkSize | 0;
  3487. return this.getter(r)[t]
  3488. }
  3489. }, a.prototype.setDataGetter = function (e) {
  3490. this.getter = e
  3491. }, a.prototype.cacheLength = function () {
  3492. var e = new XMLHttpRequest;
  3493. if (e.open("HEAD", r, !1), e.send(null), !(e.status >= 200 && e.status < 300 || 304 === e.status)) throw new Error("Couldn't load " + r + ". Status: " + e.status);
  3494. var t, n = Number(e.getResponseHeader("Content-length")),
  3495. o = (t = e.getResponseHeader("Accept-Ranges")) && "bytes" === t,
  3496. a = (t = e.getResponseHeader("Content-Encoding")) && "gzip" === t, i = 1048576;
  3497. o || (i = n);
  3498. var s = this;
  3499. s.setDataGetter((function (e) {
  3500. var t = e * i, o = (e + 1) * i - 1;
  3501. if (o = Math.min(o, n - 1), void 0 === s.chunks[e] && (s.chunks[e] = function (e, t) {
  3502. if (e > t) throw new Error("invalid range (" + e + ", " + t + ") or no bytes requested!");
  3503. if (t > n - 1) throw new Error("only " + n + " bytes available! programmer error!");
  3504. var o = new XMLHttpRequest;
  3505. if (o.open("GET", r, !1), n !== i && o.setRequestHeader("Range", "bytes=" + e + "-" + t), "undefined" != typeof Uint8Array && (o.responseType = "arraybuffer"), o.overrideMimeType && o.overrideMimeType("text/plain; charset=x-user-defined"), o.send(null), !(o.status >= 200 && o.status < 300 || 304 === o.status)) throw new Error("Couldn't load " + r + ". Status: " + o.status);
  3506. return void 0 !== o.response ? new Uint8Array(o.response || []) : ga(o.responseText || "", !0)
  3507. }(t, o)), void 0 === s.chunks[e]) throw new Error("doXHR failed!");
  3508. return s.chunks[e]
  3509. })), !a && n || (i = n = 1, n = this.getter(0).length, i = n, Be("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = n, this._chunkSize = i, this.lengthKnown = !0
  3510. }, "undefined" != typeof XMLHttpRequest) {
  3511. if (!De) throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
  3512. var i = new a;
  3513. Object.defineProperties(i, {
  3514. length: {
  3515. get: function () {
  3516. return this.lengthKnown || this.cacheLength(), this._length
  3517. }
  3518. }, chunkSize: {
  3519. get: function () {
  3520. return this.lengthKnown || this.cacheLength(), this._chunkSize
  3521. }
  3522. }
  3523. });
  3524. var s = {isDevice: !1, contents: i}
  3525. } else s = {isDevice: !1, url: r};
  3526. var u = vt.createFile(e, t, s, n, o);
  3527. s.contents ? u.contents = s.contents : s.url && (u.contents = null, u.url = s.url), Object.defineProperties(u, {
  3528. usedBytes: {
  3529. get: function () {
  3530. return this.contents.length
  3531. }
  3532. }
  3533. });
  3534. var c = {};
  3535. return Object.keys(u.stream_ops).forEach((function (e) {
  3536. var t = u.stream_ops[e];
  3537. c[e] = function () {
  3538. return vt.forceLoadFile(u), t.apply(null, arguments)
  3539. }
  3540. })), c.read = function (e, t, r, n, o) {
  3541. vt.forceLoadFile(u);
  3542. var a = e.node.contents;
  3543. if (o >= a.length) return 0;
  3544. var i = Math.min(a.length - o, n);
  3545. if (a.slice) for (var s = 0; s < i; s++) t[r + s] = a[o + s]; else for (s = 0; s < i; s++) t[r + s] = a.get(o + s);
  3546. return i
  3547. }, u.stream_ops = c, u
  3548. },
  3549. createPreloadedFile: function (e, t, r, n, o, a, i, s, u, c) {
  3550. Browser.init();
  3551. var l = t ? mt.resolve(ht.join2(e, t)) : e;
  3552. function d(r) {
  3553. function d(r) {
  3554. c && c(), s || vt.createDataFile(e, t, r, n, o, u), a && a(), Wr()
  3555. }
  3556. var f = !1;
  3557. Ee.preloadPlugins.forEach((function (e) {
  3558. f || e.canHandle(l) && (e.handle(r, l, d, (function () {
  3559. i && i(), Wr()
  3560. })), f = !0)
  3561. })), f || d(r)
  3562. }
  3563. zr(), "string" == typeof r ? Browser.asyncLoad(r, (function (e) {
  3564. d(e)
  3565. }), i) : d(r)
  3566. },
  3567. indexedDB: function () {
  3568. return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
  3569. },
  3570. DB_NAME: function () {
  3571. return "EM_FS_" + window.location.pathname
  3572. },
  3573. DB_VERSION: 20,
  3574. DB_STORE_NAME: "FILE_DATA",
  3575. saveFilesToDB: function (e, t, r) {
  3576. t = t || function () {
  3577. }, r = r || function () {
  3578. };
  3579. var n = vt.indexedDB();
  3580. try {
  3581. var o = n.open(vt.DB_NAME(), vt.DB_VERSION)
  3582. } catch (e) {
  3583. return r(e)
  3584. }
  3585. o.onupgradeneeded = function () {
  3586. Be("creating db"), o.result.createObjectStore(vt.DB_STORE_NAME)
  3587. }, o.onsuccess = function () {
  3588. var n = o.result.transaction([vt.DB_STORE_NAME], "readwrite"), a = n.objectStore(vt.DB_STORE_NAME), i = 0,
  3589. s = 0, u = e.length;
  3590. function c() {
  3591. 0 == s ? t() : r()
  3592. }
  3593. e.forEach((function (e) {
  3594. var t = a.put(vt.analyzePath(e).object.contents, e);
  3595. t.onsuccess = function () {
  3596. ++i + s == u && c()
  3597. }, t.onerror = function () {
  3598. s++, i + s == u && c()
  3599. }
  3600. })), n.onerror = r
  3601. }, o.onerror = r
  3602. },
  3603. loadFilesFromDB: function (e, t, r) {
  3604. t = t || function () {
  3605. }, r = r || function () {
  3606. };
  3607. var n = vt.indexedDB();
  3608. try {
  3609. var o = n.open(vt.DB_NAME(), vt.DB_VERSION)
  3610. } catch (e) {
  3611. return r(e)
  3612. }
  3613. o.onupgradeneeded = r, o.onsuccess = function () {
  3614. var n = o.result;
  3615. try {
  3616. var a = n.transaction([vt.DB_STORE_NAME], "readonly")
  3617. } catch (e) {
  3618. return void r(e)
  3619. }
  3620. var i = a.objectStore(vt.DB_STORE_NAME), s = 0, u = 0, c = e.length;
  3621. function l() {
  3622. 0 == u ? t() : r()
  3623. }
  3624. e.forEach((function (e) {
  3625. var t = i.get(e);
  3626. t.onsuccess = function () {
  3627. vt.analyzePath(e).exists && vt.unlink(e), vt.createDataFile(ht.dirname(e), ht.basename(e), t.result, !0, !0, !0), ++s + u == c && l()
  3628. }, t.onerror = function () {
  3629. u++, s + u == c && l()
  3630. }
  3631. })), a.onerror = r
  3632. }, o.onerror = r
  3633. }
  3634. }, Et = {
  3635. mappings: {}, DEFAULT_POLLMASK: 5, umask: 511, calculateAt: function (e, t, r) {
  3636. if ("/" === t[0]) return t;
  3637. var n;
  3638. if (-100 === e) n = vt.cwd(); else {
  3639. var o = vt.getStream(e);
  3640. if (!o) throw new vt.ErrnoError(8);
  3641. n = o.path
  3642. }
  3643. if (0 == t.length) {
  3644. if (!r) throw new vt.ErrnoError(44);
  3645. return n
  3646. }
  3647. return ht.join2(n, t)
  3648. }, doStat: function (e, t, r) {
  3649. try {
  3650. var n = e(t)
  3651. } catch (e) {
  3652. if (e && e.node && ht.normalize(t) !== ht.normalize(vt.getPath(e.node))) return -54;
  3653. throw e
  3654. }
  3655. return $e[r >> 2] = n.dev, $e[r + 4 >> 2] = 0, $e[r + 8 >> 2] = n.ino, $e[r + 12 >> 2] = n.mode, $e[r + 16 >> 2] = n.nlink, $e[r + 20 >> 2] = n.uid, $e[r + 24 >> 2] = n.gid, $e[r + 28 >> 2] = n.rdev, $e[r + 32 >> 2] = 0, ct = [n.size >>> 0, (ut = n.size, +Math.abs(ut) >= 1 ? ut > 0 ? (0 | Math.min(+Math.floor(ut / 4294967296), 4294967295)) >>> 0 : ~~+Math.ceil((ut - +(~~ut >>> 0)) / 4294967296) >>> 0 : 0)], $e[r + 40 >> 2] = ct[0], $e[r + 44 >> 2] = ct[1], $e[r + 48 >> 2] = 4096, $e[r + 52 >> 2] = n.blocks, $e[r + 56 >> 2] = n.atime.getTime() / 1e3 | 0, $e[r + 60 >> 2] = 0, $e[r + 64 >> 2] = n.mtime.getTime() / 1e3 | 0, $e[r + 68 >> 2] = 0, $e[r + 72 >> 2] = n.ctime.getTime() / 1e3 | 0, $e[r + 76 >> 2] = 0, ct = [n.ino >>> 0, (ut = n.ino, +Math.abs(ut) >= 1 ? ut > 0 ? (0 | Math.min(+Math.floor(ut / 4294967296), 4294967295)) >>> 0 : ~~+Math.ceil((ut - +(~~ut >>> 0)) / 4294967296) >>> 0 : 0)], $e[r + 80 >> 2] = ct[0], $e[r + 84 >> 2] = ct[1], 0
  3656. }, doMsync: function (e, t, r, n, o) {
  3657. var a = We.slice(e, e + r);
  3658. vt.msync(t, a, o, r, n)
  3659. }, doMkdir: function (e, t) {
  3660. return "/" === (e = ht.normalize(e))[e.length - 1] && (e = e.substr(0, e.length - 1)), vt.mkdir(e, t, 0), 0
  3661. }, doMknod: function (e, t, r) {
  3662. switch (61440 & t) {
  3663. case 32768:
  3664. case 8192:
  3665. case 24576:
  3666. case 4096:
  3667. case 49152:
  3668. break;
  3669. default:
  3670. return -28
  3671. }
  3672. return vt.mknod(e, t, r), 0
  3673. }, doReadlink: function (e, t, r) {
  3674. if (r <= 0) return -28;
  3675. var n = vt.readlink(e), o = Math.min(r, Rr(n)), a = ze[t + o];
  3676. return Mr(n, t, r + 1), ze[t + o] = a, o
  3677. }, doAccess: function (e, t) {
  3678. if (-8 & t) return -28;
  3679. var r;
  3680. if (!(r = vt.lookupPath(e, {follow: !0}).node)) return -44;
  3681. var n = "";
  3682. return 4 & t && (n += "r"), 2 & t && (n += "w"), 1 & t && (n += "x"), n && vt.nodePermissions(r, n) ? -2 : 0
  3683. }, doDup: function (e, t, r) {
  3684. var n = vt.getStream(r);
  3685. return n && vt.close(n), vt.open(e, t, 0, r, r).fd
  3686. }, doReadv: function (e, t, r, n) {
  3687. for (var o = 0, a = 0; a < r; a++) {
  3688. var i = $e[t + 8 * a >> 2], s = $e[t + (8 * a + 4) >> 2], u = vt.read(e, ze, i, s, n);
  3689. if (u < 0) return -1;
  3690. if (o += u, u < s) break
  3691. }
  3692. return o
  3693. }, doWritev: function (e, t, r, n) {
  3694. for (var o = 0, a = 0; a < r; a++) {
  3695. var i = $e[t + 8 * a >> 2], s = $e[t + (8 * a + 4) >> 2], u = vt.write(e, ze, i, s, n);
  3696. if (u < 0) return -1;
  3697. o += u
  3698. }
  3699. return o
  3700. }, varargs: void 0, get: function () {
  3701. return Et.varargs += 4, $e[Et.varargs - 4 >> 2]
  3702. }, getStr: function (e) {
  3703. return xr(e)
  3704. }, getStreamFromFD: function (e) {
  3705. var t = vt.getStream(e);
  3706. if (!t) throw new vt.ErrnoError(8);
  3707. return t
  3708. }, get64: function (e, t) {
  3709. return e
  3710. }
  3711. }, yt = void 0, wt = {}, _t = {}, bt = {}, kt = 48, Tt = 57, Dt = void 0, St = void 0, Ct = !1, Ot = void 0, Pt = [], xt = {}, Bt = {}, Mt = void 0, Rt = [], Lt = [{}, {value: void 0}, {value: null}, {value: !0}, {value: !1}], It = {}, Ft = [], Ut = [], Nt = [], jt = {
  3712. inEventHandler: 0, removeAllEventListeners: function () {
  3713. for (var e = jt.eventHandlers.length - 1; e >= 0; --e) jt._removeHandler(e);
  3714. jt.eventHandlers = [], jt.deferredCalls = []
  3715. }, registerRemoveEventListeners: function () {
  3716. jt.removeEventListenersRegistered || (tt.push(jt.removeAllEventListeners), jt.removeEventListenersRegistered = !0)
  3717. }, deferredCalls: [], deferCall: function (e, t, r) {
  3718. function n(e, t) {
  3719. if (e.length != t.length) return !1;
  3720. for (var r in e) if (e[r] != t[r]) return !1;
  3721. return !0
  3722. }
  3723. for (var o in jt.deferredCalls) {
  3724. var a = jt.deferredCalls[o];
  3725. if (a.targetFunction == e && n(a.argsList, r)) return
  3726. }
  3727. jt.deferredCalls.push({targetFunction: e, precedence: t, argsList: r}), jt.deferredCalls.sort((function (e, t) {
  3728. return e.precedence < t.precedence
  3729. }))
  3730. }, removeDeferredCalls: function (e) {
  3731. for (var t = 0; t < jt.deferredCalls.length; ++t) jt.deferredCalls[t].targetFunction == e && (jt.deferredCalls.splice(t, 1), --t)
  3732. }, canPerformEventHandlerRequests: function () {
  3733. return jt.inEventHandler && jt.currentEventHandler.allowsDeferredCalls
  3734. }, runDeferredCalls: function () {
  3735. if (jt.canPerformEventHandlerRequests()) for (var e = 0; e < jt.deferredCalls.length; ++e) {
  3736. var t = jt.deferredCalls[e];
  3737. jt.deferredCalls.splice(e, 1), --e, t.targetFunction.apply(null, t.argsList)
  3738. }
  3739. }, eventHandlers: [], removeAllHandlersOnTarget: function (e, t) {
  3740. for (var r = 0; r < jt.eventHandlers.length; ++r) jt.eventHandlers[r].target != e || t && t != jt.eventHandlers[r].eventTypeString || jt._removeHandler(r--)
  3741. }, _removeHandler: function (e) {
  3742. var t = jt.eventHandlers[e];
  3743. t.target.removeEventListener(t.eventTypeString, t.eventListenerFunc, t.useCapture), jt.eventHandlers.splice(e, 1)
  3744. }, registerOrRemoveHandler: function (e) {
  3745. var t = function (t) {
  3746. ++jt.inEventHandler, jt.currentEventHandler = e, jt.runDeferredCalls(), e.handlerFunc(t), jt.runDeferredCalls(), --jt.inEventHandler
  3747. };
  3748. if (e.callbackfunc) e.eventListenerFunc = t, e.target.addEventListener(e.eventTypeString, t, e.useCapture), jt.eventHandlers.push(e), jt.registerRemoveEventListeners(); else for (var r = 0; r < jt.eventHandlers.length; ++r) jt.eventHandlers[r].target == e.target && jt.eventHandlers[r].eventTypeString == e.eventTypeString && jt._removeHandler(r--)
  3749. }, queueEventHandlerOnThread_iiii: function (e, t, r, n, o) {
  3750. var a = gr(), i = Er(12);
  3751. $e[i >> 2] = r, $e[i + 4 >> 2] = n, $e[i + 8 >> 2] = o, mr(0, e, 637534208, t, n, i), vr(a)
  3752. }, getTargetThreadForEventCallback: function (e) {
  3753. switch (e) {
  3754. case 1:
  3755. return 0;
  3756. case 2:
  3757. return ft.currentProxiedOperationCallerThread;
  3758. default:
  3759. return e
  3760. }
  3761. }, getNodeNameForTarget: function (e) {
  3762. return e ? e == window ? "#window" : e == screen ? "#screen" : e && e.nodeName ? e.nodeName : "" : ""
  3763. }, fullscreenEnabled: function () {
  3764. return document.fullscreenEnabled || document.webkitFullscreenEnabled
  3765. }
  3766. }, Gt = [0, "undefined" != typeof document ? document : 0, "undefined" != typeof window ? window : 0], zt = {
  3767. counter: 1,
  3768. buffers: [],
  3769. programs: [],
  3770. framebuffers: [],
  3771. renderbuffers: [],
  3772. textures: [],
  3773. uniforms: [],
  3774. shaders: [],
  3775. vaos: [],
  3776. contexts: {},
  3777. offscreenCanvases: {},
  3778. timerQueriesEXT: [],
  3779. programInfos: {},
  3780. stringCache: {},
  3781. unpackAlignment: 4,
  3782. recordError: function (e) {
  3783. zt.lastError || (zt.lastError = e)
  3784. },
  3785. getNewId: function (e) {
  3786. for (var t = zt.counter++, r = e.length; r < t; r++) e[r] = null;
  3787. return t
  3788. },
  3789. getSource: function (e, t, r, n) {
  3790. for (var o = "", a = 0; a < t; ++a) {
  3791. var i = n ? $e[n + 4 * a >> 2] : -1;
  3792. o += xr($e[r + 4 * a >> 2], i < 0 ? void 0 : i)
  3793. }
  3794. return o
  3795. },
  3796. createContext: function (e, t) {
  3797. var r = e.getContext("webgl", t);
  3798. return r ? zt.registerContext(r, t) : 0
  3799. },
  3800. registerContext: function (e, t) {
  3801. var r = Jt(8);
  3802. $e[r + 4 >> 2] = sr();
  3803. var n = {handle: r, attributes: t, version: t.majorVersion, GLctx: e};
  3804. return e.canvas && (e.canvas.GLctxObject = n), zt.contexts[r] = n, (void 0 === t.enableExtensionsByDefault || t.enableExtensionsByDefault) && zt.initExtensions(n), r
  3805. },
  3806. makeContextCurrent: function (e) {
  3807. return zt.currentContext = zt.contexts[e], Ee.ctx = Qt = zt.currentContext && zt.currentContext.GLctx, !(e && !Qt)
  3808. },
  3809. getContext: function (e) {
  3810. return zt.contexts[e]
  3811. },
  3812. deleteContext: function (e) {
  3813. zt.currentContext === zt.contexts[e] && (zt.currentContext = null), "object" == typeof jt && jt.removeAllHandlersOnTarget(zt.contexts[e].GLctx.canvas), zt.contexts[e] && zt.contexts[e].GLctx.canvas && (zt.contexts[e].GLctx.canvas.GLctxObject = void 0), Kt(zt.contexts[e].handle), zt.contexts[e] = null
  3814. },
  3815. initExtensions: function (e) {
  3816. if (e || (e = zt.currentContext), !e.initExtensionsDone) {
  3817. e.initExtensionsDone = !0;
  3818. var t, r = e.GLctx;
  3819. !function (e) {
  3820. var t = e.getExtension("ANGLE_instanced_arrays");
  3821. if (t) e.vertexAttribDivisor = function (e, r) {
  3822. t.vertexAttribDivisorANGLE(e, r)
  3823. }, e.drawArraysInstanced = function (e, r, n, o) {
  3824. t.drawArraysInstancedANGLE(e, r, n, o)
  3825. }, e.drawElementsInstanced = function (e, r, n, o, a) {
  3826. t.drawElementsInstancedANGLE(e, r, n, o, a)
  3827. }
  3828. }(r), function (e) {
  3829. var t = e.getExtension("OES_vertex_array_object");
  3830. if (t) e.createVertexArray = function () {
  3831. return t.createVertexArrayOES()
  3832. }, e.deleteVertexArray = function (e) {
  3833. t.deleteVertexArrayOES(e)
  3834. }, e.bindVertexArray = function (e) {
  3835. t.bindVertexArrayOES(e)
  3836. }, e.isVertexArray = function (e) {
  3837. return t.isVertexArrayOES(e)
  3838. }
  3839. }(r), function (e) {
  3840. var t = e.getExtension("WEBGL_draw_buffers");
  3841. if (t) e.drawBuffers = function (e, r) {
  3842. t.drawBuffersWEBGL(e, r)
  3843. }
  3844. }(r), r.disjointTimerQueryExt = r.getExtension("EXT_disjoint_timer_query"), (t = r).multiDrawWebgl = t.getExtension("WEBGL_multi_draw"), (r.getSupportedExtensions() || []).forEach((function (e) {
  3845. e.indexOf("lose_context") < 0 && e.indexOf("debug") < 0 && r.getExtension(e)
  3846. }))
  3847. }
  3848. },
  3849. populateUniformTable: function (e) {
  3850. for (var t = zt.programs[e], r = zt.programInfos[e] = {
  3851. uniforms: {},
  3852. maxUniformLength: 0,
  3853. maxAttributeLength: -1,
  3854. maxUniformBlockNameLength: -1
  3855. }, n = r.uniforms, o = Qt.getProgramParameter(t, 35718), a = 0; a < o; ++a) {
  3856. var i = Qt.getActiveUniform(t, a), s = i.name;
  3857. r.maxUniformLength = Math.max(r.maxUniformLength, s.length + 1), "]" == s.slice(-1) && (s = s.slice(0, s.lastIndexOf("[")));
  3858. var u = Qt.getUniformLocation(t, s);
  3859. if (u) {
  3860. var c = zt.getNewId(zt.uniforms);
  3861. n[s] = [i.size, c], zt.uniforms[c] = u;
  3862. for (var l = 1; l < i.size; ++l) {
  3863. var d = s + "[" + l + "]";
  3864. u = Qt.getUniformLocation(t, d), c = zt.getNewId(zt.uniforms), zt.uniforms[c] = u
  3865. }
  3866. }
  3867. }
  3868. }
  3869. }, Wt = ["default", "low-power", "high-performance"], Yt = {}, Se || ft.initMainThreadBlock(), Ht = function (e, t, r, n) {
  3870. e || (e = this), this.parent = e, this.mount = e.mount, this.mounted = null, this.id = vt.nextInode++, this.name = t, this.mode = r, this.node_ops = {}, this.stream_ops = {}, this.rdev = n
  3871. }, $t = 365, Vt = 146, Object.defineProperties(Ht.prototype, {
  3872. read: {
  3873. get: function () {
  3874. return (this.mode & $t) === $t
  3875. }, set: function (e) {
  3876. e ? this.mode |= $t : this.mode &= -366
  3877. }
  3878. }, write: {
  3879. get: function () {
  3880. return (this.mode & Vt) === Vt
  3881. }, set: function (e) {
  3882. e ? this.mode |= Vt : this.mode &= -147
  3883. }
  3884. }, isFolder: {
  3885. get: function () {
  3886. return vt.isDir(this.mode)
  3887. }
  3888. }, isDevice: {
  3889. get: function () {
  3890. return vt.isChrdev(this.mode)
  3891. }
  3892. }
  3893. }), vt.FSNode = Ht, vt.staticInit(), function () {
  3894. for (var e = new Array(256), t = 0; t < 256; ++t) e[t] = String.fromCharCode(t);
  3895. yt = e
  3896. }(), Dt = Ee.BindingError = fn(Error, "BindingError"), St = Ee.InternalError = fn(Error, "InternalError"), Cn.prototype.isAliasOf = vn, Cn.prototype.clone = bn, Cn.prototype.delete = kn, Cn.prototype.isDeleted = Tn, Cn.prototype.deleteLater = Sn, $n.prototype.getPointee = In, $n.prototype.destructor = Fn, $n.prototype.argPackAdvance = 8, $n.prototype.readValueFromPointer = Ln, $n.prototype.deleteObject = Un, $n.prototype.fromWireType = Hn, Ee.getInheritedInstanceCount = jn, Ee.getLiveInheritedInstances = Gn, Ee.flushPendingDeletes = Dn, Ee.setDelayFunction = zn, Mt = Ee.UnboundTypeError = fn(Error, "UnboundTypeError"), Ee.count_emval_handles = io, Ee.get_first_emval = so, Xt = [null, an, sn, Xo, ea, ta, ra, na, oa, aa, ia, ua, Aa], qt = {
  3897. e: rn,
  3898. Q: an,
  3899. P: sn,
  3900. V: gn,
  3901. y: Zn,
  3902. q: eo,
  3903. m: ro,
  3904. $: oo,
  3905. U: co,
  3906. w: po,
  3907. d: mo,
  3908. c: Ao,
  3909. x: go,
  3910. o: vo,
  3911. W: Eo,
  3912. I: yo,
  3913. J: bo,
  3914. i: ko,
  3915. z: ao,
  3916. h: To,
  3917. _: Do,
  3918. C: So,
  3919. R: Co,
  3920. b: Oo,
  3921. Y: Po,
  3922. s: xo,
  3923. M: Bo,
  3924. t: Mo,
  3925. g: Ro,
  3926. f: qr,
  3927. k: pt,
  3928. j: jo,
  3929. D: Go,
  3930. F: Wo,
  3931. E: Yo,
  3932. G: qo,
  3933. r: Zo,
  3934. H: Ko,
  3935. N: ea,
  3936. O: ta,
  3937. v: ra,
  3938. S: na,
  3939. T: oa,
  3940. A: aa,
  3941. u: ia,
  3942. X: sa,
  3943. B: Qr,
  3944. a: Ue,
  3945. K: ca,
  3946. L: la,
  3947. l: fa,
  3948. p: ha,
  3949. n: ma,
  3950. Z: Aa
  3951. }, Vr(), Zt = Ee.___wasm_call_ctors = function () {
  3952. return (Zt = Ee.___wasm_call_ctors = Ee.asm.aa).apply(null, arguments)
  3953. }, Kt = Ee._free = function () {
  3954. return (Kt = Ee._free = Ee.asm.ba).apply(null, arguments)
  3955. }, Jt = Ee._malloc = function () {
  3956. return (Jt = Ee._malloc = Ee.asm.ca).apply(null, arguments)
  3957. }, er = Ee._strlen = function () {
  3958. return (er = Ee._strlen = Ee.asm.ea).apply(null, arguments)
  3959. },tr = Ee.___errno_location = function () {
  3960. return (tr = Ee.___errno_location = Ee.asm.fa).apply(null, arguments)
  3961. },rr = Ee.___getTypeName = function () {
  3962. return (rr = Ee.___getTypeName = Ee.asm.ga).apply(null, arguments)
  3963. },Ee.___embind_register_native_and_builtin_types = function () {
  3964. return (Ee.___embind_register_native_and_builtin_types = Ee.asm.ha).apply(null, arguments)
  3965. },nr = Ee._emscripten_get_global_libc = function () {
  3966. return (nr = Ee._emscripten_get_global_libc = Ee.asm.ia).apply(null, arguments)
  3967. },or = Ee.__get_tzname = function () {
  3968. return (or = Ee.__get_tzname = Ee.asm.ja).apply(null, arguments)
  3969. },ar = Ee.__get_daylight = function () {
  3970. return (ar = Ee.__get_daylight = Ee.asm.ka).apply(null, arguments)
  3971. },ir = Ee.__get_timezone = function () {
  3972. return (ir = Ee.__get_timezone = Ee.asm.la).apply(null, arguments)
  3973. },sr = Ee._pthread_self = function () {
  3974. return (sr = Ee._pthread_self = Ee.asm.ma).apply(null, arguments)
  3975. },ur = Ee._emscripten_main_browser_thread_id = function () {
  3976. return (ur = Ee._emscripten_main_browser_thread_id = Ee.asm.na).apply(null, arguments)
  3977. },cr = Ee.___pthread_tsd_run_dtors = function () {
  3978. return (cr = Ee.___pthread_tsd_run_dtors = Ee.asm.oa).apply(null, arguments)
  3979. },lr = Ee._emscripten_main_thread_process_queued_calls = function () {
  3980. return (lr = Ee._emscripten_main_thread_process_queued_calls = Ee.asm.pa).apply(null, arguments)
  3981. },Ee._emscripten_current_thread_process_queued_calls = function () {
  3982. return (Ee._emscripten_current_thread_process_queued_calls = Ee.asm.qa).apply(null, arguments)
  3983. },dr = Ee._emscripten_register_main_browser_thread_id = function () {
  3984. return (dr = Ee._emscripten_register_main_browser_thread_id = Ee.asm.ra).apply(null, arguments)
  3985. },fr = Ee.__emscripten_do_dispatch_to_thread = function () {
  3986. return (fr = Ee.__emscripten_do_dispatch_to_thread = Ee.asm.sa).apply(null, arguments)
  3987. },pr = Ee._emscripten_sync_run_in_main_thread_4 = function () {
  3988. return (pr = Ee._emscripten_sync_run_in_main_thread_4 = Ee.asm.ta).apply(null, arguments)
  3989. },hr = Ee._emscripten_run_in_main_runtime_thread_js = function () {
  3990. return (hr = Ee._emscripten_run_in_main_runtime_thread_js = Ee.asm.ua).apply(null, arguments)
  3991. },mr = Ee.__emscripten_call_on_thread = function () {
  3992. return (mr = Ee.__emscripten_call_on_thread = Ee.asm.va).apply(null, arguments)
  3993. },Ee._emscripten_tls_init = function () {
  3994. return (Ee._emscripten_tls_init = Ee.asm.wa).apply(null, arguments)
  3995. },Ar = Ee.__emscripten_thread_init = function () {
  3996. return (Ar = Ee.__emscripten_thread_init = Ee.asm.xa).apply(null, arguments)
  3997. },gr = Ee.stackSave = function () {
  3998. return (gr = Ee.stackSave = Ee.asm.ya).apply(null, arguments)
  3999. },vr = Ee.stackRestore = function () {
  4000. return (vr = Ee.stackRestore = Ee.asm.za).apply(null, arguments)
  4001. },Er = Ee.stackAlloc = function () {
  4002. return (Er = Ee.stackAlloc = Ee.asm.Aa).apply(null, arguments)
  4003. },yr = Ee._emscripten_stack_set_limits = function () {
  4004. return (yr = Ee._emscripten_stack_set_limits = Ee.asm.Ba).apply(null, arguments)
  4005. },wr = Ee._memalign = function () {
  4006. return (wr = Ee._memalign = Ee.asm.Ca).apply(null, arguments)
  4007. },Ee.dynCall_ijiii = function () {
  4008. return (Ee.dynCall_ijiii = Ee.asm.Da).apply(null, arguments)
  4009. },Ee.dynCall_viiijj = function () {
  4010. return (Ee.dynCall_viiijj = Ee.asm.Ea).apply(null, arguments)
  4011. },Ee.dynCall_jij = function () {
  4012. return (Ee.dynCall_jij = Ee.asm.Fa).apply(null, arguments)
  4013. },Ee.dynCall_jii = function () {
  4014. return (Ee.dynCall_jii = Ee.asm.Ga).apply(null, arguments)
  4015. },Ee.dynCall_jiji = function () {
  4016. return (Ee.dynCall_jiji = Ee.asm.Ha).apply(null, arguments)
  4017. },Ee._ff_h264_cabac_tables = 77706,_r = Ee.__emscripten_allow_main_runtime_queued_calls = 241152,br = Ee.__emscripten_main_thread_futex = 1178e3,Ee.PThread = ft,Ee.PThread = ft,Ee.wasmMemory = Ue,Ee.ExitStatus = va,at = function e() {
  4018. kr || Ea(), kr || (at = e)
  4019. },Ee.run = Ea,Ee.preInit) for ("function" == typeof Ee.preInit && (Ee.preInit = [Ee.preInit]); Ee.preInit.length > 0;) Ee.preInit.pop()();
  4020. Se && (Fe = !1, ft.initWorker()), Ea(), Tr = e(Ee)
  4021. }
  4022. var _a = !1;
  4023. function ba(e) {
  4024. let t = e.next(), r = null;
  4025. return n => {
  4026. var o = new Uint8Array(n);
  4027. if (r) {
  4028. var a = new Uint8Array(r.length + o.length);
  4029. a.set(r), a.set(o, r.length), o = a, r = null
  4030. }
  4031. for (; o.length >= t.value;) {
  4032. var i = o.slice(t.value);
  4033. t = e.next(o.slice(0, t.value)), o = i
  4034. }
  4035. o.length > 0 && (r = o)
  4036. }
  4037. }
  4038. function ka() {
  4039. ({}), Dr || (Dr = !0, wa()), a(), (() => {
  4040. try {
  4041. if ("object" == typeof WebAssembly && "function" == typeof WebAssembly.instantiate) {
  4042. const e = new WebAssembly.Module(Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0));
  4043. if (e instanceof WebAssembly.Module) return new WebAssembly.Instance(e) instanceof WebAssembly.Instance
  4044. }
  4045. } catch (e) {
  4046. }
  4047. return !1
  4048. })(), Date.now || (Date.now = function () {
  4049. return (new Date).getTime()
  4050. }), Tr.print = function (e) {
  4051. postMessage({cmd: "print", text: e})
  4052. }, Tr.printErr = function (e) {
  4053. postMessage({cmd: "printErr", text: e})
  4054. }, Tr.postRun = function () {
  4055. var e = [], t = {
  4056. _firstCheckpoint: 0, _lastCheckpoint: 0, _intervalBytes: 0, _lastSecondBytes: 0, addBytes: function (e) {
  4057. 0 === t._firstCheckpoint ? (t._firstCheckpoint = Date.now(), t._lastCheckpoint = t._firstCheckpoint, t._intervalBytes += e) : Date.now() - t._lastCheckpoint < 1e3 ? t._intervalBytes += e : (t._lastSecondBytes = t._intervalBytes, t._intervalBytes = e, t._lastCheckpoint = Date.now())
  4058. }, reset: function () {
  4059. t._firstCheckpoint = t._lastCheckpoint = 0, t._intervalBytes = 0, t._lastSecondBytes = 0
  4060. }, getCurrentKBps: function () {
  4061. t.addBytes(0);
  4062. var e = (Date.now() - t._lastCheckpoint) / 1e3;
  4063. return 0 == e && (e = 1), t._intervalBytes / e / 1024
  4064. }, getLastSecondKBps: function () {
  4065. return t.addBytes(0), 0 !== t._lastSecondBytes ? t._lastSecondBytes / 1024 : Date.now() - t._lastCheckpoint >= 500 ? t.getCurrentKBps() : 0
  4066. }
  4067. }, r = {
  4068. opt: {}, initAudioPlanar: function (e, t) {
  4069. postMessage({cmd: "initAudioPlanar", samplerate: t, channels: e});
  4070. var r = [], n = [], o = 0;
  4071. this.playAudioPlanar = function (t, a) {
  4072. for (var i = a, s = [], u = 0, c = 0; c < 2; c++) {
  4073. var l = Tr.HEAPU32[(t >> 2) + c] >> 2;
  4074. s[c] = Tr.HEAPF32.subarray(l, l + i)
  4075. }
  4076. if (o) {
  4077. if (!(i >= (a = 1024 - o))) return o += i, r[0] = Float32Array.of(...r[0], ...s[0]), void (2 == e && (r[1] = Float32Array.of(...r[1], ...s[1])));
  4078. n[0] = Float32Array.of(...r[0], ...s[0].subarray(0, a)), 2 == e && (n[1] = Float32Array.of(...r[1], ...s[1].subarray(0, a))), postMessage({
  4079. cmd: "playAudio",
  4080. buffer: n
  4081. }, n.map((e => e.buffer))), u = a, i -= a
  4082. }
  4083. for (o = i; o >= 1024; o -= 1024) n[0] = s[0].slice(u, u += 1024), 2 == e && (n[1] = s[1].slice(u - 1024, u)), postMessage({
  4084. cmd: "playAudio",
  4085. buffer: n
  4086. }, n.map((e => e.buffer)));
  4087. o && (r[0] = s[0].slice(u), 2 == e && (r[1] = s[1].slice(u)))
  4088. }
  4089. }, inputFlv: function* () {
  4090. yield 9;
  4091. for (var t = new ArrayBuffer(4), r = new Uint8Array(t), a = new Uint32Array(t); ;) {
  4092. r[3] = 0;
  4093. var i = yield 15, s = i[4];
  4094. r[0] = i[7], r[1] = i[6], r[2] = i[5];
  4095. var u = a[0];
  4096. r[0] = i[10], r[1] = i[9], r[2] = i[8];
  4097. var c = a[0];
  4098. 16777215 === c && (r[3] = i[11], c = a[0]);
  4099. var l = yield u;
  4100. switch (s) {
  4101. case 8:
  4102. this.opt.hasAudio && e.push({ts: c, payload: l, decoder: n, type: 0});
  4103. break;
  4104. case 9:
  4105. e.push({ts: c, payload: l, decoder: o, type: l[0] >> 4})
  4106. }
  4107. }
  4108. }, play: function (r) {
  4109. this.opt.debug && console.log("Jessibuca play", r), this.getDelay = function (e) {
  4110. return e ? (this.firstTimestamp = e, this.startTimestamp = Date.now(), this.getDelay = function (e) {
  4111. return this.delay = Date.now() - this.startTimestamp - (e - this.firstTimestamp), this.delay
  4112. }, -1) : -1
  4113. };
  4114. var i = this.opt.vod ? () => {
  4115. if (e.length) {
  4116. var t = e[0];
  4117. if (-1 === this.getDelay(t.ts)) e.shift(), this.ts = t.ts, t.decoder.decode(t.payload); else for (; e.length && (t = e[0], this.getDelay(t.ts) > this.videoBuffer);) e.shift(), this.ts = t.ts, t.decoder.decode(t.payload)
  4118. }
  4119. } : () => {
  4120. if (e.length) if (this.dropping) 1 == (t = e.shift()).type ? (this.dropping = !1, this.ts = t.ts, t.decoder.decode(t.payload)) : 0 == t.type && (this.ts = t.ts, t.decoder.decode(t.payload)); else {
  4121. var t = e[0];
  4122. if (-1 === this.getDelay(t.ts)) e.shift(), this.ts = t.ts, t.decoder.decode(t.payload); else if (this.delay > this.videoBuffer + 1e3) this.dropping = !0; else for (; e.length && (t = e[0], this.getDelay(t.ts) > this.videoBuffer);) e.shift(), this.ts = t.ts, t.decoder.decode(t.payload)
  4123. }
  4124. };
  4125. if (this.stopId = setInterval(i, 10), this.speedSamplerId = setInterval((() => {
  4126. postMessage({cmd: "kBps", kBps: t.getLastSecondKBps()})
  4127. }), 1e3), 0 == r.indexOf("http")) {
  4128. this.flvMode = !0;
  4129. var s = this, u = new AbortController;
  4130. fetch(r, {signal: u.signal}).then((function (e) {
  4131. var r = e.body.getReader(), n = s.inputFlv(), o = ba(n), a = function () {
  4132. r.read().then((({done: e, value: r}) => {
  4133. e ? n.return(null) : (t.addBytes(r.byteLength), o(r), a())
  4134. })).catch((function (e) {
  4135. n.return(null), s.opt.debug && console.error(e), -1 === e.toString().indexOf("The user aborted a request") && postMessage({
  4136. cmd: "printErr",
  4137. text: e.toString()
  4138. })
  4139. }))
  4140. };
  4141. a()
  4142. })).catch((e => {
  4143. postMessage({cmd: "printErr", text: e.message})
  4144. })), this._close = function () {
  4145. u.abort()
  4146. }
  4147. } else {
  4148. if (this.flvMode = -1 != r.indexOf(".flv"), this.ws = new WebSocket(r), this.ws.binaryType = "arraybuffer", this.flvMode) {
  4149. let e = this.inputFlv();
  4150. var c = ba(e);
  4151. this.ws.onmessage = e => {
  4152. t.addBytes(e.data.byteLength), c(e.data)
  4153. }, this.ws.onerror = t => {
  4154. e.return(null), postMessage({cmd: "printErr", text: t.toString()})
  4155. }
  4156. } else this.ws.onmessage = r => {
  4157. t.addBytes(r.data.byteLength);
  4158. var a = new DataView(r.data);
  4159. switch (a.getUint8(0)) {
  4160. case 1:
  4161. this.opt.hasAudio && e.push({
  4162. ts: a.getUint32(1, !1),
  4163. payload: new Uint8Array(r.data, 5),
  4164. decoder: n,
  4165. type: 0
  4166. });
  4167. break;
  4168. case 2:
  4169. e.push({
  4170. ts: a.getUint32(1, !1),
  4171. payload: new Uint8Array(r.data, 5),
  4172. decoder: o,
  4173. type: a.getUint8(5) >> 4
  4174. })
  4175. }
  4176. }, this.ws.onerror = e => {
  4177. postMessage({cmd: "printErr", text: e.toString()})
  4178. };
  4179. this._close = function () {
  4180. this.ws.close(), this.ws = null
  4181. }
  4182. }
  4183. this.setVideoSize = function (e, t) {
  4184. postMessage({cmd: "initSize", w: e, h: t});
  4185. var r = e * t, n = r >> 2;
  4186. if (this.opt.forceNoOffscreen || "undefined" == typeof OffscreenCanvas) this.draw = function (e, t, o, a) {
  4187. var i = [Tr.HEAPU8.subarray(t, t + r), Tr.HEAPU8.subarray(o, o + n), Tr.HEAPU8.subarray(a, a + n)].map((e => Uint8Array.from(e)));
  4188. postMessage({
  4189. cmd: "render",
  4190. compositionTime: e,
  4191. delay: this.delay,
  4192. ts: this.ts,
  4193. output: i
  4194. }, i.map((e => e.buffer)))
  4195. }; else {
  4196. var o = new OffscreenCanvas(e, t), i = o.getContext("webgl"), s = a().default(i);
  4197. this.draw = function (a, i, u, c) {
  4198. s(e, t, Tr.HEAPU8.subarray(i, i + r), Tr.HEAPU8.subarray(u, u + n), Tr.HEAPU8.subarray(c, c + n));
  4199. let l = o.transferToImageBitmap();
  4200. postMessage({cmd: "render", compositionTime: a, delay: this.delay, ts: this.ts, buffer: l}, [l])
  4201. }
  4202. }
  4203. }
  4204. }, close: function () {
  4205. this._close && (this.opt.debug && console.log("worker close"), this._close(), clearInterval(this.stopId), this.stopId = null, clearInterval(this.speedSamplerId), this.speedSamplerId = null, t.reset(), this.ws = null, n.clear(), o.clear(), this.firstTimestamp = 0, this.startTimestamp = 0, this.delay = 0, this.ts = 0, this.flvMode = !1, e = [], delete this.playAudioPlanar, delete this.draw, delete this.getDelay)
  4206. }
  4207. }, n = new Tr.AudioDecoder(r), o = new Tr.VideoDecoder(r);
  4208. postMessage({cmd: "init"}), self.onmessage = function (e) {
  4209. var t = e.data;
  4210. switch (t.cmd) {
  4211. case"init":
  4212. r.opt = JSON.parse(t.opt), n.sample_rate = t.sampleRate;
  4213. break;
  4214. case"getProp":
  4215. postMessage({cmd: "getProp", value: r[t.prop]});
  4216. break;
  4217. case"setProp":
  4218. r[t.prop] = t.value;
  4219. break;
  4220. case"play":
  4221. r.play(t.url);
  4222. break;
  4223. case"setVideoBuffer":
  4224. r.videoBuffer = 1e3 * t.time | 0;
  4225. break;
  4226. case"close":
  4227. r.close()
  4228. }
  4229. }
  4230. }
  4231. }
  4232. "undefined" == typeof importScripts ? ve || (ve = !0, {}, l(), U(), $(), q(), Ae(), v(), R(), ge = class {
  4233. constructor(e) {
  4234. if (this._opt = Object.assign(v().DEFAULT_OPTIONS, e), this.$container = e.container, "string" == typeof e.container && (this.$container = document.querySelector(e.container)), !this.$container) throw new Error("Jessibuca need container option");
  4235. delete this._opt.container, this._opt.debug && console.log("options", this._opt), Ae().default(this), l().default(this), U().default(this), q().default(this), $().default(this)
  4236. }
  4237. set fullscreen(e) {
  4238. e ? (R().checkFull() || this.$container.requestFullscreen(), R().$domToggle(this.$doms.minScreenDom, !0), R().$domToggle(this.$doms.fullscreenDom, !1)) : (R().checkFull() && document.exitFullscreen(), R().$domToggle(this.$doms.minScreenDom, !1), R().$domToggle(this.$doms.fullscreenDom, !0)), this._fullscreen !== e && (this.onFullscreen(e), this._trigger(v().EVEMTS.fullscreen, e)), this._fullscreen = e
  4239. }
  4240. get fullscreen() {
  4241. return this._fullscreen
  4242. }
  4243. set playing(e) {
  4244. e ? (R().$domToggle(this.$doms.playBigDom, !1), R().$domToggle(this.$doms.playDom, !1), R().$domToggle(this.$doms.pauseDom, !0), R().$domToggle(this.$doms.screenshotsDom, !0), R().$domToggle(this.$doms.recordDom, !0), this._quieting ? (R().$domToggle(this.$doms.quietAudioDom, !0), R().$domToggle(this.$doms.playAudioDom, !1)) : (R().$domToggle(this.$doms.quietAudioDom, !1), R().$domToggle(this.$doms.playAudioDom, !0))) : (this.$doms.speedDom && (this.$doms.speedDom.innerText = ""), this._playUrl && (R().$domToggle(this.$doms.playDom, !0), R().$domToggle(this.$doms.playBigDom, !0), R().$domToggle(this.$doms.pauseDom, !1)), R().$domToggle(this.$doms.recordDom, !1), R().$domToggle(this.$doms.recordingDom, !1), R().$domToggle(this.$doms.screenshotsDom, !1), R().$domToggle(this.$doms.quietAudioDom, !1), R().$domToggle(this.$doms.playAudioDom, !1)), this._playing !== e && (e ? (this.onPlay(), this._trigger(v().EVEMTS.play)) : (this.onPause(), this._trigger(v().EVEMTS.pause))), this._playing = e
  4245. }
  4246. get playing() {
  4247. return this._playing
  4248. }
  4249. set quieting(e) {
  4250. e ? (R().$domToggle(this.$doms.quietAudioDom, !0), R().$domToggle(this.$doms.playAudioDom, !1)) : (R().$domToggle(this.$doms.quietAudioDom, !1), R().$domToggle(this.$doms.playAudioDom, !0)), this._quieting !== e && (this.onMute(e), this._trigger(v().EVEMTS.mute, e)), this._quieting = e
  4251. }
  4252. get quieting() {
  4253. return this._quieting
  4254. }
  4255. set loading(e) {
  4256. e ? (R().$hideBtns(this.$doms), R().$domToggle(this.$doms.fullscreenDom, !0), R().$domToggle(this.$doms.pauseDom, !0), R().$domToggle(this.$doms.loadingDom, !0)) : R().$initBtns(this.$doms), this._loading = e
  4257. }
  4258. get loading() {
  4259. return this._loading
  4260. }
  4261. set recording(e) {
  4262. e ? (R().$domToggle(this.$doms.recordDom, !1), R().$domToggle(this.$doms.recordingDom, !0)) : (R().$domToggle(this.$doms.recordDom, !0), R().$domToggle(this.$doms.recordingDom, !1)), this._recording !== e && (this.onRecord(e), this._trigger(v().EVEMTS.record, e), this._recording = e)
  4263. }
  4264. get recording() {
  4265. return this._recording
  4266. }
  4267. setDebug(e) {
  4268. this._opt.isDebug = !!e
  4269. }
  4270. setTimeout(e) {
  4271. this._opt.timeout = Number(e)
  4272. }
  4273. setVod(e) {
  4274. this._opt.vod = !!e
  4275. }
  4276. setNoOffscreen(e) {
  4277. this._opt.forceNoOffscreen = !!e
  4278. }
  4279. setScaleMode(e) {
  4280. 0 === (e = Number(e)) ? (this._opt.isFullResize = !1, this._opt.isResize = !1) : 1 === e ? (this._opt.isFullResize = !1, this._opt.isResize = !0) : 2 === e && (this._opt.isFullResize = !0), this._resize()
  4281. }
  4282. mute() {
  4283. this._mute()
  4284. }
  4285. cancelMute() {
  4286. this._cancelMute()
  4287. }
  4288. audioResume() {
  4289. this._cancelMute()
  4290. }
  4291. pause() {
  4292. this._pause()
  4293. }
  4294. play(e) {
  4295. this._play(e)
  4296. }
  4297. close() {
  4298. this._close()
  4299. }
  4300. destroy() {
  4301. this._close(), this._destroyAudioContext(), this._destroyContextGL(), this._decoderWorker.terminate(), this._removeEventListener(), this._initCheckVariable(), this._off(), this._removeContainerChild()
  4302. }
  4303. clearView() {
  4304. this._clearView()
  4305. }
  4306. resize() {
  4307. this._resize()
  4308. }
  4309. setBufferTime(e) {
  4310. e = Number(e), this._decoderWorker.postMessage({cmd: v().POST_MESSAGE.setVideoBuffer, time: e})
  4311. }
  4312. setRotate(e) {
  4313. e = parseInt(e, 10), this._opt.rotate !== e && -1 !== [0, 90, 270].indexOf(e) && (this._opt.rotate = e, this.resize())
  4314. }
  4315. setVolume(e) {
  4316. if (this._gainNode) {
  4317. if (e = parseFloat(e), isNaN(e)) return;
  4318. this._gainNode.gain.setValueAtTime(e, this._audioContext.currentTime)
  4319. }
  4320. }
  4321. setKeepScreenOn() {
  4322. this._opt.keepScreenOn = !0
  4323. }
  4324. setFullscreen(e) {
  4325. const t = !!e;
  4326. this.fullscreen !== t && (this.fullscreen = t)
  4327. }
  4328. hasLoaded() {
  4329. return this._hasLoaded
  4330. }
  4331. screenshot(e, t, r) {
  4332. this._screenshot(e, t, r)
  4333. }
  4334. on(e, t) {
  4335. this._on(e, t)
  4336. }
  4337. }, window.Jessibuca = ge) : _a || (_a = !0, ka())
  4338. }();