{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?f660","webpack:///./src/assets/play-icon.png","webpack:///./src/blocklyHelpers/netlogoGenerator.js","webpack:///./src/data/blockLibraries/baseBlocks.js","webpack:///./src/store/index.js","webpack:///./src/App.vue?0d35","webpack:///src/App.vue","webpack:///./src/App.vue?5d44","webpack:///./src/App.vue","webpack:///./src/store/mutation-types.js","webpack:///./src/plugins/webhid-plugin/emitter.js","webpack:///./src/plugins/webhid-plugin/observer.js","webpack:///./src/plugins/webhid-plugin/hid-devices.js","webpack:///./src/main.js","webpack:///./src/assets/click.png","webpack:///./src/views lazy ^\\.\\/.*$ namespace object","webpack:///./src/assets/start-flag.png","webpack:///./src/store/const.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","netlogoGenerator","Blockly","Generator","ORDER_ATOMIC","ORDER_NEW","ORDER_MEMBER","ORDER_FUNCTION_CALL","ORDER_INCREMENT","ORDER_DECREMENT","ORDER_BITWISE_NOT","ORDER_UNARY_PLUS","ORDER_UNARY_NEGATION","ORDER_LOGICAL_NOT","ORDER_TYPEOF","ORDER_VOID","ORDER_DELETE","ORDER_AWAIT","ORDER_EXPONENTIATION","ORDER_MULTIPLICATION","ORDER_DIVISION","ORDER_MODULUS","ORDER_SUBTRACTION","ORDER_ADDITION","ORDER_BITWISE_SHIFT","ORDER_RELATIONAL","ORDER_IN","ORDER_INSTANCEOF","ORDER_EQUALITY","ORDER_BITWISE_AND","ORDER_BITWISE_XOR","ORDER_BITWISE_OR","ORDER_LOGICAL_AND","ORDER_LOGICAL_OR","ORDER_CONDITIONAL","ORDER_ASSIGNMENT","ORDER_YIELD","ORDER_COMMA","ORDER_NONE","INDENT","SIZE","PRODUCE","BREAK","CONSUME","LIGHT","SIZE_VIRUS","SIZE_ANIMAL","SIZE_EUTROPHICATION","HEATSIZE","SPEED","SPEED_EUTROPHICATION","MASS","ARRANGEMENT","POSITION","POSITION_WILDFIRES","RANDOM","HEADING","DIRECTION","MAGNITUDE","EFFECT","addReservedWords","getOwnPropertyNames","utils","global","join","init","workspace","definitions_","functionNames_","nameDB_","reset","Names","RESERVED_WORDS_","setVariableMap","getVariableMap","defvars","devVarList","Variables","allDeveloperVariables","getName","DEVELOPER_VARIABLE_TYPE","variables","allUsedVarModels","getId","VARIABLE_CATEGORY_NAME","this","isInitialized","scrub_","block","opt_thisOnly","nextBlock","nextConnection","targetBlock","nextCode","blockToCode","baseBlockLibrary","defineBlocksWithJsonArray","require","operator","getFieldValue","order","argument0","valueToCode","argument1","defaultArgument","categories","_vm","_h","$createElement","_c","_self","attrs","view","staticRenderFns","component","HID_ONCONNECT","HID_ONDISCONNECT","HID_ONERROR","HID_ONINPUTREPORT","Vue","use","Vuex","contents","Themes","Custom","Theme","defineTheme","Classic","blockStyling","ContextMenuRegistry","registry","unregister","Store","state","imagePrefix","blocklyOptions","renderer","comments","hasCss","maxInstances","toolbox","kind","zoom","controls","wheel","startScale","maxScale","minScale","pinch","theme","readOnlyBlocklyOptions","readOnly","chart","chart2","secondChart","libraries","taskInfo","viewMode","unpackable","runCount","simulationData","datasets","socket","isConnected","board","status","dataset","response","command","size","mutations","getTask","taskId","queryString","location","search","urlParams","URLSearchParams","task","stableReference","toLowerCase","journey","example","project","progress","_","find","keys","blocklyLibrary","lib","getToolboxMode","packStatus","clearLibs","clearData","appendData","suffix","x","y","chart_num","series_num","borderColor","backgroundColor","pointBackgroundColor","pointBorderColor","update","changeMode","$","removeClass","show","viewComponents","includes","css","hide","addClass","incrementRunCount","resetCharts","log","CONST","response_packet_type","filter","index","actions","initTask","commit","connectDevice","$webhidConnect","sendHID","context","$webhid","sendData","sendReport","Uint8Array","clearResponseHID","getters","gogoReport","gogoResponse","boardStatus","Emitter","listeners","Map","label","callback","vm","has","set","reduce","listener","args","forEach","device_id","device_opts","format","device","deviceId","deviceOpts","connectionStatus","passToStoreHandler","store","registerConnectionEvent","connectManually","opened","open","$setInstance","registerUserEvent","onconnect","close","ondisconnect","isUserPrompt","vendorId","hid_vid","productId","hid_pid","navigator","hid","getDevices","devices","requestDevice","filters","collections","openDevice","eventType","addEventListener","closeDevice","emit","passToStore","eventName","defaultPassToStore","startsWith","method","toUpperCase","msg","JSON","parse","stringify","Array","from","buffer","mutation","namespace","action","install","hid_id","hid_opts","observer","hidInstance","Observer","$webhidDisconnect","config","productionTip","ignoredElements","$hidCompatible","VueResource","HIDDevice","render","h","App","$mount","map","webpackAsyncContext","req","ids","id","websocket_port","compiler_url","category_id_index","command_id_index","parameters_index","board_type_index","board_version_index","firmware_version_index","rcmd_get_offline_datalog","rcmd_clear_offline_datalog","offline_datalog_status_onprogress","offline_datalog_status_failure","offline_datalog_status_empty","offline_datalog_status_file_size","offline_datalog_status_lookup_table","offline_datalog_status_records","offline_datalog_record_size","sensor_count","sensor_start_index"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,IAAM,CAAC,qBAAqB,qBAAqB,QAAU,UAAU,WAAa,aAAa,UAAY,YAAY,iBAAiB,iBAAiB,gHAAgH,gHAAgH,eAAiB,iBAAiB,iBAAmB,mBAAmB,kBAAoB,oBAAoB,wBAA0B,0BAA0B,uBAAyB,yBAAyB,6BAA+B,+BAA+B,UAAY,YAAY,qBAAuB,uBAAuB,WAAa,aAAa,gBAAkB,kBAAkB,YAAc,cAAc,gBAAkB,kBAAkB,kBAAoB,oBAAoB,aAAe,eAAe,mBAAqB,qBAAqB,yBAA2B,2BAA2B,6CAA6C,6CAA6C,mBAAqB,qBAAqB,wBAA0B,0BAA0B,kBAAoB,oBAAoB,wBAA0B,0BAA0B,8BAAgC,gCAAgC,+BAA+B,+BAA+B,mBAAqB,qBAAqB,UAAY,YAAY,KAAO,OAAO,WAAa,aAAa,YAAc,cAAc,sBAAwB,wBAAwB,eAAiB,iBAAiB,QAAU,UAAU,eAAiB,iBAAiB,MAAQ,QAAQ,YAAc,cAAc,UAAY,YAAY,WAAa,aAAa,mCAAmC,mCAAmC,iBAAmB,mBAAmB,gBAAkB,kBAAkB,eAAiB,iBAAiB,aAAe,eAAe,WAAa,aAAa,iBAAmB,oBAAoB9B,IAAUA,GAAW,aAI3jE,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,qBAAqB,EAAE,QAAU,EAAE,WAAa,EAAE,eAAiB,EAAE,iBAAmB,EAAE,kBAAoB,EAAE,wBAA0B,EAAE,uBAAyB,EAAE,6BAA+B,EAAE,UAAY,EAAE,qBAAuB,EAAE,WAAa,EAAE,gBAAkB,EAAE,gBAAkB,EAAE,kBAAoB,EAAE,mBAAqB,EAAE,yBAA2B,EAAE,wBAA0B,EAAE,8BAAgC,EAAE,mBAAqB,EAAE,UAAY,EAAE,WAAa,EAAE,YAAc,EAAE,sBAAwB,EAAE,eAAiB,EAAE,YAAc,EAAE,iBAAmB,EAAE,gBAAkB,EAAE,iBAAmB,GACznBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,qBAAqB,qBAAqB,QAAU,UAAU,WAAa,aAAa,UAAY,YAAY,iBAAiB,iBAAiB,gHAAgH,gHAAgH,eAAiB,iBAAiB,iBAAmB,mBAAmB,kBAAoB,oBAAoB,wBAA0B,0BAA0B,uBAAyB,yBAAyB,6BAA+B,+BAA+B,UAAY,YAAY,qBAAuB,uBAAuB,WAAa,aAAa,gBAAkB,kBAAkB,YAAc,cAAc,gBAAkB,kBAAkB,kBAAoB,oBAAoB,aAAe,eAAe,mBAAqB,qBAAqB,yBAA2B,2BAA2B,6CAA6C,6CAA6C,mBAAqB,qBAAqB,wBAA0B,0BAA0B,kBAAoB,oBAAoB,wBAA0B,0BAA0B,8BAAgC,gCAAgC,+BAA+B,+BAA+B,mBAAqB,qBAAqB,UAAY,YAAY,KAAO,OAAO,WAAa,aAAa,YAAc,cAAc,sBAAwB,wBAAwB,eAAiB,iBAAiB,QAAU,UAAU,eAAiB,iBAAiB,MAAQ,QAAQ,YAAc,cAAc,UAAY,YAAY,WAAa,aAAa,mCAAmC,mCAAmC,iBAAmB,mBAAmB,gBAAkB,kBAAkB,eAAiB,iBAAiB,aAAe,eAAe,WAAa,aAAa,iBAAmB,oBAAoBxC,IAAUA,GAAW,OACtiEyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,YAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6EC1QT,W,kECAAc,EAAOD,QAAU,IAA0B,qB,k9DCE9BkF,EAAmB,IAAIC,IAAQC,UAAU,WAItDF,EAAiBG,aAAe,EAChCH,EAAiBI,UAAY,IAC7BJ,EAAiBK,aAAe,IAChCL,EAAiBM,oBAAsB,EACvCN,EAAiBO,gBAAkB,EACnCP,EAAiBQ,gBAAkB,EACnCR,EAAiBS,kBAAoB,IACrCT,EAAiBU,iBAAmB,IACpCV,EAAiBW,qBAAuB,IACxCX,EAAiBY,kBAAoB,IACrCZ,EAAiBa,aAAe,IAChCb,EAAiBc,WAAa,IAC9Bd,EAAiBe,aAAe,IAChCf,EAAiBgB,YAAc,IAC/BhB,EAAiBiB,qBAAuB,EACxCjB,EAAiBkB,qBAAuB,IACxClB,EAAiBmB,eAAiB,IAClCnB,EAAiBoB,cAAgB,IACjCpB,EAAiBqB,kBAAoB,IACrCrB,EAAiBsB,eAAiB,IAClCtB,EAAiBuB,oBAAsB,EACvCvB,EAAiBwB,iBAAmB,EACpCxB,EAAiByB,SAAW,EAC5BzB,EAAiB0B,iBAAmB,EACpC1B,EAAiB2B,eAAiB,EAClC3B,EAAiB4B,kBAAoB,GACrC5B,EAAiB6B,kBAAoB,GACrC7B,EAAiB8B,iBAAmB,GACpC9B,EAAiB+B,kBAAoB,GACrC/B,EAAiBgC,iBAAmB,GACpChC,EAAiBiC,kBAAoB,GACrCjC,EAAiBkC,iBAAmB,GACpClC,EAAiBmC,YAAc,GAC/BnC,EAAiBoC,YAAc,GAC/BpC,EAAiBqC,WAAa,GAC9BrC,EAAiBsC,OAAS,KAE1BtC,EAAiBuC,KAAO,CACpB,MAAS,EACT,OAAU,EACV,IAAO,GAGXvC,EAAiBwC,QAAU,CACvB,GAAM,aACN,eAAkB,0BAClB,QAAW,mBAGfxC,EAAiByC,MAAQ,CACrB,IAAO,kBACP,IAAO,mBAGXzC,EAAiB0C,QAAU,CACvB,IAAO,QACP,eAAkB,oBAClB,IAAO,QACP,YAAe,YAGnB1C,EAAiB2C,MAAQ,CACrB,KAAQ,cACR,IAAO,GACP,OAAU,GACV,KAAQ,IAGZ3C,EAAiB4C,WAAa,CAC1B,MAAS,EACT,OAAU,EACV,IAAO,IAGX5C,EAAiB6C,YAAc,CAC3B,MAAS,EACT,OAAU,IACV,IAAO,GAGX7C,EAAiB8C,oBAAsB,CACnC,MAAS,EACT,OAAU,GACV,IAAO,IAGX9C,EAAiB+C,SAAW,CACxB,MAAS,GACT,OAAU,GACV,IAAO,GAEX/C,EAAiBgD,MAAQ,CACrB,KAAQ,EACR,SAAY,EACZ,YAAe,GACf,UAAa,GACb,SAAY,8BACZ,IAAO,8BACP,OAAU,8BACV,KAAQ,8BACR,KAAQ,+CACR,WAAc,sCACd,MAAS,8BACT,MAAS,8BACT,KAAQ,+BAGZhD,EAAiBiD,qBAAuB,CACpC,KAAQ,EACR,KAAQ,GACR,OAAU,EACV,KAAQ,KAEZjD,EAAiBkD,KAAO,CACpB,MAAS,EACT,OAAU,IACV,MAAS,IAEblD,EAAiBmD,YAAc,CAC3B,QAAW,kBACX,MAAS,qeASbnD,EAAiBoD,SAAW,CACxB,OAAU,qGACV,OAAU,MACV,SAAY,+BACZ,WAAc,+BACd,MAAS,sBACT,YAAe,0CACf,YAAe,gGACf,YAAe,MACf,cAAiB,6BACjB,gBAAmB,8BAEvBpD,EAAiBqD,mBAAjB,kBAA2CrD,EAAiBoD,UAC5DpD,EAAiBqD,mBAAmBC,OAAS,0BAC7CtD,EAAiBuD,QAAU,CACvB,OAAU,mBACV,GAAM,mDACN,MAAS,oDACT,KAAQ,qDACR,KAAQ,qDACR,eAAkB,kBAEtBvD,EAAiBwD,UAAY,CACzB,QAAW,QACX,OAAU,MACV,UAAa,MACb,SAAY,OACZ,SAAY,OACZ,KAAQ,yCAEZxD,EAAiByD,UAAY,CACzB,UAAa,8BACb,KAAQ,6BACR,YAAe,6BACf,KAAQ,IACR,KAAQ,cAEZzD,EAAiB0D,OAAS,CACtB,OAAU,EACV,SAAY,EACZ,SAAY,GAUhB1D,EAAiB2D,iBAEb,6UAQArK,OAAOsK,oBAAoB3D,IAAQ4D,MAAMC,QAAQC,KAAK,MAM1D/D,EAAiBgE,KAAO,SAAUC,GAE9BjE,EAAiBkE,aAAe5K,OAAO8F,OAAO,MAG9CY,EAAiBmE,eAAiB7K,OAAO8F,OAAO,MAE3CY,EAAiBoE,QAIlBpE,EAAiBoE,QAAQC,QAHzBrE,EAAiBoE,QACb,IAAInE,IAAQqE,MAAMtE,EAAiBuE,iBAK3CvE,EAAiBoE,QAAQI,eAAeP,EAAUQ,kBAKlD,IAHA,IAAIC,EAAU,GAEVC,EAAa1E,IAAQ2E,UAAUC,sBAAsBZ,GAChD9K,EAAI,EAAGA,EAAIwL,EAAWtL,OAAQF,IACnCuL,EAAQ/K,KAAKqG,EAAiBoE,QAAQU,QAAQH,EAAWxL,GACrD8G,IAAQqE,MAAMS,0BAKtB,IADA,IAAIC,EAAY/E,IAAQ2E,UAAUK,iBAAiBhB,GAC1C9K,EAAI,EAAGA,EAAI6L,EAAU3L,OAAQF,IAClCuL,EAAQ/K,KAAKqG,EAAiBoE,QAAQU,QAAQE,EAAU7L,GAAG+L,QACvDjF,IAAQkF,yBAIZT,EAAQrL,SACR2G,EAAiBkE,aAAa,aAC1B,OAASQ,EAAQX,KAAK,MAAQ,KAEtCqB,KAAKC,eAAgB,GAIzBrF,EAAiBsF,OAAS,SAAUC,EAAO3I,EAAM4I,GAE7C,IAAMC,EACFF,EAAMG,gBAAkBH,EAAMG,eAAeC,cAC7CC,EAAW,GAMf,OALIH,IACAG,EAEIJ,EAAe,GAAKxF,EAAiB6F,YAAYJ,IAElD7I,EAAOgJ,I,oCC3PlB,6FAEWE,GAFX,UAE8B,IAQ9BA,EAAmB,CACf,KAAQ,kBACR,SAAY,CACR,CACI,KAAQ,WACR,KAAQ,UACR,OAAU,UACV,SAAY,CACR,CACI,KAAQ,QACR,KAAQ,eAEZ,CACI,KAAQ,QACR,KAAQ,mBAEZ,CACI,KAAQ,QACR,KAAQ,oBAO5B7F,IAAQ8F,0BAA0B,CAC9B,CACA,KAAQ,MACR,SAAY,WACZ,MAAS,CACL,CACI,KAAQ,cAER,IAAOlG,OAAO,iBAAoBA,OAAO,iBAAPA,kBAAoDmG,EAAQ,QAC9F,MAAS,GACT,OAAU,GACV,IAAO,IACP,SAAW,IAGnB,SAAY,KACZ,MAAS,CACL,CACI,KAAQ,kBACR,KAAQ,QAGhB,MAAS,kBAEb,CACI,KAAQ,KACR,SAAY,QACZ,MAAS,CACL,CACI,KAAQ,cAER,IAAOnG,OAAO,iBAAoBA,OAAO,iBAAPA,iBAAmDmG,EAAQ,QAC7F,MAAS,GACT,OAAU,GACV,IAAO,IACP,SAAW,IAGnB,SAAY,KACZ,MAAS,CACL,CACI,KAAQ,kBACR,KAAQ,OAIhB,MAAS,kBAEb,CACI,KAAQ,cACR,SAAY,oBACZ,MAAS,CACL,CACI,KAAQ,cAER,IAAOnG,OAAO,iBAAoBA,OAAO,iBAAPA,aAA+CmG,EAAQ,QACzF,MAAS,GACT,OAAU,GACV,IAAO,IACP,SAAW,IAGnB,SAAY,KACZ,MAAS,CACL,CACI,KAAQ,kBACR,KAAQ,UAGhB,MAAS,oBAKbhG,OAAiB,mBAAqBA,OAAiB,eAGvDA,OAAiB,mBAAqB,SAAUuF,GAC5C,IAAIU,EAAyC,OAA7BV,EAAMW,cAAc,MAAkB,MAAQ,KAC1DC,EAAqB,OAAZF,EAAqBjG,OAAiB+B,kBAC/C/B,OAAiBgC,iBACjBoE,EAAYpG,OAAiBqG,YAAYd,EAAO,IAAKY,GACrDG,EAAYtG,OAAiBqG,YAAYd,EAAO,IAAKY,GACzD,GAAKC,GAAcE,EAIZ,CAEH,IAAIC,EAA+B,OAAZN,EAAqB,OAAS,QAChDG,IACDA,EAAYG,GAEXD,IACDA,EAAYC,QAThBH,EAAY,QACZE,EAAY,QAWhB,IAAI1J,EAAOwJ,EAAY,IAAMH,EAAW,IAAMK,EAC9C,MAAO,CAAC1J,EAAMuJ,IAIlBnG,OAAiB,gBAAkB,SAAUuF,GAEzC,IAAIY,EAAQnG,OAAiBY,kBACzBwF,EAAYpG,OAAiBqG,YAAYd,EAAO,OAAQY,IACxD,OACAvJ,EAAO,OAASwJ,EACpB,MAAO,CAACxJ,EAAMuJ,K,w1LC/HdK,E,YChBA,EAAS,WAAa,IAAIC,EAAIrB,KAASsB,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,QAAQ,CAACF,EAAGH,EAAIM,KAAK,CAACnL,IAAI,eAAe,IAC3JoL,EAAkB,GCOtB,G,8BAAA,CACE,KAAF,SACE,KAFF,WAGI,MAAJ,CACM,KAAN,KAGE,QAPF,WAOI,IACJ,EADA,OAGM,EADN,0DACA,cAGA,iBAEI,sBAAJ,sBACM,EAAN,qBCxBkrB,I,wBCQ9qBC,EAAY,eACd,EACA,EACAD,GACA,EACA,KACA,KACA,MAIa,EAAAC,E,4dCZTC,EAAgB,sBAChBC,EAAmB,yBACnBC,EAAc,oBACdC,EAAoB,0B,wBLQ1BC,aAAIC,IAAIC,QACRhB,EAAaV,sBAAiB2B,SAC9BxH,IAAQyH,OAAOC,OAAS1H,IAAQ2H,MAAMC,YAAY,SAAU,CACxD,KAAQ5H,IAAQyH,OAAOI,QACvB,YAAeC,OACf,eAAkBA,OAClB,gBAAmBA,OACnB,UAAaA,SAEjB9H,IAAQ+H,oBAAoBC,SAASC,WAAW,eAChDjI,IAAQ+H,oBAAoBC,SAASC,WAAW,gBAEjC,UAAIV,OAAKW,MAAM,CAC1BC,MAAO,CACHC,YAAaxI,OAAO,iBAAoBA,OAAO,iBAAmB,IAAO,GACzEyI,eAAgB,CACZC,SAAU,UACVC,UAAU,EACVC,QAAQ,EACRC,aAAc,CACV,IAAO,EACP,GAAM,EACN,YAAe,GAOnBC,QAAS,CACL,KAAQ7C,sBAAiB8C,KACzB,SAAYpC,GAEhBqC,KACA,CACIC,UAAU,EACVC,OAAO,EACPC,WAAY,EACZC,SAAU,EACVC,SAAU,GACVC,OAAO,GAEXC,MAAO,UAEXC,uBAAwB,CACpBd,SAAU,UACVe,UAAU,EACVd,UAAU,EACVC,QAAQ,EACRC,aAAc,CACV,IAAO,EACP,GAAM,EACN,YAAe,GAOnBC,QAAS,CACL,KAAQ7C,sBAAiB8C,KACzB,SAAYpC,GAEhBqC,KACA,CACIC,UAAU,EACVC,OAAO,EACPC,WAAY,EACZC,SAAU,EACVC,SAAU,GACVC,OAAO,GAEXC,MAAO,UAEXG,MAAO,KACPC,OAAQ,KACRC,YAAa,KACbC,UAAW,GACXC,SAAU,GACVC,SAAU,OACVC,YAAY,EACZC,SAAU,EACVC,eAAgB,GAEhBC,SAAU,GACVC,OAAQ,CACJC,aAAa,EACbnM,QAAS,gBAEXoM,MAAO,CACLC,QAAQ,EACRC,QAAS,IAEXC,SAAU,CACRC,QAAS,EACT1R,KAAM,EACN2R,KAAM,EACNJ,OAAQ,IAGhBK,WAAS,GACLC,QADO,SACCtC,GACJ,IAEIuC,EAFEC,EAAc/K,OAAOgL,SAASC,OAC9BC,EAAY,IAAIC,gBAAgBJ,GAGnC/K,OAAO,gBACN8K,EAAS9K,OAAO,eAAeoL,KAAKC,gBAAgBC,cAC/CR,IACDA,EAAS,cAEbvC,EAAMuB,SAAW9J,OAAO,eAAeoL,KACvC7C,EAAMuB,SAASgB,OAASA,GAGpB9K,OAAO,wBACX8K,EAAS9K,OAAO,uBAAuBuL,QAAQC,QAAQJ,KAAKC,gBAAgBC,cAC5E/C,EAAMuB,SAAW9J,OAAO,uBAAuBuL,QAAQC,QAAQJ,KAC/D7C,EAAMuB,SAASgB,OAASA,EACxBvC,EAAMuB,SAAS0B,QAAUxL,OAAO,uBAAuBuL,QAAQC,SAE3DxL,OAAO,qBAEX8K,EAAS9K,OAAO,iBAAiBoL,KAAKC,gBAAgBC,cACtD/C,EAAMuB,SAAW9J,OAAO,iBAAiBoL,KACzC7C,EAAMuB,SAASgB,OAASA,EACxBvC,EAAMuB,SAAS2B,QAAUzL,OAAO,oBAAoB,GAAG0L,WAGvDZ,EAASI,EAAUpM,IAAI,QAClBgM,IACDA,EAAS,cAEbvC,EAAMuB,SAAW6B,OAAEC,KAAKR,EAAM,CAAEN,OAAQA,KAI5CvC,EAAMsB,UAAY,GAElB,cAAgBpQ,OAAOoS,KAAKtD,EAAMuB,SAASgC,gBAA3C,eAA2D,CAAtD,IAAItM,EAAG,KACJuM,EAAMxD,EAAMuB,SAASgC,eAAetM,GAAKN,MAC7CqJ,EAAMsB,UAAU/P,KAAKiS,KAG7BC,eA5CO,SA4CQzD,GACX,IAAMwC,EAAc/K,OAAOgL,SAASC,OAC9BC,EAAY,IAAIC,gBAAgBJ,GAClCkB,EAAaf,EAAUpM,IAAI,cAE3ByJ,EAAMyB,WADS,UAAfiC,GAORC,UAvDO,SAuDG3D,GACNA,EAAMsB,UAAY,IAEtBsC,UA1DO,SA0DG5D,GACN,GAAGA,EAAMmB,MACL,IAAK,IAAIpQ,EAAI,EAAGA,EAAIiP,EAAMmB,MAAM1Q,KAAKmR,SAAS3Q,OAAQF,IAClDiP,EAAMmB,MAAM1Q,KAAKmR,SAAS7Q,GAAGN,KAAO,GAG5C,GAAGuP,EAAMoB,OACL,IAAK,IAAIrQ,EAAI,EAAGA,EAAIiP,EAAMoB,OAAO3Q,KAAKmR,SAAS3Q,OAAQF,IACnDiP,EAAMoB,OAAO3Q,KAAKmR,SAAS7Q,GAAGN,KAAO,IAIjDoT,WAtEO,SAsEI7D,EAtEN,GAsE+B,IAG5BmB,EACA2C,EAJWC,EAAiB,EAAjBA,EAAGC,EAAc,EAAdA,EAAGC,EAAW,EAAXA,UAcrB,GARkB,IAAdA,GACA9C,EAAQnB,EAAMmB,MACd2C,EAAS,KAET3C,EAAQnB,EAAMoB,OACd0C,EAAS,MAGV3C,EAAM,CACL,IAAK,IAAIpQ,EAAI,EAAGA,EAAIoQ,EAAM1Q,KAAKmR,SAAS3Q,OAAQF,IAAK,CACjD,IAAImT,EAAanT,EAAI,EACrBoQ,EAAM1Q,KAAKmR,SAAS7Q,GAAGN,KAAKc,KAAK,CAAEwS,EAAGA,EAAGC,EAAGA,EAAE,SAAWE,EAAaJ,KACtE,IAAI7S,EAASkQ,EAAM1Q,KAAKmR,SAAS7Q,GAAGN,KAAKQ,OACrCkT,EAAchD,EAAM1Q,KAAKmR,SAAS7Q,GAAGoT,YACrCC,EAAkBjD,EAAM1Q,KAAKmR,SAAS7Q,GAAGqT,gBAC7CjD,EAAM1Q,KAAKmR,SAAS7Q,GAAGsT,qBAAqBpT,EAAS,GAAKkT,EAC1DhD,EAAM1Q,KAAKmR,SAAS7Q,GAAGuT,iBAAiBrT,EAAS,GAAKmT,EAG1DjD,EAAMoD,OAAO,UAGrBC,WAlGO,SAkGIxE,EAAOnJ,GAEd,OADAmJ,EAAMwB,SAAW3K,EACTA,GACJ,IAAK,OACD4N,IAAE,gBAAgBC,YAAY,eAC9BD,IAAE,YAAYE,OACdF,IAAE,UAAUE,OACZF,IAAE,eAAeE,OACjBF,IAAE,eAAeE,OACd3E,EAAMuB,SAASqD,eAAeC,SAAS,mBAAqB7E,EAAMuB,SAASqD,eAAeC,SAAS,uBAClGJ,IAAE,aAAaK,IAAI,sBAAuB,wDAEtC9E,EAAMuB,SAASqD,eAAeC,SAAS,oBAAsB7E,EAAMuB,SAASqD,eAAeC,SAAS,wBACxGJ,IAAE,aAAaK,IAAI,sBAAuB,mDAC1CL,IAAE,eAAeM,SAEZ/E,EAAMuB,SAASqD,eAAeC,SAAS,mBAAqB7E,EAAMuB,SAASqD,eAAeC,SAAS,wBACxGJ,IAAE,aAAaK,IAAI,sBAAuB,6DAC1CL,IAAE,UAAUM,SAGZN,IAAE,aAAaK,IAAI,sBAAuB,mDAC1CL,IAAE,UAAUM,OACZN,IAAE,eAAeM,QAErB,MACJ,IAAK,YACDN,IAAE,YAAYO,SAAS,eACvBP,IAAE,eAAeM,OACjBN,IAAE,UAAUM,OACZN,IAAE,eAAeM,OACjB,MACJ,IAAK,QACDN,IAAE,eAAeO,SAAS,eAC1BP,IAAE,YAAYM,OACdN,IAAE,UAAUM,OACZN,IAAE,eAAeM,OACjB,QAGZE,kBA1IO,SA0IWjF,GACdA,EAAM0B,UAAY,GAEtBwD,YA7IO,SA6IKlF,GACRA,EAAM0B,SAAW,IA9IhB,iBAiJJ5C,GAjJI,SAiJWkB,GACZA,EAAM6B,OAAOC,aAAc,EAC3B9B,EAAM+B,MAAMC,QAAS,EACrBzK,QAAQ4N,IAAIrG,MApJX,iBAsJFC,GAtJE,SAsJgBiB,GACjBA,EAAM6B,OAAOC,aAAc,EAC3B9B,EAAM6B,OAAOlM,QAAU,eACvBqK,EAAM+B,MAAMC,QAAS,EACrBzK,QAAQ4N,IAAIpG,MA1JX,iBA4JFC,GA5JE,SA4JWgB,EAAO9L,GACnBqD,QAAQjC,MAAM0K,EAAO9L,MA7JpB,iBA+JF+K,GA/JE,SA+JiBe,EAAOrK,QACVE,GAAXF,GACEA,EAAQ,IAAMyP,OAAMC,sBACtBrF,EAAMkC,SAASE,KAAOzM,EAAQ,GAC9BqK,EAAMkC,SAASC,QAAUxM,EAAQ,GACjCqK,EAAMkC,SAASF,OAASrM,EAAQ,GAChCqK,EAAMkC,SAASzR,KAAOkF,EAAQ2P,QAAO,SAAU3O,EAAO4O,GAAS,OAAOA,EAAQ,MAG9EvF,EAAM6B,OAAOlM,QAAUA,EAEpBqK,EAAM+B,MAAMC,SACfhC,EAAM+B,MAAMC,QAAS,IAGnBhC,EAAM+B,MAAMC,SACdhC,EAAM+B,MAAMC,QAAS,EACrBhC,EAAM6B,OAAOlM,QAAU,mBAhL1B,mDAoLmBqK,GACpBA,EAAMkC,SAASE,KAAO,EACtBpC,EAAMkC,SAASF,OAAS,EACxBhC,EAAMkC,SAASzR,KAAO,EACtBuP,EAAMkC,SAASC,QAAU,KAxLxB,GA2LTqD,QAAS,CACLC,SADK,YACgB,IAAVC,EAAU,EAAVA,OACPA,EAAO,WAEPA,EAAO,mBAGXC,cAAe,WACXzG,aAAI/N,UAAUyU,kBAElBC,QAAS,WAAF,8CAAE,WAAgBC,EAASrV,GAAzB,2FACDyO,aAAI/N,UAAU4U,QADb,uBAEGC,EAAWvV,EAAKkH,MAAM,GAFzB,SAGKuH,aAAI/N,UAAU4U,QAAQE,WAAW,EAAG,IAAIC,WAAWF,IAHxD,2CAAF,wDAAE,GAMTG,iBAAkB,SAAUL,GACxBA,EAAQJ,OAAO,2BAGvBlU,QAAS,GAET4U,QAAS,CACLC,WAAY,SAAArG,GAAK,OAAIA,EAAM6B,OAAOlM,SAClC2Q,aAAc,SAAAtG,GAAK,OAAIA,EAAMkC,UAC7BqE,YAAa,SAAAvG,GAAK,OAAIA,EAAM+B,MAAMC,W,wBM1UpCwE,G,iFACJ,aAAc,uBACZxJ,KAAKyJ,UAAY,IAAIC,I,kDAGvB,SAAYC,EAAOC,EAAUC,GAC3B,MAAwB,oBAAbD,IACT5J,KAAKyJ,UAAUK,IAAIH,IAAU3J,KAAKyJ,UAAUM,IAAIJ,EAAO,IACvD3J,KAAKyJ,UAAUlQ,IAAIoQ,GAAOpV,KAAK,CAAEqV,SAAUA,EAAUC,GAAIA,KAClD,K,4BAKX,SAAeF,EAAOC,EAAUC,GAC9B,IACItB,EADAkB,EAAYzJ,KAAKyJ,UAAUlQ,IAAIoQ,GAGnC,SAAIF,GAAaA,EAAUxV,SACzBsU,EAAQkB,EAAUO,QAAO,SAACjW,EAAGkW,EAAU1B,GAIrC,MAHiC,oBAAtB0B,EAASL,UAA2BK,EAASL,WAAaA,GAAYK,EAASJ,KAAOA,IAC/F9V,EAAIwU,GAECxU,KACL,GAEAwU,GAAS,MACXkB,EAAUtU,OAAOoT,EAAO,GACxBvI,KAAKyJ,UAAUM,IAAIJ,EAAOF,IACnB,K,kBAMb,SAAKE,GAAgB,2BAANO,EAAM,iCAANA,EAAM,kBAEnB,IAAIT,EAAYzJ,KAAKyJ,UAAUlQ,IAAIoQ,GAEnC,SAAIF,IAAaA,EAAUxV,UACzBwV,EAAUU,SAAQ,SAACF,GAAa,OAC9B,EAAAA,EAASL,UAASvV,KAAlB,SAAuB4V,EAASJ,IAAhC,OAAuCK,QAElC,O,MAME,MAAIV,E,aC9Cf,aAA8C,IAAlCY,EAAkC,uDAAtB,GAAIC,EAAkB,uDAAJ,GAAI,uBAC1CrK,KAAKsK,OAASD,EAAYC,QAAUD,EAAYC,OAAOvE,cAEvD/F,KAAKuK,OAAS,KACdvK,KAAKwK,SAAWJ,EAChBpK,KAAKyK,WAAaJ,EAElBrK,KAAK0K,kBAAmB,EAExB1K,KAAK2K,mBAAqB3K,KAAKyK,WAAWE,qBAAsB,EAG5DN,EAAYO,QAAS5K,KAAK4K,MAAQP,EAAYO,OAC9CP,EAAYhF,YAAarF,KAAKqF,UAAYgF,EAAYhF,WAE1DrF,KAAK6K,0BACL7K,KAAK8K,gBAAgBV,GAAW,G,0GAGpC,iGACSpK,KAAKuK,OAAOQ,OADrB,gCAEc/K,KAAKuK,OAAOS,OAF1B,OAKIhL,KAAKyK,WAAWQ,aAAajL,KAAKuK,QAGlCvK,KAAKkL,oBACLlL,KAAKuK,OAAOY,UAAUnL,KAAKuK,QAC3BvK,KAAK0K,kBAAmB,EAV5B,gD,2IAaA,kGACQ1K,KAAKuK,OAAOQ,OADpB,gCAEc/K,KAAKuK,OAAOa,QAF1B,OAIIpL,KAAKuK,OAAOc,aAAarL,KAAKuK,QAC9BvK,KAAK0K,kBAAmB,EAGxB1K,KAAKyK,WAAWQ,aAAa,MAC7BjL,KAAKuK,OAAS,KATlB,gD,+IAYA,WAAsBH,GAAtB,uHAAiCkB,IAAjC,iCACUC,EAAWnB,EAAUoB,QACrBC,EAAYrB,EAAUsB,QAFhC,SAIwBC,UAAUC,IAAIC,aAJtC,UAIQC,EAJR,OAKSA,EAAQ7X,SAAUqX,EAL3B,iCAMwBK,UAAUC,IAAIG,cAAc,CACxCC,QAAS,CAAC,CAAET,WAAUE,gBAPlC,OAMQK,EANR,kBAUQA,EAAQ7X,OAAS,EACjB6X,EAAQ3B,SAAQ,SAAAI,GACRA,EAAO0B,YAAYhY,SACnB,EAAKsW,OAASA,MAKtBvK,KAAKuK,OAASuB,EAAQ,GAErB9L,KAAKuK,OApBd,oEAsBUvK,KAAKkM,aAtBf,iCAuBWlM,KAAKuK,QAvBhB,iD,+FA0BA,WAA0B,WACtB,CAAC,UAAW,cAAcJ,SAAQ,SAACgC,GAC/BR,UAAUC,IAAIQ,iBAAiBD,EAA/B,yDAA0C,wGAAS5B,EAAT,EAASA,QAC3CA,EAAO0B,YAAYhY,OADe,oBAEhB,YAAdkY,EAF8B,uBAG9B,EAAK5B,OAASA,EAHgB,SAIxB,EAAK2B,aAJmB,iCAMX,eAAdC,EANyB,kCAOxB,EAAKE,cAPmB,4CAA1C,4D,+BAcR,WAAoB,WAChB,CAAC,gBAAiB,YAAa,gBAAgBlC,SAAQ,SAACgC,GACpD,EAAK5B,OAAO4B,GAAa,SAACjV,GACtBsS,EAAQ8C,KAAKH,EAAWjV,GAEpB,EAAK0T,OAAS,EAAK2B,YAAY,OAASJ,EAAWjV,S,yBAKnE,SAAYsV,EAAWtV,GACf8I,KAAK2K,mBACL3K,KAAK2K,mBAAmB6B,EAAWtV,EAAO8I,KAAKyM,mBAAmBvS,KAAK8F,OAEvEA,KAAKyM,mBAAmBD,EAAWtV,K,gCAI3C,SAAmBsV,EAAWtV,GAC1B,GAAKsV,EAAUE,WAAW,QAA1B,CACA,IAAIC,EAAS,SACTvV,EAASoV,EAAUI,cACnBC,EAAM3V,EACU,SAAhB8I,KAAKsK,QAAqBpT,EAAMzD,OAChCoZ,EAAMC,KAAKC,MAAMD,KAAKE,UAAUC,MAAMC,KAAK,IAAIhE,WAAWhS,EAAMzD,KAAK0Z,WACjEN,EAAIO,SACJhW,EAAS,CAACyV,EAAIQ,WAAa,GAAIR,EAAIO,UAAU9E,QAAO,SAACzS,GAAD,QAASA,KAAG8I,KAAK,KAC9DkO,EAAIS,SACXX,EAAS,WACTvV,EAAS,CAACyV,EAAIQ,WAAa,GAAIR,EAAIS,QAAQhF,QAAO,SAACzS,GAAD,QAASA,KAAG8I,KAAK,OAGvEqB,KAAKqF,YACLjO,EAAS4I,KAAKqF,UAAUjO,IAAWA,GAEvC4I,KAAK4K,MAAM+B,GAAQvV,EAAQyV,Q,KCzHpB,GACXU,QADW,SACHrL,EAAKsL,GAAuB,IAAfC,EAAe,uDAAJ,GACxBC,EAAW,KAEfD,EAASxC,aAAe,SAAC0C,GACjBA,EACAzL,EAAI/N,UAAU4U,QAAU4E,EAEpBzL,EAAI/N,UAAU4U,gBAAgB7G,EAAI/N,UAAU4U,SAGxD2E,EAAW,IAAIE,EAASJ,EAAQC,GAChCvL,EAAI/N,UAAU4U,QAAU2E,EAASnD,OAEjCrI,EAAI/N,UAAUyU,eAAiB,WAAgD,IAA/CwB,EAA+C,uDAAnCoD,EAAQnD,EAA2B,uDAAboD,EAC9DpD,EAAYY,aAAewC,EAASxC,aAChCyC,IAIAA,EAAW,IAAIE,EAASxD,EAAWC,IAHnCqD,EAAS5C,gBAAgBV,IAQjClI,EAAI/N,UAAU0Z,kBAAoB,WAC1BH,IACAA,EAASrB,cACLnK,EAAI/N,UAAU4U,gBAAgB7G,EAAI/N,UAAU4U,YCpB1D1D,EAAY,CACdvD,gBACAC,mBACAC,cACAC,qBAKJC,aAAI4L,OAAOC,eAAgB,EAE3B7L,aAAI4L,OAAOE,gBAAkB,CAAC,QAAS,QAAS,WAAY,MAAO,WAAY,QAAS,OACxF9L,aAAI/N,UAAU8Z,gBAAiB,EAC/B/L,aAAIC,IAAI+L,QACR,IACIhM,aAAIC,IAAIgM,EAAW,CACf3C,QAASpD,OAAMoD,QACfE,QAAStD,OAAMsD,SACd,CACDd,MAAOA,EACPvF,UAAWA,EACXiF,OAAQ,SAGhB,MAAOhS,GACH4J,aAAI/N,UAAU8Z,gBAAiB,EAOnC,IAAI/L,aAAI,CACJ0I,QACAwD,OAAQ,SAAAC,GAAC,OAAIA,EAAEC,MAChBC,OAAO,S,qBC9CV5Y,EAAOD,QAAU,IAA0B,iB,uBCA3C,IAAI8Y,EAAM,CACT,YAAa,CACZ,OACA,qBACA,WAED,gBAAiB,CAChB,OACA,qBACA,WAED,eAAgB,CACf,OACA,qBACA,cAED,mBAAoB,CACnB,OACA,qBACA,eAGF,SAASC,EAAoBC,GAC5B,IAAItZ,EAAoBgE,EAAEoV,EAAKE,GAC9B,OAAO1Y,QAAQC,UAAU4B,MAAK,WAC7B,IAAIhC,EAAI,IAAI0B,MAAM,uBAAyBmX,EAAM,KAEjD,MADA7Y,EAAE2B,KAAO,mBACH3B,KAIR,IAAI8Y,EAAMH,EAAIE,GAAME,EAAKD,EAAI,GAC7B,OAAO3Y,QAAQ+C,IAAI4V,EAAIhU,MAAM,GAAG6T,IAAIpZ,EAAoBS,IAAIgC,MAAK,WAChE,OAAOzC,EAAoBwZ,MAG7BH,EAAoBnI,KAAO,WAC1B,OAAOpS,OAAOoS,KAAKkI,IAEpBC,EAAoBG,GAAK,OACzBjZ,EAAOD,QAAU+Y,G,uBCxCjB9Y,EAAOD,QAAU,IAA0B,sB,kCCA3C,kCAAO,IAAM0S,EAAQ,CACjByG,eAAgB,sBAChBC,aAAc,oDACdtD,QAAS,KACTE,QAAS,GAETqD,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAElBC,iBAAkB,GAClBC,oBAAqB,GACrBC,uBAAwB,GAExB/G,qBAAsB,GAEtBgH,yBAA0B,EAC1BC,2BAA4B,EAE5BC,kCAAmC,EACnCC,+BAAgC,EAChCC,6BAA8B,EAC9BC,iCAAkC,EAClCC,oCAAqC,EACrCC,+BAAgC,EAEhCC,4BAA6B,GAE7BC,aAAc,EACdC,mBAAoB","file":"app.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"Example~Simulation\":\"Example~Simulation\",\"Example\":\"Example\",\"Simulation\":\"Simulation\",\"diffusion\":\"diffusion\",\"diffusion-copy\":\"diffusion-copy\",\"diffusionChart~diffusionChartPT~diffusion_v2Chart~diffusion_v2_pt_brChart~eutrophication_v2Chart~eut~58416e26\":\"diffusionChart~diffusionChartPT~diffusion_v2Chart~diffusion_v2_pt_brChart~eutrophication_v2Chart~eut~58416e26\",\"diffusionChart\":\"diffusionChart\",\"diffusionChartPT\":\"diffusionChartPT\",\"diffusion_v2Chart\":\"diffusion_v2Chart\",\"diffusion_v2_pt_brChart\":\"diffusion_v2_pt_brChart\",\"eutrophication_v2Chart\":\"eutrophication_v2Chart\",\"eutrophication_v2_pt_brChart\":\"eutrophication_v2_pt_brChart\",\"heatChart\":\"heatChart\",\"photossynthesisChart\":\"photossynthesisChart\",\"virusChart\":\"virusChart\",\"wolf_sheepChart\":\"wolf_sheepChart\",\"diffusionPT\":\"diffusionPT\",\"diffusionWidget\":\"diffusionWidget\",\"diffusionWidgetPT\":\"diffusionWidgetPT\",\"diffusion_v2\":\"diffusion_v2\",\"diffusion_v2Widget\":\"diffusion_v2Widget\",\"diffusion_v2_pt_brWidget\":\"diffusion_v2_pt_brWidget\",\"diffusion_v2_pt_br~eutrophication_v2_pt_br\":\"diffusion_v2_pt_br~eutrophication_v2_pt_br\",\"diffusion_v2_pt_br\":\"diffusion_v2_pt_br\",\"eutrophication_v2_pt_br\":\"eutrophication_v2_pt_br\",\"eutrophication_v2\":\"eutrophication_v2\",\"eutrophication_v2Widget\":\"eutrophication_v2Widget\",\"eutrophication_v2_pt_brWidget\":\"eutrophication_v2_pt_brWidget\",\"gogoBoardComponent~gogoChart\":\"gogoBoardComponent~gogoChart\",\"gogoBoardComponent\":\"gogoBoardComponent\",\"gogoChart\":\"gogoChart\",\"heat\":\"heat\",\"heatWidget\":\"heatWidget\",\"photoWidget\":\"photoWidget\",\"photossynthesisWidget\":\"photossynthesisWidget\",\"photosynthesis\":\"photosynthesis\",\"testejs\":\"testejs\",\"videoComponent\":\"videoComponent\",\"virus\":\"virus\",\"virusWidget\":\"virusWidget\",\"wildfires\":\"wildfires\",\"wildfires2\":\"wildfires2\",\"wildfires2Widget~wildfiresWidget\":\"wildfires2Widget~wildfiresWidget\",\"wildfires2Widget\":\"wildfires2Widget\",\"wildfiresWidget\":\"wildfiresWidget\",\"wildfiresChart\":\"wildfiresChart\",\"wildfires_v2\":\"wildfires_v2\",\"wolf_sheep\":\"wolf_sheep\",\"wolf_sheepWidget\":\"wolf_sheepWidget\"}[chunkId]||chunkId) + \".bundle.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"Example~Simulation\":1,\"Example\":1,\"Simulation\":1,\"diffusionChart\":1,\"diffusionChartPT\":1,\"diffusion_v2Chart\":1,\"diffusion_v2_pt_brChart\":1,\"eutrophication_v2Chart\":1,\"eutrophication_v2_pt_brChart\":1,\"heatChart\":1,\"photossynthesisChart\":1,\"virusChart\":1,\"wolf_sheepChart\":1,\"diffusionWidget\":1,\"diffusionWidgetPT\":1,\"diffusion_v2Widget\":1,\"diffusion_v2_pt_brWidget\":1,\"eutrophication_v2Widget\":1,\"eutrophication_v2_pt_brWidget\":1,\"gogoBoardComponent\":1,\"gogoChart\":1,\"heatWidget\":1,\"photoWidget\":1,\"photossynthesisWidget\":1,\"videoComponent\":1,\"virusWidget\":1,\"wildfires2Widget\":1,\"wildfiresWidget\":1,\"wolf_sheepWidget\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"Example~Simulation\":\"Example~Simulation\",\"Example\":\"Example\",\"Simulation\":\"Simulation\",\"diffusion\":\"diffusion\",\"diffusion-copy\":\"diffusion-copy\",\"diffusionChart~diffusionChartPT~diffusion_v2Chart~diffusion_v2_pt_brChart~eutrophication_v2Chart~eut~58416e26\":\"diffusionChart~diffusionChartPT~diffusion_v2Chart~diffusion_v2_pt_brChart~eutrophication_v2Chart~eut~58416e26\",\"diffusionChart\":\"diffusionChart\",\"diffusionChartPT\":\"diffusionChartPT\",\"diffusion_v2Chart\":\"diffusion_v2Chart\",\"diffusion_v2_pt_brChart\":\"diffusion_v2_pt_brChart\",\"eutrophication_v2Chart\":\"eutrophication_v2Chart\",\"eutrophication_v2_pt_brChart\":\"eutrophication_v2_pt_brChart\",\"heatChart\":\"heatChart\",\"photossynthesisChart\":\"photossynthesisChart\",\"virusChart\":\"virusChart\",\"wolf_sheepChart\":\"wolf_sheepChart\",\"diffusionPT\":\"diffusionPT\",\"diffusionWidget\":\"diffusionWidget\",\"diffusionWidgetPT\":\"diffusionWidgetPT\",\"diffusion_v2\":\"diffusion_v2\",\"diffusion_v2Widget\":\"diffusion_v2Widget\",\"diffusion_v2_pt_brWidget\":\"diffusion_v2_pt_brWidget\",\"diffusion_v2_pt_br~eutrophication_v2_pt_br\":\"diffusion_v2_pt_br~eutrophication_v2_pt_br\",\"diffusion_v2_pt_br\":\"diffusion_v2_pt_br\",\"eutrophication_v2_pt_br\":\"eutrophication_v2_pt_br\",\"eutrophication_v2\":\"eutrophication_v2\",\"eutrophication_v2Widget\":\"eutrophication_v2Widget\",\"eutrophication_v2_pt_brWidget\":\"eutrophication_v2_pt_brWidget\",\"gogoBoardComponent~gogoChart\":\"gogoBoardComponent~gogoChart\",\"gogoBoardComponent\":\"gogoBoardComponent\",\"gogoChart\":\"gogoChart\",\"heat\":\"heat\",\"heatWidget\":\"heatWidget\",\"photoWidget\":\"photoWidget\",\"photossynthesisWidget\":\"photossynthesisWidget\",\"photosynthesis\":\"photosynthesis\",\"testejs\":\"testejs\",\"videoComponent\":\"videoComponent\",\"virus\":\"virus\",\"virusWidget\":\"virusWidget\",\"wildfires\":\"wildfires\",\"wildfires2\":\"wildfires2\",\"wildfires2Widget~wildfiresWidget\":\"wildfires2Widget~wildfiresWidget\",\"wildfires2Widget\":\"wildfires2Widget\",\"wildfiresWidget\":\"wildfiresWidget\",\"wildfiresChart\":\"wildfiresChart\",\"wildfires_v2\":\"wildfires_v2\",\"wolf_sheep\":\"wolf_sheep\",\"wolf_sheepWidget\":\"wolf_sheepWidget\"}[chunkId]||chunkId) + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/netlogo/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/.pnpm/vue-loader@15.9.8_cache-loader@4.1.0_css-loader@3.6.0_lodash@4.17.21_underscore@1.13.1_vue-te_5wdexquhlmpnia3f3vybnkuywq/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/.pnpm/vue-loader@15.9.8_cache-loader@4.1.0_css-loader@3.6.0_lodash@4.17.21_underscore@1.13.1_vue-te_5wdexquhlmpnia3f3vybnkuywq/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/play-icon.png\";","import Blockly from 'blockly';\n\nexport const netlogoGenerator = new Blockly.Generator('NETLOGO');\n/**\n * https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence\n */\nnetlogoGenerator.ORDER_ATOMIC = 0; // 0 \"\" ...\nnetlogoGenerator.ORDER_NEW = 1.1; // new\nnetlogoGenerator.ORDER_MEMBER = 1.2; // . []\nnetlogoGenerator.ORDER_FUNCTION_CALL = 2; // ()\nnetlogoGenerator.ORDER_INCREMENT = 3; // ++\nnetlogoGenerator.ORDER_DECREMENT = 3; // --\nnetlogoGenerator.ORDER_BITWISE_NOT = 4.1; // ~\nnetlogoGenerator.ORDER_UNARY_PLUS = 4.2; // +\nnetlogoGenerator.ORDER_UNARY_NEGATION = 4.3; // -\nnetlogoGenerator.ORDER_LOGICAL_NOT = 4.4; // !\nnetlogoGenerator.ORDER_TYPEOF = 4.5; // typeof\nnetlogoGenerator.ORDER_VOID = 4.6; // void\nnetlogoGenerator.ORDER_DELETE = 4.7; // delete\nnetlogoGenerator.ORDER_AWAIT = 4.8; // await\nnetlogoGenerator.ORDER_EXPONENTIATION = 5.0; // **\nnetlogoGenerator.ORDER_MULTIPLICATION = 5.1; // *\nnetlogoGenerator.ORDER_DIVISION = 5.2; // /\nnetlogoGenerator.ORDER_MODULUS = 5.3; // %\nnetlogoGenerator.ORDER_SUBTRACTION = 6.1; // -\nnetlogoGenerator.ORDER_ADDITION = 6.2; // +\nnetlogoGenerator.ORDER_BITWISE_SHIFT = 7; // << >> >>>\nnetlogoGenerator.ORDER_RELATIONAL = 8; // < <= > >=\nnetlogoGenerator.ORDER_IN = 8; // in \nnetlogoGenerator.ORDER_INSTANCEOF = 8; // instanceof\nnetlogoGenerator.ORDER_EQUALITY = 9; // == != === !==\nnetlogoGenerator.ORDER_BITWISE_AND = 10; // &\nnetlogoGenerator.ORDER_BITWISE_XOR = 11; // ^\nnetlogoGenerator.ORDER_BITWISE_OR = 12; // |\nnetlogoGenerator.ORDER_LOGICAL_AND = 13; // &&\nnetlogoGenerator.ORDER_LOGICAL_OR = 14; // ||\nnetlogoGenerator.ORDER_CONDITIONAL = 15; // ?:\nnetlogoGenerator.ORDER_ASSIGNMENT = 16; // = += -= **= *= /= %= <<= >>= ...\nnetlogoGenerator.ORDER_YIELD = 17; // yield\nnetlogoGenerator.ORDER_COMMA = 18; // ,\nnetlogoGenerator.ORDER_NONE = 99; // (...)\nnetlogoGenerator.INDENT = ' ';\n\nnetlogoGenerator.SIZE = {\n \"SMALL\": 1,\n \"MEDIUM\": 3,\n \"BIG\": 5\n};\n\nnetlogoGenerator.PRODUCE = {\n \"O2\": \"produce-o2\",\n \"GLUCOSECOMPLEX\": \"produce-glucose-complex\",\n \"GLUCOSE\": \"produce-glucose\"\n};\n\nnetlogoGenerator.BREAK = {\n \"CO2\": \"break-apart-co2\",\n \"H2O\": \"break-apart-h2o\"\n};\n\nnetlogoGenerator.CONSUME = {\n \"CO2\": '\"co2\"',\n \"GLUCOSECOMPLEX\": '\"glucose-complex\"',\n \"H2O\": '\"h2o\"',\n \"LIGHTENERGY\": '\"energy\"'\n};\n\nnetlogoGenerator.LIGHT = {\n \"LAMP\": \"temperature\",\n \"LOW\": 15,\n \"MEDIUM\": 30,\n \"HIGH\": 45\n};\n\nnetlogoGenerator.SIZE_VIRUS = {\n \"SMALL\": 5,\n \"MEDIUM\": 8,\n \"BIG\": 12\n};\n\nnetlogoGenerator.SIZE_ANIMAL = {\n \"SMALL\": 1,\n \"MEDIUM\": 1.5,\n \"BIG\": 2\n};\n\nnetlogoGenerator.SIZE_EUTROPHICATION = {\n \"SMALL\": 5,\n \"MEDIUM\": 10,\n \"BIG\": 15\n};\n\nnetlogoGenerator.HEATSIZE = {\n \"SMALL\": 0.2,\n \"MEDIUM\": 0.7,\n \"BIG\": 1\n};\nnetlogoGenerator.SPEED = {\n \"ZERO\": 0,\n \"PHOTOLOW\": 2,\n \"PHOTOMEDIUM\": 10,\n \"PHOTOHIGH\": 35,\n \"VERY_LOW\": \"10 - random (random-wiggle)\",\n \"LOW\": \"30 - random (random-wiggle)\",\n \"MEDIUM\": \"50 - random (random-wiggle)\",\n \"HIGH\": \"80 - random (random-wiggle)\",\n \"TEMP\": \"initial-temperature - random (random-wiggle)\",\n \"WIND_SPEED\": \"wind-speed - random (random-wiggle)\",\n \"BAIXA\": \"30 - random (random-wiggle)\",\n \"MEDIA\": \"50 - random (random-wiggle)\",\n \"ALTA\": \"80 - random (random-wiggle)\",\n\n};\nnetlogoGenerator.SPEED_EUTROPHICATION = {\n \"ZERO\": 0,\n \"SLOW\": 0.5,\n \"MEDIUM\": 1,\n \"FAST\": 1.5\n};\nnetlogoGenerator.MASS = {\n \"LIGHT\": 1,\n \"MEDIUM\": 2.5,\n \"HEAVY\": 10\n};\nnetlogoGenerator.ARRANGEMENT = {\n \"UNIFORM\": 'setxy xcor ycor',\n \"MESSY\": 'ifelse (abs(xcor) > plate-size - 1) or (abs(ycor) > plate-size - 1) [\\n' +\n 'if xcor >= plate-size [setxy xcor - ((random 30) / 20 ) ycor] \\n'+\n 'if xcor <= ( - plate-size) [setxy xcor + ((random 30) / 20 ) ycor] \\n'+\n 'if ycor <= ( - plate-size) [setxy xcor ycor + ((random 30) / 20 )] \\n'+\n 'if ycor >= plate-size [setxy xcor ycor - ((random 30) / 20 )] \\n'+\n 'set color green \\n' +\n '] \\n'+\n '[set color cyan \\n setxy xcor + ((random 10) / 20) - ((random 10) / 20 ) ycor + ((random 10) / 20) - ((random 10) / 20)]\\n',\n};\nnetlogoGenerator.POSITION = {\n \"RANDOM\": \"(min-pxcor + 5 + random-float (world-width - 10)) min-pycor + 5 + random-float (world-height - 10)\",\n \"CENTER\": \"0 0\",\n \"VERTICAL\": \"0 (-85 + random-float (170))\",\n \"HORIZONTAL\": \"(-85 + random-float (170)) 0\",\n \"MOUSE\": \"drop-with-mouse 500\",\n \"FIRE_BOTTOM\": \"(-51 + random-float 2) 0.99 * min-pycor\", \n \"RANDOM_HEAT\": \"(random-float (2 * plate-size) ) - (plate-size ) (random-float (2 * plate-size)) - plate-size\",\n \"CENTER_HEAT\": \"0 0\",\n \"VERTICAL_HEAT\": \"0 (-5 + random-float (10))\",\n \"HORIZONTAL_HEAT\": \"(-5 + random-float (10)) 0\"\n};\nnetlogoGenerator.POSITION_WILDFIRES = { ...netlogoGenerator.POSITION };\nnetlogoGenerator.POSITION_WILDFIRES.RANDOM = \"random-xcor random-ycor\";\nnetlogoGenerator.HEADING = {\n \"RANDOM\": \"random-float 360\",\n \"UP\": \"0 - (random-wiggle / 2) + random (random-wiggle)\",\n \"RIGHT\": \"90 - (random-wiggle / 2) + random (random-wiggle)\",\n \"DOWN\": \"180 - (random-wiggle / 2) + random (random-wiggle)\",\n \"LEFT\": \"270 - (random-wiggle / 2) + random (random-wiggle)\",\n \"WIND_DIRECTION\": \"wind-direction\"\n}\nnetlogoGenerator.DIRECTION = {\n \"FORWARD\": \"dx dy\",\n \"UPWARD\": \"0 1\",\n \"RIGHTWARD\": \"1 0\",\n \"DOWNWARD\": \"0 -1\",\n \"LEFTWARD\": \"-1 0\",\n \"WIND\": \"sin wind-direction cos wind-direction\"\n}\nnetlogoGenerator.MAGNITUDE = {\n \"MUCH_MORE\": \"10 - random (random-wiggle)\",\n \"MORE\": \"5 - random (random-wiggle)\",\n \"LITTLE_MORE\": \"3 - random (random-wiggle)\",\n \"SAME\": \"0\",\n \"WIND\": \"wind-speed\"\n}\nnetlogoGenerator.EFFECT = {\n \"DIRECT\": 1,\n \"INVERSE\": -1,\n \"NOEFFECT\": 0\n}\n\n/**\n * List of illegal variable names.\n * This is not intended to be a security feature. Blockly is 100% client-side,\n * so bypassing this list is trivial. This is intended to prevent users from\n * accidentally clobbering a built-in objectaor function.\n * @private\n */\nnetlogoGenerator.addReservedWords(\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords\n 'ask,set,go,turtle,patches,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,in,instanceof,new,return,super,switch,this,throw,try,typeof,var,void,while,with,yield,' +\n 'enum,' +\n 'implements,interface,let,package,private,protected,public,static,' +\n 'await,' +\n 'null,true,false,' +\n // Magic variable.\n 'arguments,' +\n // Everything in the current environment (835 items in Chrome, 104 in Node).\n Object.getOwnPropertyNames(Blockly.utils.global).join(','));\n\n/**\n * Initialise the database of variable names.\n * @param {!Blockly.Workspace} workspace Workspace to generate code from.\n */\nnetlogoGenerator.init = function (workspace) {\n // Create a dictionary of definitions to be printed before the code.\n netlogoGenerator.definitions_ = Object.create(null);\n // Create a dictionary mapping desired function names in definitions_\n // to actual function names (to avoid collisions with user functions).\n netlogoGenerator.functionNames_ = Object.create(null);\n\n if (!netlogoGenerator.nameDB_) {\n netlogoGenerator.nameDB_ =\n new Blockly.Names(netlogoGenerator.RESERVED_WORDS_);\n } else {\n netlogoGenerator.nameDB_.reset();\n }\n\n netlogoGenerator.nameDB_.setVariableMap(workspace.getVariableMap());\n\n let defvars = [];\n // Add developer variables (not created or named by the user).\n let devVarList = Blockly.Variables.allDeveloperVariables(workspace);\n for (let i = 0; i < devVarList.length; i++) {\n defvars.push(netlogoGenerator.nameDB_.getName(devVarList[i],\n Blockly.Names.DEVELOPER_VARIABLE_TYPE));\n }\n\n // Add user variables, but only ones that are being used.\n let variables = Blockly.Variables.allUsedVarModels(workspace);\n for (let i = 0; i < variables.length; i++) {\n defvars.push(netlogoGenerator.nameDB_.getName(variables[i].getId(),\n Blockly.VARIABLE_CATEGORY_NAME));\n }\n\n // Declare all of the variables.\n if (defvars.length) {\n netlogoGenerator.definitions_['variables'] =\n 'let ' + defvars.join(', ') + ';';\n }\n this.isInitialized = true;\n};\n\n// Gets all code not just one set\nnetlogoGenerator.scrub_ = function (block, code, opt_thisOnly) {\n // console.log(code, block, opt_thisOnly)\n const nextBlock =\n block.nextConnection && block.nextConnection.targetBlock();\n let nextCode = '';\n if (nextBlock) {\n nextCode =\n // opt_thisOnly ? '' : ',\\n' + netlogoGenerator.blockToCode(nextBlock);\n opt_thisOnly ? '' : netlogoGenerator.blockToCode(nextBlock);\n }\n return code + nextCode;\n};\n","import Blockly from 'blockly'\nimport { netlogoGenerator } from '@/blocklyHelpers/netlogoGenerator';\nexport let baseBlockLibrary = {};\nimport '@blockly/field-slider';\n\n// function imagePath(name){\n// const prefix = window[\"__IMAGE_URL__\"] ? (window[\"__IMAGE_URL__\"] + '/') : '/img/';\n// return prefix + name;\n// }\n\nbaseBlockLibrary = {\n \"kind\": \"categoryToolbox\",\n \"contents\": [\n {\n \"kind\": \"category\",\n \"name\": \"General\",\n \"colour\": \"#00836B\",\n \"contents\": [\n {\n \"kind\": \"block\",\n \"type\": \"controls_if\"\n },\n {\n \"kind\": \"block\",\n \"type\": \"logic_operation\"\n },\n {\n \"kind\": \"block\",\n \"type\": \"logic_negate\"\n },\n ]\n },\n ]\n}\n\nBlockly.defineBlocksWithJsonArray([\n {\n \"type\": \"set\",\n \"message0\": \"setup %1\",\n \"args0\": [\n {\n \"type\": \"field_image\",\n // \"src\": imagePath(\"start-flag.png\"),\n \"src\": window[\"__IMAGE_URL__\"] ? (window[\"__IMAGE_URL__\"] + '/') + 'start-flag.png' : require('@/assets/start-flag.png'),\n \"width\": 15,\n \"height\": 15,\n \"alt\": \"*\",\n \"flipRtl\": false\n }\n ],\n \"message1\": \"%1\",\n \"args1\": [\n {\n \"type\": \"input_statement\",\n \"name\": \"SET\"\n }\n ],\n \"style\": \"netlogo_blocks\"\n},\n{\n \"type\": \"go\",\n \"message0\": \"go %1\",\n \"args0\": [\n {\n \"type\": \"field_image\",\n // \"src\": imagePath(\"start-flag.png\"),\n \"src\": window[\"__IMAGE_URL__\"] ? (window[\"__IMAGE_URL__\"] + '/') + 'play-icon.png' : require('@/assets/play-icon.png'),\n \"width\": 10,\n \"height\": 10,\n \"alt\": \"*\",\n \"flipRtl\": false\n }\n ],\n \"message1\": \"%1\",\n \"args1\": [\n {\n \"type\": \"input_statement\",\n \"name\": \"GO\"\n }\n ],\n\n \"style\": \"netlogo_blocks\"\n},\n{\n \"type\": \"mouse_click\",\n \"message0\": \"on mouse click %1\",\n \"args0\": [\n {\n \"type\": \"field_image\",\n // \"src\": imagePath(\"click.png\"),\n \"src\": window[\"__IMAGE_URL__\"] ? (window[\"__IMAGE_URL__\"] + '/') + 'click.png' : require('@/assets/click.png'),\n \"width\": 15,\n \"height\": 15,\n \"alt\": \"*\",\n \"flipRtl\": false\n }\n ],\n \"message1\": \"%1\",\n \"args1\": [\n {\n \"type\": \"input_statement\",\n \"name\": \"MOUSE\"\n }\n ],\n \"style\": \"netlogo_blocks\"\n},\n]);\n\n// If else block\nnetlogoGenerator['controls_ifelse'] = netlogoGenerator['controls_if'];\n\n// Operations 'and', 'or'\nnetlogoGenerator['logic_operation'] = function (block) {\n let operator = (block.getFieldValue('OP') == 'AND') ? 'and' : 'or';\n let order = (operator == 'and') ? netlogoGenerator.ORDER_LOGICAL_AND :\n netlogoGenerator.ORDER_LOGICAL_OR;\n let argument0 = netlogoGenerator.valueToCode(block, 'A', order);\n let argument1 = netlogoGenerator.valueToCode(block, 'B', order);\n if (!argument0 && !argument1) {\n // If there are no arguments, then the return value is false.\n argument0 = 'false';\n argument1 = 'false';\n } else {\n // Single missing arguments have no effect on the return value.\n let defaultArgument = (operator == 'and') ? 'true' : 'false';\n if (!argument0) {\n argument0 = defaultArgument;\n }\n if (!argument1) {\n argument1 = defaultArgument;\n }\n }\n let code = argument0 + ' ' + operator + ' ' + argument1;\n return [code, order];\n};\n\n// Negation operator\nnetlogoGenerator['logic_negate'] = function (block) {\n\n let order = netlogoGenerator.ORDER_LOGICAL_NOT;\n let argument0 = netlogoGenerator.valueToCode(block, 'BOOL', order) ||\n 'true';\n let code = 'not ' + argument0;\n return [code, order];\n};\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport Blockly from 'blockly';\n// import {ContinuousToolbox, ContinuousFlyout, ContinuousMetrics} from '@blockly/continuous-toolbox';\nimport { baseBlockLibrary } from '@/data/blockLibraries/baseBlocks.js';\nimport * as blockStyling from '@/data/blockConfig/blockStyling.json';\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport {\n HID_ONCONNECT,\n HID_ONDISCONNECT,\n HID_ONERROR,\n HID_ONINPUTREPORT,\n } from './mutation-types.js'\nimport { CONST } from './const'\nimport task from '@/data/taskContent/taskDescriptions.json';\nlet categories;\n\nVue.use(Vuex);\ncategories = baseBlockLibrary.contents;\nBlockly.Themes.Custom = Blockly.Theme.defineTheme('custom', {\n 'base': Blockly.Themes.Classic,\n 'blockStyles': blockStyling.blockStyles,\n 'categoryStyles': blockStyling.categoryStyles,\n 'componentStyles': blockStyling.componentStyles,\n 'fontStyle': blockStyling.fontStyle,\n});\nBlockly.ContextMenuRegistry.registry.unregister('blockDelete');\nBlockly.ContextMenuRegistry.registry.unregister('blockDisable');\n\nexport default new Vuex.Store({\n state: {\n imagePrefix: window[\"__IMAGE_URL__\"] ? (window[\"__IMAGE_URL__\"] + '/') : '',\n blocklyOptions: {\n renderer: 'thrasos',\n comments: true,\n hasCss: true,\n maxInstances: {\n 'set': 1,\n 'go': 1,\n 'mouse_click': 1\n },\n // plugins: {\n // 'toolbox': ContinuousToolbox,\n // 'flyoutsVerticalToolbox': ContinuousFlyout,\n // 'metricsManager': ContinuousMetrics,\n // },\n toolbox: {\n 'kind': baseBlockLibrary.kind,\n 'contents': categories,\n },\n zoom:\n {\n controls: true,\n wheel: true,\n startScale: 1.0,\n maxScale: 3,\n minScale: 0.5,\n pinch: true\n },\n theme: 'custom',\n },\n readOnlyBlocklyOptions: {\n renderer: 'thrasos',\n readOnly: false,\n comments: true,\n hasCss: true,\n maxInstances: {\n 'set': 1,\n 'go': 1,\n 'mouse_click': 1\n },\n // plugins: {\n // 'toolbox': ContinuousToolbox,\n // 'flyoutsVerticalToolbox': ContinuousFlyout,\n // 'metricsManager': ContinuousMetrics,\n // },\n toolbox: {\n 'kind': baseBlockLibrary.kind,\n 'contents': categories,\n },\n zoom:\n {\n controls: true,\n wheel: true,\n startScale: 1.0,\n maxScale: 3,\n minScale: 0.5,\n pinch: true\n },\n theme: 'custom',\n },\n chart: null,\n chart2: null,\n secondChart: null,\n libraries: [],\n taskInfo: {},\n viewMode: 'main',\n unpackable: true,\n runCount: 0,\n simulationData: [],\n // for gogo board,\n datasets: [],\n socket: {\n isConnected: false,\n message: 'disconnected',\n },\n board: {\n status: false,\n dataset: []\n },\n response: {\n command: 0,\n data: 0,\n size: 0,\n status: 0\n }\n },\n mutations: {\n getTask(state){\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n let taskId;\n // check if craft instance is available\n if(window[\"__CONTENT__\"]){\n taskId = window[\"__CONTENT__\"].task.stableReference.toLowerCase();\n if (!taskId) {\n taskId = 'wolf_sheep';\n }\n state.taskInfo = window[\"__CONTENT__\"].task;\n state.taskInfo.taskId = taskId;\n //$('#app').css('height', '100vh');\n }\n else if(window[\"__EXAMPLE_CONTENT__\"]){\n taskId = window[\"__EXAMPLE_CONTENT__\"].journey.example.task.stableReference.toLowerCase();\n state.taskInfo = window[\"__EXAMPLE_CONTENT__\"].journey.example.task;\n state.taskInfo.taskId = taskId;\n state.taskInfo.example = window[\"__EXAMPLE_CONTENT__\"].journey.example;\n }\n else if(window[\"__STUDENT_INFO__\"]){\n // taskId = window[\"__STUDENT_INFO__\"].journey.example.task.title.toLowerCase();\n taskId = window[\"__TASK_INFO__\"].task.stableReference.toLowerCase();\n state.taskInfo = window[\"__TASK_INFO__\"].task;\n state.taskInfo.taskId = taskId;\n state.taskInfo.project = window[\"__STUDENT_INFO__\"][0].progress;\n }\n else{\n taskId = urlParams.get('task');\n if (!taskId) {\n taskId = 'wolf_sheep';\n }\n state.taskInfo = _.find(task, { taskId: taskId });\n //$('#app').css('height', '100vh');\n }\n\n state.libraries = [];\n // instantiate Blockly Toolbox\n for (let key of Object.keys(state.taskInfo.blocklyLibrary)){\n let lib = state.taskInfo.blocklyLibrary[key].value;\n state.libraries.push(lib);\n }\n },\n getToolboxMode(state){\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n let packStatus = urlParams.get('unpackable');\n if (packStatus === \"false\"){\n state.unpackable = false;\n }\n else{\n state.unpackable = true;\n }\n },\n clearLibs(state){\n state.libraries = [];\n },\n clearData(state){\n if(state.chart){\n for (let i = 0; i < state.chart.data.datasets.length; i++) {\n state.chart.data.datasets[i].data = [];\n }\n }\n if(state.chart2){\n for (let i = 0; i < state.chart2.data.datasets.length; i++) {\n state.chart2.data.datasets[i].data = [];\n }\n }\n },\n appendData(state, {x, y, chart_num}){\n // console.log(`appending data ${x} ${y}`);\n // do not duplicate points with the same x coordinate\n let chart;\n let suffix;\n\n if (chart_num === 1) {\n chart = state.chart;\n suffix = '';\n } else {\n chart = state.chart2;\n suffix = '_2';\n }\n\n if(chart){\n for (let i = 0; i < chart.data.datasets.length; i++) {\n let series_num = i + 1;\n chart.data.datasets[i].data.push({ x: x, y: y['series' + series_num + suffix] });\n let length = chart.data.datasets[i].data.length;\n let borderColor = chart.data.datasets[i].borderColor;\n let backgroundColor = chart.data.datasets[i].backgroundColor;\n chart.data.datasets[i].pointBackgroundColor[length - 1] = borderColor;\n chart.data.datasets[i].pointBorderColor[length - 1] = backgroundColor;\n //chart.data.datasets[i].pointStyle[length - 1] = 'circle'; \n }\n chart.update('none');\n }\n },\n changeMode(state, mode){\n state.viewMode = mode;\n switch (mode){\n case 'main':\n $('.expandedDiv').removeClass('expandedDiv');\n $('#blockly').show();\n $('#chart').show();\n $('#simulation').show();\n $('#experiment').show();\n if(state.taskInfo.viewComponents.includes('chartComponent') && state.taskInfo.viewComponents.includes('experimentComponent')){\n $('.contents').css('grid-template-areas', '\"workspace model experiment\" \"workspace chart chart\"');\n }\n else if(state.taskInfo.viewComponents.includes('chartComponent') && !state.taskInfo.viewComponents.includes('experimentComponent')){\n $('.contents').css('grid-template-areas', '\"workspace model model\" \"workspace chart chart\"');\n $('#experiment').hide();\n }\n else if(!state.taskInfo.viewComponents.includes('chartComponent') && state.taskInfo.viewComponents.includes('experimentComponent')){\n $('.contents').css('grid-template-areas', '\"workspace model experiment\" \"workspace model experiment\"');\n $('#chart').hide();\n }\n else {\n $('.contents').css('grid-template-areas', '\"workspace model model\" \"workspace model model\"');\n $('#chart').hide();\n $('#experiment').hide();\n }\n break;\n case 'workspace':\n $('#blockly').addClass('expandedDiv');\n $('#simulation').hide();\n $('#chart').hide();\n $('#experiment').hide();\n break;\n case 'model':\n $('#simulation').addClass('expandedDiv');\n $('#blockly').hide();\n $('#chart').hide();\n $('#experiment').hide();\n break;\n }\n },\n incrementRunCount(state){\n state.runCount += 1;\n },\n resetCharts(state){\n state.runCount = 0;\n },\n // for gogo board\n [HID_ONCONNECT](state) {\n state.socket.isConnected = true\n state.board.status = false\n console.log(HID_ONCONNECT)\n },\n [HID_ONDISCONNECT](state) {\n state.socket.isConnected = false\n state.socket.message = 'disconnected'\n state.board.status = false\n console.log(HID_ONDISCONNECT);\n },\n [HID_ONERROR](state, event) {\n console.error(state, event)\n },\n [HID_ONINPUTREPORT](state, message) {\n if (message != undefined) {\n if (message[0] == CONST.response_packet_type) {\n state.response.size = message[1]\n state.response.command = message[2]\n state.response.status = message[3]\n state.response.data = message.filter(function (value, index) { return index > 3; })\n }\n else {\n state.socket.message = message\n }\n if (!state.board.status)\n state.board.status = true\n }\n else {\n if (state.board.status) {\n state.board.status = false\n state.socket.message = \"disconnected\"\n }\n }\n },\n clear_response_socket(state) {\n state.response.size = 0\n state.response.status = 0\n state.response.data = 0\n state.response.command = 0\n }\n },\n actions: {\n initTask({ commit }) {\n commit(\"getTask\");\n // commit(\"clearLibs\");\n commit(\"getToolboxMode\");\n },\n // for gogo board\n connectDevice: function () {\n Vue.prototype.$webhidConnect();\n },\n sendHID: async function (context, data) {\n if (Vue.prototype.$webhid) {\n let sendData = data.slice(1) //? data must be 63 bytes without report id\n await Vue.prototype.$webhid.sendReport(0, new Uint8Array(sendData))\n }\n },\n clearResponseHID: function (context) {\n context.commit('clear_response_socket');\n }\n },\n modules: {\n },\n getters: {\n gogoReport: state => state.socket.message,\n gogoResponse: state => state.response,\n boardStatus: state => state.board.status,\n }\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c(_vm.view,{tag:\"component\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/.pnpm/thread-loader@2.1.3_webpack@4.46.0/node_modules/thread-loader/dist/cjs.js!../node_modules/.pnpm/babel-loader@8.2.2_@babel+core@7.15.5_webpack@4.46.0/node_modules/babel-loader/lib/index.js!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/.pnpm/vue-loader@15.9.8_cache-loader@4.1.0_css-loader@3.6.0_lodash@4.17.21_underscore@1.13.1_vue-te_5wdexquhlmpnia3f3vybnkuywq/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/.pnpm/thread-loader@2.1.3_webpack@4.46.0/node_modules/thread-loader/dist/cjs.js!../node_modules/.pnpm/babel-loader@8.2.2_@babel+core@7.15.5_webpack@4.46.0/node_modules/babel-loader/lib/index.js!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/.pnpm/vue-loader@15.9.8_cache-loader@4.1.0_css-loader@3.6.0_lodash@4.17.21_underscore@1.13.1_vue-te_5wdexquhlmpnia3f3vybnkuywq/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=42e95ad6&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/.pnpm/vue-loader@15.9.8_cache-loader@4.1.0_css-loader@3.6.0_lodash@4.17.21_underscore@1.13.1_vue-te_5wdexquhlmpnia3f3vybnkuywq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const SOCKET_ONOPEN = '✅ Socket connected!'\nconst SOCKET_ONCLOSE = '❌ Socket disconnected!'\nconst SOCKET_ONERROR = '❌ Socket Error!!!'\nconst SOCKET_ONMESSAGE = 'Websocket message received'\nconst SOCKET_RECONNECT = 'Websocket reconnected'\nconst SOCKET_RECONNECT_ERROR = 'Websocket is having issues reconnecting..'\n\nconst HID_ONCONNECT = '✅ WebHID connected!'\nconst HID_ONDISCONNECT = '❌ WebHID disconnected!'\nconst HID_ONERROR = '❌ WebHID Error!!!'\nconst HID_ONINPUTREPORT = 'WebHID message received'\n\nexport {\n SOCKET_ONOPEN,\n SOCKET_ONCLOSE,\n SOCKET_ONERROR,\n SOCKET_ONMESSAGE,\n SOCKET_RECONNECT,\n SOCKET_RECONNECT_ERROR,\n\n HID_ONCONNECT,\n HID_ONDISCONNECT,\n HID_ONERROR,\n HID_ONINPUTREPORT,\n}","class Emitter {\n constructor() {\n this.listeners = new Map()\n }\n\n addListener(label, callback, vm) {\n if (typeof callback === 'function') {\n this.listeners.has(label) || this.listeners.set(label, [])\n this.listeners.get(label).push({ callback: callback, vm: vm })\n return true\n }\n return false\n }\n\n removeListener(label, callback, vm) {\n let listeners = this.listeners.get(label)\n let index\n\n if (listeners && listeners.length) {\n index = listeners.reduce((i, listener, index) => {\n if (typeof listener.callback === 'function' && listener.callback === callback && listener.vm === vm) {\n i = index\n }\n return i\n }, -1)\n\n if (index > -1) {\n listeners.splice(index, 1)\n this.listeners.set(label, listeners)\n return true\n }\n }\n return false\n }\n\n emit(label, ...args) {\n // console.log('emit listener: ', label);\n let listeners = this.listeners.get(label)\n\n if (listeners && listeners.length) {\n listeners.forEach((listener) => {\n listener.callback.call(listener.vm, ...args)\n })\n return true\n }\n return false\n }\n}\n\nexport default new Emitter()","import Emitter from './emitter'\n\nexport default class {\n constructor(device_id = {}, device_opts = {}) {\n this.format = device_opts.format && device_opts.format.toLowerCase()\n\n this.device = null\n this.deviceId = device_id\n this.deviceOpts = device_opts\n\n this.connectionStatus = false\n\n this.passToStoreHandler = this.deviceOpts.passToStoreHandler || false\n\n //? pass user store and muations to used in class plugin\n if (device_opts.store) { this.store = device_opts.store }\n if (device_opts.mutations) { this.mutations = device_opts.mutations }\n\n this.registerConnectionEvent()\n this.connectManually(device_id, false)\n }\n\n async openDevice() {\n if (!this.device.opened) {\n await this.device.open()\n }\n //? set prototype instance\n this.deviceOpts.$setInstance(this.device)\n\n //? starting event handler but its register after connected so `onconnect` is not firing\n this.registerUserEvent()\n this.device.onconnect(this.device)\n this.connectionStatus = true\n }\n\n async closeDevice() {\n if (this.device.opened) {\n await this.device.close()\n }\n this.device.ondisconnect(this.device)\n this.connectionStatus = false\n\n //? set prototype instance\n this.deviceOpts.$setInstance(null)\n this.device = null\n }\n\n async connectManually(device_id, isUserPrompt = true) {\n const vendorId = device_id.hid_vid;\n const productId = device_id.hid_pid;\n\n let devices = await navigator.hid.getDevices();\n if (!devices.length && isUserPrompt) {\n devices = await navigator.hid.requestDevice({\n filters: [{ vendorId, productId }],\n });\n }\n if (devices.length > 1) {\n devices.forEach(device => {\n if (device.collections.length) {\n this.device = device\n }\n });\n }\n else {\n this.device = devices[0];\n }\n if (!this.device) return;\n\n await this.openDevice()\n return this.device;\n }\n\n registerConnectionEvent() {\n ['connect', 'disconnect'].forEach((eventType) => {\n navigator.hid.addEventListener(eventType, async ({ device }) => {\n if (device.collections.length) {\n if (eventType === 'connect') {\n this.device = device\n await this.openDevice()\n }\n else if (eventType === 'disconnect') {\n await this.closeDevice()\n }\n }\n })\n })\n }\n\n registerUserEvent() {\n ['oninputreport', 'onconnect', 'ondisconnect'].forEach((eventType) => {\n this.device[eventType] = (event) => {\n Emitter.emit(eventType, event)\n\n if (this.store) { this.passToStore('HID_' + eventType, event) }\n }\n })\n }\n\n passToStore(eventName, event) {\n if (this.passToStoreHandler) {\n this.passToStoreHandler(eventName, event, this.defaultPassToStore.bind(this))\n } else {\n this.defaultPassToStore(eventName, event)\n }\n }\n\n defaultPassToStore(eventName, event) {\n if (!eventName.startsWith('HID_')) { return }\n let method = 'commit'\n let target = eventName.toUpperCase()\n let msg = event\n if (this.format === 'json' && event.data) {\n msg = JSON.parse(JSON.stringify(Array.from(new Uint8Array(event.data.buffer))))\n if (msg.mutation) {\n target = [msg.namespace || '', msg.mutation].filter((e) => !!e).join('/')\n } else if (msg.action) {\n method = 'dispatch'\n target = [msg.namespace || '', msg.action].filter((e) => !!e).join('/')\n }\n }\n if (this.mutations) {\n target = this.mutations[target] || target\n }\n this.store[method](target, msg)\n }\n}","import Observer from './observer'\n// import Emitter from './emitter'\n\nexport default {\n install(Vue, hid_id, hid_opts = {}) {\n let observer = null\n\n hid_opts.$setInstance = (hidInstance) => {\n if (hidInstance)\n Vue.prototype.$webhid = hidInstance\n else\n if (Vue.prototype.$webhid) delete Vue.prototype.$webhid\n }\n\n observer = new Observer(hid_id, hid_opts)\n Vue.prototype.$webhid = observer.device\n\n Vue.prototype.$webhidConnect = (device_id = hid_id, device_opts = hid_opts) => {\n device_opts.$setInstance = hid_opts.$setInstance\n if (observer) {\n observer.connectManually(device_id)\n }\n else {\n observer = new Observer(device_id, device_opts)\n observer.connectManually(device_id)\n }\n }\n\n Vue.prototype.$webhidDisconnect = () => {\n if (observer) {\n observer.closeDevice()\n if (Vue.prototype.$webhid) delete Vue.prototype.$webhid\n }\n }\n }\n}","import Vue from 'vue'\nimport App from './App.vue'\nimport VueResource from 'vue-resource'\nimport store from './store'\nimport {\n HID_ONCONNECT,\n HID_ONDISCONNECT,\n HID_ONERROR,\n HID_ONINPUTREPORT,\n} from './store/mutation-types'\n \nconst mutations = {\n HID_ONCONNECT,\n HID_ONDISCONNECT,\n HID_ONERROR,\n HID_ONINPUTREPORT,\n}\nimport HIDDevice from './plugins/webhid-plugin/hid-devices'\nimport { CONST } from '@/store/const'\n\nVue.config.productionTip = false;\n// Add unimported components to ignore list to prevent warnings.\nVue.config.ignoredElements = ['field', 'block', 'category', 'xml', 'mutation', 'value', 'sep'];\nVue.prototype.$hidCompatible = true;\nVue.use(VueResource)\ntry {\n Vue.use(HIDDevice, {\n hid_vid: CONST.hid_vid,\n hid_pid: CONST.hid_pid,\n }, {\n store: store,\n mutations: mutations,\n format: \"json\",\n })\n }\ncatch (error) {\n Vue.prototype.$hidCompatible = false;\n// console.log(error);\n// // expected output: ReferenceError: nonExistentFunction is not defined\n// // Note - error messages will vary depending on browser\n}\n\n\nnew Vue({\n store,\n render: h => h(App)\n}).$mount('#app')\n\n","module.exports = __webpack_public_path__ + \"img/click.png\";","var map = {\n\t\"./Example\": [\n\t\t\"f3c2\",\n\t\t\"Example~Simulation\",\n\t\t\"Example\"\n\t],\n\t\"./Example.vue\": [\n\t\t\"f3c2\",\n\t\t\"Example~Simulation\",\n\t\t\"Example\"\n\t],\n\t\"./Simulation\": [\n\t\t\"4269\",\n\t\t\"Example~Simulation\",\n\t\t\"Simulation\"\n\t],\n\t\"./Simulation.vue\": [\n\t\t\"4269\",\n\t\t\"Example~Simulation\",\n\t\t\"Simulation\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"9dac\";\nmodule.exports = webpackAsyncContext;","module.exports = __webpack_public_path__ + \"img/start-flag.png\";","export const CONST = {\n websocket_port: \"ws://localhost:8317\",\n compiler_url: \"https://public-api.gogoboard.org/logo/dev/compile\",\n hid_vid: 0x0461,\n hid_pid: 0x0020,\n\n category_id_index: 1,\n command_id_index: 2,\n parameters_index: 3,\n\n board_type_index: 17,\n board_version_index: 18,\n firmware_version_index: 20,\n\n response_packet_type: 20,\n\n rcmd_get_offline_datalog: 2,\n rcmd_clear_offline_datalog: 3,\n\n offline_datalog_status_onprogress: 1,\n offline_datalog_status_failure: 2,\n offline_datalog_status_empty: 3,\n offline_datalog_status_file_size: 4,\n offline_datalog_status_lookup_table: 5,\n offline_datalog_status_records: 6,\n\n offline_datalog_record_size: 16,\n\n sensor_count: 4,\n sensor_start_index: 1,\n}"],"sourceRoot":""}