"Fossies" - the Fresh Open Source Software Archive

Member "4.6.1/public/assets/javascripts/studip-admission.js.map" (8 Apr 2021, 332416 Bytes) of package /linux/www/studip-4.6.1.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "studip-admission.js.map": 4.5.2_vs_4.6.

    1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./resources/assets/javascripts/entry-admission.js","webpack:///./resources/assets/javascripts/jquery/jstree/jquery.jstree.js","webpack:///./resources/assets/javascripts/bootstrap/admission.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","jstree","$","scrollbar_width","e1","e2","themes_loaded","bound","sh","ml","sli","sti","dir1","dir2","last_pos","nodeInterface","is_ie6","is_ie7","is_ff2","vakata","css","get_css","rule_name","delete_flag","sheet","toLowerCase","css_rules","cssRules","rules","j","length","selectorText","removeRule","deleteRule","add_css","insertRule","addRule","remove_css","add_sheet","opts","tmp","is_new","str","title","document","createElement","setAttribute","styleSheet","getElementsByTagName","appendChild","cssText","createTextNode","url","createStyleSheet","rel","type","media","href","e","instances","focused_instance","plugins","prepared_move","fn","settings","isMethodCall","args","Array","slice","arguments","returnValue","this","substring","each","instance","data","methodValue","isFunction","apply","indexOf","instance_id","a","b","extend","concat","push","destroy","parseInt","isArray","defaults","unshift","sort","join","replace","split","val","inArray","_instance","addClass","_get_settings","__init","setTimeout","init","_focused","_reference","needle","closest","index","container","core","get_settings","get_index","get_container","get_container_ul","children","_set_settings","_fn","plugin","pname","pdata","noop","__destroy","old","rslt","func","evnt","Event","rlbk","locked","triggerHandler","__callback","__rollback","get_rollback","__call_old","replace_arguments","rollback","rb","set_rollback","h","u","navigator","userAgent","v","match","css_string","test","execCommand","err","parseFloat","to_open","initially_open","to_load","initially_load","html_titles","animation","open_parents","notify_plugins","rtl","load_open","strings","loading","new_node","multiple_selection","set_focus","html","_get_string","li_height","find","eq","height","delegate","proxy","event","trgt","target","toggle_node","sel","selection","empty","window","getSelection","removeAllRanges","collapse","_get_node","obj","th","values","load_node","loaded","reload_nodes","_this","is_focused","unbind","undelegate","removeData","addBack","attr","className","_core_notify","opened","open_node","lock","unlock","removeClass","is_locked","save_opened","id","toString","save_loaded","is_callback","done","current","remaining","reopen","refreshing","map","makeArray","_is_loaded","clearTimeout","refresh","remove","f","unset_focus","$obj","is","_get_next","strict","nextAll","size","hasClass","parentsUntil","next","_get_prev","prevAll","prev","_get_parent","_get_children","get_path","id_mode","get_text","reverse","is_open","is_closed","is_leaf","correct_state","callback","skip_animation","stop","slideDown","style","display","after_open","close_node","slideUp","after_close","open_all","do_animation","original_obj","__this","close_all","clean_node","filter","end","not","clone","append","create_node","position","js","is_loaded","metadata","state","language","prepend","icon","before","after","contents","nodeType","nodeValue","set_text","rename_node","delete_node","add","detach","prepare_move","pos","cb","is_cb","ot","rt","cp","cr","np","op","cop","or","check_move","ret","cy","move_node","ref","is_copy","is_prepared","skip_check","appendTo","oc","_get_move","top","left","width","overflow","prependTo","parent","ui","selected","last_selected","hovered","to_select","initially_select","preventDefault","currentTarget","blur","select_node","hover_node","dehover_node","reselect","save_selected","clk","selected_parent_close","deselect_node","select_prev_on_delete","parentNode","select_limit","select_multiple_modifier","select_range_modifier","selected_parent_open","disable_selecting_children","allow_multiple","_ui_notify","_fix_scroll","check","is_multiple","is_range","is_selected","proceed","deselect_all","parents","scrollHeight","offsetHeight","offset","scrollTop","scrollWidth","offsetWidth","toggle_select","get_selected","context","crrm","move","open_onmove","input_width_limit","always_copy","default_position","_show_input","w","w1","w2","h1","h2","keyCode","which","Math","min","text","fontFamily","fontSize","fontWeight","fontStyle","fontStretch","fontVariant","letterSpacing","wordSpacing","select","rename","new_name","old_name","skip_rename","cut","cp_nodes","ct_nodes","copy","paste","nodes","_themes","themes","dots","icons","set_theme","theme","show_dots","hide_dots","show_icons","hide_icons","theme_name","theme_url","get_theme","toggle_dots","toggle_icons","src","hotkeys","enabled","exec","revert","enable_hotkeys","click","trigger","disable_hotkeys","json_data","progressive_unload","ajax","progressive_render","s_call","e_call","load_node_json","error_func","success_func","_parse_json","x","ef","error","sf","success","isPlainObject","dataType","ul1","ul2","get_json","li_attr","a_attr","tmp1","tmp2","li","lang","result","types","type_attr","backgroundImage","languages","lv","k","z","_load_css","set_lang","langs","st","selector","current_language","get_lang","ln","cookie","cookies","one","auto_save","save_cookie","handleObj","namespace","cookie_options","dnd","is_down","is_drag","helper","scroll_spd","init_x","init_y","threshold","helper_left","helper_top","user_data","drag_start","drag_stop","unselectable","onselectstart","MozUserSelect","pageX","pageY","drag","abs","scrollLeft","clearInterval","setInterval","active","inside","off","prepared","to1","to2","cof","cw","ch","i1","i2","mto","dc","tr","foreign","drag_check","is_root","drag_finish","copy_modifier","relatedTarget","cnt","hide","start_drag","dnd_enter","dnd_show","dnd_leave","dnd_finish","et","drag_target","drop_target","drop_check","drop_finish","check_timeout","open_timeout","dnd_prepare","right","show","dnd_open","dt","stopImmediatePropagation","checkbox","noui","override_ui","get_checked","_prepare_checkboxes","uncheck_node","check_node","two_state","real_checkboxes","checked_parent_open","real_checkboxes_names","ceil","random","_checkbox_notify","checked","ts","rc","rcn","nm","$t","prop","_repair_state","change_state","coll","$this","check_all","uncheck_all","is_checked","get_all","get_unchecked","show_checkboxes","hide_checkboxes","xslt","xml","xsl","q","ActiveXObject","loadXML","stylesheet","createProcessor","input","transform","output","parseXML","XSLTProcessor","importStylesheet","transformToFragment","transformNode","escape_xml","string","get_skip_empty","get_include_preamble","load_node_xml","xml_data","parse_xml","responseText","get_xml","tp","jquery","expr","jstree_contains","createPseudo","search","textContent","innerText","jstree_title_contains","getAttribute","show_only_matches","search_method","skip_async","trim","supress_callback","_search_open","clear_search","hide_on_mouseleave","vis","tgt","par","y","parse","ul","toggleClass","was_sep","action","separator_before","_class","_disabled","submenu","label","separator_after","contains","last","first","show_contextmenu","contextmenu","show_at_node","items","attach_to","icons_css","image","use_data","tagName","_get_type","_check","max_children","max_depth","valid_children","_types_notify","set_type","rule","mc","md","vc","html_data","original_container_html","load_node_html","firstChild","themeroller","item_h","inst","_themeroller","closed","item_clsd","item_open","item_leaf","item_a","item","nms","res","_check_unique","stopPropagation","error_callback","cnms","ok","unique","wholerow","to","_prepare_wholerow_span","_prepare_wholerow_ul","last_html","wrapAll","removeAttribute","inter","valid","model","async","getChildren","model_done","id_prefix","nd","getProps","getAttr","getChildrenCount","getName","getType","jstree_model","STUDIP","domReady","on","Admission","toggleNotSavedAlert"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,K,mCClFrD,sB,kCCoBA,WAAe,IAAGC,SAAUA,OAAOC,OAApB,CACd,IAm8BUC,EACNC,EAAiBC,EAAIC,EAgQfH,EA6KAA,EACNI,EA8EMJ,EACNK,EA2IML,EA8SAA,EACNM,EAyHMN,EAqFAA,EAmCAA,EACNzB,EACHK,EACAV,EACAqC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwjBSZ,EAwoBAA,EA+GAA,EAiSAA,EAiNAA,EAoJAA,EA8IAA,EAiFAA,EAyHAA,EACNa,EAn4IAC,GAAS,EAAOC,GAAS,EAAOC,GAAS,GAK9C,SAAWhB,GAGVA,EAAEiB,OAAS,GAEXjB,EAAEiB,OAAOC,IAAM,CACdC,QAAU,SAASC,EAAWC,EAAaC,GAC1CF,EAAYA,EAAUG,cACtB,IAAIC,EAAYF,EAAMG,UAAYH,EAAMI,MACvCC,EAAI,EACL,EAAG,CACF,GAAGH,EAAUI,QAAUD,EAAIH,EAAUI,OAAS,EAAK,OAAO,EAC1D,GAAGJ,EAAUG,GAAGE,cAAgBL,EAAUG,GAAGE,aAAaN,eAAiBH,EAC1E,OAAmB,IAAhBC,GACCC,EAAMQ,YAAcR,EAAMQ,WAAWH,GACrCL,EAAMS,YAAcT,EAAMS,WAAWJ,IACjC,GAEMH,EAAUG,SAGnBH,IAAYG,IACnB,OAAO,GAERK,QAAU,SAASZ,EAAWE,GAC7B,OAAGtB,EAAED,OAAOmB,IAAIC,QAAQC,GAAW,EAAOE,KACvCA,EAAMW,WAAcX,EAAMW,WAAWb,EAAY,OAAQ,GAAaE,EAAMY,QAAQd,EAAW,KAAM,GACjGpB,EAAEiB,OAAOC,IAAIC,QAAQC,KAE7Be,WAAa,SAASf,EAAWE,GAChC,OAAOtB,EAAEiB,OAAOC,IAAIC,QAAQC,GAAW,EAAME,IAE9Cc,UAAY,SAASC,GACpB,IAAIC,GAAM,EAAOC,GAAS,EAC1B,GAAGF,EAAKG,IAqBP,OApBGH,EAAKI,QAASH,EAAMtC,EAAE,aAAeqC,EAAKI,MAAQ,iBAAiB,IACnEH,EAAOC,GAAS,IAElBD,EAAMI,SAASC,cAAc,UACzBC,aAAa,OAAO,YACrBP,EAAKI,OAASH,EAAIM,aAAa,KAAMP,EAAKI,MAAQ,gBAEnDH,EAAIO,WACHN,GACFG,SAASI,qBAAqB,QAAQ,GAAGC,YAAYT,GACrDA,EAAIO,WAAWG,QAAUX,EAAKG,KAG9BF,EAAIO,WAAWG,QAAUV,EAAIO,WAAWG,QAAU,IAAMX,EAAKG,KAI9DF,EAAIS,YAAYL,SAASO,eAAeZ,EAAKG,MAC7CE,SAASI,qBAAqB,QAAQ,GAAGC,YAAYT,IAE/CA,EAAIhB,OAASgB,EAAIO,WAEzB,GAAGR,EAAKa,IAAK,CACZ,IAAGR,SAASS,iBAUX,OANAb,EAAQI,SAASC,cAAc,SAC3BS,IAAO,aACXd,EAAIe,KAAO,WACXf,EAAIgB,MAAQ,MACZhB,EAAIiB,KAAOlB,EAAKa,IAChBR,SAASI,qBAAqB,QAAQ,GAAGC,YAAYT,GAC9CA,EAAIO,WATX,IAAMP,EAAMI,SAASS,iBAAiBd,EAAKa,KAAQ,MAAOM,QAgB9D,IAAIC,EAAY,GACfC,GAAoB,EACpBC,EAAU,GACVC,EAAgB,GAGjB5D,EAAE6D,GAAG9D,OAAS,SAAU+D,GACvB,IAAIC,EAAmC,iBAAZD,EAC1BE,EAAOC,MAAMvE,UAAUwE,MAAMjG,KAAKkG,UAAW,GAC7CC,EAAcC,KAGf,GAAGN,EAAc,CAChB,GAA+B,KAA5BD,EAASQ,UAAU,EAAG,GAAa,OAAOF,EAC7CC,KAAKE,KAAK,WACT,IAAIC,EAAWf,EAAUzD,EAAEyE,KAAKJ,KAAM,uBACrCK,EAAeF,GAAYxE,EAAE2E,WAAWH,EAASV,IAAcU,EAASV,GAAUc,MAAMJ,EAAUR,GAAQQ,EAC1G,QAA0B,IAAhBE,IAA4D,IAA5BZ,EAASe,QAAQ,SAAiC,IAAhBH,IAAwC,IAAhBA,GAAsD,OAA3BN,EAAcM,GAAoB,SAInKL,KAAKE,KAAK,WAET,IAAIO,EAAc9E,EAAEyE,KAAKJ,KAAM,sBAC9BU,EAAI,GACJC,EAAIlB,EAAW9D,EAAEiF,OAAO,IAAI,EAAMnB,GAAY,GAC9C3F,EAAI6B,EAAEqE,MACNxE,GAAI,EACJb,EAAI,GACL+F,EAAIA,EAAEG,OAAOlB,GACV7F,EAAEsG,KAAK,WAAaM,EAAEI,KAAKhH,EAAEsG,KAAK,WACrCO,EAAID,EAAEnD,OAAS5B,EAAEiF,OAAOL,MAAM,KAAM,EAAC,EAAMI,GAAGE,OAAOH,IAAMC,OAGjC,IAAhBF,GAA+BrB,EAAUqB,IAAgBrB,EAAUqB,GAAaM,UAE1FN,EAAcO,SAAS5B,EAAU0B,KAAK,IAAI,IAAM,EAEhDnF,EAAEyE,KAAKJ,KAAM,qBAAsBS,GAEnCE,EAAErB,QAAU3D,EAAEsF,QAAQN,EAAErB,SAAWqB,EAAErB,QAAU3D,EAAED,OAAOwF,SAAS5B,QAAQO,QACzEc,EAAErB,QAAQ6B,QAAQ,QAElBR,EAAErB,QAAUqB,EAAErB,QAAQ8B,OAAOC,KAAK,MAAMC,QAAQ,4BAA4B,UAAUA,QAAQ,OAAO,KAAKA,QAAQ,KAAK,IAAIC,MAAM,MAGjI/F,EAAIG,EAAEiF,QAAO,EAAM,GAAIjF,EAAED,OAAOwF,SAAUP,IACxCrB,QAAUqB,EAAErB,QACd3D,EAAEuE,KAAKZ,EAAS,SAAU7F,EAAG+H,IACI,IAA7B7F,EAAE8F,QAAQhI,EAAG+B,EAAE8D,UAAmB9D,EAAE/B,GAAK,YAAa+B,EAAE/B,IACpDkB,EAAEmG,KAAKrH,KAEf+B,EAAE8D,QAAU3E,EAGZyE,EAAUqB,GAAe,IAAI9E,EAAED,OAAOgG,UAAUjB,EAAa9E,EAAEqE,MAAM2B,SAAS,iBAAmBlB,GAAcjF,GAE/GG,EAAEuE,KAAKd,EAAUqB,GAAamB,gBAAgBtC,QAAS,SAAU7F,EAAG+H,GAAOpC,EAAUqB,GAAaL,KAAKoB,GAAO,KAC9G7F,EAAEuE,KAAKd,EAAUqB,GAAamB,gBAAgBtC,QAAS,SAAU7F,EAAG+H,GAAUlC,EAAQkC,IAAQlC,EAAQkC,GAAKK,OAAOtB,MAAMnB,EAAUqB,MAElIqB,WAAW,WAAgB1C,EAAUqB,IAAgBrB,EAAUqB,GAAasB,QAAa,KAI3F,OAAOhC,GAGRpE,EAAED,OAAS,CACVwF,SAAW,CACV5B,QAAU,IAEX0C,SAAW,WAAc,OAAO5C,EAAUC,IAAqB,MAC/D4C,WAAa,SAAUC,GAEtB,GAAG9C,EAAU8C,GAAW,OAAO9C,EAAU8C,GAEzC,IAAIhI,EAAIyB,EAAEuG,GAEV,OADIhI,EAAEqD,QAA4B,iBAAX2E,IAAuBhI,EAAIyB,EAAE,IAAMuG,IACtDhI,EAAEqD,QACC6B,EAAUlF,EAAEiI,QAAQ,WAAW/B,KAAK,wBADpB,MAGxBsB,UAAY,SAAUU,EAAOC,EAAW5C,GAEvCO,KAAKI,KAAO,CAAEkC,KAAO,IACrBtC,KAAKuC,aAAe,WAAc,OAAO5G,EAAEiF,QAAO,EAAM,GAAInB,IAC5DO,KAAK4B,cAAgB,WAAc,OAAOnC,GAC1CO,KAAKwC,UAAa,WAAc,OAAOJ,GACvCpC,KAAKyC,cAAgB,WAAc,OAAOJ,GAC1CrC,KAAK0C,iBAAmB,WAAc,OAAOL,EAAUM,SAAS,aAChE3C,KAAK4C,cAAgB,SAAUpH,GAC9BiE,EAAW9D,EAAEiF,QAAO,EAAM,GAAInB,EAAUjE,KAG1CqH,IAAM,GACNC,OAAS,SAAUC,EAAOC,GACzBA,EAAQrH,EAAEiF,OAAO,GAAI,CACpBiB,OAAUlG,EAAEsH,KACZC,UAAYvH,EAAEsH,KACdJ,IAAQ,GACR3B,UAAW,GACT8B,GACH1D,EAAQyD,GAASC,EAEjBrH,EAAED,OAAOwF,SAAS6B,GAASC,EAAM9B,SACjCvF,EAAEuE,KAAK8C,EAAMH,IAAK,SAAUpJ,EAAG+H,GAC9BA,EAAIsB,OAAUC,EACdvB,EAAI2B,IAAQxH,EAAED,OAAOmH,IAAIpJ,GACzBkC,EAAED,OAAOmH,IAAIpJ,GAAK,WACjB,IAAI2J,EACHC,EAAO7B,EACP7B,EAAOC,MAAMvE,UAAUwE,MAAMjG,KAAKkG,WAClCwD,EAAO,IAAI3H,EAAE4H,MAAM,iBACnBC,GAAO,EAER,IAA6B,IAA1BxD,KAAKI,KAAKkC,KAAKmB,QAAyB,WAANhK,GAAwB,cAANA,EAAvD,CAGA,EAAG,CACF,GAAG4J,GAAQA,EAAKP,SAAoE,IAA1DnH,EAAE8F,QAAQ4B,EAAKP,OAAQ9C,KAAK4B,gBAAgBtC,SAAmB,MACzF+D,EAAOA,EAAKF,UACLE,GACR,GAAIA,EAAJ,CAGA,GAAsB,IAAnB5J,EAAE+G,QAAQ,KACZ4C,EAAOC,EAAK9C,MAAMP,KAAML,OAEpB,CAEJ,IAAY,KADZyD,EAAOpD,KAAKyC,gBAAgBiB,eAAeJ,EAAM,CAAE,KAAS7J,EAAG,KAASuG,KAAM,KAASL,EAAM,OAAW0D,EAAKP,UACxF,YACF,IAATM,IAAwBzD,EAAOyD,GAEzCA,EAAOC,EAAK9C,MACX5E,EAAEiF,OAAO,GAAIZ,KAAM,CAClB2D,WAAa,SAAUvD,GACtBJ,KAAKyC,gBAAgBiB,eAAgBjK,EAAI,UAAW,CAAE,KAASuG,KAAM,KAASL,EAAM,KAASS,EAAM,KAASoD,KAE7GI,WAAa,WAEZ,OADAJ,EAAOxD,KAAK6D,gBAGbC,WAAa,SAAUC,GACtB,OAAOV,EAAKF,IAAI5C,MAAMP,KAAO+D,EAAoBnE,MAAMvE,UAAUwE,MAAMjG,KAAKkG,UAAW,GAAKH,MAE1FA,GAIN,OAAOyD,KAERzH,EAAED,OAAOmH,IAAIpJ,GAAG0J,IAAM3B,EAAI2B,IAC1BxH,EAAED,OAAOmH,IAAIpJ,GAAGqJ,OAASC,KAG3BiB,SAAW,SAAUC,GACjBA,IACEtI,EAAEsF,QAAQgD,KAAOA,EAAK,CAAEA,IAC5BtI,EAAEuE,KAAK+D,EAAI,SAAUxK,EAAG+H,GACvBpC,EAAUoC,EAAI/H,GAAGyK,aAAa1C,EAAI2C,EAAG3C,EAAIzH,QAM7C4B,EAAED,OAAOmH,IAAMlH,EAAED,OAAOgG,UAAUrG,UAAY,GAG9CM,EAAE,WAED,IAAIyI,EAAIC,UAAUC,UAAUpH,cAC3BqH,GAAKH,EAAEI,MAAO,qCAAwC,CAAC,EAAE,MAAM,GAC/DC,EAAa,w3BAed,GAAG,OAAOC,KAAKN,IAAyB,GAAnBpD,SAASuD,EAAG,IAAU,CAC1C9H,GAAS,EAGT,IACC4B,SAASsG,YAAY,wBAAwB,GAAO,GACnD,MAAOC,IAETH,GAAc,scAWZ,OAAOC,KAAKN,IAAyB,GAAnBpD,SAASuD,EAAG,MAChC7H,GAAS,EACT+H,GAAc,6EAGX,aAAaC,KAAKN,IAAM,UAAUM,KAAKN,IAAMS,WAAWN,EAAG,IAAM,MACpE5H,GAAS,EACT8H,GAAc,yMAQf9I,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IAAMsG,EAAYrG,MAAQ,aAIpDzC,EAAED,OAAOoH,OAAO,OAAQ,CACvBjB,OAAS,WACR7B,KAAKI,KAAKkC,KAAKmB,QAAS,EACxBzD,KAAKI,KAAKkC,KAAKwC,QAAU9E,KAAKuC,eAAeD,KAAKyC,eAClD/E,KAAKI,KAAKkC,KAAK0C,QAAUhF,KAAKuC,eAAeD,KAAK2C,gBAEnD/D,SAAW,CACVgE,aAAc,EACdC,UAAY,IACZJ,eAAiB,GACjBE,eAAiB,GACjBG,cAAe,EACfC,gBAAiB,EACjBC,KAAQ,EACRC,WAAY,EACZC,QAAW,CACVC,QAAW,cACXC,SAAW,WACXC,mBAAqB,uBAGvB9C,IAAM,CACLd,KAAO,WACN/B,KAAK4F,YACF5F,KAAK4B,gBAAgBU,KAAKgD,KAC5BtF,KAAKyC,gBAAgBd,SAAS,cAAc9E,IAAI,YAAa,OAE9DmD,KAAKyC,gBAAgBoD,KAAK,oIAAsI7F,KAAK8F,YAAY,WAAa,kBAC9L9F,KAAKI,KAAKkC,KAAKyD,UAAY/F,KAAK0C,mBAAmBsD,KAAK,oCAAoCC,GAAG,GAAGC,UAAY,GAE9GlG,KAAKyC,gBACH0D,SAAS,WAAY,eAAgBxK,EAAEyK,MAAM,SAAUC,GACtD,IAAIC,EAAO3K,EAAE0K,EAAME,QAEnBvG,KAAKwG,YAAYF,IACftG,OACH/E,KAAK,mBAAoBU,EAAEyK,MAAM,WAChCpG,KAAK4F,aACH5F,OACH/E,KAAK,kBAAmB,SAAUoL,GAClC,IAAII,EACJ,GAAGpI,SAASqI,WAAarI,SAASqI,UAAUC,MAAStI,SAASqI,UAAUC,aAEvE,GAAGC,OAAOC,aAAc,CACvBJ,EAAMG,OAAOC,eACb,IACCJ,EAAIK,kBACJL,EAAIM,WACH,MAAOnC,QAIV5E,KAAK4B,gBAAgBU,KAAK+C,gBAC5BrF,KAAKyC,gBACHxH,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC7C,IAAIlG,EAAI8F,KAAKgH,UAAU5G,EAAKgD,KAAK6D,KAChCtM,EAAIqF,MACK,IAAP9F,IAAYA,EAAI8F,KAAK0C,oBACpBxI,EAAEqD,QACNrD,EAAE8L,KAAK,MAAM9F,KAAK,WACjB,IAAIgH,EAAKvL,EAAEqE,MACRkH,EAAG9G,KAAK,WACVzE,EAAEuE,KAAKgH,EAAG9G,KAAK,UAAW,SAAU0C,EAAQqE,GACxCxM,EAAEyF,KAAK0C,IAAWnH,EAAE2E,WAAW3F,EAAE,IAAMmI,EAAS,aAClDnI,EAAE,IAAMmI,EAAS,WAAWlJ,KAAKe,EAAGuM,EAAIC,QAK1CnH,OAEHA,KAAK4B,gBAAgBU,KAAKiD,WAC5BvF,KAAKyC,gBACHxH,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC7C,IAAIlG,EAAI8F,KAAKgH,UAAU5G,EAAKgD,KAAK6D,KAChCtM,EAAIqF,MACK,IAAP9F,IAAYA,EAAI8F,KAAK0C,oBACpBxI,EAAEqD,QACNrD,EAAE8L,KAAK,gCAAgC9F,KAAK,WAC3CvF,EAAEyM,UAAUpH,KAAMrE,EAAEsH,KAAMtH,EAAEsH,SAE3BjD,OAENA,KAAK2D,aACL3D,KAAKoH,WAAW,EAAG,WAAcpH,KAAKqH,SAAUrH,KAAKsH,kBAEtDvG,QAAU,WACT,IAAItH,EACHyB,EAAI8E,KAAKwC,YACThH,EAAIwE,KAAK4B,gBACT2F,EAAQvH,KAOT,GALArE,EAAEuE,KAAK1E,EAAE8D,QAAS,SAAU7F,EAAG+H,GAC9B,IAAMlC,EAAQkC,GAAK0B,UAAU3C,MAAMgH,GAAU,MAAM3C,OAEpD5E,KAAK2D,aAEF3D,KAAKwH,aACP,IAAI/N,KAAK2F,EACR,GAAGA,EAAU9D,eAAe7B,IAAMA,GAAKyB,EAAG,CACzCkE,EAAU3F,GAAGmM,YACb,MAKA1K,IAAMmE,IAAoBA,GAAoB,GAEjDW,KAAKyC,gBACHgF,OAAO,WACPC,WAAW,WACXC,WAAW,sBACX3B,KAAK,qBACJ4B,UACAC,KAAK,QAAS,WAAc,OAAO7H,KAAK8H,UAAUxG,QAAQ,kBAAkB,MAC/E3F,EAAE0C,UACAoJ,OAAO,WAAavM,GACpBwM,WAAW,WAAaxM,GAE1BkE,EAAUlE,GAAK,YACRkE,EAAUlE,IAGlB6M,aAAe,SAAU7M,EAAGkF,GACxBA,EAAK4H,QACPhI,KAAKiI,UAAU/M,GAAG,GAAO,IAI3BgN,KAAO,WACNlI,KAAKI,KAAKkC,KAAKmB,QAAS,EACxBzD,KAAKyC,gBAAgBE,SAAS,MAAMhB,SAAS,iBAAiB9E,IAAI,UAAU,OAC5EmD,KAAK2D,WAAW,KAEjBwE,OAAS,WACRnI,KAAKI,KAAKkC,KAAKmB,QAAS,EACxBzD,KAAKyC,gBAAgBE,SAAS,MAAMyF,YAAY,iBAAiBvL,IAAI,UAAU,KAC/EmD,KAAK2D,WAAW,KAEjB0E,UAAY,WAAc,OAAOrI,KAAKI,KAAKkC,KAAKmB,QAChD6E,YAAc,WACb,IAAIf,EAAQvH,KACZA,KAAKI,KAAKkC,KAAKwC,QAAU,GACzB9E,KAAK0C,mBAAmBsD,KAAK,kBAAkB9F,KAAK,WAChDF,KAAKuI,IAAMhB,EAAMnH,KAAKkC,KAAKwC,QAAQhE,KAAK,IAAMd,KAAKuI,GAAGC,WAAWlH,QAAQ,KAAK,IAAIA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAQA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAOA,QAAQ,MAAM,UAEzLtB,KAAK2D,WAAW4D,EAAMnH,KAAKkC,KAAKwC,UAEjC2D,YAAc,aACdnB,aAAe,SAAUoB,GACxB,IAAInB,EAAQvH,KACX2I,GAAO,EACPC,EAAU,GACVC,EAAY,GACTH,IACH1I,KAAKI,KAAKkC,KAAKwG,QAAS,EACxB9I,KAAKI,KAAKkC,KAAKyG,YAAa,EAC5B/I,KAAKI,KAAKkC,KAAKwC,QAAUnJ,EAAEqN,IAAIrN,EAAEsN,UAAUjJ,KAAKI,KAAKkC,KAAKwC,SAAU,SAAU5J,GAAK,MAAO,IAAMA,EAAEsN,WAAWlH,QAAQ,KAAK,IAAIA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAQA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAOA,QAAQ,MAAM,SACjOtB,KAAKI,KAAKkC,KAAK0C,QAAUrJ,EAAEqN,IAAIrN,EAAEsN,UAAUjJ,KAAKI,KAAKkC,KAAK0C,SAAU,SAAU9J,GAAK,MAAO,IAAMA,EAAEsN,WAAWlH,QAAQ,KAAK,IAAIA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAQA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAOA,QAAQ,MAAM,SAC9NtB,KAAKI,KAAKkC,KAAKwC,QAAQvH,SACzByC,KAAKI,KAAKkC,KAAK0C,QAAUhF,KAAKI,KAAKkC,KAAK0C,QAAQnE,OAAOb,KAAKI,KAAKkC,KAAKwC,WAGrE9E,KAAKI,KAAKkC,KAAK0C,QAAQzH,SACzB5B,EAAEuE,KAAKF,KAAKI,KAAKkC,KAAK0C,QAAS,SAAUvL,EAAG+H,GAC3C,GAAU,KAAPA,EAAc,OAAO,EACrB7F,EAAE6F,GAAKjE,OAAUqL,EAAQ9H,KAAKU,GAC1BqH,EAAU/H,KAAKU,KAEpBoH,EAAQrL,SACVyC,KAAKI,KAAKkC,KAAK0C,QAAU6D,EACzBlN,EAAEuE,KAAK0I,EAAS,SAAUnP,EAAG+H,GACxB+F,EAAM2B,WAAW1H,KACpB+F,EAAMH,UAAU5F,EAAK,WAAc+F,EAAMD,cAAa,IAAU,WAAcC,EAAMD,cAAa,KACjGqB,GAAO,OAKR3I,KAAKI,KAAKkC,KAAKwC,QAAQvH,QACzB5B,EAAEuE,KAAKF,KAAKI,KAAKkC,KAAKwC,QAAS,SAAUrL,EAAG+H,GAC3C+F,EAAMU,UAAUzG,GAAK,GAAO,KAG3BmH,IAEC3I,KAAKI,KAAKkC,KAAKwG,QAAUK,aAAanJ,KAAKI,KAAKkC,KAAKwG,QACxD9I,KAAKI,KAAKkC,KAAKwG,OAAShH,WAAW,WAAcyF,EAAM5D,WAAW,GAAI4D,IAAW,IACjFvH,KAAKI,KAAKkC,KAAKyG,YAAa,EAC5B/I,KAAK8I,WAGPA,OAAS,WACR,IAAIvB,EAAQvH,KACTA,KAAKI,KAAKkC,KAAKwC,QAAQvH,QACzB5B,EAAEuE,KAAKF,KAAKI,KAAKkC,KAAKwC,QAAS,SAAUrL,EAAG+H,GAC3C+F,EAAMU,UAAUzG,GAAK,GAAO,KAG9BxB,KAAK2D,WAAW,KAEjByF,QAAU,SAAUnC,GACnB,IAAIM,EAAQvH,KACZA,KAAKsI,cACMrB,EAAPA,IAAc,GAGN,KADDA,GADXA,EAAMjH,KAAKgH,UAAUC,MACH,GACDA,EAAItE,SAAS,MAAM0G,SAC7BrJ,KAAK0C,mBAAmBiE,QAC/B3G,KAAKoH,UAAUH,EAAK,WAAcM,EAAM5D,WAAW,CAAE,IAAQsD,IAAOM,EAAMD,kBAG3ED,OAAS,WACRrH,KAAK2D,cAGNiC,UAAY,WACX,IAAG5F,KAAKwH,aAAR,CACA,IAAI8B,EAAI3N,EAAED,OAAOsG,WACdsH,GAAKA,EAAEC,cAEVvJ,KAAKyC,gBAAgBd,SAAS,kBAC9BtC,EAAmBW,KAAKwC,YACxBxC,KAAK2D,eAEN6D,WAAa,WACZ,OAAOnI,GAAoBW,KAAKwC,aAEjC+G,YAAc,WACVvJ,KAAKwH,eACPxH,KAAKyC,gBAAgB2F,YAAY,kBACjC/I,GAAoB,GAErBW,KAAK2D,cAINqD,UAAa,SAAUC,GACtB,IAAIuC,EAAO7N,EAAEsL,EAAKjH,KAAKyC,iBACvB,OAAG+G,EAAKC,GAAG,aAAsB,GAARxC,GAAqB,KAC9CuC,EAAOA,EAAKrH,QAAQ,KAAMnC,KAAKyC,kBACnBlF,QAASiM,GAEtBE,UAAa,SAAUzC,EAAK0C,GAE3B,OAAY,KADZ1C,EAAMjH,KAAKgH,UAAUC,IACGjH,KAAKyC,gBAAgBuD,KAAK,2BAC9CiB,EAAI1J,SACLoM,EAA6C,EAA3B1C,EAAI2C,QAAQ,MAAMC,QAAc5C,EAAI2C,QAAQ,YAE9D3C,EAAI6C,SAAS,eAAyB7C,EAAIjB,KAAK,YACf,EAA3BiB,EAAI2C,QAAQ,MAAMC,OAAqB5C,EAAI2C,QAAQ,YAC7C3C,EAAI8C,aAAa,UAAU,MAAMC,KAAK,MAAM/D,GAAG,KAE9DgE,UAAa,SAAUhD,EAAK0C,GAE3B,IAAY,KADZ1C,EAAMjH,KAAKgH,UAAUC,IACJ,OAAOjH,KAAKyC,gBAAgBuD,KAAK,wBAClD,IAAIiB,EAAI1J,OAAU,OAAO,EACzB,GAAGoM,EAAU,OAAmC,EAA3B1C,EAAIiD,QAAQ,MAAM3M,QAAc0J,EAAIiD,QAAQ,YAEjE,GAAGjD,EAAIkD,KAAK,MAAM5M,OAAQ,CAEzB,IADA0J,EAAMA,EAAIkD,KAAK,MAAMlE,GAAG,GAClBgB,EAAI6C,SAAS,gBAAkB7C,EAAMA,EAAItE,SAAS,YAAYA,SAAS,WAC7E,OAAOsE,EAED,IAAI/M,EAAI+M,EAAI8C,aAAa,UAAU,YAAa,QAAO7P,EAAEqD,QAASrD,GAE1EkQ,YAAe,SAAUnD,GAExB,IAAW,IADXA,EAAMjH,KAAKgH,UAAUC,MACJA,EAAI1J,OAAU,OAAO,EACtC,IAAIrD,EAAI+M,EAAI8C,aAAa,UAAW,YACpC,OAAO7P,EAAEqD,OAASrD,GAAK,GAExBmQ,cAAgB,SAAUpD,GAEzB,OAAY,KADZA,EAAMjH,KAAKgH,UAAUC,IACGjH,KAAKyC,gBAAgBE,SAAS,YAAYA,SAAS,QACvEsE,EAAI1J,QACD0J,EAAItE,SAAS,YAAYA,SAAS,OAE1C2H,SAAY,SAAUrD,EAAKsD,GAC1B,IAAIhP,EAAI,GACPgM,EAAQvH,KAET,SAAY,KADZiH,EAAMjH,KAAKgH,UAAUC,MACHA,IAAQA,EAAI1J,UAC9B0J,EAAI8C,aAAa,UAAW,MAAM7J,KAAK,WACtC3E,EAAEuF,KAAMyJ,EAAUvK,KAAKuI,GAAKhB,EAAMiD,SAASxK,SAE5CzE,EAAEkP,UACFlP,EAAEuF,KAAMyJ,EAAUtD,EAAIY,KAAK,MAAQ7H,KAAKwK,SAASvD,IAC1C1L,IAIRuK,YAAc,SAAU9K,GACvB,OAAOgF,KAAK4B,gBAAgBU,KAAKkD,QAAQxK,IAAQA,GAGlD0P,QAAW,SAAUzD,GAAkC,OAA3BA,EAAMjH,KAAKgH,UAAUC,MAA6B,IAATA,GAAcA,EAAI6C,SAAS,gBAChGa,UAAY,SAAU1D,GAAkC,OAA3BA,EAAMjH,KAAKgH,UAAUC,MAA6B,IAATA,GAAcA,EAAI6C,SAAS,kBACjGc,QAAW,SAAU3D,GAAkC,OAA3BA,EAAMjH,KAAKgH,UAAUC,MAA6B,IAATA,GAAcA,EAAI6C,SAAS,gBAChGe,cAAgB,SAAU5D,GAEzB,KADAA,EAAMjH,KAAKgH,UAAUC,MACD,IAATA,EAAc,OAAO,EAChCA,EAAImB,YAAY,6BAA6BzG,SAAS,eAAegB,SAAS,MAAM0G,SACpFrJ,KAAK2D,WAAW,CAAE,IAAQsD,KAG3BgB,UAAY,SAAUhB,EAAK6D,EAAUC,GAEpC,KADA9D,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EACzB,IAAI0J,EAAI6C,SAAS,iBAAsD,OAA/BgB,GAAYA,EAASlR,QAAiB,EAC9E,IAAI4B,EAAIuP,GAAkBtO,EAAS,EAAIuD,KAAK4B,gBAAgBU,KAAK6C,UAChExK,EAAIqF,KACDA,KAAKkJ,WAAWjC,IAKhBjH,KAAK4B,gBAAgBU,KAAK8C,cAC5B6B,EAAI8C,aAAa,UAAU,kBAAkB7J,KAAK,WACjDvF,EAAEsN,UAAUjI,MAAM,GAAO,KAGxBxE,GAAKyL,EAAItE,SAAS,MAAM9F,IAAI,UAAU,QACzCoK,EAAImB,YAAY,iBAAiBzG,SAAS,eAAegB,SAAS,KAAKyF,YAAY,kBAChF5M,EAAKyL,EAAItE,SAAS,MAAMqI,MAAK,GAAM,GAAMC,UAAUzP,EAAG,WAAcwE,KAAKkL,MAAMC,QAAU,GAAIxQ,EAAEyQ,WAAWnE,KACtGtM,EAAEyQ,WAAWnE,GACpBjH,KAAK2D,WAAW,CAAE,IAAQsD,IACvB6D,GAAYA,EAASlR,SAdxBqN,EAAItE,SAAS,KAAKhB,SAAS,kBAC3B3B,KAAKoH,UAAUH,EAAK,WAActM,EAAEsN,UAAUhB,EAAK6D,EAAUC,IAAoBD,KAgBnFM,WAAa,SAAUnE,GAAOjH,KAAK2D,WAAW,CAAE,IAAQsD,KACxDoE,WAAa,SAAUpE,EAAK8D,GAC3B9D,EAAMjH,KAAKgH,UAAUC,GACrB,IAAIzL,EAAIuP,GAAkBtO,EAAS,EAAIuD,KAAK4B,gBAAgBU,KAAK6C,UAChExK,EAAIqF,KACL,IAAIiH,EAAI1J,SAAW0J,EAAI6C,SAAS,eAAkB,OAAO,EACtDtO,GAAKyL,EAAItE,SAAS,MAAMkF,KAAK,QAAQ,4BACxCZ,EAAImB,YAAY,eAAezG,SAAS,iBACrCnG,EAAKyL,EAAItE,SAAS,MAAMqI,MAAK,GAAM,GAAMM,QAAQ9P,EAAG,WAAcwE,KAAKkL,MAAMC,QAAU,GAAIxQ,EAAE4Q,YAAYtE,KACrGtM,EAAE4Q,YAAYtE,GACrBjH,KAAK2D,WAAW,CAAE,IAAQsD,KAE3BsE,YAAc,SAAUtE,GAAOjH,KAAK2D,WAAW,CAAE,IAAQsD,KACzDT,YAAc,SAAUS,GAEvB,OADAA,EAAMjH,KAAKgH,UAAUC,IACd6C,SAAS,iBAA2B9J,KAAKiI,UAAUhB,GACvDA,EAAI6C,SAAS,eAAyB9J,KAAKqL,WAAWpE,QAAzD,GAEDuE,SAAW,SAAUvE,EAAKwE,EAAcC,IACvCzE,EAAMA,EAAMjH,KAAKgH,UAAUC,IAAQ,KACf,IAATA,IAAcA,EAAMjH,KAAK0C,oBAEnCuE,GADEyE,IAIFA,EAAezE,GACRwC,GAAG,kBAA2BxC,EAAIjB,KAAK,oBAAoB4B,UAJ5DX,EAAIjB,KAAK,oBAOhB,IAAIuB,EAAQvH,KACZiH,EAAI/G,KAAK,WACR,IAAIyL,EAAS3L,KACTuH,EAAM2B,WAAWlJ,MACduH,EAAMU,UAAUjI,MAAM,GAAQyL,GADPlE,EAAMU,UAAUjI,KAAM,WAAauH,EAAMiE,SAASG,EAAQF,EAAcC,KAAmBD,KAItE,IAAjDC,EAAa1F,KAAK,oBAAoBzI,QAAgByC,KAAK2D,WAAW,CAAE,IAAQ+H,KAEpFE,UAAY,SAAU3E,EAAKwE,GAC1B,IAAIlE,EAAQvH,MACZiH,EAAMA,EAAMjH,KAAKgH,UAAUC,GAAOjH,KAAKyC,mBACnB,IAATwE,IAAcA,EAAMjH,KAAK0C,oBACpCuE,EAAIjB,KAAK,kBAAkB4B,UAAU1H,KAAK,WAAcqH,EAAM8D,WAAWrL,MAAOyL,KAChFzL,KAAK2D,WAAW,CAAE,IAAQsD,KAE3B4E,WAAa,SAAU5E,IAEtBA,GADAA,EAAMA,IAAe,GAARA,EAAYtL,EAAEsL,GAAOjH,KAAK0C,oBAC7B+G,GAAG,MAAQxC,EAAIjB,KAAK,MAAM4B,UAAYX,EAAIjB,KAAK,OACrDoC,YAAY,eACd0D,OAAO,iBAAiBnK,SAAS,eAAeoK,MAChDD,OAAO,YACNE,IAAI,gBAAgB5D,YAAY,eAAezG,SAAS,iBAC3DsF,EAAI+E,IAAI,gCAAgCrK,SAAS,eAAegB,SAAS,MAAM0G,SAC/ErJ,KAAK2D,WAAW,CAAE,IAAQsD,KAG3BpD,aAAe,WAEd,OADA7D,KAAK2D,aACE,CAAElK,EAAIuG,KAAKwC,YAAa2B,EAAInE,KAAKyC,gBAAgBE,SAAS,MAAMsJ,OAAM,GAAOlS,EAAIiG,KAAKI,OAE9F8D,aAAe,SAAU2B,EAAMzF,GAC9BJ,KAAKyC,gBAAgBkE,QAAQuF,OAAOrG,GACpC7F,KAAKI,KAAOA,EACZJ,KAAK2D,cAGNyD,UAAY,SAAUH,GAAuBjH,KAAK2D,WAAW,CAAE,IAAQsD,KACvEiC,WAAa,WAAiB,OAAO,GAGrCiD,YAAc,SAAUlF,EAAKmF,EAAUC,EAAIvB,EAAUwB,GACpDrF,EAAMjH,KAAKgH,UAAUC,GACrBmF,OAA+B,IAAbA,EAA2B,OAASA,EACtD,IAECnO,EAFGlE,EAAI4B,EAAE,UACTH,EAAIwE,KAAK4B,gBAAgBU,KAG1B,IAAY,IAAT2E,IAAeA,EAAI1J,OAAU,OAAO,EACvC,IAAI+O,IAActM,KAAKkJ,WAAWjC,GAAmG,OAA3FjH,KAAKoH,UAAUH,EAAK,WAAcjH,KAAKmM,YAAYlF,EAAKmF,EAAUC,EAAIvB,GAAU,MAAkB,EAmC5I,OAjCA9K,KAAK4D,aAEY,iBAAPyI,IAAmBA,EAAK,CAAE,KAASA,KACnCA,EAANA,GAAW,IACTxE,MAAQ9N,EAAE8N,KAAKwE,EAAGxE,MACrBwE,EAAGE,UAAYxS,EAAEqG,KAAKiM,EAAGE,UACzBF,EAAGG,OAASzS,EAAE4H,SAAS,UAAY0K,EAAGG,OACrCH,EAAGjM,OAAQiM,EAAGjM,KAAOJ,KAAK8F,YAAY,aACtCnK,EAAEsF,QAAQoL,EAAGjM,QAASnC,EAAMoO,EAAGjM,KAAMiM,EAAGjM,KAAO,GAAIiM,EAAGjM,KAAKU,KAAK7C,IACpEtC,EAAEuE,KAAKmM,EAAGjM,KAAM,SAAU3G,EAAGI,GAC5BoE,EAAMtC,EAAE,SACLA,EAAE2E,WAAWzG,KAAMA,EAAIA,EAAED,KAAKoG,KAAMqM,IACxB,iBAALxS,EAAiBoE,EAAI4J,KAAK,OAAO,KAAMrM,EAAE0J,YAAc,OAAS,QAASrL,IAE9EA,EAAEgO,OAAQhO,EAAEgO,KAAO,IACnBhO,EAAEgO,KAAK3I,OAAQrF,EAAEgO,KAAK3I,KAAO,KACjCjB,EAAI4J,KAAKhO,EAAEgO,MAAOrM,EAAE0J,YAAc,OAAS,QAASrL,EAAEuE,OACnDvE,EAAE4S,UAAYxO,EAAI0D,SAAS9H,EAAE4S,WAEjCxO,EAAIyO,QAAQ,0CACR7S,EAAE8S,MAAQN,EAAGM,OAAQ9S,EAAE8S,KAAON,EAAGM,MAClC9S,EAAE8S,QACwB,IAAzB9S,EAAE8S,KAAKnM,QAAQ,KAAevC,EAAI0E,SAAS,OAAOhB,SAAS9H,EAAE8S,MACzD1O,EAAI0E,SAAS,OAAO9F,IAAI,aAAa,QAAUhD,EAAE8S,KAAO,+BAEhE5S,EAAEmS,OAAOjO,KAEVlE,EAAE2S,QAAQ,0CACE,IAATzF,IACFA,EAAMjH,KAAKyC,gBACK,WAAb2J,IAAyBA,EAAW,SACvB,UAAbA,IAAwBA,EAAW,SAEhCA,GACN,IAAK,SAAUnF,EAAI2F,OAAO7S,GAAIkE,EAAM+B,KAAKoK,YAAYnD,GAAM,MAC3D,IAAK,QAAUA,EAAI4F,MAAM9S,GAAKkE,EAAM+B,KAAKoK,YAAYnD,GAAM,MAC3D,IAAK,SACL,IAAK,QACAA,EAAItE,SAAS,MAAMpF,QAAU0J,EAAIiF,OAAO,UAC5CjF,EAAItE,SAAS,MAAM+J,QAAQ3S,GAC3BkE,EAAMgJ,EACN,MACD,IAAK,OACAA,EAAItE,SAAS,MAAMpF,QAAU0J,EAAIiF,OAAO,UAC5CjF,EAAItE,SAAS,MAAMuJ,OAAOnS,GAC1BkE,EAAMgJ,EACN,MACD,QACKA,EAAItE,SAAS,MAAMpF,QAAU0J,EAAIiF,OAAO,UAC5BE,EAAZA,GAAuB,GAC3BnO,EAAMgJ,EAAItE,SAAS,MAAMA,SAAS,MAAMsD,GAAGmG,IACpC7O,OAAUU,EAAI2O,OAAO7S,GACrBkN,EAAItE,SAAS,MAAMuJ,OAAOnS,GACjCkE,EAAMgJ,EAOR,OAJY,IAAThJ,GAAcA,EAAI3D,IAAI,KAAO0F,KAAKyC,gBAAgBnI,IAAI,KAAM2D,GAAO,GACtE+B,KAAK6L,WAAW5N,GAChB+B,KAAK2D,WAAW,CAAE,IAAQ5J,EAAG,OAAWkE,IACrC6M,GAAYA,EAASlR,KAAKoG,KAAMjG,GAC5BA,GAGRyQ,SAAW,SAAUvD,GAEpB,KADAA,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EACzB,IAAI/B,EAAIwE,KAAK4B,gBAAgBU,KAAK4C,YAElC,OADA+B,EAAMA,EAAItE,SAAS,WAChBnH,IACFyL,EAAMA,EAAIgF,SACNtJ,SAAS,OAAO0G,SACbpC,EAAIpB,SAGXoB,EAAMA,EAAI6F,WAAWhB,OAAO,WAAa,OAAwB,GAAjB9L,KAAK+M,WAAkB,IAC5DC,WAGbC,SAAW,SAAUhG,EAAKzF,GAEzB,KADAyF,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EAEzB,GADA0J,EAAMA,EAAItE,SAAS,WAChB3C,KAAK4B,gBAAgBU,KAAK4C,YAAa,CACzC,IAAIjH,EAAMgJ,EAAItE,SAAS,OAAOsJ,QAG9B,OAFAhF,EAAIpB,KAAKrE,GAAKkL,QAAQzO,GACtB+B,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASzF,KACjC,EAKP,OAFAyF,EAAMA,EAAI6F,WAAWhB,OAAO,WAAa,OAAwB,GAAjB9L,KAAK+M,WAAkB,GACvE/M,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASzF,IAChCyF,EAAI+F,UAAYxL,GAG1B0L,YAAc,SAAUjG,EAAKzF,GAC5ByF,EAAMjH,KAAKgH,UAAUC,GACrBjH,KAAK4D,aACFqD,GAAOA,EAAI1J,QAAUyC,KAAKiN,SAAS1M,MAAMP,KAAMJ,MAAMvE,UAAUwE,MAAMjG,KAAKkG,aAAeE,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASzF,KAGrI2L,YAAc,SAAUlG,GAEvB,KADAA,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EACzByC,KAAK4D,aACL,IAAIrI,EAAIyE,KAAKoK,YAAYnD,GAAMkD,EAAOxO,EAAE,IAAKhB,EAAIqF,KAUjD,OATAiH,EAAI/G,KAAK,WACRiK,EAAOA,EAAKiD,IAAIzS,EAAEsP,UAAUjK,SAE7BiH,EAAMA,EAAIoG,UACA,IAAP9R,GAA2C,IAA/BA,EAAEyK,KAAK,aAAazI,QAClChC,EAAE6M,YAAY,6BAA6BzG,SAAS,eAErD3B,KAAK6L,WAAWtQ,GAChByE,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASkD,EAAM,OAAW5O,IAClD0L,GAERqG,aAAe,SAAUpT,EAAGK,EAAGgT,EAAKC,EAAIC,GACvC,IAAIlS,EAAI,GAMR,GAJAA,EAAEmS,GAAK/R,EAAED,OAAOuG,WAAW/H,IAAM8F,KACjCzE,EAAErB,EAAIqB,EAAEmS,GAAG1G,UAAU9M,GACrBqB,EAAEhB,GAAY,IAARA,GAAa,EAAIyF,KAAKgH,UAAUzM,GACtCgB,EAAEA,OAAoB,IAARgS,IAA+B,IAARA,EAAiB,OAASA,GAC3DE,GAASlO,EAAcrF,GAAKqF,EAAcrF,EAAE,KAAOqB,EAAErB,EAAE,IAAMqF,EAAchF,EAAE,KAAOgB,EAAEhB,EAAE,IAAMgF,EAAchE,IAAMA,EAAEA,EAGvH,OAFAyE,KAAK2D,WAAWpE,QACbiO,GAAMA,EAAG5T,KAAKoG,KAAMT,IAKxB,GAFAhE,EAAEmS,GAAK/R,EAAED,OAAOuG,WAAW1G,EAAErB,IAAM8F,KACnCzE,EAAEoS,GAAKhS,EAAED,OAAOuG,WAAW1G,EAAEhB,IAAMyF,MACvB,IAATzE,EAAEhB,GAAagB,EAAEhB,EAiBf,CACJ,IAAI,mBAAmBmK,KAAKnJ,EAAEA,KAAOyE,KAAKkJ,WAAW3N,EAAEhB,GACtD,OAAOyF,KAAKoH,UAAU7L,EAAEhB,EAAG,WAAcyF,KAAKsN,aAAapT,EAAGK,EAAGgT,EAAKC,GAAI,KAE3E,OAAOjS,EAAEA,GACR,IAAK,SACJA,EAAEqS,GAAKrS,EAAEhB,EAAE6H,QACX7G,EAAEsS,GAAKtS,EAAEoS,GAAGvD,YAAY7O,EAAEhB,GAC1B,MACD,IAAK,QACJgB,EAAEqS,GAAKrS,EAAEhB,EAAE6H,QAAU,EACrB7G,EAAEsS,GAAKtS,EAAEoS,GAAGvD,YAAY7O,EAAEhB,GAC1B,MACD,IAAK,SACL,IAAK,QACJgB,EAAEqS,GAAK,EACPrS,EAAEsS,GAAKtS,EAAEhB,EACT,MACD,IAAK,OACJgB,EAAEqS,GAAKrS,EAAEhB,EAAEyL,KAAK,cAAczI,OAC9BhC,EAAEsS,GAAKtS,EAAEhB,EACT,MACD,QACCgB,EAAEqS,GAAKrS,EAAEA,EACTA,EAAEsS,GAAKtS,EAAEhB,QAvCX,OADAgB,EAAEsS,IAAM,EACDtS,EAAEA,GACR,IAAK,QACL,IAAK,SACL,IAAK,SACJA,EAAEqS,GAAK,EACP,MACD,IAAK,QACL,IAAK,OACJrS,EAAEqS,GAAKrS,EAAEoS,GAAGlL,gBAAgBuD,KAAK,cAAczI,OAC/C,MACD,QACChC,EAAEqS,GAAKrS,EAAEA,EAgCZA,EAAEuS,IAAc,GAATvS,EAAEsS,GAAWtS,EAAEoS,GAAGlL,gBAAkBlH,EAAEsS,GAC7CtS,EAAEwS,GAAKxS,EAAEmS,GAAGtD,YAAY7O,EAAErB,GAC1BqB,EAAEyS,IAAMzS,EAAErB,EAAEkI,SACC,IAAV7G,EAAEwS,KAAaxS,EAAEwS,GAAKxS,EAAEmS,GAAKnS,EAAEmS,GAAGjL,gBAAkBzC,KAAKyC,kBACxD,mBAAmBiC,KAAKnJ,EAAEA,IAAMA,EAAEwS,IAAMxS,EAAEuS,IAAMvS,EAAEwS,GAAG,KAAOxS,EAAEuS,GAAG,IAAMvS,EAAErB,EAAEkI,QAAU7G,EAAEqS,IAAMrS,EAAEqS,KAEnGrS,EAAE0S,GAAK1S,EAAEuS,GAAG9H,KAAK,yBAA2BzK,EAAEqS,GAAK,GAAK,KACxDrO,EAAgBhE,EAChByE,KAAK2D,WAAWpE,GACbiO,GAAMA,EAAG5T,KAAKoG,KAAMT,IAExB2O,WAAa,WACZ,IAAIjH,EAAM1H,EAAe4O,GAAM,EAAM5T,GAAe,IAAX0M,EAAI1M,EAAWyF,KAAKyC,gBAAkBwE,EAAI1M,EACnF,IAAI0M,IAAQA,EAAI/M,GAAK+M,EAAIgH,GAAG,KAAOhH,EAAI/M,EAAE,GAAM,OAAO,EACtD,IAAI+M,EAAImH,GAAI,CACX,GAAGnH,EAAI8G,IAAM9G,EAAI6G,IAAM7G,EAAI8G,GAAG,KAAO9G,EAAI6G,GAAG,IAAM7G,EAAI2G,GAAK,IAAM3G,EAAI/M,EAAEkI,QAAW,OAAO,EACzF6E,EAAI/M,EAAEgG,KAAK,WACV,IAA8D,IAA3D3F,EAAEwP,aAAa,UAAW,MAAMnC,UAAUxF,MAAMpC,MAA6B,OAAbmO,GAAM,IAG3E,OAAOA,GAERE,UAAY,SAAUpH,EAAKqH,EAAKlC,EAAUmC,EAASC,EAAaC,GAC/D,IAAID,EACH,OAAOxO,KAAKsN,aAAarG,EAAKqH,EAAKlC,EAAU,SAAU7Q,GACtDyE,KAAKqO,UAAU9S,GAAG,GAAO,EAAOgT,GAAS,EAAME,KAMjD,GAHGF,IACFhP,EAAc6O,IAAK,IAEhBK,IAAezO,KAAKkO,aAAgB,OAAO,EAE/ClO,KAAK4D,aACL,IAAI1J,GAAI,EACLqU,GACFrU,EAAI+M,EAAI/M,EAAE+R,OAAM,IACdjG,KAAK,SAAS4B,UAAU1H,KAAK,WAC3BF,KAAKuI,KAAMvI,KAAKuI,GAAK,QAAUvI,KAAKuI,MAGlCrO,EAAI+M,EAAI/M,EAEZ+M,EAAIgH,GAAG1Q,OAAU0J,EAAIgH,GAAGrB,OAAO1S,IAE7B+M,EAAI6G,GAAGnL,SAAS,MAAMpF,QAAU5B,EAAE,UAAU+S,SAASzH,EAAI6G,IAC7D7G,EAAI6G,GAAGnL,SAAS,YAAYuJ,OAAOhS,IAGpC,IACC+M,EAAIyG,GAAG7B,WAAW5E,EAAI8G,IACtB9G,EAAI0G,GAAG9B,WAAW5E,EAAI6G,IAClB7G,EAAI8G,GAAG/H,KAAK,aAAazI,QAC5B0J,EAAI8G,GAAG3F,YAAY,6BAA6BzG,SAAS,eAAegB,SAAS,MAAM0G,SAEvF,MAAOlK,IAOT,OALGoP,IACFhP,EAAc6O,IAAK,EACnB7O,EAAcoP,GAAKzU,GAEpB8F,KAAK2D,WAAWpE,GACTA,GAERqP,UAAY,WAAc,OAAOrP,MAp7BpC,CAu7BG9D,SAOQE,EA0PRF,QAxPA,WACG,OAAOiJ,KAAKL,UAAUC,UAAUpH,gBACnCrB,EAAKF,EAAE,4CAA4CkB,IAAI,CAAEuP,SAAU,WAAYyC,KAAM,IAAMC,KAAM,IAAKJ,SAAS,QAC/G5S,EAAKH,EAAE,sEAAsEkB,IAAI,CAAEuP,SAAU,WAAYyC,KAAM,IAAMC,KAAM,IAAKJ,SAAS,QACzI9S,EAAkBC,EAAGkT,QAAUjT,EAAGiT,QAClClT,EAAGuR,IAAItR,GAAIuN,WAGXxN,EAAKF,EAAE,WAAWkB,IAAI,CAAEkS,MAAO,IAAK7I,OAAQ,IAAK8I,SAAU,OAAQ5C,SAAU,WAAYyC,KAAM,IAAMC,KAAM,IACxGG,UAAU,QAAQ/C,OAAO,WAAWlG,KAAK,OAAOnJ,IAAI,CAAEkS,MAAO,OAAQ7I,OAAQ,MAChFtK,EAAkB,IAAMC,EAAGkT,QAC3BlT,EAAGqT,SAAS7F,YAGd1N,EAAED,OAAOoH,OAAO,KAAM,CACrBjB,OAAS,WACR7B,KAAKI,KAAK+O,GAAGC,SAAWzT,IACxBqE,KAAKI,KAAK+O,GAAGE,eAAgB,EAC7BrP,KAAKI,KAAK+O,GAAGG,QAAU,KACvBtP,KAAKI,KAAK+O,GAAGI,UAAYvP,KAAKuC,eAAe4M,GAAGK,iBAEhDxP,KAAKyC,gBACH0D,SAAS,IAAK,eAAgBxK,EAAEyK,MAAM,SAAUC,GAC/CA,EAAMoJ,iBACNpJ,EAAMqJ,cAAcC,OAChBhU,EAAE0K,EAAMqJ,eAAe5F,SAAS,mBACnC9J,KAAK4P,YAAYvJ,EAAMqJ,eAAe,EAAMrJ,IAE3CrG,OACHmG,SAAS,IAAK,oBAAqBxK,EAAEyK,MAAM,SAAUC,GAChD1K,EAAE0K,EAAMqJ,eAAe5F,SAAS,mBACnC9J,KAAK6P,WAAWxJ,EAAME,SAErBvG,OACHmG,SAAS,IAAK,oBAAqBxK,EAAEyK,MAAM,SAAUC,GAChD1K,EAAE0K,EAAMqJ,eAAe5F,SAAS,mBACnC9J,KAAK8P,aAAazJ,EAAME,SAEvBvG,OACH/E,KAAK,gBAAiBU,EAAEyK,MAAM,WAC7BpG,KAAK+P,YACH/P,OACH/E,KAAK,sBAAuBU,EAAEyK,MAAM,WACnCpG,KAAK8P,eACL9P,KAAKgQ,iBACHhQ,OACH/E,KAAK,sBAAuBU,EAAEyK,MAAM,WACnCpG,KAAK+P,YACH/P,OACH/E,KAAK,oBAAqBU,EAAEyK,MAAM,SAAUC,EAAOjG,GAClD,IAAI5E,EAAIwE,KAAK4B,gBAAgBuN,GAC5BlI,EAAMjH,KAAKgH,UAAU5G,EAAKgD,KAAK6D,KAC/BgJ,EAAOhJ,GAAOA,EAAI1J,OAAU0J,EAAItE,SAAS,MAAMqD,KAAK,oBAAsBrK,IAC1E4L,EAAQvH,MACsB,IAA5BxE,EAAE0U,uBAAoCD,EAAI1S,QAC7C0S,EAAI/P,KAAK,WACRqH,EAAM4I,cAAcnQ,MACW,kBAA5BxE,EAAE0U,uBAA6C3I,EAAMqI,YAAY3I,MAEnEjH,OACH/E,KAAK,qBAAsBU,EAAEyK,MAAM,SAAUC,EAAOjG,GACnD,IAAI5E,EAAIwE,KAAK4B,gBAAgBuN,GAAGiB,sBAC/BnJ,EAAMjH,KAAKgH,UAAU5G,EAAKgD,KAAK6D,KAC/BgJ,EAAOhJ,GAAOA,EAAI1J,OAAU0J,EAAIjB,KAAK,oBAAsB,GAC3DuB,EAAQvH,KACTiQ,EAAI/P,KAAK,WAAcqH,EAAM4I,cAAcnQ,QACxCxE,GAAKyU,EAAI1S,QACX6C,EAAKgD,KAAK+G,KAAKjK,KAAK,WACnB,GAAGF,KAAKqQ,WAAuC,OAAzB9I,EAAMqI,YAAY5P,OAAc,KAGtDA,OACH/E,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUC,EAAOjG,GAC9CA,EAAKgD,KAAKgL,IACZhO,EAAKgD,KAAKuL,GAAG3I,KAAK,oBAAoBoC,YAAY,mBAEjDpI,QAENkB,SAAW,CACVoP,cAAgB,EAChBC,yBAA2B,OAC3BC,sBAAwB,QACxBN,sBAAwB,gBACxBO,sBAAuB,EACvBL,uBAAwB,EACxBM,4BAA6B,EAC7BlB,iBAAmB,IAEpB3M,IAAM,CACLmE,UAAY,SAAUC,EAAK0J,GAC1B,GAAG,MAAO1J,EAAuC,OAAO0J,EAAiB3Q,KAAKI,KAAK+O,GAAGC,SAAWpP,KAAKI,KAAK+O,GAAGE,cAC9G,IAAI7F,EAAO7N,EAAEsL,EAAKjH,KAAKyC,iBACvB,OAAG+G,EAAKC,GAAG,aAAsB,GAARxC,GAAqB,KAC9CuC,EAAOA,EAAKrH,QAAQ,KAAMnC,KAAKyC,kBACnBlF,QAASiM,GAEtBoH,WAAa,SAAU1V,EAAGkF,GACtBA,EAAKgP,UACPpP,KAAK4P,YAAY1U,GAAG,IAGtB8U,cAAgB,WACf,IAAIzI,EAAQvH,KACZA,KAAKI,KAAK+O,GAAGI,UAAY,GACzBvP,KAAKI,KAAK+O,GAAGC,SAASlP,KAAK,WAAiBF,KAAKuI,IAAMhB,EAAMnH,KAAK+O,GAAGI,UAAUzO,KAAK,IAAMd,KAAKuI,GAAGC,WAAWlH,QAAQ,KAAK,IAAIA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAQA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAOA,QAAQ,MAAM,UACjOtB,KAAK2D,WAAW3D,KAAKI,KAAK+O,GAAGI,YAE9BQ,SAAW,WACV,IAAIxI,EAAQvH,KACXxE,EAAIwE,KAAKI,KAAK+O,GAAGI,UAClB/T,EAAIG,EAAEqN,IAAIrN,EAAEsN,UAAUzN,GAAI,SAAUN,GAAK,MAAO,IAAMA,EAAEsN,WAAWlH,QAAQ,KAAK,IAAIA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAQA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAOA,QAAQ,MAAM,SAEvL3F,EAAEuE,KAAK1E,EAAG,SAAU/B,EAAG+H,GAAUA,GAAe,MAARA,GAAe+F,EAAMqI,YAAYpO,KACzExB,KAAKI,KAAK+O,GAAGC,SAAWpP,KAAKI,KAAK+O,GAAGC,SAAStD,OAAO,WAAc,OAAO9L,KAAKqQ,aAC/ErQ,KAAK2D,cAENyF,QAAU,WAET,OADApJ,KAAKgQ,gBACEhQ,KAAK8D,cAEb+L,WAAa,SAAU5I,GAEtB,KADAA,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EAErB0J,EAAI6C,SAAS,mBAAqB9J,KAAK8P,eAC3C9P,KAAKI,KAAK+O,GAAGG,QAAUrI,EAAItE,SAAS,KAAKhB,SAAS,kBAAkBuN,SACpElP,KAAK6Q,YAAY5J,GACjBjH,KAAK2D,WAAW,CAAE,IAAQsD,KAE3B6I,aAAe,WACd,IAAgCvU,EAA5B0L,EAAMjH,KAAKI,KAAK+O,GAAGG,QACvB,IAAIrI,IAAQA,EAAI1J,OAAU,OAAO,EACjChC,EAAI0L,EAAItE,SAAS,KAAKyF,YAAY,kBAAkB8G,SACjDlP,KAAKI,KAAK+O,GAAGG,QAAQ,KAAO/T,EAAE,KAAMyE,KAAKI,KAAK+O,GAAGG,QAAU,MAC9DtP,KAAK2D,WAAW,CAAE,IAAQsD,KAE3B2I,YAAc,SAAU3I,EAAK6J,EAAO3R,GAEnC,IAAW,IADX8H,EAAMjH,KAAKgH,UAAUC,MACJA,IAAQA,EAAI1J,OAAU,OAAO,EAC9C,IAAI/B,EAAIwE,KAAK4B,gBAAgBuN,GAC5B4B,EAA6C,MAA9BvV,EAAE+U,2BAAoE,IAA/B/U,EAAE+U,0BAAsCpR,GAAKA,EAAE3D,EAAE+U,yBAA2B,OAClIS,GAAwC,IAA5BxV,EAAEgV,uBAAmCrR,GAAKA,EAAE3D,EAAEgV,sBAAwB,QAAUxQ,KAAKI,KAAK+O,GAAGE,eAAiBrP,KAAKI,KAAK+O,GAAGE,cAAc,KAAOpI,EAAI,IAAMjH,KAAKI,KAAK+O,GAAGE,cAAcH,SAAS,KAAOjI,EAAIiI,SAAS,GAC9N+B,EAAcjR,KAAKiR,YAAYhK,GAC/BiK,GAAU,EACVvW,EAAIqF,KACL,GAAG8Q,EAAO,CACT,GAAGtV,EAAEkV,4BAA8BK,IAEhC9J,EAAI8C,aAAa,UAAU,MAAMpH,SAAS,oBAAoBpF,QAC9D0J,EAAItE,SAAS,MAAMqD,KAAK,0BAA0BzI,QAGpD,OAAO,EAGR,SADA2T,GAAU,IAET,KAAMF,EACLhR,KAAKI,KAAK+O,GAAGE,cAAc1N,SAAS,wBACpCsF,EAAMA,EAAKA,EAAI7E,QAAUpC,KAAKI,KAAK+O,GAAGE,cAAcjN,QAAU,YAAc,aAAc,yBAAyBwF,UAOlHsJ,IANqB,GAAnB1V,EAAE8U,cAAsBrJ,EAAI1J,OAAS/B,EAAE8U,gBACzCtQ,KAAKI,KAAK+O,GAAGE,cAAcjH,YAAY,wBACvCpI,KAAKI,KAAK+O,GAAGC,SAASlP,KAAK,WACvBF,OAASrF,EAAEyF,KAAK+O,GAAGE,cAAc,IAAM1U,EAAEwV,cAAcnQ,UAE3DiR,GAAc,IAMf,MACD,KAAMA,IAAgBF,EACrB/Q,KAAKmR,eAELD,IADAD,GAAc,GAEd,MACD,KAAOA,IAAgBF,IACA,GAAnBvV,EAAE8U,cAAuC,EAAjB9U,EAAE8U,gBAC5BtQ,KAAKmR,eACLD,GAAU,GAEX,MACD,KAAMD,GAAeF,EACpB/Q,KAAKmQ,cAAclJ,GACnB,MACD,KAAOgK,GAAeF,IACC,GAAnBvV,EAAE8U,cAAsBtQ,KAAKI,KAAK+O,GAAGC,SAAS7R,OAAS,GAAK/B,EAAE8U,gBAChEY,GAAU,IAKXA,IAAYD,IACVD,IAAYhR,KAAKI,KAAK+O,GAAGE,cAAgBpI,GAC7CA,EAAItE,SAAS,KAAKhB,SAAS,kBACxBnG,EAAEiV,sBACJxJ,EAAImK,QAAQ,kBAAkBlR,KAAK,WAAcvF,EAAEsN,UAAUjI,MAAM,GAAO,KAE3EA,KAAKI,KAAK+O,GAAGC,SAAWpP,KAAKI,KAAK+O,GAAGC,SAAShC,IAAInG,GAClDjH,KAAK6Q,YAAY5J,EAAIhB,GAAG,IACxBjG,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,EAAM9H,MAGvC0R,YAAc,SAAU5J,GACvB,IAAiCtM,EAA7Bb,EAAIkG,KAAKyC,gBAAgB,GAC7B,GAAG3I,EAAEuX,aAAevX,EAAEwX,aAAc,CAEnC,KADArK,EAAMjH,KAAKgH,UAAUC,MACD,IAATA,IAAeA,EAAI1J,SAAW0J,EAAIwC,GAAG,YAAe,QAC/D9O,EAAIsM,EAAIsK,SAAS1C,IAAM7O,KAAKyC,gBAAgB8O,SAAS1C,KAC9C,IACN/U,EAAE0X,UAAY1X,EAAE0X,UAAY7W,EAAI,GAE9BA,EAAIqF,KAAKI,KAAKkC,KAAKyD,WAAajM,EAAE2X,YAAc3X,EAAE4X,YAAc9V,EAAkB,GAAK9B,EAAEwX,eAC3FxX,EAAE0X,UAAY1X,EAAE0X,WAAa7W,EAAIb,EAAEwX,aAAetR,KAAKI,KAAKkC,KAAKyD,UAAY,GAAKjM,EAAE2X,YAAc3X,EAAE4X,YAAc9V,EAAkB,OAIvIuU,cAAgB,SAAUlJ,GAEzB,KADAA,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EACtByC,KAAKiR,YAAYhK,KACnBA,EAAItE,SAAS,KAAKyF,YAAY,kBAC9BpI,KAAKI,KAAK+O,GAAGC,SAAWpP,KAAKI,KAAK+O,GAAGC,SAASpD,IAAI/E,GAC/CjH,KAAKI,KAAK+O,GAAGE,cAAc/U,IAAI,KAAO2M,EAAI3M,IAAI,KAAM0F,KAAKI,KAAK+O,GAAGE,cAAgBrP,KAAKI,KAAK+O,GAAGC,SAASnJ,GAAG,IAC7GjG,KAAK2D,WAAW,CAAE,IAAQsD,MAG5B0K,cAAgB,SAAU1K,GAEzB,KADAA,EAAMjH,KAAKgH,UAAUC,IACb1J,OAAU,OAAO,EACtByC,KAAKiR,YAAYhK,GAAQjH,KAAKmQ,cAAclJ,GACxCjH,KAAK4P,YAAY3I,IAEzBgK,YAAc,SAAUhK,GAAO,OAA2D,GAApDjH,KAAKI,KAAK+O,GAAGC,SAAShN,MAAMpC,KAAKgH,UAAUC,KACjF2K,aAAe,SAAUC,GACxB,OAAOA,EAAUlW,EAAEkW,GAAS7L,KAAK,oBAAoBkJ,SAAWlP,KAAKI,KAAK+O,GAAGC,UAE9E+B,aAAe,SAAUU,GACxB,IAAI1D,EAAM0D,EAAUlW,EAAEkW,GAAS7L,KAAK,oBAAoBkJ,SAAWlP,KAAKyC,gBAAgBuD,KAAK,oBAAoBkJ,SACjHf,EAAIxL,SAAS,oBAAoByF,YAAY,kBAC7CpI,KAAKI,KAAK+O,GAAGC,SAAWzT,EAAE,IAC1BqE,KAAKI,KAAK+O,GAAGE,eAAgB,EAC7BrP,KAAK2D,WAAW,CAAE,IAAQwK,QAK7BxS,EAAED,OAAOwF,SAAS5B,QAAQwB,KAAK,OAQrBnF,EAsKRF,QArKAC,OAAOoH,OAAO,OAAQ,CACvBjB,OAAS,WACR7B,KAAKyC,gBACHxH,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC9C,GAAGJ,KAAK4B,gBAAgBkQ,KAAKC,KAAKC,YAAa,CAC9C,IAAIrX,EAAIqF,KACRI,EAAKgD,KAAK0K,GAAG/D,aAAa,WAAWnC,UAAUkE,OAAO,kBAAkB5L,KAAK,WAC5EvF,EAAEsN,UAAUjI,MAAM,GAAO,OAGzBA,QAELkB,SAAW,CACV+Q,kBAAoB,IACpBF,KAAO,CACNG,aAAgB,EAChBF,aAAgB,EAChBG,iBAAmB,OACnBjE,WAAe,WAAe,OAAO,KAGvCrL,IAAM,CACLuP,YAAc,SAAUnL,EAAK6D,GAC5B7D,EAAMjH,KAAKgH,UAAUC,GACrB,IAAI3B,EAAMtF,KAAK4B,gBAAgBU,KAAKgD,IACnC+M,EAAIrS,KAAK4B,gBAAgBkQ,KAAKG,kBAC9BK,EAAKrL,EAAItE,SAAS,OAAOoM,QACzBwD,EAAKtL,EAAIjB,KAAK,qBAAqB+I,QAAU9H,EAAIjB,KAAK,qBAAqBzI,OAC3E5C,EAAIqF,KAAKwK,SAASvD,GAClBuL,EAAK7W,EAAE,UAAW,CAAEkB,IAAM,CAAE,SAAa,WAAY,IAAQ,SAAU,KAAUyI,EAAM,MAAQ,UAAY,WAAe,YAAcoJ,SAAS,QACjJ+D,EAAKxL,EAAIpK,IAAI,WAAW,YAAYqP,OACpCvQ,EAAE,YAAa,CACd,MAAUhB,EACV,MAAU,sBAEV,IAAQ,CACP,QAAY,IACZ,OAAW,mBACX,SAAa,WACb,KAAW2K,EAAM,OAAUgN,EAAKC,EAAK,EAAK,KAC1C,MAAWjN,EAAOgN,EAAKC,EAAK,EAAK,KAAO,OACxC,IAAQ,MACR,OAAYvS,KAAKI,KAAKkC,KAAKyD,UAAY,EAAK,KAC5C,WAAgB/F,KAAKI,KAAKkC,KAAKyD,UAAY,EAAK,KAChD,MAAU,SAEX,KAASpK,EAAEyK,MAAM,WAChB,IAAI3M,EAAIwN,EAAItE,SAAS,wBACpB4B,EAAI9K,EAAE+H,MACE,KAAN+C,IAAYA,EAAI5J,GACnB6X,EAAGnJ,SACH5P,EAAE4P,SACFrJ,KAAKiN,SAAShG,EAAItM,GAClBqF,KAAKkN,YAAYjG,EAAK1C,GACtBuG,EAASlR,KAAKoG,KAAMiH,EAAK1C,EAAG5J,GAC5BsM,EAAIpK,IAAI,WAAW,KACjBmD,MACH,MAAU,SAAUqG,GACnB,IAAIrL,EAAMqL,EAAMqM,SAAWrM,EAAMsM,MACjC,GAAU,IAAP3X,EAA0C,OAA7BgF,KAAKtF,MAAQC,OAAGqF,KAAK2P,OACtB,IAAP3U,EAEPyX,EAAG1D,MAAM6D,KAAKC,IAAIL,EAAGM,KAAK,KAAO9S,KAAKtF,OAAOqU,QAAQsD,IAFjCrS,KAAK2P,QAK3B,SAAa,SAAStJ,GAErB,GAAU,KADAA,EAAMqM,SAAWrM,EAAMsM,OACjB,OAAO,MAGxBhQ,SAAS,wBACX3C,KAAKiN,SAAShG,EAAK,IACnBuL,EAAG3V,IAAI,CACLkW,WAAcN,EAAG5V,IAAI,eAAkB,GACvCmW,SAAYP,EAAG5V,IAAI,aAAgB,GACnCoW,WAAcR,EAAG5V,IAAI,eAAkB,GACvCqW,UAAaT,EAAG5V,IAAI,cAAiB,GACrCsW,YAAeV,EAAG5V,IAAI,gBAAmB,GACzCuW,YAAeX,EAAG5V,IAAI,gBAAmB,GACzCwW,cAAgBZ,EAAG5V,IAAI,kBAAoB,GAC3CyW,YAAeb,EAAG5V,IAAI,gBAAmB,KAE3C4V,EAAG1D,MAAM6D,KAAKC,IAAIL,EAAGM,KAAK,KAAOL,EAAG,GAAG/X,OAAOqU,QAAQsD,IAAI,GAAGkB,UAE9DC,OAAS,SAAUvM,GAClBA,EAAMjH,KAAKgH,UAAUC,GACrBjH,KAAK4D,aACL,IAAI0F,EAAItJ,KAAK2D,WACb3D,KAAKoS,YAAYnL,EAAK,SAAUA,EAAKwM,EAAUC,GAC9CpK,EAAE1P,KAAKoG,KAAM,CAAE,IAAQiH,EAAK,SAAawM,EAAU,SAAaC,OAGlE3Y,OAAS,SAAUkM,EAAKmF,EAAUC,EAAIvB,EAAU6I,GAC/C,IAAOpM,EAAQvH,KAgBf,OAdWiH,GADXA,EAAMjH,KAAKgH,UAAUC,MACH,EAClBjH,KAAK4D,aACD5D,KAAKmM,YAAYlF,EAAKmF,EAAUC,EAAI,SAAU1R,GACjD,IAAIY,EAAIyE,KAAKoK,YAAYzP,GACxB4S,EAAM5R,EAAEhB,GAAGyH,QACT0I,GAAYA,EAASlR,KAAKoG,KAAMrF,GAChCY,EAAEgC,QAAUhC,EAAEuO,SAAS,kBAAoB9J,KAAKiI,UAAU1M,GAAG,GAAO,GACnEoY,EAKGpM,EAAM5D,WAAW,CAAE,IAAQhJ,EAAG,KAASqF,KAAKwK,SAAS7P,GAAI,OAAWY,EAAG,SAAagS,IAJ1FvN,KAAKoS,YAAYzX,EAAG,SAAUsM,EAAKwM,EAAUC,GAC5CnM,EAAM5D,WAAW,CAAE,IAAQsD,EAAK,KAASwM,EAAU,OAAWlY,EAAG,SAAagS,SAOlFlE,OAAS,SAAUpC,GAClBA,EAAMjH,KAAKgH,UAAUC,GAAK,GAC1B,IAAI1L,EAAIyE,KAAKoK,YAAYnD,GAAMkD,EAAOnK,KAAKiK,UAAUhD,GACrDjH,KAAK4D,cAEM,KADXqD,EAAMjH,KAAKmN,YAAYlG,KACHjH,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASkD,EAAM,OAAW5O,KAE9E2S,WAAa,WACZ,QAAIlO,KAAK8D,gBACD9D,KAAK4B,gBAAgBkQ,KAAKC,KAC5B7D,WAAWtU,KAAKoG,KAAMA,KAAK4O,cAGlCP,UAAY,SAAUpH,EAAKqH,EAAKlC,EAAUmC,EAASC,EAAaC,GAC/D,IAAIjT,EAAIwE,KAAK4B,gBAAgBkQ,KAAKC,KAClC,IAAIvD,EAGH,YAFuB,IAAbpC,IAA4BA,EAAW5Q,EAAE2W,kBACnC,WAAb/F,GAA0B5Q,EAAE2W,iBAAiB3N,MAAM,sBAAuB4H,EAAW5Q,EAAE2W,kBACnFnS,KAAK8D,YAAW,EAAMmD,EAAKqH,EAAKlC,EAAUmC,GAAS,EAAOE,KAG7C,IAAlBjT,EAAE0W,aAA2C,cAAlB1W,EAAE0W,aAA+BjL,EAAI0G,GAAGnL,cAAgByE,EAAIyG,GAAGlL,eAC5F+L,GAAU,GAEXvO,KAAK8D,YAAW,EAAMmD,EAAKqH,EAAKlC,EAAUmC,GAAS,EAAME,IAG1DmF,IAAM,SAAU3M,GAEf,KADAA,EAAMjH,KAAKgH,UAAUC,GAAK,MACdA,EAAI1J,OAAU,OAAO,EACjCyC,KAAKI,KAAK0R,KAAK+B,UAAW,EAC1B7T,KAAKI,KAAK0R,KAAKgC,SAAW7M,EAC1BjH,KAAK2D,WAAW,CAAE,IAAQsD,KAE3B8M,KAAO,SAAU9M,GAEhB,KADAA,EAAMjH,KAAKgH,UAAUC,GAAK,MACdA,EAAI1J,OAAU,OAAO,EACjCyC,KAAKI,KAAK0R,KAAKgC,UAAW,EAC1B9T,KAAKI,KAAK0R,KAAK+B,SAAW5M,EAC1BjH,KAAK2D,WAAW,CAAE,IAAQsD,KAE3B+M,MAAQ,SAAU/M,GAEjB,KADAA,EAAMjH,KAAKgH,UAAUC,MACTA,EAAI1J,OAAU,OAAO,EACjC,IAAI0W,EAAQjU,KAAKI,KAAK0R,KAAKgC,SAAW9T,KAAKI,KAAK0R,KAAKgC,SAAW9T,KAAKI,KAAK0R,KAAK+B,SAC/E,IAAI7T,KAAKI,KAAK0R,KAAKgC,WAAa9T,KAAKI,KAAK0R,KAAK+B,SAAY,OAAO,EAC/D7T,KAAKI,KAAK0R,KAAKgC,WAAY9T,KAAKqO,UAAUrO,KAAKI,KAAK0R,KAAKgC,SAAU7M,GAAMjH,KAAKI,KAAK0R,KAAKgC,UAAW,GACnG9T,KAAKI,KAAK0R,KAAK+B,UAAY7T,KAAKqO,UAAUrO,KAAKI,KAAK0R,KAAK+B,SAAU5M,GAAK,GAAO,GAClFjH,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,MAAUgN,QAalCtY,EAuERF,OAtEEM,EAAgB,GAEpBJ,EAAED,OAAOwY,SAAU,EACnBvY,EAAED,OAAOoH,OAAO,SAAU,CACzBjB,OAAS,WACR7B,KAAKyC,gBACHxH,KAAK,cAAeU,EAAEyK,MAAM,WAC3B,IAAI5K,EAAIwE,KAAK4B,gBAAgBuS,OAC7BnU,KAAKI,KAAK+T,OAAOC,KAAO5Y,EAAE4Y,KAC1BpU,KAAKI,KAAK+T,OAAOE,MAAQ7Y,EAAE6Y,MAC3BrU,KAAKsU,UAAU9Y,EAAE+Y,MAAO/Y,EAAEqD,MACxBmB,OACH/E,KAAK,gBAAiBU,EAAEyK,MAAM,WAEzBpG,KAAKI,KAAK+T,OAAOC,KACdpU,KAAKwU,YADiBxU,KAAKyU,YAE9BzU,KAAKI,KAAK+T,OAAOE,MACdrU,KAAK0U,aADkB1U,KAAK2U,cAEjC3U,QAENkB,SAAW,CACVqT,MAAQ,UACR1V,KAAM,EACNuV,MAAO,EACPC,OAAQ,GAETxR,IAAM,CACLyR,UAAY,SAAUM,EAAYC,GACjC,IAAID,EAAc,OAAO,EACRC,EAAbA,GAAyBlZ,EAAED,OAAOwY,QAAUU,EAAa,cAClB,GAAxCjZ,EAAE8F,QAAQoT,EAAW9Y,KACvBJ,EAAEiB,OAAOC,IAAIkB,UAAU,CAAE,IAAQ8W,IACjC9Y,EAAc+E,KAAK+T,IAEjB7U,KAAKI,KAAK+T,OAAOI,OAASK,IAC5B5U,KAAKyC,gBAAgB2F,YAAY,UAAYpI,KAAKI,KAAK+T,OAAOI,OAC9DvU,KAAKI,KAAK+T,OAAOI,MAAQK,GAE1B5U,KAAKyC,gBAAgBd,SAAS,UAAYiT,GACtC5U,KAAKI,KAAK+T,OAAOC,KACdpU,KAAKwU,YADiBxU,KAAKyU,YAE9BzU,KAAKI,KAAK+T,OAAOE,MACdrU,KAAK0U,aADkB1U,KAAK2U,aAEnC3U,KAAK2D,cAENmR,UAAY,WAAc,OAAO9U,KAAKI,KAAK+T,OAAOI,OAElDC,UAAY,WAAcxU,KAAKI,KAAK+T,OAAOC,MAAO,EAAMpU,KAAKyC,gBAAgBE,SAAS,MAAMyF,YAAY,mBACxGqM,UAAY,WAAczU,KAAKI,KAAK+T,OAAOC,MAAO,EAAOpU,KAAKyC,gBAAgBE,SAAS,MAAMhB,SAAS,mBACtGoT,YAAc,WAAiB/U,KAAKI,KAAK+T,OAAOC,KAAQpU,KAAKyU,YAAsBzU,KAAKwU,aAExFE,WAAa,WAAc1U,KAAKI,KAAK+T,OAAOE,OAAQ,EAAMrU,KAAKyC,gBAAgBE,SAAS,MAAMyF,YAAY,oBAC1GuM,WAAa,WAAc3U,KAAKI,KAAK+T,OAAOE,OAAQ,EAAOrU,KAAKyC,gBAAgBE,SAAS,MAAMhB,SAAS,oBACxGqT,aAAc,WAAiBhV,KAAKI,KAAK+T,OAAOE,MAASrU,KAAK2U,aAAuB3U,KAAK0U,iBAI5F/Y,EAAE,YACuB,IAArBA,EAAED,OAAOwY,SACXvY,EAAE,UAAUuE,KAAK,WAChB,GAAGF,KAAKiV,IAAIzM,WAAWhE,MAAM,qCAE5B,OADA7I,EAAED,OAAOwY,QAAUlU,KAAKiV,IAAIzM,WAAWlH,QAAQ,oCAAqC,IAAM,WACnF,KAIc,IAArB3F,EAAED,OAAOwY,UAAqBvY,EAAED,OAAOwY,QAAU,aAGrDvY,EAAED,OAAOwF,SAAS5B,QAAQwB,KAAK,UASrBnF,EAqIRF,OApIEO,EAAQ,GAQZL,EAAED,OAAOoH,OAAO,UAAW,CAC1BjB,OAAS,WACR,QAAwB,IAAdlG,EAAEuZ,QAA2B,KAAM,sDAC7C,IAAIlV,KAAKI,KAAK+O,GAAM,KAAM,iDAC1BxT,EAAEuE,KAAKF,KAAK4B,gBAAgBsT,QAAS,SAAUzb,EAAG8K,IACxC,IAANA,IAAuC,GAAxB5I,EAAE8F,QAAQhI,EAAGuC,KAC9BL,EAAE0C,UAAUpD,KAAK,UAAWxB,EAAG,SAAU4M,GAAS,OAbtD,SAAc5M,EAAG4M,GAChB,IAA6BpI,EAAzBqL,EAAI3N,EAAED,OAAOsG,WACjB,GAAGsH,GAAKA,EAAElJ,MAAQkJ,EAAElJ,KAAK8U,SAAW5L,EAAElJ,KAAK8U,QAAQC,UAClDlX,EAAMqL,EAAE1H,gBAAgBsT,QAAQzb,IACtB,OAAOwE,EAAIrE,KAAK0P,EAAGjD,GAS8B+O,CAAK3b,EAAG4M,KACjErK,EAAM8E,KAAKrH,MAGbuG,KAAKyC,gBACHxH,KAAK,cAAeU,EAAEyK,MAAM,WACxBpG,KAAKI,KAAK8U,QAAQC,UAAWnV,KAAKI,KAAK8U,QAAQC,SAAU,EAAOnV,KAAKI,KAAK8U,QAAQG,QAAS,IAC5FrV,OACH/E,KAAK,gBAAiBU,EAAEyK,MAAM,WAC1BpG,KAAKI,KAAK8U,QAAQG,SAAUrV,KAAKI,KAAK8U,QAAQC,SAAU,IACzDnV,OACLA,KAAKsV,kBAENpU,SAAW,CACV,GAAO,WACN,IAAIhH,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBAAkB,EAE/D,OADArP,KAAK6P,WAAW7P,KAAKiK,UAAU/P,KACxB,GAER,UAAY,WACX,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBAAkB,EAE/D,OADArP,KAAK6P,WAAW7P,KAAKiK,UAAU/P,KACxB,GAER,WAAa,WACZ,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBAAkB,EAE/D,OADArP,KAAK6P,WAAW7P,KAAKiK,UAAU/P,KACxB,GAER,KAAS,WACR,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBAAkB,EAE/D,OADArP,KAAK6P,WAAW7P,KAAK0J,UAAUxP,KACxB,GAER,YAAc,WACb,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBAAkB,EAE/D,OADArP,KAAK6P,WAAW7P,KAAK0J,UAAUxP,KACxB,GAER,aAAe,WACd,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBAAkB,EAE/D,OADArP,KAAK6P,WAAW7P,KAAK0J,UAAUxP,KACxB,GAER,KAAS,WACR,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,cAK7C,OAJGnV,IACCA,EAAE4P,SAAS,eAAkB9J,KAAKqL,WAAWnR,GACzC8F,KAAK6P,WAAW7P,KAAKiK,UAAU/P,MAEhC,GAER,YAAc,WACb,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,cAK7C,OAJGnV,IACCA,EAAE4P,SAAS,eAAkB9J,KAAKqL,WAAWnR,GACzC8F,KAAK6P,WAAW7P,KAAKiK,UAAU/P,MAEhC,GAER,aAAe,WACd,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,cAK7C,OAJGnV,IACCA,EAAE4P,SAAS,eAAkB9J,KAAKqL,WAAWnR,GACzC8F,KAAK6P,WAAW7P,KAAKiK,UAAU/P,MAEhC,GAER,MAAU,WACT,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,cAK7C,OAJGnV,GAAKA,EAAEqD,SACNrD,EAAE4P,SAAS,iBAAoB9J,KAAKiI,UAAU/N,GAC1C8F,KAAK6P,WAAW7P,KAAK0J,UAAUxP,MAEhC,GAER,aAAe,WACd,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,cAK7C,OAJGnV,GAAKA,EAAEqD,SACNrD,EAAE4P,SAAS,iBAAoB9J,KAAKiI,UAAU/N,GAC1C8F,KAAK6P,WAAW7P,KAAK0J,UAAUxP,MAEhC,GAER,cAAgB,WACf,IAAIA,EAAI8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,cAK7C,OAJGnV,GAAKA,EAAEqD,SACNrD,EAAE4P,SAAS,iBAAoB9J,KAAKiI,UAAU/N,GAC1C8F,KAAK6P,WAAW7P,KAAK0J,UAAUxP,MAEhC,GAER,MAAU,WAET,OADG8F,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGG,QAAQ3M,SAAS,WAAW4S,SAC7D,GAER,aAAe,SAAUlP,GAGxB,OAFAA,EAAMrH,KAAO,QACVgB,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGG,QAAQ3M,SAAS,WAAW6S,QAAQnP,IACrE,GAER,cAAgB,SAAUA,GAGzB,OAFAA,EAAMrH,KAAO,QACVgB,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGG,QAAQ3M,SAAS,WAAW6S,QAAQnP,IACrE,GAER,GAAO,WAAcrG,KAAKwT,OAAOxT,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKI,KAAK+O,GAAGE,gBACtE,IAAQ,WAAcrP,KAAKqJ,OAAOrJ,KAAKI,KAAK+O,GAAGG,SAAWtP,KAAKgH,UAAU,SAE1EnE,IAAM,CACLyS,eAAiB,WAChBtV,KAAKI,KAAK8U,QAAQC,SAAU,GAE7BM,gBAAkB,WACjBzV,KAAKI,KAAK8U,QAAQC,SAAU,OAWrBxZ,EAqSRF,QApSAC,OAAOoH,OAAO,YAAa,CAC5BjB,OAAS,WACA7B,KAAK4B,gBAAgB8T,UACxBC,oBACJ3V,KAAKyC,gBAAgBxH,KAAK,qBAAsB,SAAUkE,EAAGiB,GAC5DA,EAAKgD,KAAK6D,IAAItE,SAAS,MAAM0G,YAIhCnI,SAAW,CAIVd,MAAO,EACPwV,MAAO,EACP/K,eAAgB,EAChBgL,oBAAqB,EACrBF,oBAAqB,GAEtB9S,IAAM,CACLuE,UAAY,SAAUH,EAAK6O,EAAQC,GAAU,IAAIxO,EAAQvH,KAAMA,KAAKgW,eAAe/O,EAAK,WAAcM,EAAM5D,WAAW,CAAE,IAAQ4D,EAAMP,UAAUC,KAAS6O,EAAOlc,KAAKoG,OAAU+V,IAChL7M,WAAa,SAAUjC,GACtB,IAAIzL,EAAIwE,KAAK4B,gBAAgB8T,UAE7B,OAAe,IADfzO,EAAMjH,KAAKgH,UAAUC,MACAA,IAASzL,EAAEoa,OAASpa,EAAEqa,qBAAuBla,EAAE2E,WAAW9E,EAAE4E,OAAU6G,EAAIwC,GAAG,+BAA4E,EAA3CxC,EAAItE,SAAS,MAAMA,SAAS,MAAMpF,QAEtK6L,QAAU,SAAUnC,GACnBA,EAAMjH,KAAKgH,UAAUC,GACrB,IAAIzL,EAAIwE,KAAK4B,gBAAgB8T,UAI7B,OAHGzO,IAAgB,IAATA,GAAczL,EAAEma,qBAAuBha,EAAE2E,WAAW9E,EAAE4E,OAAW5E,EAAEoa,OAC5E3O,EAAIU,WAAW,mBAET3H,KAAK8D,cAEbkS,eAAiB,SAAU/O,EAAK6O,EAAQC,GACvC,IAAuChc,EAAnCyB,EAAIwE,KAAKuC,eAAemT,UAC3BO,EAAa,aACbC,EAAe,aAGhB,IAFAjP,EAAMjH,KAAKgH,UAAUC,MAEF,IAATA,IAAezL,EAAEqa,oBAAsBra,EAAEma,sBAAwB1O,EAAIwC,GAAG,+BAA8E,IAA7CxC,EAAItE,SAAS,MAAMA,SAAS,MAAMpF,QAAgB0J,EAAI7G,KAAK,mBAQ7K,OAPArG,EAAIiG,KAAKmW,YAAYlP,EAAI7G,KAAK,mBAAoB6G,MAEjDA,EAAIiF,OAAOnS,GACPyB,EAAEma,oBAAsB1O,EAAIU,WAAW,oBAE5C3H,KAAK6L,WAAW5E,QACb6O,GAAUA,EAAOlc,KAAKoG,OAI1B,GAAGiH,IAAgB,IAATA,EAAY,CACrB,GAAGA,EAAI7G,KAAK,qBAAwB,OAC7B6G,EAAI7G,KAAK,qBAAoB,GAErC,QAAO,GACN,KAAO5E,EAAE4E,OAAS5E,EAAEoa,KAAO,KAAM,2CAEjC,KAAMja,EAAE2E,WAAW9E,EAAE4E,MACpB5E,EAAE4E,KAAKxG,KAAKoG,KAAMiH,EAAKtL,EAAEyK,MAAM,SAAUrM,IACxCA,EAAIiG,KAAKmW,YAAYpc,EAAGkN,MAaX,IAATA,GAAeA,GACXA,EAAIiF,OAAOnS,GAAG4I,SAAS,oBAAoByF,YAAY,kBAAmBnB,EAAIU,WAAW,sBADvE3H,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAE9E3C,KAAK6L,WAAW5E,GACb6O,GAAUA,EAAOlc,KAAKoG,SAdb,IAATiH,GAAeA,GAIjBA,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACZnM,EAAEqP,eAAiB7K,KAAK6K,cAAc5D,IALtCzL,EAAEqP,eAAiB7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAOxDoP,GAAUA,EAAOnc,KAAKoG,QAQxBA,OACH,MACD,MAAQxE,EAAE4E,OAAS5E,EAAEoa,QAAYpa,EAAE4E,QAAU5E,EAAEoa,QAAU3O,IAAgB,IAATA,GAC3DA,IAAe,GAARA,KACVlN,EAAIiG,KAAKmW,YAAY3a,EAAE4E,KAAM6G,KAE5BjH,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YACrD3C,KAAK6L,cAGFrQ,EAAEqP,eAAiB7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,SAGzDmP,GAAUA,EAAOlc,KAAKoG,MACzB,MACD,KAAOxE,EAAE4E,QAAU5E,EAAEoa,QAAYpa,EAAE4E,QAAU5E,EAAEoa,MAAQ3O,IAAgB,IAATA,EAC7DgP,EAAa,SAAUG,EAAGzb,EAAGwE,GAC5B,IAAIkX,EAAKrW,KAAKuC,eAAemT,UAAUE,KAAKU,MACzCD,GAAMA,EAAGzc,KAAKoG,KAAMoW,EAAGzb,EAAGwE,IAClB,GAAR8H,GAAaA,EAAI1J,QACnB0J,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACN,YAANhN,GAAmBa,EAAEqP,eAAiB7K,KAAK6K,cAAc5D,IAGnD,YAANtM,GAAmBa,EAAEqP,eAAiB7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAE3EoP,GAAUA,EAAOnc,KAAKoG,OAE1BkW,EAAe,SAAUnc,EAAGY,EAAGyb,GAC9B,IAAIG,EAAKvW,KAAKuC,eAAemT,UAAUE,KAAKY,QAE5C,GADGD,IAAMxc,EAAIwc,EAAG3c,KAAKoG,KAAKjG,EAAEY,EAAEyb,IAAMrc,GAC3B,KAANA,GAAaA,GAAKA,EAAEyO,UAAqD,KAAzCzO,EAAEyO,WAAWlH,QAAQ,YAAY,MAAiB3F,EAAEsF,QAAQlH,KAAO4B,EAAE8a,cAAc1c,GACrH,OAAOkc,EAAWrc,KAAKoG,KAAMoW,EAAGzb,EAAG,KAEpCZ,EAAIiG,KAAKmW,YAAYpc,EAAGkN,MAEX,IAATA,GAAeA,GACXA,EAAIiF,OAAOnS,GAAG4I,SAAS,oBAAoByF,YAAY,kBAAmBnB,EAAIU,WAAW,sBADvE3H,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAE9E3C,KAAK6L,WAAW5E,GACb6O,GAAUA,EAAOlc,KAAKoG,QAGb,IAATiH,GAAeA,GAOjBA,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACZnM,EAAEqP,gBACJ7K,KAAK6K,cAAc5D,GAChB6O,GAAUA,EAAOlc,KAAKoG,QAVvBxE,EAAEqP,gBACJ7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QACjCmP,GAAUA,EAAOlc,KAAKoG,QAa7BxE,EAAEoa,KAAK/D,QAAU7R,KACjBxE,EAAEoa,KAAKU,MAAQL,EACfza,EAAEoa,KAAKY,QAAUN,EACb1a,EAAEoa,KAAKc,WAAYlb,EAAEoa,KAAKc,SAAW,QACtC/a,EAAE2E,WAAW9E,EAAEoa,KAAK/W,OAAQrD,EAAEoa,KAAK/W,IAAMrD,EAAEoa,KAAK/W,IAAIjF,KAAKoG,KAAMiH,IAC/DtL,EAAE2E,WAAW9E,EAAEoa,KAAKxV,QAAS5E,EAAEoa,KAAKxV,KAAO5E,EAAEoa,KAAKxV,KAAKxG,KAAKoG,KAAMiH,IACrEtL,EAAEia,KAAKpa,EAAEoa,QAIZO,YAAc,SAAU9J,EAAIpF,EAAKyB,GAChC,IAICzK,EAAKxE,EAAG6D,EAAGqZ,EAAKC,EAJb7c,GAAI,EACPwB,EAAIyE,KAAK4B,gBACTpG,EAAID,EAAEma,UACN/a,EAAIY,EAAE+G,KAAK4C,YAGZ,IAAImH,EAAM,OAAOtS,EAIjB,GAHGyB,EAAEma,oBAAsB1O,IAAgB,IAATA,GACjCA,EAAI7G,KAAK,kBAAmBrG,GAE1B4B,EAAEsF,QAAQoL,GAAK,CAEjB,GADAtS,EAAI4B,EAAE,SACF0Q,EAAG9O,OAAU,OAAO,EACxB,IAAI9D,EAAI,EAAG6D,EAAI+O,EAAG9O,OAAQ9D,EAAI6D,EAAG7D,KAChCwE,EAAM+B,KAAKmW,YAAY9J,EAAG5S,GAAIwN,GAAK,IAC5B1J,SACNxD,EAAIA,EAAEmS,OAAOjO,IAGflE,EAAIA,EAAE4I,eAEF,CAEJ,GADgB,iBAAN0J,IAAkBA,EAAK,CAAEjM,KAAOiM,KACtCA,EAAGjM,MAAoB,KAAZiM,EAAGjM,KAAe,OAAOrG,EACxCA,EAAI4B,EAAE,UACH0Q,EAAGxE,MAAQ9N,EAAE8N,KAAKwE,EAAGxE,MACrBwE,EAAGE,UAAYxS,EAAEqG,KAAKiM,EAAGE,UACzBF,EAAGG,OAASzS,EAAE4H,SAAS,UAAY0K,EAAGG,OACrC7Q,EAAEsF,QAAQoL,EAAGjM,QAASnC,EAAMoO,EAAGjM,KAAMiM,EAAGjM,KAAO,GAAIiM,EAAGjM,KAAKU,KAAK7C,IACpEtC,EAAEuE,KAAKmM,EAAGjM,KAAM,SAAU3G,EAAGI,GAC5BoE,EAAMtC,EAAE,SACLA,EAAE2E,WAAWzG,KAAMA,EAAIA,EAAED,KAAKoG,KAAMqM,IACxB,iBAALxS,EAAiBoE,EAAI4J,KAAK,OAAO,KAAMlN,EAAI,OAAS,QAASd,IAElEA,EAAEgO,OAAQhO,EAAEgO,KAAO,IACnBhO,EAAEgO,KAAK3I,OAAQrF,EAAEgO,KAAK3I,KAAO,KACjCjB,EAAI4J,KAAKhO,EAAEgO,MAAOlN,EAAI,OAAS,QAASd,EAAEuE,OACvCvE,EAAE4S,UAAYxO,EAAI0D,SAAS9H,EAAE4S,WAEjCxO,EAAIyO,QAAQ,0CACR7S,EAAE8S,MAAQN,EAAGM,OAAQ9S,EAAE8S,KAAON,EAAGM,MAClC9S,EAAE8S,QACwB,IAAzB9S,EAAE8S,KAAKnM,QAAQ,KAAevC,EAAI0E,SAAS,OAAOhB,SAAS9H,EAAE8S,MACzD1O,EAAI0E,SAAS,OAAO9F,IAAI,aAAa,QAAUhD,EAAE8S,KAAO,+BAEhE5S,EAAEmS,OAAOjO,KAEVlE,EAAE2S,QAAQ,yCACPL,EAAG1J,WACFnH,EAAEqa,oBAAmC,SAAbxJ,EAAGG,MAC7BzS,EAAE4H,SAAS,iBAAiBvB,KAAK,kBAAmBiM,EAAG1J,WAGpDnH,EAAEma,oBAAsB5b,EAAEqG,KAAK,kBAAmBiM,EAAG1J,UACrDhH,EAAEsF,QAAQoL,EAAG1J,WAAa0J,EAAG1J,SAASpF,SACxCU,EAAM+B,KAAKmW,YAAY9J,EAAG1J,SAAUsE,GAAK,IAClC1J,UACNqZ,EAAMjb,EAAE,WACJuQ,OAAOjO,GACXlE,EAAEmS,OAAO0K,MAWd,OALIlO,KACHiO,EAAMhb,EAAE,WACJuQ,OAAOnS,GACXA,EAAI4c,GAEE5c,GAER8c,SAAW,SAAU5P,EAAK6P,EAASC,EAAQrO,GAC1C,IAGCsO,EAAMC,EAAMC,EAAIxW,EAAG/F,EAAGwc,EAHnBC,EAAS,GACZ5b,EAAIwE,KAAK4B,gBACT2F,EAAQvH,KAiET,OA/DAiH,EAAMjH,KAAKgH,UAAUC,MACD,IAATA,IAAcA,EAAMjH,KAAKyC,gBAAgBuD,KAAK,cACzD8Q,EAAUnb,EAAEsF,QAAQ6V,GAAWA,EAAU,CAAE,KAAM,UAC7CpO,GAAe1I,KAAKI,KAAKiX,OAASP,EAAQhW,KAAKtF,EAAE6b,MAAMC,WAC3DP,EAASpb,EAAEsF,QAAQ8V,GAAUA,EAAS,GAEtC9P,EAAI/G,KAAK,WACRgX,EAAKvb,EAAEqE,MACPgX,EAAO,CAAE5W,KAAO,IACb0W,EAAQvZ,SAAUyZ,EAAKnP,KAAO,IACjClM,EAAEuE,KAAK4W,EAAS,SAAUrd,EAAG8K,IAC5B0S,EAAOC,EAAGrP,KAAKtD,KACJ0S,EAAK1Z,QAAU0Z,EAAK3V,QAAQ,gBAAgB,IAAI/D,SAC1DyZ,EAAKnP,KAAKtD,IAAM,IAAM0S,GAAM3V,QAAQ,iBAAiB,IAAIA,QAAQ,SAAS,KAAKA,QAAQ,KAAK,IAAIA,QAAQ,KAAK,OAG5G4V,EAAGpN,SAAS,iBAAkBkN,EAAKxK,MAAQ,QAC3C0K,EAAGpN,SAAS,mBAAoBkN,EAAKxK,MAAQ,UAC7C0K,EAAG9W,SAAU4W,EAAKzK,SAAW2K,EAAG9W,SACnCM,EAAIwW,EAAGvU,SAAS,MACdzC,KAAK,WACNvF,EAAIgB,EAAEqE,MAEL+W,EAAOxZ,SACgC,IAAvC5B,EAAE8F,QAAQ,YAAajG,EAAE8D,UACzB3E,EAAEgI,SAAS,OAAOrI,IAAI,GAAG4Q,MAAMqM,gBAAgBha,QAC9C5C,EAAEgI,SAAS,OAAOrI,IAAI,GAAGwN,WAAanN,EAAEgI,SAAS,OAAOrI,IAAI,GAAGwN,UAAUxG,QAAQ,kBAAkB,IAAI/D,QAExG4Z,GAAO,GACmC,IAAvCxb,EAAE8F,QAAQ,YAAajG,EAAE8D,UAAmB3D,EAAEsF,QAAQzF,EAAEgc,YAAchc,EAAEgc,UAAUja,QACpF5B,EAAEuE,KAAK1E,EAAEgc,UAAW,SAAU9d,EAAG+d,GAChC,GAAG9c,EAAEmP,SAAS2N,GAEb,OADAN,EAAOM,GACA,IAIVR,EAAO,CAAEpP,KAAO,GAAKzJ,MAAQmJ,EAAMiD,SAAS7P,EAAGwc,IAC/Cxb,EAAEuE,KAAK6W,EAAQ,SAAUW,EAAGC,GAC3BV,EAAKpP,KAAK8P,IAAM,KAAOhd,EAAEkN,KAAK8P,IAAM,KAAKrW,QAAQ,iBAAiB,IAAIA,QAAQ,SAAS,KAAKA,QAAQ,KAAK,IAAIA,QAAQ,KAAK,OAEjF,IAAvC3F,EAAE8F,QAAQ,YAAajG,EAAE8D,UAAmB3D,EAAEsF,QAAQzF,EAAEgc,YAAchc,EAAEgc,UAAUja,QACpF5B,EAAEuE,KAAK1E,EAAEgc,UAAW,SAAUE,EAAGC,GAChC,GAAGhd,EAAEmP,SAAS6N,GAAyB,OAAnBV,EAAKxK,SAAWkL,GAAU,IAG7Chd,EAAEgI,SAAS,OAAOrI,IAAI,GAAGwN,UAAUxG,QAAQ,kBAAkB,IAAIA,QAAQ,UAAU,IAAI/D,SACzF0Z,EAAKtK,KAAOhS,EAAEgI,SAAS,OAAOrI,IAAI,GAAGwN,UAAUxG,QAAQ,kBAAkB,IAAIA,QAAQ,SAAS,KAAKA,QAAQ,KAAK,IAAIA,QAAQ,KAAK,KAE/H3G,EAAEgI,SAAS,OAAOrI,IAAI,GAAG4Q,MAAMqM,gBAAgBha,SACjD0Z,EAAKtK,KAAOhS,EAAEgI,SAAS,OAAOrI,IAAI,GAAG4Q,MAAMqM,gBAAgBjW,QAAQ,OAAO,IAAIA,QAAQ,IAAI,MAI3F2V,EAAO1P,EAAMiD,SAAS7P,GAET,EAAX+F,EAAEnD,OAAcyZ,EAAK5W,KAAKU,KAAKmW,GAC3BD,EAAK5W,KAAO6W,KAEpBC,EAAKA,EAAGlR,KAAK,cACPzI,SAAUyZ,EAAKrU,SAAW4E,EAAMsP,SAASK,EAAIJ,EAASC,GAAQ,IACpEK,EAAOtW,KAAKkW,KAENI,MAaAzb,EAkHRF,OAjHEQ,GAAK,EACTN,EAAED,OAAOoH,OAAO,YAAa,CAC5BjB,OAAS,WAAc7B,KAAK4X,aAC5B1W,SAAW,GACX2B,IAAM,CACLgV,SAAW,SAAUpe,GACpB,IAAIqe,EAAQ9X,KAAK4B,gBAAgB4V,UAChCO,GAAK,EACLC,EAAW,WAAahY,KAAKwC,YAAc,KAC5C,IAAI7G,EAAEsF,QAAQ6W,IAA2B,IAAjBA,EAAMva,OAAgB,OAAO,EACrD,IAA0B,GAAvB5B,EAAE8F,QAAQhI,EAAEqe,GAAc,CAC5B,IAAKA,EAAMre,GACJ,OAAO,EADGA,EAAIqe,EAAMre,GAG5B,OAAGA,GAAKuG,KAAKI,KAAKoX,UAAUS,oBAElB,KADVF,EAAKpc,EAAEiB,OAAOC,IAAIC,QAAQkb,EAAW,IAAMhY,KAAKI,KAAKoX,UAAUS,kBAAkB,EAAOhc,MACrE8b,EAAG7M,MAAMC,QAAU,SAE5B,KADV4M,EAAKpc,EAAEiB,OAAOC,IAAIC,QAAQkb,EAAW,IAAMve,GAAG,EAAOwC,MAClC8b,EAAG7M,MAAMC,QAAU,IACtCnL,KAAKI,KAAKoX,UAAUS,iBAAmBxe,EACvCuG,KAAK2D,WAAWlK,KANuC,GASxDye,SAAW,WACV,OAAOlY,KAAKI,KAAKoX,UAAUS,kBAE5BnS,YAAc,SAAU9K,EAAKmc,GAC5B,IAAIW,EAAQ9X,KAAK4B,gBAAgB4V,UAChChc,EAAIwE,KAAK4B,gBAAgBU,KAAKkD,QAI/B,OAHG7J,EAAEsF,QAAQ6W,IAAUA,EAAMva,SAC5B4Z,EAAQA,IAAkC,GAA1Bxb,EAAE8F,QAAQ0V,EAAKW,GAAgBX,EAAOnX,KAAKI,KAAKoX,UAAUS,kBAExEzc,EAAE2b,IAAS3b,EAAE2b,GAAMnc,GAAeQ,EAAE2b,GAAMnc,GAC1CQ,EAAER,GAAeQ,EAAER,GACfA,GAERwP,SAAW,SAAUvD,EAAKkQ,GAEzB,KADAlQ,EAAMjH,KAAKgH,UAAUC,IAAQjH,KAAKI,KAAK+O,GAAGE,eAClCxF,OAAU,OAAO,EACzB,IAAIiO,EAAQ9X,KAAK4B,gBAAgB4V,UAChChc,EAAIwE,KAAK4B,gBAAgBU,KAAK4C,YAM/B,OAHC+B,EAFEtL,EAAEsF,QAAQ6W,IAAUA,EAAMva,QAC5B4Z,EAAQA,IAAkC,GAA1Bxb,EAAE8F,QAAQ0V,EAAKW,GAAgBX,EAAOnX,KAAKI,KAAKoX,UAAUS,iBACpEhR,EAAItE,SAAS,KAAOwU,IAEdlQ,EAAItE,SAAS,WACvBnH,IACFyL,EAAMA,EAAIgF,SACNtJ,SAAS,OAAO0G,SACbpC,EAAIpB,SAGXoB,EAAMA,EAAI6F,WAAWhB,OAAO,WAAa,OAAwB,GAAjB9L,KAAK+M,WAAkB,IAC5DC,WAGbC,SAAW,SAAUhG,EAAKzF,EAAK2V,GAE9B,KADAlQ,EAAMjH,KAAKgH,UAAUC,IAAQjH,KAAKI,KAAK+O,GAAGE,eAClCxF,OAAU,OAAO,EACzB,IAEC5L,EAFG6Z,EAAQ9X,KAAK4B,gBAAgB4V,UAChChc,EAAIwE,KAAK4B,gBAAgBU,KAAK4C,YAO/B,OAHC+B,EAFEtL,EAAEsF,QAAQ6W,IAAUA,EAAMva,QAC5B4Z,EAAQA,IAAkC,GAA1Bxb,EAAE8F,QAAQ0V,EAAKW,GAAgBX,EAAOnX,KAAKI,KAAKoX,UAAUS,iBACpEhR,EAAItE,SAAS,KAAOwU,IAEdlQ,EAAItE,SAAS,WACvBnH,GACFyC,EAAMgJ,EAAItE,SAAS,OAAOsJ,QAC1BhF,EAAIpB,KAAKrE,GAAKkL,QAAQzO,GACtB+B,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASzF,EAAK,KAAS2V,KAC/C,IAGPlQ,EAAMA,EAAI6F,WAAWhB,OAAO,WAAa,OAAwB,GAAjB9L,KAAK+M,WAAkB,GACvE/M,KAAK2D,WAAW,CAAE,IAAQsD,EAAK,KAASzF,EAAK,KAAS2V,IAC9ClQ,EAAI+F,UAAYxL,IAG1BoW,UAAY,WACX,IAGCO,EAHGL,EAAQ9X,KAAK4B,gBAAgB4V,UAChCrZ,EAAM,sBACN6Z,EAAW,WAAahY,KAAKwC,YAAc,KAE5C,GAAG7G,EAAEsF,QAAQ6W,IAAUA,EAAMva,OAAQ,CAEpC,IADAyC,KAAKI,KAAKoX,UAAUS,iBAAmBH,EAAM,GACzCK,EAAK,EAAGA,EAAKL,EAAMva,OAAQ4a,IAC9Bha,GAAO6Z,EAAW,IAAMF,EAAMK,GAAM,KACjCL,EAAMK,IAAOnY,KAAKI,KAAKoX,UAAUS,mBAAoB9Z,GAAO,mBAC/DA,GAAO,MAERlC,EAAKN,EAAEiB,OAAOC,IAAIkB,UAAU,CAAE,IAAQI,EAAK,MAAU,uBAGvDgO,YAAc,SAAUlF,EAAKmF,EAAUC,EAAIvB,GAe1C,OAdQ9K,KAAK8D,YAAW,EAAMmD,EAAKmF,EAAUC,EAAI,SAAU1R,GAC1D,IAECwd,EAFGL,EAAQ9X,KAAK4B,gBAAgB4V,UAChC9W,EAAI/F,EAAEgI,SAAS,KAEhB,GAAGhH,EAAEsF,QAAQ6W,IAAUA,EAAMva,OAAQ,CACpC,IAAI4a,EAAK,EAAGA,EAAKL,EAAMva,OAAQ4a,IAC1BzX,EAAE+I,GAAG,IAAMqO,EAAMK,KACpBxd,EAAEuR,OAAOxL,EAAEuF,GAAG,GAAGgG,QAAQ7D,YAAY0P,EAAMzW,KAAK,MAAMM,SAASmW,EAAMK,KAGvEzX,EAAEsL,IAAI,IAAM8L,EAAMzW,KAAK,QAAQgI,SAE7ByB,GAAYA,EAASlR,KAAKoG,KAAMrF,UAc7BgB,EA8ERF,QA7EAC,OAAOoH,OAAO,UAAW,CAC1BjB,OAAS,WACR,QAAuB,IAAblG,EAAEyc,OAA0B,KAAM,oDAE5C,IACCna,EADGzC,EAAIwE,KAAK4B,gBAAgByW,QAExB7c,EAAEiN,cACNxK,EAAMtC,EAAEyc,OAAO5c,EAAEiN,eACPxK,EAAIV,SAAUyC,KAAKI,KAAKkC,KAAK0C,QAAU/G,EAAIsD,MAAM,MAEvD/F,EAAE8M,cACNrK,EAAMtC,EAAEyc,OAAO5c,EAAE8M,eACPrK,EAAIV,SAAUyC,KAAKI,KAAKkC,KAAKwC,QAAU7G,EAAIsD,MAAM,MAEvD/F,EAAEwU,gBACN/R,EAAMtC,EAAEyc,OAAO5c,EAAEwU,iBACP/R,EAAIV,QAAUyC,KAAKI,KAAK+O,KAAMnP,KAAKI,KAAK+O,GAAGI,UAAYtR,EAAIsD,MAAM,MAE5EvB,KAAKyC,gBACH6V,KAAOtY,KAAKI,KAAK+O,GAAK,WAAa,UAAa,UAAWxT,EAAEyK,MAAM,WACnEpG,KAAKyC,gBACHxH,KAAK,6EAA8EU,EAAEyK,MAAM,SAAUjH,GACjGa,KAAK4B,gBAAgByW,QAAQE,WAAavY,KAAKwY,aAAarZ,EAAEsZ,UAAUC,UAAYvZ,EAAEsZ,UAAUzZ,MAAMsC,QAAQ,SAAS,MACxHtB,QACHA,QAELkB,SAAW,CACVuH,YAAe,cACfH,YAAe,cACf0H,cAAgB,gBAChBuI,WAAa,EACbI,eAAiB,IAElB9V,IAAM,CACL2V,YAAc,SAAU1e,GACvB,IAAGkG,KAAKI,KAAKkC,KAAKyG,WAAlB,CACA,IAAIvN,EAAIwE,KAAK4B,gBAAgByW,QAC7B,IAAIve,EAaH,OAZG0B,EAAEiN,cACJzI,KAAKyI,cACL9M,EAAEyc,OAAO5c,EAAEiN,YAAazI,KAAKI,KAAKkC,KAAK0C,QAAQ3D,KAAK,KAAM7F,EAAEmd,iBAE1Dnd,EAAE8M,cACJtI,KAAKsI,cACL3M,EAAEyc,OAAO5c,EAAE8M,YAAatI,KAAKI,KAAKkC,KAAKwC,QAAQzD,KAAK,KAAM7F,EAAEmd,sBAE1Dnd,EAAEwU,eAAiBhQ,KAAKI,KAAK+O,KAC/BnP,KAAKgQ,gBACLrU,EAAEyc,OAAO5c,EAAEwU,cAAehQ,KAAKI,KAAK+O,GAAGI,UAAUlO,KAAK,KAAM7F,EAAEmd,kBAIhE,OAAO7e,GACN,IAAK,YACL,IAAK,aACC0B,EAAE8M,cACNtI,KAAKsI,cACL3M,EAAEyc,OAAO5c,EAAE8M,YAAatI,KAAKI,KAAKkC,KAAKwC,QAAQzD,KAAK,KAAM7F,EAAEmd,iBAExDnd,EAAEiN,cACNzI,KAAKyI,cACL9M,EAAEyc,OAAO5c,EAAEiN,YAAazI,KAAKI,KAAKkC,KAAK0C,QAAQ3D,KAAK,KAAM7F,EAAEmd,iBAE7D,MACD,IAAK,cACL,IAAK,gBACCnd,EAAEwU,eAAiBhQ,KAAKI,KAAK+O,KACjCnP,KAAKgQ,gBACLrU,EAAEyc,OAAO5c,EAAEwU,cAAehQ,KAAKI,KAAK+O,GAAGI,UAAUlO,KAAK,KAAM7F,EAAEmd,wBAgB1Dhd,EA4BRF,QA3BAC,OAAOoH,OAAO,OAAQ,CACvBjB,OAAS,WACR7B,KAAKyC,gBACHxH,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC7C,IAAI6G,EAAMjH,KAAKgH,UAAU5G,EAAKgD,KAAK6D,KACnCA,GAAe,IAATA,EAAajH,KAAKyC,gBAAgBE,SAAS,MAAQsE,EAAItE,SAAS,MACtE3C,KAAKoB,KAAK6F,IACRjH,OACH/E,KAAK,sDAAuDU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAChFJ,KAAKoB,KAAKhB,EAAKgD,KAAK6D,IAAIiI,WACtBlP,OACH/E,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC7C,IAAIvG,GAAqB,GAAjBuG,EAAKgD,KAAK0K,GAAW9N,KAAKyC,gBAAkBrC,EAAKgD,KAAK0K,GAC9D9N,KAAKoB,KAAKvH,EAAE8I,SAAS,QACnB3C,QAENkB,SAAW,SAAUR,EAAGC,GAAK,OAAOX,KAAKwK,SAAS9J,GAAKV,KAAKwK,SAAS7J,GAAK,GAAK,GAC/EkC,IAAM,CACLzB,KAAO,SAAU6F,GAChB,IAAIzL,EAAIwE,KAAK4B,gBAAgBR,KAC5BzG,EAAIqF,KACLiH,EAAIiF,OAAOvQ,EAAEsN,UAAUhC,EAAItE,SAAS,OAAOvB,KAAKzF,EAAEyK,MAAM5K,EAAGb,KAC3DsM,EAAIjB,KAAK,aAAa9F,KAAK,WAAavF,EAAEyG,KAAKzF,EAAEqE,SACjDA,KAAK6L,WAAW5E,OAWTtL,EAwjBRF,OA/iBDc,EADAD,EADAD,EADAD,EADAD,EADAD,EADArC,EADAU,EADGL,GAAI,EASRyB,EAAEiB,OAAOgc,IAAM,CACdC,SAAU,EACVC,SAAU,EACVC,QAAS,EACTC,WAAa,GACbC,OAAS,EACTC,OAAS,EACTC,UAAY,EACZC,YAAc,EACdC,WAAa,GACbC,UAAY,GAEZC,WAAa,SAAUpa,EAAGiB,EAAMyF,GAC5BlK,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAO4c,UAAU,IAC9C,IACCra,EAAEuQ,cAAc+J,aAAe,KAC/Bta,EAAEuQ,cAAcgK,cAAgB,WAAa,OAAO,GACjDva,EAAEuQ,cAAcxE,QAAS/L,EAAEuQ,cAAcxE,MAAMyO,cAAgB,QACjE,MAAM/U,IAQR,OAPAjJ,EAAEiB,OAAOgc,IAAIK,OAAS9Z,EAAEya,MACxBje,EAAEiB,OAAOgc,IAAIM,OAAS/Z,EAAE0a,MACxBle,EAAEiB,OAAOgc,IAAIU,UAAYlZ,EACzBzE,EAAEiB,OAAOgc,IAAIC,SAAU,EACvBld,EAAEiB,OAAOgc,IAAIG,OAASpd,EAAE,+BAA+BkK,KAAKA,GAC5DlK,EAAE0C,UAAUpD,KAAK,YAAaU,EAAEiB,OAAOgc,IAAIkB,MAC3Cne,EAAE0C,UAAUpD,KAAK,UAAWU,EAAEiB,OAAOgc,IAAIY,YAClC,GAERM,KAAO,SAAU3a,GAChB,GAAIxD,EAAEiB,OAAOgc,IAAIC,QAAjB,CACA,IAAIld,EAAEiB,OAAOgc,IAAIE,QAAS,CACzB,KAA6C,EAA1ClG,KAAKmH,IAAI5a,EAAEya,MAAQje,EAAEiB,OAAOgc,IAAIK,SAAyD,EAA1CrG,KAAKmH,IAAI5a,EAAE0a,MAAQle,EAAEiB,OAAOgc,IAAIM,SAK3E,OAJNvd,EAAEiB,OAAOgc,IAAIG,OAAOrK,SAAS,QAC7B/S,EAAEiB,OAAOgc,IAAIE,SAAU,EACvBnd,EAAE0C,UAAUqF,eAAe,oBAAqB,CAAE,MAAUvE,EAAG,KAASxD,EAAEiB,OAAOgc,IAAIU,YAMvF,GAAc,cAAXna,EAAEH,KAAsB,CAC1B,IAAIjF,EAAI4B,EAAE0C,UAAW1D,EAAIZ,EAAEyX,YAAa9X,EAAIK,EAAEigB,aAC3C7a,EAAE0a,MAAQlf,EAAI,IACbyB,GAAgB,SAATC,IAAmB4d,cAAc7d,GAAMA,GAAM,GACnDA,IAAOC,EAAO,KAAMD,EAAM8d,YAAY,WAAcve,EAAE0C,UAAUmT,UAAU7V,EAAE0C,UAAUmT,YAAc7V,EAAEiB,OAAOgc,IAAII,aAAgB,OAGlI5c,GAAgB,OAATC,IAAiB4d,cAAc7d,GAAMA,GAAM,GAEnDT,EAAEiL,QAAQV,UAAY/G,EAAE0a,MAAQlf,GAAK,IACpCyB,GAAgB,OAATC,IAAiB4d,cAAc7d,GAAMA,GAAM,GACjDA,IAAOC,EAAO,OAAQD,EAAM8d,YAAY,WAAcve,EAAE0C,UAAUmT,UAAU7V,EAAE0C,UAAUmT,YAAc7V,EAAEiB,OAAOgc,IAAII,aAAgB,OAGpI5c,GAAgB,SAATC,IAAmB4d,cAAc7d,GAAMA,GAAM,GAGrD+C,EAAEya,MAAQlgB,EAAI,IACbyC,GAAgB,UAATG,IAAoB2d,cAAc9d,GAAMA,GAAM,GACpDA,IAAOG,EAAO,OAAQH,EAAM+d,YAAY,WAAcve,EAAE0C,UAAU2b,WAAWre,EAAE0C,UAAU2b,aAAere,EAAEiB,OAAOgc,IAAII,aAAgB,OAGtI7c,GAAgB,SAATG,IAAmB2d,cAAc9d,GAAMA,GAAM,GAErDR,EAAEiL,QAAQmI,SAAW5P,EAAEya,MAAQlgB,GAAK,IACnCyC,GAAgB,SAATG,IAAmB2d,cAAc9d,GAAMA,GAAM,GACnDA,IAAOG,EAAO,QAASH,EAAM+d,YAAY,WAAcve,EAAE0C,UAAU2b,WAAWre,EAAE0C,UAAU2b,aAAere,EAAEiB,OAAOgc,IAAII,aAAgB,OAGvI7c,GAAgB,UAATG,IAAoB2d,cAAc9d,GAAMA,GAAM,GAI1DR,EAAEiB,OAAOgc,IAAIG,OAAOlc,IAAI,CAAEiS,KAAQ3P,EAAEya,MAAQje,EAAEiB,OAAOgc,IAAIQ,YAAe,KAAMvK,IAAO1P,EAAE0a,MAAQle,EAAEiB,OAAOgc,IAAIS,WAAc,OAC1H1d,EAAE0C,UAAUqF,eAAe,cAAe,CAAE,MAAUvE,EAAG,KAASxD,EAAEiB,OAAOgc,IAAIU,cAEhFE,UAAY,SAAUra,GAClBhD,GAAO8d,cAAc9d,GACrBC,GAAO6d,cAAc7d,GACxBT,EAAE0C,UAAUoJ,OAAO,YAAa9L,EAAEiB,OAAOgc,IAAIkB,MAC7Cne,EAAE0C,UAAUoJ,OAAO,UAAW9L,EAAEiB,OAAOgc,IAAIY,WAC3C7d,EAAE0C,UAAUqF,eAAe,mBAAoB,CAAE,MAAUvE,EAAG,KAASxD,EAAEiB,OAAOgc,IAAIU,YACpF3d,EAAEiB,OAAOgc,IAAIG,OAAO1P,SACpB1N,EAAEiB,OAAOgc,IAAIK,OAAS,EACtBtd,EAAEiB,OAAOgc,IAAIM,OAAS,EACtBvd,EAAEiB,OAAOgc,IAAIU,UAAY,GACzB3d,EAAEiB,OAAOgc,IAAIC,SAAU,EACvBld,EAAEiB,OAAOgc,IAAIE,SAAU,IAGzBnd,EAAE,WAEDA,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IADR,iJAC0BC,MAAQ,aAGpDzC,EAAED,OAAOoH,OAAO,MAAO,CACtBjB,OAAS,WACR7B,KAAKI,KAAKwY,IAAM,CACfuB,QAAS,EACTtN,OAAQ,EACRuN,QAAS,EACTxN,QAAS,EACTyN,KAAM,EACNC,UAAW,EACXjI,EAAI,EACJkI,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,GAEP9a,KAAKyC,gBACHxH,KAAK,oBAAqBU,EAAEyK,MAAM,SAAUjH,GAC3C,GAAGxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,SAC9CsE,KAAKI,KAAK+T,SACZta,EAAEgO,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,OAC1CrY,GAAMA,EAAG2L,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,OACvD5Y,EAAEiB,OAAOgc,IAAIG,OAAOlR,KAAK,QAAS,4BAA8B7H,KAAKI,KAAK+T,OAAOI,QAG/EpV,EAAEuQ,gBAAkBvQ,EAAEoH,QAAU5K,EAAEiB,OAAOgc,IAAIU,UAAUrS,KAAOtL,EAAEA,EAAEiB,OAAOgc,IAAIU,UAAUrS,KAAK1J,QAAU5B,EAAEA,EAAEiB,OAAOgc,IAAIU,UAAUrS,KAAKmK,QAAQ,iBAAiB,KAAOjS,EAAEoH,QAAQ,CAChL,IAAwCwU,EAApCC,EAAKrf,EAAED,OAAOuG,WAAW9C,EAAEoH,QAC5ByU,EAAG5a,KAAKwY,IAAIqC,SAEJ,KADVF,EAAKC,EAAGpZ,gBAAgBgX,IAAIsC,WAAWthB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAM8gB,EAAGvY,gBAAiB0Y,SAAU,OACjE,IAAdJ,EAAGX,SAAiC,IAAdW,EAAGnO,SAAgC,IAAbmO,EAAGlO,OAChElR,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,cAIlDmT,EAAG1N,aAAapT,EAAG8gB,EAAGvY,gBAAiB,QACpCuY,EAAG9M,cACLvS,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,gBAKnD7H,OACH/E,KAAK,iBAAkBU,EAAEyK,MAAM,SAAUjH,GAExC,GAAGxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,QAAUyD,EAAEuQ,gBAAkBvQ,EAAEoH,QAAU5K,EAAEiB,OAAOgc,IAAIU,UAAUrS,KAAOtL,EAAEA,EAAEiB,OAAOgc,IAAIU,UAAUrS,KAAK1J,QAAU5B,EAAEA,EAAEiB,OAAOgc,IAAIU,UAAUrS,KAAKmK,QAAQ,iBAAiB,KAAOjS,EAAEoH,OAAQ,CACzO,IAA+CwU,EAA3CC,EAAKrf,EAAED,OAAOuG,WAAW9C,EAAEuQ,eAC5BsL,EAAG5a,KAAKwY,IAAIqC,SAEJ,KADVF,EAAKC,EAAGpZ,gBAAgBgX,IAAIsC,WAAWthB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAM8gB,EAAGvY,gBAAiB0Y,SAAU,OACjE,IAAdJ,EAAGX,SAAiC,IAAdW,EAAGnO,SAAgC,IAAbmO,EAAGlO,OAChEmO,EAAGpZ,gBAAgBgX,IAAIwC,YAAYxhB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAM8gB,EAAGvY,gBAAiB0Y,SAAU,IAI9FH,EAAG3M,UAAUnU,EAAG8gB,EAAGvY,gBAAiB,OAAQtD,EAAE6b,EAAGpZ,gBAAgBgX,IAAIyC,cAAgB,UAGrFrb,OACH/E,KAAK,oBAAqBU,EAAEyK,MAAM,SAAUjH,GAC3C,GAAGA,EAAEmc,eAAiBnc,EAAEmc,cAAc/S,IAA6B,uBAAvBpJ,EAAEmc,cAAc/S,GAC3D,OAAO,EAEL5M,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,SAC9CsE,KAAKI,KAAKwY,IAAIgC,IAAMX,cAAcja,KAAKI,KAAKwY,IAAIgC,IAChD5a,KAAKI,KAAKwY,IAAIiC,IAAMZ,cAAcja,KAAKI,KAAKwY,IAAIiC,IAChD7a,KAAKI,KAAKwY,IAAI2B,KAAOpR,aAAanJ,KAAKI,KAAKwY,IAAI2B,KAChDva,KAAKI,KAAKwY,IAAI4B,KAAOrR,aAAanJ,KAAKI,KAAKwY,IAAI4B,KAChD7e,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOmH,SAAS,cAC/CnO,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,oBAGjD7H,OACH/E,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,GAC1C,GAAGxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,OAAQ,CACzD,IAAI6f,EAAMvb,KAAKyC,gBAAgB,GAG5BtD,EAAEya,MAAQ,GAAK5Z,KAAKI,KAAKwY,IAAI6B,IAAI3L,KAAO9O,KAAKI,KAAKwY,IAAI8B,IACrD1a,KAAKI,KAAKwY,IAAIgC,IAAMX,cAAcja,KAAKI,KAAKwY,IAAIgC,IACnD5a,KAAKI,KAAKwY,IAAIgC,GAAKV,YAAYve,EAAEyK,MAAM,WAAcpG,KAAKga,YAAcre,EAAEiB,OAAOgc,IAAII,YAAeuC,GAAM,MAEnGpc,EAAEya,MAAQ,GAAK5Z,KAAKI,KAAKwY,IAAI6B,IAAI3L,MACrC9O,KAAKI,KAAKwY,IAAIgC,IAAMX,cAAcja,KAAKI,KAAKwY,IAAIgC,IACnD5a,KAAKI,KAAKwY,IAAIgC,GAAKV,YAAYve,EAAEyK,MAAM,WAAcpG,KAAKga,YAAcre,EAAEiB,OAAOgc,IAAII,YAAeuC,GAAM,MAGvGvb,KAAKI,KAAKwY,IAAIgC,IAAMX,cAAcja,KAAKI,KAAKwY,IAAIgC,IAIjDzb,EAAE0a,MAAQ,GAAK7Z,KAAKI,KAAKwY,IAAI6B,IAAI5L,IAAM7O,KAAKI,KAAKwY,IAAI+B,IACpD3a,KAAKI,KAAKwY,IAAIiC,IAAMZ,cAAcja,KAAKI,KAAKwY,IAAIiC,IACnD7a,KAAKI,KAAKwY,IAAIiC,GAAKX,YAAYve,EAAEyK,MAAM,WAAcpG,KAAKwR,WAAa7V,EAAEiB,OAAOgc,IAAII,YAAeuC,GAAM,MAElGpc,EAAE0a,MAAQ,GAAK7Z,KAAKI,KAAKwY,IAAI6B,IAAI5L,KACrC7O,KAAKI,KAAKwY,IAAIiC,IAAMZ,cAAcja,KAAKI,KAAKwY,IAAIiC,IACnD7a,KAAKI,KAAKwY,IAAIiC,GAAKX,YAAYve,EAAEyK,MAAM,WAAcpG,KAAKwR,WAAa7V,EAAEiB,OAAOgc,IAAII,YAAeuC,GAAM,MAGtGvb,KAAKI,KAAKwY,IAAIiC,IAAMZ,cAAcja,KAAKI,KAAKwY,IAAIiC,MAInD7a,OACH/E,KAAK,gBAAiBU,EAAEyK,MAAM,SAAUjH,GACpCxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,QAAU7B,GAAKqC,IAChErC,EAAE2hB,OACFtf,EAAGsf,SAEFxb,OACHmG,SAAS,IAAK,mBAAoBxK,EAAEyK,MAAM,SAAUjH,GACnD,GAAe,IAAZA,EAAEwT,MAEJ,OADA3S,KAAKyb,WAAWtc,EAAEuQ,cAAevQ,IAC1B,GAENa,OACHmG,SAAS,IAAK,oBAAqBxK,EAAEyK,MAAM,SAAUjH,GACjDxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,QACjDsE,KAAK0b,UAAUvc,EAAEuQ,gBAEhB1P,OACHmG,SAAS,IAAK,mBAAoBxK,EAAEyK,MAAM,SAAUjH,GAChDxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,SAC7CnB,GAAMA,EAAEgD,QAAUhD,EAAEoI,SAAS,KAAK,KAAOxD,EAAEuQ,eAC9C1P,KAAK0b,UAAUvc,EAAEuQ,oBAEkB,IAA1B1P,KAAKI,KAAKwY,IAAIyB,IAAIxL,MAAuB7O,KAAKI,KAAKwY,IAAIyB,IAAM1e,EAAEwD,EAAEoH,QAAQgL,UACnFvR,KAAKI,KAAKwY,IAAIvG,GAAKlT,EAAE0a,OAAS7Z,KAAKI,KAAKwY,IAAIyB,IAAIxL,KAAO,IAAM7O,KAAKI,KAAKkC,KAAKyD,UACzE/F,KAAKI,KAAKwY,IAAIvG,EAAI,IAAKrS,KAAKI,KAAKwY,IAAIvG,GAAKrS,KAAKI,KAAKkC,KAAKyD,WAC5D/F,KAAK2b,aAEJ3b,OACHmG,SAAS,IAAK,oBAAqBxK,EAAEyK,MAAM,SAAUjH,GACpD,GAAGxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,OAAQ,CACzD,GAAGyD,EAAEmc,eAAiBnc,EAAEmc,cAAc/S,IAA6B,uBAAvBpJ,EAAEmc,cAAc/S,GAC3D,OAAO,EAEJ1O,GAAKA,EAAE2hB,OACPtf,GAAMA,EAAGsf,OASbxb,KAAKI,KAAKwY,IAAIkC,IAAMhZ,YACRnH,EAAgDqF,KAApC,WAAcrF,EAAEihB,UAAUzc,KAClD,GADE,IAAUxE,GAGXqF,OACHmG,SAAS,IAAK,iBAAkBxK,EAAEyK,MAAM,SAAUjH,GAC9CxD,EAAEiB,OAAOgc,IAAIE,SAAWnd,EAAEiB,OAAOgc,IAAIU,UAAU5d,QACjDsE,KAAK6b,WAAW1c,IAEfa,OAELrE,EAAE0C,UACApD,KAAK,mBAAoBU,EAAEyK,MAAM,WAC7BpG,KAAKI,KAAKwY,IAAI2B,KAAOpR,aAAanJ,KAAKI,KAAKwY,IAAI2B,KAChDva,KAAKI,KAAKwY,IAAI4B,KAAOrR,aAAanJ,KAAKI,KAAKwY,IAAI4B,KAChDxa,KAAKI,KAAKwY,IAAIgC,IAAMX,cAAcja,KAAKI,KAAKwY,IAAIgC,IAChD5a,KAAKI,KAAKwY,IAAIiC,IAAMZ,cAAcja,KAAKI,KAAKwY,IAAIiC,IACnD7a,KAAKI,KAAKwY,IAAI/L,OAAS,EACvB7M,KAAKI,KAAKwY,IAAIhM,QAAS,EACvB5M,KAAKI,KAAKwY,IAAIwB,QAAS,EACvBpa,KAAKI,KAAKwY,IAAIyB,KAAO,EACrBra,KAAKI,KAAKwY,IAAI0B,UAAW,EACzBta,KAAKI,KAAKwY,IAAIvG,GAAM,EACpBrS,KAAKI,KAAKwY,IAAI2B,KAAO,EACrBva,KAAKI,KAAKwY,IAAI4B,KAAO,EACrBxa,KAAKI,KAAKwY,IAAIgC,IAAM,EACpB5a,KAAKI,KAAKwY,IAAIiC,IAAM,EACpB7a,KAAKI,KAAKwY,IAAIuB,QAAS,EACvBna,KAAKI,KAAKwY,IAAIqC,SAAU,EACrBphB,GAAKA,EAAEgD,IAAI,CAAE,IAAQ,YACrBX,GAAMA,EAAGW,IAAI,CAAE,IAAQ,aACxBmD,OACH/E,KAAK,oBAAqBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC9C,GAAGA,EAAKA,KAAK1E,OAAQ,CACpB,IAAIogB,EAAKngB,EAAEyE,EAAKiG,MAAME,QACnBuV,EAAG3Z,QAAQ,WAAW2H,SAAS,UAAY9J,KAAKwC,cAClDxC,KAAK0b,UAAUI,KAGf9b,OAgBL,IAAIxE,EAAIwE,KAAK4B,gBAAgBgX,IAC1Bpd,EAAEugB,aACJpgB,EAAE0C,UACA8H,SAAS3K,EAAEugB,YAAa,oBAAsB/b,KAAKwC,YAAa7G,EAAEyK,MAAM,SAAUjH,GAClFjF,EAAIiF,EAAEoH,OACN5K,EAAEiB,OAAOgc,IAAIW,WAAWpa,EAAG,CAAEzD,QAAS,EAAMuL,IAAM9H,EAAEoH,QAAU,kCAAoC5K,EAAEwD,EAAEoH,QAAQuM,QAC3G9S,KAAKI,KAAK+T,SACTta,GAAKA,EAAEgO,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,OAClDrY,GAAMA,EAAG2L,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,OACvD5Y,EAAEiB,OAAOgc,IAAIG,OAAOlR,KAAK,QAAS,4BAA8B7H,KAAKI,KAAK+T,OAAOI,QAElF5Y,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,kBACjD,IAAI0T,EAAMvb,KAAKyC,gBACfzC,KAAKI,KAAKwY,IAAI6B,IAAMc,EAAIhK,SACxBvR,KAAKI,KAAKwY,IAAI8B,GAAK1Z,SAASua,EAAIxM,QAAQ,IACxC/O,KAAKI,KAAKwY,IAAI+B,GAAK3Z,SAASua,EAAIrV,SAAS,IACzClG,KAAKI,KAAKwY,IAAIqC,SAAU,EACxB9b,EAAEsQ,kBACAzP,OAEFxE,EAAEwgB,aACJrgB,EAAE0C,UACA8H,SAAS3K,EAAEwgB,YAAa,qBAAuBhc,KAAKwC,YAAa7G,EAAEyK,MAAM,SAAUjH,GAC/Ea,KAAKI,KAAKwY,IAAIuB,QAAUna,KAAK4B,gBAAgBgX,IAAIqD,WAAWriB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAMyB,EAAEwD,EAAEoH,QAAS,EAAMpH,KAC7GxD,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,cAEhD7H,OACHmG,SAAS3K,EAAEwgB,YAAa,qBAAuBhc,KAAKwC,YAAa7G,EAAEyK,MAAM,SAAUjH,GAC/Ea,KAAKI,KAAKwY,IAAIuB,QAChBxe,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,mBAEhD7H,OACHmG,SAAS3K,EAAEwgB,YAAa,kBAAoBhc,KAAKwC,YAAa7G,EAAEyK,MAAM,SAAUjH,GAC5Ea,KAAKI,KAAKwY,IAAIuB,QAAUxe,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOmH,SAAS,cACvE9J,KAAK4B,gBAAgBgX,IAAIsD,YAAYtiB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAMyB,EAAEwD,EAAEoH,QAAS,EAAMpH,KAEnFa,QAGPkB,SAAW,CACVma,cAAgB,OAChBc,cAAgB,IAChBC,aAAe,IACfJ,YAAe,eACfC,WAAc,WAAkB,OAAO,GACvCC,YAAevgB,EAAEsH,KACjB8Y,YAAe,oBACfX,YAAezf,EAAEsH,KACjBiY,WAAc,WAAkB,MAAO,CAAErO,OAAQ,EAAOD,QAAS,EAAOwN,QAAS,KAElFvX,IAAM,CACLwZ,YAAc,WACb,GAAI9hB,GAAMA,EAAEgD,OAAZ,CAKA,GAJAyC,KAAKI,KAAKwY,IAAIyB,IAAM9f,EAAEgX,SACnBvR,KAAK4B,gBAAgBU,KAAKgD,MAC5BtF,KAAKI,KAAKwY,IAAIyB,IAAIiC,MAAQtc,KAAKI,KAAKwY,IAAIyB,IAAIvL,KAAOvU,EAAEwU,SAEnD/O,KAAKI,KAAKwY,IAAIqC,QAAS,CACzB,IAAIva,EAAIV,KAAK4B,gBAAgBgX,IAAIsC,WAAWthB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAMK,IAKxE,OAJAyF,KAAKI,KAAKwY,IAAI/L,MAAQnM,EAAEmM,MACxB7M,KAAKI,KAAKwY,IAAIhM,OAASlM,EAAEkM,OACzB5M,KAAKI,KAAKwY,IAAIwB,OAAS1Z,EAAE0Z,OACzBpa,KAAKI,KAAKwY,IAAI0B,UAAW,EAClBta,KAAK2b,WAcb,OAZA3b,KAAKsN,aAAapT,EAAGK,EAAG,UACxByF,KAAKI,KAAKwY,IAAIhM,OAAS5M,KAAKkO,aAC5BlO,KAAKsN,aAAapT,EAAGK,EAAG,SACxByF,KAAKI,KAAKwY,IAAI/L,MAAQ7M,KAAKkO,aACxBlO,KAAKkJ,WAAW3O,IAClByF,KAAKsN,aAAapT,EAAGK,EAAG,UACxByF,KAAKI,KAAKwY,IAAIwB,OAASpa,KAAKkO,cAG5BlO,KAAKI,KAAKwY,IAAIwB,QAAS,EAExBpa,KAAKI,KAAKwY,IAAI0B,UAAW,EAClBta,KAAK2b,aAEbA,SAAW,WACV,GAAI3b,KAAKI,KAAKwY,IAAI0B,SAAlB,CACA,IAGC/M,EAHGrT,EAAI,CAAC,SAAS,SAAS,SAC1BK,GAAI,EACJ+K,EAAMtF,KAAK4B,gBAAgBU,KAAKgD,IAiBjC,OAfmDpL,EAAhD8F,KAAKI,KAAKwY,IAAIvG,EAAIrS,KAAKI,KAAKkC,KAAKyD,UAAU,EAAS,CAAC,SAAS,SAAS,SAClE/F,KAAKI,KAAKwY,IAAIvG,GAA8B,EAAzBrS,KAAKI,KAAKkC,KAAKyD,UAAY,EACjD/F,KAAKI,KAAKwY,IAAIvG,EAAIrS,KAAKI,KAAKkC,KAAKyD,UAAU,EAAI,CAAC,SAAS,SAAS,SAAW,CAAC,SAAS,QAAQ,UAEzF,CAAC,QAAQ,SAAS,UAC7BpK,EAAEuE,KAAKhG,EAAGyB,EAAEyK,MAAM,SAAU3M,EAAG+H,GAC9B,GAAGxB,KAAKI,KAAKwY,IAAIpX,GAGhB,OAFA7F,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,aACjDtN,EAAIiH,GACG,GAENxB,QACM,IAANzF,GAAeoB,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,kBAEnE0F,EAAMjI,EAAOtF,KAAKI,KAAKwY,IAAIyB,IAAIiC,MAAQ,GAAOtc,KAAKI,KAAKwY,IAAIyB,IAAIvL,KAAO,GAChEvU,GACN,IAAK,SACJV,EAAEgD,IAAI,CAAE,KAAS0Q,EAAM,KAAM,IAASvN,KAAKI,KAAKwY,IAAIyB,IAAIxL,IAAM,EAAK,OAAQ0N,OACxErgB,GAAMA,EAAGW,IAAI,CAAE,KAAU0Q,EAAM,EAAK,KAAM,IAASvN,KAAKI,KAAKwY,IAAIyB,IAAIxL,IAAM,EAAK,OAAQ0N,OAC3F,MACD,IAAK,QACJ1iB,EAAEgD,IAAI,CAAE,KAAS0Q,EAAM,KAAM,IAASvN,KAAKI,KAAKwY,IAAIyB,IAAIxL,IAAM7O,KAAKI,KAAKkC,KAAKyD,UAAY,EAAK,OAAQwW,OACnGrgB,GAAMA,EAAGW,IAAI,CAAE,KAAU0Q,EAAM,EAAK,KAAM,IAASvN,KAAKI,KAAKwY,IAAIyB,IAAIxL,IAAM7O,KAAKI,KAAKkC,KAAKyD,UAAY,EAAK,OAAQwW,OACtH,MACD,IAAK,SACJ1iB,EAAEgD,IAAI,CAAE,KAAS0Q,GAAQjI,GAAO,EAAI,GAAK,KAAM,IAAStF,KAAKI,KAAKwY,IAAIyB,IAAIxL,IAAM7O,KAAKI,KAAKkC,KAAKyD,UAAU,EAAI,EAAK,OAAQwW,OACvHrgB,GAAMA,EAAGsf,OACZ,MACD,QACC3hB,EAAE2hB,OACCtf,GAAMA,EAAGsf,OAId,OADAjf,EAAWhC,IAGZiiB,SAAW,WACVxc,KAAKI,KAAKwY,IAAI4B,KAAM,EACpBxa,KAAKiI,UAAU1N,EAAGoB,EAAEyK,MAAMpG,KAAKqc,YAAYrc,OAAO,IAEnD6b,WAAa,SAAU1c,GACnBa,KAAKI,KAAKwY,IAAIqC,SACbjb,KAAKI,KAAKwY,IAAI/L,OAAS7M,KAAKI,KAAKwY,IAAIhM,QAAU5M,KAAKI,KAAKwY,IAAIwB,SAC/Dpa,KAAK4B,gBAAgBgX,IAAIwC,YAAYxhB,KAAKoG,KAAM,CAAE,EAAM9F,EAAG,EAAMK,EAAG,EAAMgC,KAI3EyD,KAAKqc,cACLrc,KAAKqO,UAAUnU,EAAGK,EAAGgC,EAAU4C,EAAEa,KAAK4B,gBAAgBgX,IAAIyC,cAAgB,SAG3E9gB,EADAL,GAAI,EAEJL,EAAE2hB,OACCtf,GAAMA,EAAGsf,QAEbE,UAAY,SAAUzU,GAClBjH,KAAKI,KAAKwY,IAAIkC,MAChB3R,aAAanJ,KAAKI,KAAKwY,IAAIkC,KAC3B9a,KAAKI,KAAKwY,IAAIkC,KAAM,GAErB,IAAItf,EAAIwE,KAAK4B,gBAAgBgX,IAC7B5Y,KAAKI,KAAKwY,IAAI0B,UAAW,EACzB/f,EAAIyF,KAAKgH,UAAUC,GAChBzL,EAAE2gB,eAEDnc,KAAKI,KAAKwY,IAAI2B,KAAOpR,aAAanJ,KAAKI,KAAKwY,IAAI2B,KACnDva,KAAKI,KAAKwY,IAAI2B,IAAMzY,WAAWnG,EAAEyK,MAAMpG,KAAKqc,YAAarc,MAAOxE,EAAE2gB,gBAGlEnc,KAAKqc,cAEH7gB,EAAE4gB,cACDpc,KAAKI,KAAKwY,IAAI4B,KAAOrR,aAAanJ,KAAKI,KAAKwY,IAAI4B,KAChDjgB,GAAKA,EAAEgD,QAAUhD,EAAEuP,SAAS,mBAE9B9J,KAAKI,KAAKwY,IAAI4B,IAAM1Y,WAAWnG,EAAEyK,MAAMpG,KAAKwc,SAAUxc,MAAOxE,EAAE4gB,gBAI7D7hB,GAAKA,EAAEgD,QAAUhD,EAAEuP,SAAS,kBAC9B9J,KAAKwc,YAIRZ,UAAY,SAAUzc,GACrBa,KAAKI,KAAKwY,IAAI/L,OAAS,EACvB7M,KAAKI,KAAKwY,IAAIhM,QAAS,EACvB5M,KAAKI,KAAKwY,IAAIwB,QAAS,EACvBze,EAAEiB,OAAOgc,IAAIG,OAAOpW,SAAS,OAAOkF,KAAK,QAAQ,kBACjDhO,EAAE2hB,OACCtf,GAAMA,EAAGsf,OACTjhB,GAAKA,EAAE,KAAO4E,EAAEoH,OAAO8J,aACtBrQ,KAAKI,KAAKwY,IAAI2B,MAChBpR,aAAanJ,KAAKI,KAAKwY,IAAI2B,KAC3Bva,KAAKI,KAAKwY,IAAI2B,KAAM,GAElBva,KAAKI,KAAKwY,IAAI4B,MAChBrR,aAAanJ,KAAKI,KAAKwY,IAAI4B,KAC3Bxa,KAAKI,KAAKwY,IAAI4B,KAAM,KAIvBiB,WAAa,SAAUxU,EAAK9H,GAC3BjF,EAAI8F,KAAKgH,UAAUC,GAChBjH,KAAKI,KAAK+O,IAAMnP,KAAKiR,YAAY/W,KAAMA,EAAI8F,KAAKgH,UAAU,MAAM,IACnE,IAAIyV,EAAgB,EAAXviB,EAAEqD,OAAayC,KAAK8F,YAAY,sBAAwB9F,KAAKwK,SAAStQ,GAC9EqhB,EAAMvb,KAAKyC,gBACRzC,KAAK4B,gBAAgBU,KAAK4C,cAAeuX,EAAKA,EAAGnb,QAAQ,MAAM,QAAQA,QAAQ,MAAM,SACzF3F,EAAEiB,OAAOgc,IAAIW,WAAWpa,EAAG,CAAEzD,QAAS,EAAMuL,IAAM/M,GAAK,kCAAoCuiB,GACxFzc,KAAKI,KAAK+T,SACTta,GAAKA,EAAEgO,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,OAClDrY,GAAMA,EAAG2L,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,OACvD5Y,EAAEiB,OAAOgc,IAAIG,OAAOlR,KAAK,QAAS,4BAA8B7H,KAAKI,KAAK+T,OAAOI,QAElFvU,KAAKI,KAAKwY,IAAI6B,IAAMc,EAAIhK,SACxBvR,KAAKI,KAAKwY,IAAI8B,GAAK1Z,SAASua,EAAIxM,QAAQ,IACxC/O,KAAKI,KAAKwY,IAAI+B,GAAK3Z,SAASua,EAAIrV,SAAS,IACzClG,KAAKI,KAAKwY,IAAIuB,QAAS,MAI1Bxe,EAAE,WAaDA,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IAZR,0iCAY0BC,MAAQ,WACnDvE,EAAI8B,EAAE,WAAWkM,KAAK,CAAEU,GAAK,kBAAmBiT,OAAO3V,KAAK,WAC1D5K,KAAK,wBAAyB,SAAUkE,GAKxC,OAJAtF,EAAE2hB,OACFtf,EAAGsf,OACHrc,EAAEsQ,iBACFtQ,EAAEud,4BACK,IAEPhO,SAAS,QACXxS,EAAKP,EAAE,WAAWkM,KAAK,CAAEU,GAAK,uBAAwBiT,OACpDvgB,KAAK,UAAW,SAAUkE,GAC1B,GAAG5E,GAAKA,EAAEgD,OAIT,OAHAhD,EAAEoI,SAAS,KAAK6S,QAAQrW,GACxBA,EAAEsQ,iBACFtQ,EAAEud,4BACK,IAGRzhB,KAAK,aAAc,SAAUkE,GAC7B,IAAIwO,EAAKhS,EAAEwD,EAAEmc,eACb,IAAG3N,EAAGlE,GAAG,YAA+C,IAAjCkE,EAAGxL,QAAQ,WAAW5E,SACzChD,GAAKA,EAAEgD,OAMT,OALAhD,EAAEoI,SAAS,KAAK6S,QAAQrW,GACxBtF,EAAE2hB,OACFtf,EAAGsf,OACHrc,EAAEsQ,iBACFtQ,EAAEud,4BACK,IAIThO,SAAS,QACX/S,EAAE0C,UAAUpD,KAAK,oBAAqB,SAAUkE,EAAGiB,GAC/CA,EAAKA,KAAK1E,SAAU7B,EAAE0iB,OAAWrgB,GAAMA,EAAGqgB,UAE9C5gB,EAAE0C,UAAUpD,KAAK,mBAAoB,SAAUkE,EAAGiB,GAC9CA,EAAKA,KAAK1E,SAAU7B,EAAE2hB,OAAWtf,GAAMA,EAAGsf,aAYrC7f,EA0ORF,QAzOAC,OAAOoH,OAAO,WAAY,CAC3BjB,OAAS,WACR7B,KAAKI,KAAKuc,SAASC,KAAO5c,KAAK4B,gBAAgB+a,SAASE,YACrD7c,KAAKI,KAAK+O,IAAMnP,KAAKI,KAAKuc,SAASC,OACrC5c,KAAK4P,YAAc5P,KAAKmQ,cAAgBnQ,KAAKmR,aAAexV,EAAEsH,KAC9DjD,KAAK4R,aAAe5R,KAAK8c,aAG1B9c,KAAKyC,gBACHxH,KAAK,uEAAwEU,EAAEyK,MAAM,SAAUjH,EAAGiB,GACjGJ,KAAK+c,oBAAoB3c,EAAKgD,KAAK6D,MACjCjH,OACH/E,KAAK,gBAAiBU,EAAEyK,MAAM,SAAUjH,GACvCa,KAAK+c,uBACH/c,OACHmG,SAAWnG,KAAKI,KAAK+O,IAAMnP,KAAKI,KAAKuc,SAASC,KAAO,IAAM,sBAAyB,eAAgBjhB,EAAEyK,MAAM,SAAUjH,GAIrH,GAHAA,EAAEsQ,iBACCzP,KAAKgH,UAAU7H,EAAEoH,QAAQuD,SAAS,kBAAqB9J,KAAKgd,aAAa7d,EAAEoH,QACvEvG,KAAKid,WAAW9d,EAAEoH,SACtBvG,KAAKI,KAAK+O,KAAMnP,KAAKI,KAAKuc,SAASC,KAMrC,OADAzd,EAAEud,4BACK,EALP1c,KAAKgQ,gBACFhQ,KAAKI,KAAKiY,SAAWrY,KAAKwY,YAAY,gBAMxCxY,QAENkB,SAAW,CACV2b,aAAc,EACdK,WAAY,EACZC,iBAAkB,EAClBC,qBAAsB,EACtBC,sBAAwB,SAAUniB,GAAK,MAAO,CAAG,UAAYA,EAAE,GAAGqN,IAAMqK,KAAK0K,KAAqB,IAAhB1K,KAAK2K,WAAsB,KAE9Gra,UAAY,WACXlD,KAAKyC,gBACHuD,KAAK,8BAA8BoC,YAAY,wBAAwB2D,MACvE/F,KAAK,uBAAuBqD,UAE/BxG,IAAM,CACL2a,iBAAmB,SAAUtiB,EAAGkF,GAC5BA,EAAKqd,SACPzd,KAAKid,WAAW/hB,GAAG,IAGrB6hB,oBAAsB,SAAU9V,GAE/B,IAAW,KADXA,EAAOA,IAAe,GAARA,EAAqDjH,KAAKgH,UAAUC,GAAxDjH,KAAKyC,gBAAgBuD,KAAK,cACpD,CACA,IAAIlM,EAAiBa,EAAd4M,EAAQvH,KAAS0d,EAAK1d,KAAK4B,gBAAgB+a,SAASO,UAAWS,EAAK3d,KAAK4B,gBAAgB+a,SAASQ,gBAAiBS,EAAM5d,KAAK4B,gBAAgB+a,SAASU,sBAC9JpW,EAAI/G,KAAK,WACRvF,EAAIgB,EAAEqE,MACNlG,EAAIa,EAAE8O,GAAG,QAAU9O,EAAEmP,SAAS,mBAAsB6T,GAAMhjB,EAAEgI,SAAS,YAAYpF,QAAW,iBAAmB,mBAC/G5C,EAAEqL,KAAK,MAAM4B,UAAU1H,KAAK,WAC3B,IAAkB2d,EAAdC,EAAKniB,EAAEqE,MACX8d,EAAGnb,SAAS,KAAO4E,EAAMnH,KAAKoX,UAAY,GAAK,WAAYxL,IAAI,0BAA0BU,QAAQ,6CAA6CwC,SAASlD,IAAI,sCAAsCrK,SAAU+b,EAAK,mBAAqB5jB,GAClO6jB,IACEG,EAAGnb,SAAS,aAAapF,OAK5BugB,EAAGnb,SAAS,aAAahB,SAAS,yBAJlCkc,EAAKD,EAAIhkB,KAAK2N,EAAOuW,GACrBA,EAAGpR,QAAQ,2DAA6DmR,EAAG,GAAK,WAAaA,EAAG,GAAK,YAAcA,EAAG,GAAK,UAMzHH,GAMAI,EAAGhU,SAAS,mBAAqBgU,EAAGnb,SAAS,YAAYpF,SAC3DugB,EAAGnc,SAAS,kBAAkBgB,SAAS,aAAaob,KAAK,WAAW,IAN5D,kBAANjkB,GAA0BgkB,EAAGhU,SAAS,mBAAqBgU,EAAGnb,SAAS,YAAYpF,SACrFugB,EAAG9X,KAAK,MAAM4B,UAAUjG,SAAS,kBAAkBgB,SAAS,aAAaob,KAAK,WAAW,OAUzFL,GACHzW,EAAIjB,KAAK,mBAAmBkJ,SAASA,SAAShP,KAAK,WAAcqH,EAAMyW,cAAche,UAGvFie,aAAe,SAAUhX,EAAKuF,GAC7BvF,EAAMjH,KAAKgH,UAAUC,GACrB,IAAIiX,GAAO,EAAOP,EAAK3d,KAAK4B,gBAAgB+a,SAASQ,gBACrD,IAAIlW,IAAgB,IAATA,EAAc,OAAO,EAEhC,GADAuF,GAAmB,IAAVA,IAA6B,IAAVA,EAAkBA,EAAQvF,EAAI6C,SAAS,kBAChE9J,KAAK4B,gBAAgB+a,SAASO,UAC7B1Q,GACFvF,EAAImB,YAAY,kBAAkBzG,SAAS,oBACxCgc,GAAM1W,EAAItE,SAAS,aAAaob,KAAK,WAAW,KAGnD9W,EAAImB,YAAY,oBAAoBzG,SAAS,kBAC1Cgc,GAAM1W,EAAItE,SAAS,aAAaob,KAAK,WAAW,QAGhD,CACJ,GAAGvR,EAAO,CAET,KADA0R,EAAOjX,EAAIjB,KAAK,MAAM4B,WACbkE,OAAO,yCAAyCvO,OAAU,OAAO,EAC1E2gB,EAAK9V,YAAY,sCAAsCzG,SAAS,oBAC7Dgc,GAAMO,EAAKvb,SAAS,aAAaob,KAAK,WAAW,OAEhD,CAEJ,KADAG,EAAOjX,EAAIjB,KAAK,MAAM4B,WACbkE,OAAO,2CAA2CvO,OAAU,OAAO,EAC5E2gB,EAAK9V,YAAY,wCAAwCzG,SAAS,kBAC/Dgc,GAAMO,EAAKvb,SAAS,aAAaob,KAAK,WAAW,GACjD/d,KAAKI,KAAK+O,KAAMnP,KAAKI,KAAK+O,GAAGE,cAAgBpI,GAChDjH,KAAKI,KAAKuc,SAAStN,cAAgBpI,EAEpCA,EAAI8C,aAAa,UAAW,MAAM7J,KAAK,WACtC,IAAIie,EAAQxiB,EAAEqE,MACd,GAAGwM,EAAO,CACT,GAAG2R,EAAMxb,SAAS,MAAMA,SAAS,6CAA6CpF,OAG7E,OAFA4gB,EAAMpU,aAAa,UAAW,MAAMnC,UAAUQ,YAAY,mCAAmCzG,SAAS,uBACnGgc,GAAMQ,EAAMpU,aAAa,UAAW,MAAMnC,UAAUjF,SAAS,aAAaob,KAAK,WAAW,IACtF,EAGPI,EAAM/V,YAAY,sCAAsCzG,SAAS,oBAC9Dgc,GAAMQ,EAAMxb,SAAS,aAAaob,KAAK,WAAW,OAGlD,CACJ,GAAGI,EAAMxb,SAAS,MAAMA,SAAS,+CAA+CpF,OAG/E,OAFA4gB,EAAMpU,aAAa,UAAW,MAAMnC,UAAUQ,YAAY,mCAAmCzG,SAAS,uBACnGgc,GAAMQ,EAAMpU,aAAa,UAAW,MAAMnC,UAAUjF,SAAS,aAAaob,KAAK,WAAW,IACtF,EAGPI,EAAM/V,YAAY,wCAAwCzG,SAAS,kBAChEgc,GAAMQ,EAAMxb,SAAS,aAAaob,KAAK,WAAW,MAOzD,OAFG/d,KAAKI,KAAK+O,IAAMnP,KAAKI,KAAKuc,SAASC,OAAQ5c,KAAKI,KAAK+O,GAAGC,SAAWpP,KAAK8c,eAC3E9c,KAAK2D,WAAWsD,IACT,GAERgW,WAAa,SAAUhW,GACtB,GAAGjH,KAAKie,aAAahX,GAAK,GAAQ,CAEjC,GADAA,EAAMjH,KAAKgH,UAAUC,GAClBjH,KAAK4B,gBAAgB+a,SAASS,oBAAqB,CACrD,IAAIziB,EAAIqF,KACRiH,EAAImK,QAAQ,kBAAkBlR,KAAK,WAAcvF,EAAEsN,UAAUjI,MAAM,GAAO,KAE3EA,KAAK2D,WAAW,CAAE,IAAQsD,MAG5B+V,aAAe,SAAU/V,GACrBjH,KAAKie,aAAahX,GAAK,IAASjH,KAAK2D,WAAW,CAAE,IAAQ3D,KAAKgH,UAAUC,MAE7EmX,UAAY,WACX,IAAI7W,EAAQvH,MACJA,KAAK4B,gBAAgB+a,SAASO,UAAYld,KAAK0C,mBAAmBsD,KAAK,MAAQhG,KAAK0C,mBAAmBC,SAAS,OACnHzC,KAAK,WACTqH,EAAM0W,aAAaje,MAAM,KAE1BA,KAAK2D,cAEN0a,YAAc,WACb,IAAI9W,EAAQvH,MACJA,KAAK4B,gBAAgB+a,SAASO,UAAYld,KAAK0C,mBAAmBsD,KAAK,MAAQhG,KAAK0C,mBAAmBC,SAAS,OACnHzC,KAAK,WACTqH,EAAM0W,aAAaje,MAAM,KAE1BA,KAAK2D,cAGN2a,WAAa,SAASrX,GAErB,SADAA,EAAMjH,KAAKgH,UAAUC,IACV1J,QAAS0J,EAAIwC,GAAG,oBAE5BqT,YAAc,SAAU7V,EAAKsX,GAE5B,OADAtX,EAAOA,IAAgB,IAATA,EAAoCjH,KAAKgH,UAAUC,GAAtCjH,KAAKyC,gBACzB8b,GAAWve,KAAK4B,gBAAgB+a,SAASO,UAAYjW,EAAIjB,KAAK,mBAAqBiB,EAAIjB,KAAK,wEAEpGwY,cAAgB,SAAUvX,EAAKsX,GAE9B,OADAtX,EAAOA,IAAgB,IAATA,EAAoCjH,KAAKgH,UAAUC,GAAtCjH,KAAKyC,gBACzB8b,GAAWve,KAAK4B,gBAAgB+a,SAASO,UAAYjW,EAAIjB,KAAK,qBAAuBiB,EAAIjB,KAAK,4EAGtGyY,gBAAkB,WAAcze,KAAKyC,gBAAgBE,SAAS,MAAMyF,YAAY,yBAChFsW,gBAAkB,WAAc1e,KAAKyC,gBAAgBE,SAAS,MAAMhB,SAAS,yBAE7Eqc,cAAgB,SAAU/W,GAEzB,IADAA,EAAMjH,KAAKgH,UAAUC,IACb1J,OACR,GAAGyC,KAAK4B,gBAAgB+a,SAASO,UAChCjW,EAAIjB,KAAK,MAAM4B,UAAUoE,IAAI,mBAAmB5D,YAAY,uBAAuBzG,SAAS,oBAAoBgB,SAAS,aAAaob,KAAK,WAAW,OADvJ,CAIA,IAAIJ,EAAK3d,KAAK4B,gBAAgB+a,SAASQ,gBACtCzc,EAAIuG,EAAIjB,KAAK,0BAA0BzI,OACvCoD,EAAIsG,EAAIjB,KAAK,+BAA+BzI,OAC5CzD,EAAImN,EAAIjB,KAAK,aAAazI,OAClB,IAANzD,EAAcmN,EAAI6C,SAAS,wBAA0B9J,KAAKie,aAAahX,GAAK,GACjE,IAANvG,GAAiB,IAANC,EAAWX,KAAKie,aAAahX,GAAK,GAC7CvG,IAAM5G,EAAKkG,KAAKie,aAAahX,GAAK,IAEzCA,EAAI8C,aAAa,UAAU,MAAMnC,UAAUQ,YAAY,mCAAmCzG,SAAS,uBAChGgc,GAAM1W,EAAI8C,aAAa,UAAW,MAAMnC,UAAUjF,SAAS,aAAaob,KAAK,WAAW,MAG7FhO,SAAW,WACV,GAAG/P,KAAKI,KAAK+O,IAAMnP,KAAKI,KAAKuc,SAASC,KAAM,CAC3C,IAAIrV,EAAQvH,KACXxE,EAAIwE,KAAKI,KAAK+O,GAAGI,UAClB/T,EAAIG,EAAEqN,IAAIrN,EAAEsN,UAAUzN,GAAI,SAAUN,GAAK,MAAO,IAAMA,EAAEsN,WAAWlH,QAAQ,KAAK,IAAIA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAQA,QAAQ,QAAQ,KAAKA,QAAQ,MAAM,OAAOA,QAAQ,MAAM,SACvLtB,KAAKmR,eACLxV,EAAEuE,KAAK1E,EAAG,SAAU/B,EAAG+H,GAAO+F,EAAM0V,WAAWzb,KAC/CxB,KAAK2D,kBAGL3D,KAAK8D,cAGP2E,YAAc,WACb,IAAIlB,EAAQvH,KACZA,KAAKI,KAAKkC,KAAK0C,QAAU,GACzBhF,KAAK0C,mBAAmBsD,KAAK,wCAAwC9F,KAAK,WACtEF,KAAKuI,IAAMhB,EAAMnH,KAAKkC,KAAK0C,QAAQlE,KAAK,IAAMd,KAAKuI,UAK1D5M,EAAE,WAEDA,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IADR,mDAC0BC,MAAQ,aASrD,SAAWzC,GACVA,EAAEiB,OAAO+hB,KAAO,SAAUC,EAAKC,EAAK/T,GACnC,IAAevP,EAAGujB,EAAGtjB,EAAjBjB,GAAI,EAER,IAAS,IAANA,GAAeqM,OAAOmY,cACxB,IACCxkB,EAAI,IAAIwkB,cAAc,uBACtBD,EAAI,IAAIC,cAAc,uBACpBC,QAAQJ,IACVpjB,EAAI,IAAIujB,cAAc,mCACpBC,QAAQH,GACVtkB,EAAE0kB,WAAazjB,GACfD,EAAIhB,EAAE2kB,mBACJC,MAAQL,EACVvjB,EAAE6jB,YACF7kB,EAAIgB,EAAE8jB,OAEP,MAAOlgB,IAERyf,EAAMjjB,EAAE2jB,SAASV,GACjBC,EAAMljB,EAAE2jB,SAAST,IAER,IAANtkB,GAA0C,oBAAnBglB,iBACzBhkB,EAAI,IAAIgkB,eACNC,iBAAiBX,GACnBtkB,EAAIgB,EAAEkkB,oBAAoBb,EAAKvgB,UAC/B9D,EAAIoB,EAAE,WAAWuQ,OAAO3R,GAAGsL,SAGnB,IAANtL,QAA8C,IAAvBqkB,EAAIc,gBAC7BnlB,EAAIqkB,EAAIc,cAAcb,IAEvB/T,EAASlR,KAAK,KAAMW,IAwIR,SAAbolB,EAAsBC,GACrB,OAAOA,EACLpX,WACAlH,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UA7IjB,IAAIud,EAAM,CACT,KAAS,wwFA6DT,KAAS,q/FAiFVljB,EAAED,OAAOoH,OAAO,WAAY,CAC3B5B,SAAW,CACVd,MAAO,EACPwV,MAAO,EACPiJ,IAAM,OACNhT,YAAa,EACbhB,eAAgB,EAChBgV,gBAAiB,EACjBC,sBAAuB,GAExBjd,IAAM,CACLuE,UAAY,SAAUH,EAAK6O,EAAQC,GAAU,IAAIxO,EAAQvH,KAAMA,KAAK+f,cAAc9Y,EAAK,WAAcM,EAAM5D,WAAW,CAAE,IAAQ4D,EAAMP,UAAUC,KAAS6O,EAAOlc,KAAKoG,OAAU+V,IAC/K7M,WAAa,SAAUjC,GACtB,IAAIzL,EAAIwE,KAAK4B,gBAAgBoe,SAE7B,OAAe,IADf/Y,EAAMjH,KAAKgH,UAAUC,MACAA,IAASzL,EAAEoa,OAASja,EAAE2E,WAAW9E,EAAE4E,OAAU6G,EAAIwC,GAAG,+BAA4E,EAA3CxC,EAAItE,SAAS,MAAMA,SAAS,MAAMkH,QAE7IkW,cAAgB,SAAU9Y,EAAK6O,EAAQC,GACtC,IAAIva,EAAIwE,KAAKuC,eAAeyd,SAC3B/J,EAAa,aACbC,EAAe,aAGhB,IADAjP,EAAMjH,KAAKgH,UAAUC,MACF,IAATA,EAAY,CACrB,GAAGA,EAAI7G,KAAK,qBAAwB,OAC7B6G,EAAI7G,KAAK,qBAAoB,GAErC,QAAO,GACN,KAAO5E,EAAE4E,OAAS5E,EAAEoa,KAAO,KAAM,2CACjC,KAAMja,EAAE2E,WAAW9E,EAAE4E,MACpB5E,EAAE4E,KAAKxG,KAAKoG,KAAMiH,EAAKtL,EAAEyK,MAAM,SAAUrM,GACxCiG,KAAKigB,UAAUlmB,EAAG4B,EAAEyK,MAAM,SAAUrM,GAChCA,IAEY,IADdA,EAAIA,EAAEuH,QAAQ,oBAAqB,KAC9B/D,QACJxD,EAAI4B,EAAE5B,IACM,IAATkN,GAAeA,GACXA,EAAItE,SAAS,oBAAoByF,YAAY,kBAAmBnB,EAAIiF,OAAOnS,GAAIkN,EAAIU,WAAW,sBAD5E3H,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAE3EnH,EAAEqQ,YAAc7L,KAAK6L,WAAW5E,GAChC6O,GAAUA,EAAOlc,KAAKoG,OAGtBiH,IAAgB,IAATA,GACTA,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACZnM,EAAEqP,gBACJ7K,KAAK6K,cAAc5D,GAChB6O,GAAUA,EAAOlc,KAAKoG,QAIvBxE,EAAEqP,gBACJ7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QACjCmP,GAAUA,EAAOlc,KAAKoG,SAK3BA,QACDA,OACH,MACD,MAAQxE,EAAE4E,OAAS5E,EAAEoa,QAAYpa,EAAE4E,QAAU5E,EAAEoa,QAAU3O,IAAgB,IAATA,GAC3DA,IAAe,GAARA,GACVjH,KAAKigB,UAAUzkB,EAAE4E,KAAMzE,EAAEyK,MAAM,SAAUrM,GACrCA,EAEY,IADdA,EAAIA,EAAEuH,QAAQ,oBAAqB,KAC9B/D,SACJxD,EAAI4B,EAAE5B,GACNiG,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAClDnH,EAAEqQ,YAAc7L,KAAK6L,WAAW5E,GAChC6O,GAAUA,EAAOlc,KAAKoG,OAIvBxE,EAAEqP,gBACJ7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QACjCmP,GAAUA,EAAOlc,KAAKoG,QAGzBA,OAEJ,MACD,KAAOxE,EAAE4E,QAAU5E,EAAEoa,QAAYpa,EAAE4E,QAAU5E,EAAEoa,MAAQ3O,IAAgB,IAATA,EAC7DgP,EAAa,SAAUG,EAAGzb,EAAGwE,GAC5B,IAAIkX,EAAKrW,KAAKuC,eAAeyd,SAASpK,KAAKU,MACxCD,GAAMA,EAAGzc,KAAKoG,KAAMoW,EAAGzb,EAAGwE,IACjB,IAAT8H,GAAcA,EAAI1J,QACpB0J,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACN,YAANhN,GAAmBa,EAAEqP,eAAiB7K,KAAK6K,cAAc5D,IAGnD,YAANtM,GAAmBa,EAAEqP,eAAiB7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAE3EoP,GAAUA,EAAOnc,KAAKoG,OAE1BkW,EAAe,SAAUnc,EAAGY,EAAGyb,GAC9Brc,EAAIqc,EAAE8J,aACN,IAAI3J,EAAKvW,KAAKuC,eAAeyd,SAASpK,KAAKY,QAE3C,GADGD,IAAMxc,EAAIwc,EAAG3c,KAAKoG,KAAKjG,EAAEY,EAAEyb,IAAMrc,GAC3B,KAANA,GAAaA,GAAKA,EAAEyO,UAAqD,KAAzCzO,EAAEyO,WAAWlH,QAAQ,YAAY,IACnE,OAAO2U,EAAWrc,KAAKoG,KAAMoW,EAAGzb,EAAG,IAEpCqF,KAAKigB,UAAUlmB,EAAG4B,EAAEyK,MAAM,SAAUrM,GAChCA,IAEY,IADdA,EAAIA,EAAEuH,QAAQ,oBAAqB,KAC9B/D,QACJxD,EAAI4B,EAAE5B,IACM,IAATkN,GAAeA,GACXA,EAAItE,SAAS,oBAAoByF,YAAY,kBAAmBnB,EAAIiF,OAAOnS,GAAIkN,EAAIU,WAAW,sBAD5E3H,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAE3EnH,EAAEqQ,YAAc7L,KAAK6L,WAAW5E,GAChC6O,GAAUA,EAAOlc,KAAKoG,OAGtBiH,IAAgB,IAATA,GACTA,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACZnM,EAAEqP,gBACJ7K,KAAK6K,cAAc5D,GAChB6O,GAAUA,EAAOlc,KAAKoG,QAIvBxE,EAAEqP,gBACJ7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QACjCmP,GAAUA,EAAOlc,KAAKoG,SAK3BA,QAEJxE,EAAEoa,KAAK/D,QAAU7R,KACjBxE,EAAEoa,KAAKU,MAAQL,EACfza,EAAEoa,KAAKY,QAAUN,EACb1a,EAAEoa,KAAKc,WAAYlb,EAAEoa,KAAKc,SAAW,OACtC/a,EAAE2E,WAAW9E,EAAEoa,KAAK/W,OAAQrD,EAAEoa,KAAK/W,IAAMrD,EAAEoa,KAAK/W,IAAIjF,KAAKoG,KAAMiH,IAC/DtL,EAAE2E,WAAW9E,EAAEoa,KAAKxV,QAAS5E,EAAEoa,KAAKxV,KAAO5E,EAAEoa,KAAKxV,KAAKxG,KAAKoG,KAAMiH,IACrEtL,EAAEia,KAAKpa,EAAEoa,QAIZqK,UAAY,SAAUrB,EAAK9T,GAC1B,IAAItP,EAAIwE,KAAK4B,gBAAgBoe,SAC7BrkB,EAAEiB,OAAO+hB,KAAKC,EAAKC,EAAIrjB,EAAEqjB,KAAM/T,IAEhCqV,QAAU,SAAUC,EAAInZ,EAAK6P,EAASC,EAAQrO,GAC7C,IAGCsO,EAAMC,EAAMC,EAAOC,EAHhBC,EAAS,GACZ5b,EAAIwE,KAAK4B,gBACT2F,EAAQvH,KAqET,OAnEUogB,EAANA,GAAW,OACI1X,EAAfA,GAA6B,GACjCzB,EAAMjH,KAAKgH,UAAUC,MACD,IAATA,IAAcA,EAAMjH,KAAKyC,gBAAgBuD,KAAK,cACzD8Q,EAAUnb,EAAEsF,QAAQ6V,GAAWA,EAAU,CAAE,KAAM,UAC7CpO,GAAe1I,KAAKI,KAAKiX,QAAoD,IAA3C1b,EAAE8F,QAAQjG,EAAE6b,MAAMC,UAAWR,IAAmBA,EAAQhW,KAAKtF,EAAE6b,MAAMC,WAE3GP,EAASpb,EAAEsF,QAAQ8V,GAAUA,EAAS,GAElCrO,IACAlN,EAAEwkB,SAASF,uBACb1I,GAAU,0CAEXA,GAAU,UAEXnQ,EAAI/G,KAAK,WACRkX,GAAU,QACVF,EAAKvb,EAAEqE,MACPrE,EAAEuE,KAAK4W,EAAS,SAAUrd,EAAG8K,GAC5B,IAAI5J,EAAIuc,EAAGrP,KAAKtD,GACZ/I,EAAEwkB,SAASH,qBAA+B,IAANllB,IACvCyc,GAAU,IAAM7S,EAAI,KAAQob,GAAY,KAAOhlB,GAAK,KAAK2G,QAAQ,iBAAiB,IAAIA,QAAQ,SAAS,KAAKA,QAAQ,KAAK,IAAIA,QAAQ,KAAK,KAAO,OAGhJ4V,EAAGpN,SAAS,iBAAkBsN,GAAU,iBACxCF,EAAGpN,SAAS,mBAAoBsN,GAAU,mBACnC,SAAPgJ,IAAiBhJ,GAAU,eAAkBuI,EAAWjX,GAAe,KAC1E0O,GAAU,IACVA,GAAU,YACNF,EAAGvU,SAAS,KACdzC,KAAK,WACN8W,EAAOrb,EAAEqE,MACTmX,GAAO,EACPC,GAAU,SACgC,IAAvCzb,EAAE8F,QAAQ,YAAajG,EAAE8D,UAC3B3D,EAAEuE,KAAK1E,EAAEgc,UAAW,SAAUE,EAAGC,GAChC,GAAGX,EAAKlN,SAAS6N,GAA6D,OAAvDP,GAAU,UAAauI,EAAWhI,GAAK,IAAMR,EAAOQ,GAAU,IAGpFZ,EAAOxZ,QACT5B,EAAEuE,KAAK6W,EAAQ,SAAUW,EAAGC,GAC3B,IAAIhd,EAAIqc,EAAKnP,KAAK8P,GACdnc,EAAEwkB,SAASH,qBAA+B,IAANllB,IACvCyc,GAAU,IAAMO,EAAI,KAAQgI,GAAY,IAAMhlB,IAAK,GAAI2G,QAAQ,iBAAiB,IAAIA,QAAQ,SAAS,KAAKA,QAAQ,KAAK,IAAIA,QAAQ,KAAK,KAAO,OAI/I0V,EAAKrU,SAAS,OAAOrI,IAAI,GAAGwN,UAAUxG,QAAQ,kBAAkB,IAAIA,QAAQ,UAAU,IAAI/D,SAC5F6Z,GAAU,UAAYuI,EAAW3I,EAAKrU,SAAS,OAAOrI,IAAI,GAAGwN,UAAUxG,QAAQ,kBAAkB,IAAIA,QAAQ,SAAS,KAAKA,QAAQ,KAAK,IAAIA,QAAQ,KAAK,KAAO,KAE9J0V,EAAKrU,SAAS,OAAOrI,IAAI,GAAG4Q,MAAMqM,gBAAgBha,SACpD6Z,GAAU,UAAYuI,EAAW3I,EAAKrU,SAAS,OAAOrI,IAAI,GAAG4Q,MAAMqM,gBAAgBjW,QAAQ,OAAO,IAAIA,QAAQ,IAAI,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,MAAM,KAAO,KAE9J8V,GAAU,IACVA,GAAU,YAAc7P,EAAMiD,SAASwM,EAAMG,GAAQ,MACrDC,GAAU,YAEXA,GAAU,aACVH,EAAOC,EAAG,GAAG3O,KAAM,EACnB2O,EAAKA,EAAGlR,KAAK,aACGiR,EAAbC,EAAG3Z,OAAiBgK,EAAM4Y,QAAQC,EAAIlJ,EAAIJ,EAASC,EAAQE,GAChD,GACL,QAANmJ,IAAgBhJ,GAAUH,GAC7BG,GAAU,UACD,QAANgJ,IAAgBhJ,GAAUH,KAE1BvO,IAAe0O,GAAU,WACtBA,MA3YX,CA+YG3b,QAS6B,IADrBE,EAyGRF,UAxGK4kB,OAAO9e,MAAM,KAAK,IACxB5F,EAAE2kB,KAAK,KAAKC,gBAAkB5kB,EAAE2kB,KAAKE,aAAa,SAASC,GAC1D,OAAO,SAAS/f,GACf,OAAyF,IAAjFA,EAAEggB,aAAehgB,EAAEigB,WAAa,IAAIzjB,cAAcsD,QAAQigB,EAAOvjB,kBAG3EvB,EAAE2kB,KAAK,KAAKM,sBAAwBjlB,EAAE2kB,KAAKE,aAAa,SAASC,GAChE,OAAO,SAAS/f,GACf,OAAoF,IAA5EA,EAAEmgB,aAAa,UAAY,IAAI3jB,cAAcsD,QAAQigB,EAAOvjB,oBAKtEvB,EAAE2kB,KAAK,KAAKC,gBAAkB,SAAS7f,EAAEjH,EAAEI,GAC1C,OAAuF,IAA/E6G,EAAEggB,aAAehgB,EAAEigB,WAAa,IAAIzjB,cAAcsD,QAAQ3G,EAAE,GAAGqD,gBAExEvB,EAAE2kB,KAAK,KAAKM,sBAAwB,SAASlgB,EAAEjH,EAAEI,GAChD,OAAkF,IAA1E6G,EAAEmgB,aAAa,UAAY,IAAI3jB,cAAcsD,QAAQ3G,EAAE,GAAGqD,iBAGpEvB,EAAED,OAAOoH,OAAO,SAAU,CACzBjB,OAAS,WACR7B,KAAKI,KAAKqgB,OAAOtiB,IAAM,GACvB6B,KAAKI,KAAKqgB,OAAOrJ,OAASzb,IACvBqE,KAAK4B,gBAAgB6e,OAAOK,mBAC9B9gB,KAAKyC,gBACHxH,KAAK,gBAAiB,SAAUkE,EAAGiB,GACnCzE,EAAEqE,MAAM2C,SAAS,MAAMqD,KAAK,MAAMwV,OAAOpT,YAAY,eACrDhI,EAAKgD,KAAK6Q,MAAMlK,aAAa,WAAWnC,UAAU2U,OAChDzQ,OAAO,MAAM5L,KAAK,WAAcvE,EAAEqE,MAAM2C,SAAS,cAAcsD,IAAI,GAAGtE,SAAS,mBAEjF1G,KAAK,sBAAuB,WAC5BU,EAAEqE,MAAM2C,SAAS,MAAMqD,KAAK,MAAMnJ,IAAI,UAAU,IAAIkP,MAAMA,MAAMrQ,OAAO,cAAe,MAI1FwF,SAAW,CACV0U,MAAO,EACPmL,cAAgB,kBAChBD,mBAAoB,GAErBje,IAAM,CACL4d,OAAS,SAAUtiB,EAAK6iB,GACvB,GAAmB,KAAhBrlB,EAAEslB,KAAK9iB,GAAV,CACA,IAAI3C,EAAIwE,KAAKuC,eAAeke,OAC3B9lB,EAAIqF,KACJiW,EAAa,aACbC,EAAe,aAGhB,GAFAlW,KAAKI,KAAKqgB,OAAOtiB,IAAMA,GAEnB6iB,IAAyB,IAAXxlB,EAAEoa,MAAgG,EAA9E5V,KAAK0C,mBAAmBsD,KAAK,wCAAwCzI,OAiB1G,OAhBAyC,KAAKygB,OAAOS,kBAAmB,EAC/BjL,EAAa,aACbC,EAAe,SAAUnc,EAAGY,EAAGyb,GAC9B,IAAIG,EAAKvW,KAAKuC,eAAeke,OAAO7K,KAAKY,QACtCD,IAAMxc,EAAIwc,EAAG3c,KAAKoG,KAAKjG,EAAEY,EAAEyb,IAAMrc,GACpCiG,KAAKI,KAAKqgB,OAAO3b,QAAU/K,EAC3BiG,KAAKmhB,gBAEN3lB,EAAEoa,KAAK/D,QAAU7R,KACjBxE,EAAEoa,KAAKU,MAAQL,EACfza,EAAEoa,KAAKY,QAAUN,EACdva,EAAE2E,WAAW9E,EAAEoa,KAAK/W,OAAQrD,EAAEoa,KAAK/W,IAAMrD,EAAEoa,KAAK/W,IAAIjF,KAAKoG,KAAM7B,IAC/DxC,EAAE2E,WAAW9E,EAAEoa,KAAKxV,QAAS5E,EAAEoa,KAAKxV,KAAO5E,EAAEoa,KAAKxV,KAAKxG,KAAKoG,KAAM7B,IACjE3C,EAAEoa,KAAKxV,OAAQ5E,EAAEoa,KAAKxV,KAAO,CAAE,cAAkBjC,IACjD3C,EAAEoa,KAAKc,WAAY,QAAQtB,KAAK5Z,EAAEoa,KAAKc,YAAalb,EAAEoa,KAAKc,SAAW,aAC1E/a,EAAEia,KAAKpa,EAAEoa,MAGP5V,KAAKI,KAAKqgB,OAAOrJ,OAAO7Z,QAAUyC,KAAKohB,eAC1CphB,KAAKI,KAAKqgB,OAAOrJ,OAASpX,KAAKyC,gBAAgBuD,KAAK,KAAOhG,KAAKI,KAAKoX,UAAY,IAAMxX,KAAKkY,WAAa,IAAO,IAAO1c,EAAEulB,cAAiB,IAAM/gB,KAAKI,KAAKqgB,OAAOtiB,IAAM,KACvK6B,KAAKI,KAAKqgB,OAAOrJ,OAAOzV,SAAS,iBAAiBuN,SAASkC,QAAQ,kBAAkBlR,KAAK,WACzFvF,EAAEsN,UAAUjI,MAAM,GAAO,KAE1BA,KAAK2D,WAAW,CAAEsQ,MAAQjU,KAAKI,KAAKqgB,OAAOrJ,OAAQjZ,IAAMA,SA/BhC6B,KAAKohB,gBAiC/BA,aAAe,WACdphB,KAAKI,KAAKqgB,OAAOrJ,OAAOhP,YAAY,iBACpCpI,KAAK2D,WAAW3D,KAAKI,KAAKqgB,OAAOrJ,QACjCpX,KAAKI,KAAKqgB,OAAOrJ,OAASzb,KAE3BwlB,aAAe,WACd,IAAI5Z,EAAQvH,KACX2I,GAAO,EACPC,EAAU,GACVC,EAAY,GACV7I,KAAKI,KAAKqgB,OAAO3b,QAAQvH,SAC3B5B,EAAEuE,KAAKF,KAAKI,KAAKqgB,OAAO3b,QAAS,SAAUrL,EAAG+H,GAC7C,GAAU,KAAPA,EAAc,OAAO,EACrB7F,EAAE6F,GAAKjE,QAAU5B,EAAE6F,GAAKiI,GAAG,kBAAqBb,EAAQ9H,KAAKU,GACzDqH,EAAU/H,KAAKU,KAEpBoH,EAAQrL,SACVyC,KAAKI,KAAKqgB,OAAO3b,QAAU+D,EAC3BlN,EAAEuE,KAAK0I,EAAS,SAAUnP,EAAG+H,GAC5B+F,EAAMU,UAAUzG,EAAK,WAAc+F,EAAM4Z,cAAa,OAEvDxY,GAAO,IAGNA,GAAQ3I,KAAKygB,OAAOzgB,KAAKI,KAAKqgB,OAAOtiB,KAAK,QAUtCxC,EAwRRF,QAvRAmB,OAAOiV,QAAU,CAClBwP,oBAAqB,EAErB9F,IAAO5f,EAAE,mCACT2lB,KAAO,EACPC,KAAO,EACPC,KAAO,EACPne,MAAO,EACPjD,MAAO,EACPkF,KAAO,EACPiX,KAAO,SAAU/gB,EAAGb,EAAGyb,EAAGqL,EAAG1nB,EAAGwB,EAAG+J,GAClC3J,EAAEiB,OAAOiV,QAAQvM,MAAQA,EACzB,IAAsCnB,EAAGkO,EAArCxM,EAAOlK,EAAEiB,OAAOiV,QAAQ6P,MAAMlmB,GAC9BqK,IACJlK,EAAEiB,OAAOiV,QAAQyP,KAAM,EACvB3lB,EAAEiB,OAAOiV,QAAQ0P,IAAM5mB,EACvBgB,EAAEiB,OAAOiV,QAAQ2P,IAAMjmB,GAAKZ,GAAK,KACjCgB,EAAEiB,OAAOiV,QAAQzR,KAAOrG,GAAK,KAC7B4B,EAAEiB,OAAOiV,QAAQ0J,IACf1V,KAAKA,GACLhJ,IAAI,CAAE,WAAe,SAAU,QAAY,QAAS,KAAS,EAAG,IAAQ,IAEvElB,EAAEiB,OAAOiV,QAAQwP,oBACnB1lB,EAAEiB,OAAOiV,QAAQ0J,IACfjD,IAAI,aAAc,SAASnZ,GAAKxD,EAAEiB,OAAOiV,QAAQ2J,SAGpDrX,EAAIxI,EAAEiB,OAAOiV,QAAQ0J,IAAIrV,SAEtBkQ,GADH/D,EAAI1W,EAAEiB,OAAOiV,QAAQ0J,IAAIxM,SACdpT,EAAE0C,UAAU0Q,UACtBqH,EAAIza,EAAE0C,UAAU0Q,SAAWsD,EAAI,GAC/B1W,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,WAAWrE,SAAS,UAE5C8f,EAAItd,EAAIxI,EAAE0C,UAAU6H,WACtBub,GAAStd,EAAIxJ,EAAE,GAAG2W,aAClB3V,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,WAAWrE,SAAS,WAG/ChG,EAAEiB,OAAOiV,QAAQ0J,IACf1e,IAAI,CAAE,KAASuZ,EAAG,IAAQqL,IAC1Bzb,KAAK,cACJ/K,KAAK,aAAc,SAAUkE,GAC7B,IAAIkT,EAAI1W,EAAE0C,UAAU0Q,QACnB5K,EAAIxI,EAAE0C,UAAU6H,SAChByb,EAAKhmB,EAAEqE,MAAM2C,SAAS,MAAM4Z,OAC1BlK,IAAM1W,EAAE0C,UAAU0Q,SAAW4S,EAAGC,YAAY,SAC5Czd,IAAMxI,EAAE0C,UAAU6H,UAAYyb,EAAGC,YAAY,YAEhD3mB,KAAK,aAAc,SAAUkE,GAC7BxD,EAAEqE,MAAM2C,SAAS,MAAM6Y,SAEvBzP,MACDlP,IAAI,CAAE,WAAe,YACrB0f,OACF5gB,EAAE0C,UAAUqF,eAAe,yBAE5B8X,KAAO,WACN7f,EAAEiB,OAAOiV,QAAQyP,KAAM,EACvB3lB,EAAEiB,OAAOiV,QAAQ0J,IAAI1T,KAAK,QAAQ,IAAIhL,IAAI,CAAE,WAAe,WAC3DlB,EAAE0C,UAAUqF,eAAe,wBAE5Bge,MAAQ,SAAUlmB,EAAGkN,GACpB,IAAIlN,EAAK,OAAO,EAChB,IAAI2C,EAAM,GACTF,GAAM,EACN4jB,GAAU,EA+BX,OA9BInZ,IAAe/M,EAAEiB,OAAOiV,QAAQxO,KAAO,IAC3ClF,GAAO,OACPxC,EAAEuE,KAAK1E,EAAG,SAAU/B,EAAG+H,GACtB,IAAIA,EAAO,OAAO,EAClB7F,EAAEiB,OAAOiV,QAAQxO,KAAK5J,GAAK+H,EAAIsgB,QAC3BD,GAAWrgB,EAAIugB,mBAClB5jB,GAAO,8DAER0jB,GAAU,EACV1jB,GAAO,eAAiBqD,EAAIwgB,QAAU,KAAOxgB,EAAIygB,UAAY,gCAAkC,IAAM,UAClGzgB,EAAImL,OAAmC,IAA3BnL,EAAImL,KAAKnM,QAAQ,OAAerC,GAAO,WAAaqD,EAAImL,KAAO,MAC3EnL,EAAImL,OAAmC,IAA3BnL,EAAImL,KAAKnM,QAAQ,OAAerC,GAAO,0BAA4BqD,EAAImL,KAAO,gCAC7FxO,GAAO,iCAAmC1E,EAAI,KAC3C+H,EAAI0gB,UACN/jB,GAAO,uBAAyBxC,EAAEiB,OAAOiV,QAAQvM,IAAM,OAAS,SAAW,qBAE5EnH,GAAOqD,EAAI2gB,MAAQ,OAChB3gB,EAAI0gB,UACNjkB,EAAMtC,EAAEiB,OAAOiV,QAAQ6P,MAAMlgB,EAAI0gB,SAAS,MAChC/jB,GAAOF,GAElBE,GAAO,QACJqD,EAAI4gB,kBACNjkB,GAAO,4DACP0jB,GAAU,KAGZ1jB,EAAMA,EAAImD,QAAQ,iEAAiE,IACnFnD,GAAO,QACPxC,EAAE0C,UAAUqF,eAAe,wBACP,GAAbvF,EAAIZ,QAAcY,GAE1BiX,KAAO,SAAU3b,GAChB,QAAGkC,EAAE2E,WAAW3E,EAAEiB,OAAOiV,QAAQxO,KAAK5J,MAErCkC,EAAEiB,OAAOiV,QAAQxO,KAAK5J,GAAGG,KAAK+B,EAAEiB,OAAOiV,QAAQzR,KAAMzE,EAAEiB,OAAOiV,QAAQ2P,MAC/D,KAKV7lB,EAAE,WAaDA,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IAZR,6tCAY0BC,MAAQ,WACnDzC,EAAEiB,OAAOiV,QAAQ0J,IACfpV,SAAS,IAAI,QAAS,SAAUhH,GAAKA,EAAEsQ,mBACvCtJ,SAAS,IAAI,UAAW,SAAUhH,IAC9BxD,EAAEqE,MAAMkP,SAASpF,SAAS,gCAAkCnO,EAAEiB,OAAOiV,QAAQuD,KAAKzZ,EAAEqE,MAAM6H,KAAK,QAClGlM,EAAEiB,OAAOiV,QAAQ2J,OAEX7f,EAAEqE,MAAM2P,SAEfxJ,SAAS,IAAI,YAAa,WAC1BxK,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,iBAAiBoC,YAAY,kBAEvDsG,SAAS,QACX/S,EAAE0C,UAAUpD,KAAK,YAAa,SAAUkE,GAAQxD,EAAEiB,OAAOiV,QAAQyP,MAAQ3lB,EAAE0mB,SAAS1mB,EAAEiB,OAAOiV,QAAQ0J,IAAI,GAAIpc,EAAEoH,SAAW5K,EAAEiB,OAAOiV,QAAQ2J,cACnH,IAAd7f,EAAEuZ,SACXvZ,EAAE0C,UACApD,KAAK,UAAW,KAAM,SAAUkE,GAChC,GAAGxD,EAAEiB,OAAOiV,QAAQyP,IAAK,CACxB,IAAIpnB,EAAIyB,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,cAAcsc,OAAO3f,SAAS,iBAAiByF,YAAY,gBAAgB8B,QAAQ,6BAA6BqY,QAC9IroB,EAAEqD,SAAUrD,EAAIyB,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,cAAcsc,OAAO3f,SAAS,6BAA6B2f,QACzGpoB,EAAEyH,SAAS,gBACXxC,EAAEud,2BACFvd,EAAEsQ,oBAGHxU,KAAK,UAAW,OAAQ,SAAUkE,GAClC,GAAGxD,EAAEiB,OAAOiV,QAAQyP,IAAK,CACxB,IAAIpnB,EAAIyB,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,cAAcsc,OAAO3f,SAAS,iBAAiByF,YAAY,gBAAgBwB,QAAQ,6BAA6B2Y,QAC9IroB,EAAEqD,SAAUrD,EAAIyB,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,cAAcsc,OAAO3f,SAAS,6BAA6B4f,SACzGroB,EAAEyH,SAAS,gBACXxC,EAAEud,2BACFvd,EAAEsQ,oBAGHxU,KAAK,UAAW,QAAS,SAAUkE,GAChCxD,EAAEiB,OAAOiV,QAAQyP,MACnB3lB,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,iBAAiBrD,SAAS,MAAM4Z,OAAO5Z,SAAS,6BAA6ByF,YAAY,gBAAgBma,QAAQ5gB,SAAS,gBACpJxC,EAAEud,2BACFvd,EAAEsQ,oBAGHxU,KAAK,UAAW,OAAQ,SAAUkE,GAC/BxD,EAAEiB,OAAOiV,QAAQyP,MACnB3lB,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,iBAAiBrD,SAAS,MAAM6Y,OAAO7Y,SAAS,qBAAqByF,YAAY,gBAC3GjJ,EAAEud,2BACFvd,EAAEsQ,oBAGHxU,KAAK,UAAW,MAAO,SAAUkE,GACjCxD,EAAEiB,OAAOiV,QAAQ2J,OACjBrc,EAAEsQ,mBAEFxU,KAAK,UAAW,QAAS,SAAUkE,GACnCxD,EAAEiB,OAAOiV,QAAQ0J,IAAIvV,KAAK,iBAAiBsc,OAAO3f,SAAS,KAAK4S,QAChEpW,EAAEsQ,qBAKN9T,EAAED,OAAOoH,OAAO,cAAe,CAC9BjB,OAAS,WACR7B,KAAKyC,gBACH0D,SAAS,IAAK,qBAAsBxK,EAAEyK,MAAM,SAAUjH,GACrDA,EAAEsQ,iBACE9T,EAAEwD,EAAEuQ,eAAe5F,SAAS,mBAC/B9J,KAAKwiB,iBAAiBrjB,EAAEuQ,cAAevQ,EAAEya,MAAOza,EAAE0a,QAEjD7Z,OACHmG,SAAS,IAAK,eAAgBxK,EAAEyK,MAAM,SAAUjH,GAC5Ca,KAAKI,KAAKqiB,aACZ9mB,EAAEiB,OAAOiV,QAAQ2J,QAEhBxb,OACH/E,KAAK,iBAAkBU,EAAEyK,MAAM,WAE3BpG,KAAKI,KAAKqiB,aACZ9mB,EAAEiB,OAAOiV,QAAQ2J,QAEhBxb,OACLrE,EAAE0C,UAAUpD,KAAK,sBAAuBU,EAAEyK,MAAM,WAAcpG,KAAKI,KAAKqiB,aAAc,GAAUziB,QAEjGkB,SAAW,CACV0O,aAAc,EACd8S,cAAe,EACfC,MAAQ,CACP,OAAW,CACV,kBAAqB,EACrB,iBAAoB,EACpB,MAAa,SACb,OAAa,SAAU1b,GAAOjH,KAAKjF,OAAOkM,KAE3C,OAAW,CACV,kBAAqB,EACrB,iBAAoB,EACpB,MAAa,SACb,OAAa,SAAUA,GAAOjH,KAAKwT,OAAOvM,KAE3C,OAAW,CACV,kBAAqB,EACrB,MAAY,EACZ,iBAAoB,EACpB,MAAa,SACb,OAAa,SAAUA,GAAUjH,KAAKiR,YAAYhK,GAAQjH,KAAKqJ,SAAmBrJ,KAAKqJ,OAAOpC,KAE/F,IAAQ,CACP,kBAAqB,EACrB,MAAY,EACZ,iBAAoB,EACpB,MAAa,OACb,QAAa,EACb,QAAY,CACX,IAAQ,CACP,kBAAqB,EACrB,iBAAoB,EACpB,MAAa,MACb,OAAa,SAAUA,GAAOjH,KAAK4T,IAAI3M,KAExC,KAAS,CACR,kBAAqB,EACrB,MAAY,EACZ,iBAAoB,EACpB,MAAa,OACb,OAAa,SAAUA,GAAOjH,KAAK+T,KAAK9M,KAEzC,MAAU,CACT,kBAAqB,EACrB,MAAY,EACZ,iBAAoB,EACpB,MAAa,QACb,OAAa,SAAUA,GAAOjH,KAAKgU,MAAM/M,SAM9CpE,IAAM,CACL2f,iBAAmB,SAAUvb,EAAKmP,EAAGqL,GACpCxa,EAAMjH,KAAKgH,UAAUC,GACrB,IAAIzL,EAAIwE,KAAKuC,eAAekgB,YAC3B/hB,EAAIuG,EAAItE,SAAS,mBACjBzI,GAAI,EACJT,GAAI,EACF+B,EAAEoU,aAAe5P,KAAKI,KAAK+O,KAAOnP,KAAKiR,YAAYhK,KACrDjH,KAAKmR,eACLnR,KAAK4P,YAAY3I,GAAK,KAEpBzL,EAAEknB,mBAA6B,IAANtM,QAAkC,IAANqL,IAEvDrL,GADAlc,EAAIwG,EAAE6Q,UACAzC,KACN2S,EAAIvnB,EAAE2U,IAAM7O,KAAKI,KAAKkC,KAAKyD,WAE5BtM,EAAIwN,EAAI7G,KAAK,WAAa6G,EAAI7G,KAAK,UAAUqiB,YAAcxb,EAAI7G,KAAK,UAAUqiB,YAAcjnB,EAAEmnB,MAC3FhnB,EAAE2E,WAAW7G,KAAMA,EAAIA,EAAEG,KAAKoG,KAAMiH,IACvCjH,KAAKI,KAAKqiB,aAAc,EACxB9mB,EAAEiB,OAAOiV,QAAQ0K,KAAK9iB,EAAGiH,EAAG0V,EAAGqL,EAAGzhB,KAAMiH,EAAKjH,KAAK4B,gBAAgBU,KAAKgD,KACpEtF,KAAKI,KAAK+T,QAAUxY,EAAEiB,OAAOiV,QAAQ0J,IAAI1T,KAAK,QAAS,UAAY7H,KAAKI,KAAK+T,OAAOI,MAAQ,iBAaxF5Y,EA0MRF,QAzMAC,OAAOoH,OAAO,QAAS,CACxBjB,OAAS,WACR,IAAIrG,EAAIwE,KAAK4B,gBAAgByV,MAC7BrX,KAAKI,KAAKiX,MAAMuL,UAAY,GAC5B5iB,KAAKyC,gBACHxH,KAAK,cAAeU,EAAEyK,MAAM,WAC3B,IAAIiR,EAAQ7b,EAAE6b,MACbxP,EAAQrM,EAAE8b,UACVuL,EAAY,GACZtb,EAAQvH,KAETrE,EAAEuE,KAAKmX,EAAO,SAAU5d,EAAG2mB,GAI1B,GAHAzkB,EAAEuE,KAAKkgB,EAAI,SAAU1I,EAAGnT,GACnB,iDAAiDG,KAAKgT,IAAMnQ,EAAMnH,KAAKiX,MAAMuL,UAAU9hB,KAAK4W,MAE7F0I,EAAGzT,KAAQ,OAAO,GAClByT,EAAGzT,KAAKmW,OAAS1C,EAAGzT,KAAKP,YACPyW,GAAb,WAALppB,EAA+B,WAAa8N,EAAM/E,YAAc,uBAC5C,WAAa+E,EAAM/E,YAAc,OAASqF,EAAO,KAAOpO,EAAI,2BAChF2mB,EAAGzT,KAAKmW,QAASD,GAAa,yBAA2BzC,EAAGzT,KAAKmW,MAAQ,OACzE1C,EAAGzT,KAAKP,SAAWyW,GAAa,wBAA0BzC,EAAGzT,KAAKP,SAAW,KACtEyW,GAAa,6BACvBA,GAAa,QAGE,KAAdA,GAAoBlnB,EAAEiB,OAAOC,IAAIkB,UAAU,CAAE,IAAQ8kB,EAAWzkB,MAAQ,kBACzE4B,OACH/E,KAAK,gBAAiBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC1C,IAAI5E,EAAGb,EACNT,IAAI8F,KAAK4B,gBAAgByV,MAAM0L,UAAW/iB,KAAKgH,UAAU5G,EAAKT,KAAK,IACnE5F,KAAIG,IAAY,IAAPA,IAAYA,EAAEqD,SAASrD,EAAEkG,KAAK,UACxC,GAAGrG,GAAKA,EAAEsd,QAAgC,IAAvBtd,EAAEsd,MAAMjX,EAAKiD,MAAiD,OAA9BlE,EAAEud,4BAAmC,EACxF,IAAwD,IAArD/gB,EAAE8F,QAAQrB,EAAKiD,KAAMrD,KAAKI,KAAKiX,MAAMuL,WAAmB,CAC1D,IAAIxiB,EAAKT,KAAK,KAAQS,EAAKT,KAAK,GAAGqjB,UAAY5iB,EAAKT,KAAK,GAAG0gB,OAAW,OAGvE,KAFA7kB,EAAIwE,KAAK4B,gBAAgByV,MAAMA,OAC/B1c,EAAIqF,KAAKijB,UAAU7iB,EAAKT,KAAK,WAGS,IAApBnE,EAAEb,GAAGyF,EAAKiD,OACzB7H,EAAC,cAAkD,IAA5BA,EAAC,QAAY4E,EAAKiD,SACG,IAAzCrD,KAAKkjB,OAAO9iB,EAAKiD,KAAMjD,EAAKT,KAAK,IAGtC,OADAR,EAAEud,4BACK,IAGP1c,OACFvD,GACFuD,KAAKyC,gBACHxH,KAAK,mCAAoCU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC7D,IAAI7F,EAAI6F,GAAQA,EAAKgD,MAAQhD,EAAKgD,KAAK6D,MAA0B,IAAnB7G,EAAKgD,KAAK6D,IAAajH,KAAKgH,UAAU5G,EAAKgD,KAAK6D,KAAKiI,SAAWlP,KAAK0C,mBAClH5I,GAAI,EACJ0B,EAAIwE,KAAK4B,gBAAgByV,MAC1B1b,EAAEuE,KAAK1E,EAAE6b,MAAO,SAAU5d,EAAG2mB,GACzBA,EAAGzT,OAASyT,EAAGzT,KAAKmW,OAAS1C,EAAGzT,KAAKP,YACvCtS,EAAU,YAANL,EAAkBc,EAAEyL,KAAK,yBAA2BzL,EAAEyL,KAAK,MAAQxK,EAAE8b,UAAY,KAAO7d,EAAI,yBAC7F2mB,EAAGzT,KAAKmW,OAAShpB,EAAE+C,IAAI,kBAAkB,OAASujB,EAAGzT,KAAKmW,MAAQ,KACrEhpB,EAAE+C,IAAI,qBAAsBujB,EAAGzT,KAAKP,UAAY,WAGhDpM,QAGPkB,SAAW,CAEViiB,cAAiB,EAEjBC,WAAe,EAEfC,eAAkB,MAGlBN,UAAW,EAEXzL,UAAY,MAEZD,MAAQ,CAEP,QAAY,CACX,cAAkB,EAClB,WAAgB,EAChB,eAAkB,SAOrBxU,IAAM,CACLygB,cAAgB,SAAUpoB,EAAGkF,GACzBA,EAAKpB,MAAQgB,KAAK4B,gBAAgByV,MAAM0L,UAC1C/iB,KAAKujB,SAASnjB,EAAKpB,KAAM9D,IAG3B+nB,UAAY,SAAUhc,GAErB,UADAA,EAAMjH,KAAKgH,UAAUC,MACJA,EAAI1J,UAAkB0J,EAAIY,KAAK7H,KAAK4B,gBAAgByV,MAAMC,YAAc,YAE1FiM,SAAW,SAAUplB,EAAK8I,GAEzB,IAAIkH,MADJlH,EAAMjH,KAAKgH,UAAUC,IACL1J,SAAWY,IAAe8I,EAAIY,KAAK7H,KAAK4B,gBAAgByV,MAAMC,UAAWnZ,GAEzF,OADGgQ,GAAOnO,KAAK2D,WAAW,CAAEsD,IAAMA,EAAKjI,KAAOb,IACvCgQ,GAER+U,OAAS,SAAUM,EAAMvc,EAAKjJ,GAC7BiJ,EAAMjH,KAAKgH,UAAUC,GACrB,IAAI1C,GAAI,EAAO5J,EAAIqF,KAAKijB,UAAUhc,GAAMlN,EAAI,EAAGwN,EAAQvH,KAAMxE,EAAIwE,KAAK4B,gBAAgByV,MAAOjX,GAAO,EACpG,IAAY,IAAT6G,EAAY,CACd,IAAKzL,EAAEgoB,GACA,OADSjf,EAAI/I,EAAEgoB,OAGlB,CACJ,IAAS,IAAN7oB,EAAe,QAClByF,IAAO5E,EAAEunB,UAAW9b,EAAI7G,KAAK,YAClBA,EAAKiX,YAAqC,IAArBjX,EAAKiX,MAAMmM,GAAyBjf,EAAInE,EAAKiX,MAAMmM,GACzEhoB,EAAE6b,MAAM1c,SAAkC,IAArBa,EAAE6b,MAAM1c,GAAG6oB,GAAyBjf,EAAI/I,EAAE6b,MAAM1c,GAAG6oB,GACxEhoB,EAAE6b,MAAF,cAA0D,IAA7B7b,EAAE6b,MAAF,QAAmBmM,KAAyBjf,EAAI/I,EAAE6b,MAAF,QAAmBmM,IAiB3G,OAfG7nB,EAAE2E,WAAWiE,KAAMA,EAAIA,EAAE3K,KAAKoG,KAAMiH,IAC3B,cAATuc,IAAiC,IAATvc,IAAuB,IAATjJ,IAAmC,IAAjBxC,EAAE4nB,WAA0B,IAAN7e,GAEhF0C,EAAItE,SAAS,WAAWoH,aAAa,UAAU,MAAM7J,KAAK,SAAUzG,GAEnE,OAAoB,IAAjB+B,EAAE4nB,WAAoB5nB,EAAE4nB,WAAa3pB,EAAI,IAAM,IAGxC,KAFVM,EAAW,IAANN,EAAW8K,EAAIgD,EAAM2b,OAAOM,EAAMxjB,MAAM,KAE9BjG,GAAKN,EAAI,IAAM,GAHyB8K,EAAI,GAAU,IAK7D,GAALxK,IAAWA,GAAKN,EAAI,GAAK8K,GAAKA,EAAI,KAAOA,EAAIxK,GAAKN,EAAI,SAEvC,GAAf+B,EAAE4nB,YAAmB5nB,EAAE4nB,WAAa3pB,EAAI,GAAK8K,GAAKA,EAAI,KAAOA,EAAI/I,EAAE4nB,WAAa3pB,EAAI,QAGlF8K,GAER2J,WAAa,WACZ,IAAIlO,KAAK8D,aAAgB,OAAO,EAChC,IAKgBnJ,EALZd,EAAKmG,KAAK4O,YACbpT,EAAK3B,EAAE8T,GAAG/L,gBAAgByV,MAC1BoM,EAAK5pB,EAAE8T,GAAGuV,OAAO,eAAgBrpB,EAAEgU,IACnC6V,EAAK7pB,EAAE8T,GAAGuV,OAAO,YAAarpB,EAAEgU,IAChC8V,EAAK9pB,EAAE8T,GAAGuV,OAAO,iBAAkBrpB,EAAEgU,IAC7B9T,EAAI,EAEb,GAAU,SAAP4pB,EAAiB,OAAO,EAC3B,GAAGhoB,EAAEsF,QAAQ0iB,IAAO9pB,EAAE6T,IAAM7T,EAAE6T,GAAGuV,YAChCppB,EAAEK,EAAEgG,KAAK,WACR,IAA4C,IAAzCvE,EAAE8F,QAAQ5H,EAAE6T,GAAGuV,UAAUjjB,MAAO2jB,GAAyB,OAAX5pB,GAAI,KAE7C,IAANA,GAAe,OAAO,EAE1B,IAAuB,IAApByB,EAAE2nB,eAA+B,IAARM,KACZ,IAAV5pB,EAAEgU,GAAY7N,KAAKyC,gBAAgBuD,KAAK,aAAagG,IAAInS,EAAEK,GAAGqD,OAAS1D,EAAEgU,GAAG7H,KAAK,aAAagG,IAAInS,EAAEK,GAAGqD,QACpG1D,EAAEK,EAAEqD,OAASkmB,EAAM,OAAO,EAEnC,IAAoB,IAAjBjoB,EAAE4nB,YAA4B,IAARM,EAAW,CAEnC,IADA3pB,EAAI,KACD2pB,EAAY,OAAO,EACtB,QAAoB,IAAV7pB,EAAEK,EAAEH,EAAmB,CAGhC,IADAY,EAAId,EAAEK,EACW,EAAXS,EAAE4C,QACP5C,EAAIA,EAAEqL,KAAK,aACXjM,IAEDF,EAAEK,EAAEH,EAAIA,EAET,GAAG2pB,EAAK7pB,EAAEK,EAAEH,EAAI,EAAK,OAAO,EAE7B,OAAO,GAERoS,YAAc,SAAUlF,EAAKmF,EAAUC,EAAIvB,EAAUwB,EAAWmC,GAC/D,IAAIA,IAAenC,GAAatM,KAAKkJ,WAAWjC,IAAO,CACtD,IAAI1L,EAAyB,iBAAZ6Q,GAAwBA,EAAS5H,MAAM,qBAA+B,IAATyC,EAAcjH,KAAKoK,YAAYnD,GAAOjH,KAAKgH,UAAUC,GAClIzL,EAAKwE,KAAK4B,gBAAgByV,MAC1BoM,EAAKzjB,KAAKkjB,OAAO,eAAgB3nB,GACjCmoB,EAAK1jB,KAAKkjB,OAAO,YAAa3nB,GAC9BooB,EAAK3jB,KAAKkjB,OAAO,iBAAkB3nB,GAIpC,GAFiB,iBAAP8Q,IAAmBA,EAAK,CAAEjM,KAAOiM,IACjCA,EAANA,GAAW,GACL,SAAPsX,EAAiB,OAAO,EAC3B,GAAGhoB,EAAEsF,QAAQ0iB,GACZ,GAAItX,EAAGxE,MAASwE,EAAGxE,KAAKrM,EAAE8b,YAKzB,IAA4C,IAAzC3b,EAAE8F,QAAQ4K,EAAGxE,KAAKrM,EAAE8b,WAAYqM,GAAc,OAAO,OAJpDtX,EAAGxE,OAAQwE,EAAGxE,KAAO,IACzBwE,EAAGxE,KAAKrM,EAAE8b,WAAaqM,EAAG,GAM5B,IAAuB,IAApBnoB,EAAE2nB,eAA+B,IAARM,GAEfA,IADA,IAAPloB,EAAWyE,KAAKyC,gBAAgBuD,KAAK,aAAazI,OAAShC,EAAEyK,KAAK,aAAazI,QAC5E,EAAU,OAAO,EAE1B,IAAoB,IAAjB/B,EAAE4nB,YAA4B,IAARM,GAAcA,EAAK,EAAK,EAAK,OAAO,EAE9D,OAAO1jB,KAAK8D,YAAW,EAAMmD,EAAKmF,EAAUC,EAAIvB,EAAUwB,EAAWmC,QAW9D9S,EA6IRF,QA5IAC,OAAOoH,OAAO,YAAa,CAC5BjB,OAAS,WAER7B,KAAKI,KAAKwjB,UAAUC,wBAA0B7jB,KAAKyC,gBAAgBuD,KAAK,cAAciG,OAAM,GAE5FjM,KAAKI,KAAKwjB,UAAUC,wBAAwB7d,KAAK,MAAM4B,UAAUkF,WAAWhB,OAAO,WAAa,OAAwB,GAAjB9L,KAAK+M,WAAkB1D,UAE/HnI,SAAW,CACVd,MAAO,EACPwV,MAAO,EACP/K,eAAgB,GAEjBhI,IAAM,CACLuE,UAAY,SAAUH,EAAK6O,EAAQC,GAAU,IAAIxO,EAAQvH,KAAMA,KAAK8jB,eAAe7c,EAAK,WAAcM,EAAM5D,WAAW,CAAE,IAAQ4D,EAAMP,UAAUC,KAAS6O,EAAOlc,KAAKoG,OAAU+V,IAChL7M,WAAa,SAAUjC,GAEtB,OAAe,IADfA,EAAMjH,KAAKgH,UAAUC,MACAA,IAASjH,KAAK4B,gBAAgBgiB,UAAUhO,OAASja,EAAE2E,WAAWN,KAAK4B,gBAAgBgiB,UAAUxjB,OAAU6G,EAAIwC,GAAG,+BAA4E,EAA3CxC,EAAItE,SAAS,MAAMA,SAAS,MAAMkH,QAEvMia,eAAiB,SAAU7c,EAAK6O,EAAQC,GACvC,IAAIhc,EACHyB,EAAIwE,KAAKuC,eAAeqhB,UACxB3N,EAAa,aACbC,EAAe,aAEhB,IADAjP,EAAMjH,KAAKgH,UAAUC,MACF,IAATA,EAAY,CACrB,GAAGA,EAAI7G,KAAK,qBAAwB,OAC7B6G,EAAI7G,KAAK,qBAAoB,GAErC,QAAO,GACN,KAAMzE,EAAE2E,WAAW9E,EAAE4E,MACpB5E,EAAE4E,KAAKxG,KAAKoG,KAAMiH,EAAKtL,EAAEyK,MAAM,SAAUrM,GACrCA,GAAW,KAANA,GAAYA,EAAEyO,UAAqD,KAAzCzO,EAAEyO,WAAWlH,QAAQ,YAAY,MAClEvH,EAAI4B,EAAE5B,IACA0P,GAAG,QAAS1P,EAAI4B,EAAE,UAAUuQ,OAAOnS,KAC9B,GAARkN,GAAcA,GACVA,EAAItE,SAAS,oBAAoByF,YAAY,kBAAmBnB,EAAIiF,OAAOnS,GAAG4I,SAAS,MAAMqD,KAAK,SAAS8F,OAAO,WAAc,OAAQ9L,KAAK+jB,aAAe/jB,KAAK+jB,WAAWf,SAAuC,QAA5BhjB,KAAK+jB,WAAWf,UAAsBtW,QAAQ,yCAAyCX,MAAMD,OAAO,KAAKnJ,SAAS,mBAAmBqJ,IAAI,gBAAgBrK,SAAS,eAAgBsF,EAAIU,WAAW,sBADvW3H,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAAYqD,KAAK,SAAS8F,OAAO,WAAc,OAAQ9L,KAAK+jB,aAAe/jB,KAAK+jB,WAAWf,SAAuC,QAA5BhjB,KAAK+jB,WAAWf,UAAsBtW,QAAQ,yCAAyCX,MAAMD,OAAO,KAAKnJ,SAAS,mBAAmBqJ,IAAI,gBAAgBrK,SAAS,eAErV3B,KAAK6L,WAAW5E,GACb6O,GAAUA,EAAOlc,KAAKoG,OAGtBiH,IAAgB,IAATA,GACTA,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACZnM,EAAEqP,gBACJ7K,KAAK6K,cAAc5D,GAChB6O,GAAUA,EAAOlc,KAAKoG,QAIvBxE,EAAEqP,gBACJ7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QACjCmP,GAAUA,EAAOlc,KAAKoG,QAI1BA,OACH,MACD,KAAOxE,EAAE4E,OAAS5E,EAAEoa,KACf3O,IAAe,GAARA,IACVjH,KAAKyC,gBACHE,SAAS,MAAMgE,QACfuF,OAAOlM,KAAKI,KAAKwjB,UAAUC,yBAC3B7d,KAAK,SAAS8F,OAAO,WAAc,OAAQ9L,KAAK+jB,aAAe/jB,KAAK+jB,WAAWf,SAAuC,QAA5BhjB,KAAK+jB,WAAWf,UAAsBtW,QAAQ,yCAAyCX,MACjLD,OAAO,KAAKnJ,SAAS,mBAAmBqJ,IAAI,gBAAgBrK,SAAS,eACvE3B,KAAK6L,cAEHiK,GAAUA,EAAOlc,KAAKoG,MACzB,MACD,MAAQxE,EAAE4E,OAAS5E,EAAEoa,QAAYpa,EAAE4E,QAAU5E,EAAEoa,QAAU3O,IAAgB,IAATA,GAC3DA,IAAe,GAARA,KACVlN,EAAI4B,EAAEH,EAAE4E,OACFqJ,GAAG,QAAS1P,EAAI4B,EAAE,UAAUuQ,OAAOnS,IACzCiG,KAAKyC,gBACHE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAChCqD,KAAK,SAAS8F,OAAO,WAAc,OAAQ9L,KAAK+jB,aAAe/jB,KAAK+jB,WAAWf,SAAuC,QAA5BhjB,KAAK+jB,WAAWf,UAAsBtW,QAAQ,yCAAyCX,MACjLD,OAAO,KAAKnJ,SAAS,mBAAmBqJ,IAAI,gBAAgBrK,SAAS,eACvE3B,KAAK6L,cAEHiK,GAAUA,EAAOlc,KAAKoG,MACzB,MACD,KAAOxE,EAAE4E,QAAU5E,EAAEoa,QAAYpa,EAAE4E,QAAU5E,EAAEoa,MAAQ3O,IAAgB,IAATA,EAC7DA,EAAMjH,KAAKgH,UAAUC,GACrBgP,EAAa,SAAUG,EAAGzb,EAAGwE,GAC5B,IAAIkX,EAAKrW,KAAKuC,eAAeqhB,UAAUhO,KAAKU,MACzCD,GAAMA,EAAGzc,KAAKoG,KAAMoW,EAAGzb,EAAGwE,IAClB,GAAR8H,GAAaA,EAAI1J,QACnB0J,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACN,YAANhN,GAAmBa,EAAEqP,eAAiB7K,KAAK6K,cAAc5D,IAGnD,YAANtM,GAAmBa,EAAEqP,eAAiB7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAE3EoP,GAAUA,EAAOnc,KAAKoG,OAE1BkW,EAAe,SAAUnc,EAAGY,EAAGyb,GAC9B,IAAIG,EAAKvW,KAAKuC,eAAeqhB,UAAUhO,KAAKY,QAE5C,GADGD,IAAMxc,EAAIwc,EAAG3c,KAAKoG,KAAKjG,EAAEY,EAAEyb,IAAMrc,GAC3B,KAANA,GAAaA,GAAKA,EAAEyO,UAAqD,KAAzCzO,EAAEyO,WAAWlH,QAAQ,YAAY,IACnE,OAAO2U,EAAWrc,KAAKoG,KAAMoW,EAAGzb,EAAG,IAEjCZ,IACFA,EAAI4B,EAAE5B,IACA0P,GAAG,QAAS1P,EAAI4B,EAAE,UAAUuQ,OAAOnS,KAC9B,GAARkN,GAAcA,GACVA,EAAItE,SAAS,oBAAoByF,YAAY,kBAAmBnB,EAAIiF,OAAOnS,GAAG4I,SAAS,MAAMqD,KAAK,SAAS8F,OAAO,WAAc,OAAQ9L,KAAK+jB,aAAe/jB,KAAK+jB,WAAWf,SAAuC,QAA5BhjB,KAAK+jB,WAAWf,UAAsBtW,QAAQ,yCAAyCX,MAAMD,OAAO,KAAKnJ,SAAS,mBAAmBqJ,IAAI,gBAAgBrK,SAAS,eAAgBsF,EAAIU,WAAW,sBADvW3H,KAAKyC,gBAAgBE,SAAS,MAAMgE,QAAQuF,OAAOnS,EAAE4I,YAAYqD,KAAK,SAAS8F,OAAO,WAAc,OAAQ9L,KAAK+jB,aAAe/jB,KAAK+jB,WAAWf,SAAuC,QAA5BhjB,KAAK+jB,WAAWf,UAAsBtW,QAAQ,yCAAyCX,MAAMD,OAAO,KAAKnJ,SAAS,mBAAmBqJ,IAAI,gBAAgBrK,SAAS,eAErV3B,KAAK6L,WAAW5E,GACb6O,GAAUA,EAAOlc,KAAKoG,OAGtBiH,IAAgB,IAATA,GACTA,EAAItE,SAAS,oBAAoByF,YAAY,kBAC7CnB,EAAIU,WAAW,qBACZnM,EAAEqP,gBACJ7K,KAAK6K,cAAc5D,GAChB6O,GAAUA,EAAOlc,KAAKoG,QAIvBxE,EAAEqP,gBACJ7K,KAAKyC,gBAAgBE,SAAS,MAAMgE,QACjCmP,GAAUA,EAAOlc,KAAKoG,QAK7BxE,EAAEoa,KAAK/D,QAAU7R,KACjBxE,EAAEoa,KAAKU,MAAQL,EACfza,EAAEoa,KAAKY,QAAUN,EACb1a,EAAEoa,KAAKc,WAAYlb,EAAEoa,KAAKc,SAAW,QACtC/a,EAAE2E,WAAW9E,EAAEoa,KAAK/W,OAAQrD,EAAEoa,KAAK/W,IAAMrD,EAAEoa,KAAK/W,IAAIjF,KAAKoG,KAAMiH,IAC/DtL,EAAE2E,WAAW9E,EAAEoa,KAAKxV,QAAS5E,EAAEoa,KAAKxV,KAAO5E,EAAEoa,KAAKxV,KAAKxG,KAAKoG,KAAMiH,IACrEtL,EAAEia,KAAKpa,EAAEoa,WAOdja,EAAED,OAAOwF,SAAS5B,QAAQwB,KAAK,cAQrBnF,EAsIRF,QArIAC,OAAOoH,OAAO,cAAe,CAC9BjB,OAAS,WACR,IAAIrG,EAAIwE,KAAK4B,gBAAgBoiB,YAC7BhkB,KAAKyC,gBACHd,SAAS,qBACTA,SAAS,sBACTwE,SAAS,IAAI,oBAAqB,SAAUhH,GACxCxD,EAAEwD,EAAEuQ,eAAe5F,SAAS,mBAC/BnO,EAAEqE,MAAM2B,SAASnG,EAAEyoB,UAGpB9d,SAAS,IAAI,oBAAqB,WAClCxK,EAAEqE,MAAMoI,YAAY5M,EAAEyoB,UAEtBhpB,KAAK,cAAeU,EAAEyK,MAAM,SAAUjH,EAAGiB,GACxCA,EAAK8jB,KAAKzhB,gBAAgBuD,KAAK,qCAAqCrE,SAAS,mBAC7E3B,KAAKmkB,aAAa/jB,EAAK8jB,KAAKzhB,gBAAgBuD,KAAK,eAC/ChG,OACH/E,KAAK,sCAAuCU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAChEJ,KAAKmkB,aAAa/jB,EAAKgD,KAAK6D,MAC1BjH,OACH/E,KAAK,+BAAgCU,EAAEyK,MAAM,SAAUjH,GACtDa,KAAKmkB,gBACHnkB,OACH/E,KAAK,oBAAqBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC9CJ,KAAKmkB,aAAa/jB,EAAKgD,KAAK6D,MAC1BjH,OACH/E,KAAK,qBAAsBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC/CJ,KAAKmkB,aAAa/jB,EAAKgD,KAAK8L,SAC1BlP,OACH/E,KAAK,uBAAwBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GACjDA,EAAKgD,KAAK6D,IACRtE,SAAS,mBAAmByF,YAAY5M,EAAEwM,OAAS,IAAMxM,EAAE4oB,OAAS,YAAYrY,MAChF/F,KAAK,qBACJ8F,OAAO,WACP,OAE2B,IAFpB9L,KAAK8H,UAAUU,WACpBlH,QAAQ9F,EAAE6oB,UAAU,IAAI/iB,QAAQ9F,EAAE8oB,UAAU,IAAIhjB,QAAQ9F,EAAE+oB,UAAU,IACpE/jB,QAAQ,cACR4H,YAAY5M,EAAE8oB,UAAY,IAAM9oB,EAAE6oB,WAAW1iB,SAASnG,EAAE+oB,WAAa,mBACxEvkB,OACH/E,KAAK,qBAAsBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC/CA,EAAKgD,KAAK6D,IAAItE,SAAS,KAAKhB,SAASnG,EAAEgpB,SACrCxkB,OACH/E,KAAK,2CAA4CU,EAAEyK,MAAM,SAAUjH,EAAGiB,GACrEJ,KAAKyC,gBACHuD,KAAK,KAAOxK,EAAEgpB,QAAQpc,YAAY5M,EAAEgpB,QAAQzY,MAC5C/F,KAAK,oBAAoBrE,SAASnG,EAAEgpB,SACpCxkB,OACH/E,KAAK,sBAAuBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAChDA,EAAKgD,KAAK6D,IAAItE,SAAS,KAAKyF,YAAY5M,EAAEyoB,SACxCjkB,OACH/E,KAAK,oBAAqBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC9CJ,KAAKyC,gBACHuD,KAAK,KAAOxK,EAAEyoB,QAAQjY,IAAI5L,EAAKgD,KAAK6D,KAAKmB,YAAY5M,EAAEyoB,QACzD7jB,EAAKgD,KAAK6D,IAAItE,SAAS,KAAKhB,SAASnG,EAAEyoB,SACrCjkB,OACH/E,KAAK,mBAAoBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC7CJ,KAAKmkB,aAAa/jB,EAAKgD,KAAKlJ,GAC5B8F,KAAKmkB,aAAa/jB,EAAKgD,KAAK2K,KAC1B/N,QAENkD,UAAY,WACX,IAAI1H,EAAIwE,KAAK4B,gBAAgBoiB,YAC5BlqB,EAAI,CAAE,WACP6B,EAAEuE,KAAK1E,EAAG,SAAU/B,EAAG8K,IACtBA,EAAIA,EAAEhD,MAAM,MACPhE,SAAUzD,EAAIA,EAAE+G,OAAO0D,MAE7BvE,KAAKyC,gBACH2F,YAAY,qBACZpC,KAAK,IAAMlM,EAAEuH,KAAK,QAAQ+G,YAAYtO,EAAEuH,KAAK,OAEhDwB,IAAM,CACLshB,aAAe,SAAUld,GACxB,IAAIzL,EAAIwE,KAAK4B,gBAAgBoiB,aAE7B/c,GADAA,EAAQA,IAAe,GAARA,EAAuCjH,KAAKgH,UAAUC,GAAzCjH,KAAK0C,sBACV,GAARuE,EAAuCA,EAAIiI,SAA9BlP,KAAK0C,oBAE/BsD,KAAK,oBACJrD,SAAS,mBAAmByF,YAAY5M,EAAEwM,QAAQrG,SAAS,WAAanG,EAAE4oB,QAAQrY,MAClFpJ,SAAS,KAAKhB,SAASnG,EAAEipB,MACxB9hB,SAAS,mBAAmBhB,SAAS,WACpCmK,OAAO,WACP,OAE2B,IAFpB9L,KAAK8H,UAAUU,WACpBlH,QAAQ9F,EAAE6oB,UAAU,IAAI/iB,QAAQ9F,EAAE8oB,UAAU,IAAIhjB,QAAQ9F,EAAE+oB,UAAU,IACpE/jB,QAAQ,cACR4H,YAAY5M,EAAE+oB,UAAY,IAAM/oB,EAAE8oB,WAAW3iB,SAASnG,EAAE6oB,WAAa,kBACvEtY,MACDA,MACDA,MACDA,MACA/F,KAAK,kBACJrD,SAAS,mBAAmByF,YAAY5M,EAAE4oB,QAAQziB,SAAS,WAAanG,EAAEwM,QAAQ+D,MAClFpJ,SAAS,KAAKhB,SAASnG,EAAEipB,MACxB9hB,SAAS,mBAAmBhB,SAAS,WACpCmK,OAAO,WACP,OAE2B,IAFpB9L,KAAK8H,UAAUU,WACpBlH,QAAQ9F,EAAE6oB,UAAU,IAAI/iB,QAAQ9F,EAAE8oB,UAAU,IAAIhjB,QAAQ9F,EAAE+oB,UAAU,IACpE/jB,QAAQ,cACR4H,YAAY5M,EAAE+oB,UAAY,IAAM/oB,EAAE6oB,WAAW1iB,SAASnG,EAAE8oB,WAAa,kBACvEvY,MACDA,MACDA,MACDA,MACA/F,KAAK,kBACJrD,SAAS,mBAAmByF,YAAY5M,EAAE4oB,OAAS,YAAc5oB,EAAEwM,QAAQ+D,MAC3EpJ,SAAS,KAAKhB,SAASnG,EAAEipB,MACxB9hB,SAAS,mBAAmBhB,SAAS,WACpCmK,OAAO,WACP,OAE2B,IAFpB9L,KAAK8H,UAAUU,WACpBlH,QAAQ9F,EAAE6oB,UAAU,IAAI/iB,QAAQ9F,EAAE8oB,UAAU,IAAIhjB,QAAQ9F,EAAE+oB,UAAU,IACpE/jB,QAAQ,cACR4H,YAAY5M,EAAE6oB,UAAY,IAAM7oB,EAAE8oB,WAAW3iB,SAASnG,EAAE+oB,WAAa,oBAG9ErjB,SAAW,CACV,OAAW,wBACX,OAAW,uBACX,KAAU,mBACV,OAAW,iBACX,OAAW,kBACX,UAAc,sBACd,UAAc,2BACd,UAAc,sBAGhBvF,EAAE,WAKDA,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IAJR,oJAI0BC,MAAQ,cAU1CzC,EAyERF,QAxEAC,OAAOoH,OAAO,SAAU,CACzBjB,OAAS,WACR7B,KAAKyC,gBACHxH,KAAK,gBAAiBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAC1C,IAA0B7E,EAAGZ,EAAzB+pB,EAAM,GAAIC,GAAM,EAgCpB,GA/BgB,aAAbvkB,EAAKiD,OAEa,IAAjBjD,EAAKT,KAAK,IACTS,EAAKT,KAAK,GAAGzF,GAAKkG,EAAKT,KAAK,GAAGzF,EAAEqD,SACnC6C,EAAKT,KAAK,GAAGzF,EAAEyI,SAAS,KAAKzC,KAAK,WAAcwkB,EAAI5jB,KAAKnF,EAAEqE,MAAM8S,OAAOxR,QAAQ,QAAQ,OACxFqjB,EAAM3kB,KAAK4kB,cAAcF,EAAKtkB,EAAKT,KAAK,GAAGmO,GAAG9H,KAAK,aAAagG,IAAI5L,EAAKT,KAAK,GAAGzF,GAAI,cAIxE,eAAbkG,EAAKiD,OAEJjD,EAAKT,KAAK,IAAMK,KAAKkJ,WAAW9I,EAAKT,KAAK,OAC5CpE,EAAIyE,KAAKgH,UAAU5G,EAAKT,KAAK,KAC1BS,EAAKT,KAAK,IAAwB,WAAjBS,EAAKT,KAAK,IAAoC,UAAjBS,EAAKT,KAAK,KAC1DpE,EAAIyE,KAAKoK,YAAYhK,EAAKT,KAAK,OACf,IAAPpE,IAAYA,EAAIyE,KAAKyC,iBAEJ,iBAAjBrC,EAAKT,KAAK,GAAmB+kB,EAAI5jB,KAAKV,EAAKT,KAAK,IACjDS,EAAKT,KAAK,IAAOS,EAAKT,KAAK,GAAGS,KAChCskB,EAAI5jB,KAAKV,EAAKT,KAAK,GAAGS,MADkBskB,EAAI5jB,KAAKd,KAAK8F,YAAY,aAEzE6e,EAAM3kB,KAAK4kB,cAAcF,EAAKnpB,EAAEyK,KAAK,aAAc,gBAGrC,eAAb5F,EAAKiD,OAEPqhB,EAAI5jB,KAAKV,EAAKT,KAAK,IACnBhF,EAAIqF,KAAKgH,UAAU5G,EAAKT,KAAK,KAC7BpE,EAAIyE,KAAKoK,YAAYzP,MACL,IAAPY,IAAYA,EAAIyE,KAAKyC,iBAC9BkiB,EAAM3kB,KAAK4kB,cAAcF,EAAKnpB,EAAEyK,KAAK,aAAagG,IAAIrR,GAAI,iBAEvDgqB,EAEH,OADAxlB,EAAE0lB,mBACK,GAEN7kB,QAENkB,SAAW,CACV4jB,eAAiBnpB,EAAEsH,MAEpBJ,IAAM,CACL+hB,cAAgB,SAAUF,EAAKnpB,EAAG8H,GACjC,IAAI0hB,EAAO,GAAIC,GAAK,EAEpB,OADAzpB,EAAEoH,SAAS,KAAKzC,KAAK,WAAc6kB,EAAKjkB,KAAKnF,EAAEqE,MAAM8S,OAAOxR,QAAQ,QAAQ,QACxEyjB,EAAKxnB,SAAWmnB,EAAInnB,SACxB5B,EAAEuE,KAAKwkB,EAAK,SAAUjrB,EAAG8K,GACxB,IAA2B,IAAxB5I,EAAE8F,QAAQ8C,EAAGwgB,GAEf,OADAC,GAAK,IAIHA,GACHhlB,KAAK4B,gBAAgBqjB,OAAOH,eAAelrB,KAAK,KAAM8qB,EAAKnpB,EAAG8H,GAExD2hB,IAER9W,WAAa,WACZ,IAAIlO,KAAK8D,aAAgB,OAAO,EAChC,IAAIvI,EAAIyE,KAAK4O,YAAa8V,EAAM,GAChC,OAAGnpB,EAAErB,IAAKqB,EAAErB,EAAEqD,SACbhC,EAAErB,EAAEyI,SAAS,KAAKzC,KAAK,WAAcwkB,EAAI5jB,KAAKnF,EAAEqE,MAAM8S,OAAOxR,QAAQ,QAAQ,OACtEtB,KAAK4kB,cAAcF,EAAKnpB,EAAEuS,GAAG9H,KAAK,aAAagG,IAAIzQ,EAAErB,GAAI,oBAc1DyB,EAkHRF,QAjHAC,OAAOoH,OAAO,WAAY,CAC3BjB,OAAS,WACR,IAAI7B,KAAKI,KAAK+O,GAAM,KAAM,kDAC1BnP,KAAKI,KAAK8kB,SAASrf,MAAO,EAC1B7F,KAAKI,KAAK8kB,SAASC,IAAK,EACxBnlB,KAAKyC,gBACHxH,KAAK,cAAeU,EAAEyK,MAAM,SAAUjH,EAAGiB,GACxCJ,KAAK4B,gBAAgBU,KAAK6C,UAAY,GACpCnF,OACH/E,KAAK,sEAAuEU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAChGJ,KAAKolB,uBAAwBhlB,GAAQA,EAAKgD,MAAQhD,EAAKgD,KAAK6D,IAAM7G,EAAKgD,KAAK6D,KAAO,IACjFjH,OACH/E,KAAK,+IAAgJU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAE7I,IAAUzF,EAAGT,EADtC8F,KAAKI,KAAK+kB,IAAMhc,aAAanJ,KAAKI,KAAK+kB,IAC1CnlB,KAAKI,KAAK+kB,GAAKrjB,YAAuBnH,EAA6DqF,KAA1D9F,EAAiEkG,GAAQA,EAAKgD,MAAQhD,EAAKgD,KAAK6D,IAAM7G,EAAKgD,KAAK6D,KAAO,EAA3G,WAAatM,EAAE0qB,qBAAqBnrB,KAA2E,IAClK8F,OACH/E,KAAK,sBAAuBU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAChDJ,KAAKyC,gBAAgBuD,KAAK,uCAAuCoC,YAAY,mBAAqBpI,KAAKI,KAAK4jB,YAAchkB,KAAK4B,gBAAgBoiB,YAAYQ,OAAS,MAClKxkB,OACH/E,KAAK,2CAA4CU,EAAEyK,MAAM,SAAUjH,EAAGiB,GACrEA,EAAKgD,KAAK6D,IAAI/G,KAAK,WACRE,EAAK8jB,KAAKzhB,gBAAgBuD,KAAK,qCAAyChF,UAAWrF,EAAEqE,MAAMuR,SAAS1C,IAAMzO,EAAK8jB,KAAKzhB,gBAAgB8O,SAAS1C,IAAMzO,EAAK8jB,KAAKzhB,gBAAgB,GAAG+O,WAAapR,EAAK8jB,KAAK9jB,KAAKkC,KAAKyD,UAAW,IAAO,KAEzOpD,SAAS,KAAKkF,KAAK,QAAQzH,EAAKgD,KAAK6D,IAAItE,SAAS,KAAKkF,KAAK,aAE/D7H,OACH/E,KAAK,wCAAyCU,EAAEyK,MAAM,SAAUjH,EAAGiB,GAClEJ,KAAKyC,gBAAgBuD,KAAK,uCAAuCoC,YAAY,mBAAqBpI,KAAKI,KAAK4jB,YAAchkB,KAAK4B,gBAAgBoiB,YAAYC,OAAS,KACtJ,eAAX9kB,EAAEH,MACMgB,KAAKyC,gBAAgBuD,KAAK,qCAAyChF,UAAWZ,EAAKgD,KAAK6D,IAAIsK,SAAS1C,IAAM7O,KAAKyC,gBAAgB8O,SAAS1C,IAAM7O,KAAKyC,gBAAgB,GAAG+O,WAAaxR,KAAKI,KAAKkC,KAAKyD,UAAW,IAAO,KAE3NpD,SAAS,KAAKkF,KAAK,QAAQzH,EAAKgD,KAAK6D,IAAItE,SAAS,mBAAmBkF,KAAK,WAE7E7H,OACHmG,SAAS,6CAA8C,eAAgB,SAAUhH,GAChF,IAAIjE,EAAIS,EAAEwD,EAAEuQ,eACY,MAArBvQ,EAAEoH,OAAOyc,SAAyC,QAArB7jB,EAAEoH,OAAOyc,SAAqB9nB,EAAEiH,QAAQ,MAAMsH,GAAG,kCACjFvO,EAAEiH,QAAQ,MAAMQ,SAAS,mBAAmB4S,QAC5CpW,EAAEud,8BAEHvW,SAAS,KAAM,mBAAoBxK,EAAEyK,MAAM,SAAUjH,GAEpD,OADAA,EAAEud,2BACC/gB,EAAEwD,EAAEuQ,eAAe/M,SAAS,oCAAoCpF,QACnEyC,KAAK6P,WAAW1Q,EAAEuQ,gBADkE,GAGlF1P,OACHmG,SAAS,KAAM,oBAAqBxK,EAAEyK,MAAM,SAAUjH,GAClDxD,EAAEwD,EAAEuQ,eAAe/M,SAAS,KAAKmH,SAAS,kBAAkBvM,QAC/DyC,KAAK8P,aAAa3Q,EAAEuQ,gBAClB1P,QACFtD,GAAUD,IACZd,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IAAM,WAAa6B,KAAKwC,YAAc,2BAA4BpE,MAAQ,YAGrG8C,SAAW,GAEXgC,UAAY,WACXlD,KAAKyC,gBAAgBE,SAAS,oBAAoB0G,SAClDrJ,KAAKyC,gBAAgBuD,KAAK,yBAAyBqD,UAEpDxG,IAAM,CACLuiB,uBAAyB,SAAUne,IAEvB,KADXA,EAAOA,IAAe,GAARA,EAAqDjH,KAAKgH,UAAUC,GAAxDjH,KAAKyC,gBAAgBuD,KAAK,eAEpDiB,EAAI/G,KAAK,WACRvE,EAAEqE,MAAMgG,KAAK,MAAM4B,UAAU1H,KAAK,WACjC,IAAI4d,EAAKniB,EAAEqE,MACX,GAAG8d,EAAGnb,SAAS,yBAAyBpF,OAAU,OAAO,EACzDugB,EAAGpR,QAAQ,mDAA+F,GAAzCoR,EAAG/T,aAAa,UAAU,MAAMxM,OAAe,2BAInH8nB,qBAAuB,WACtB,IAAInrB,EAAI8F,KAAKyC,gBAAgBE,SAAS,MAAMsD,GAAG,GAAI9B,EAAIjK,EAAE2L,OACzD3L,EAAEyH,SAAS,wBACR3B,KAAKI,KAAK8kB,SAASI,YAAcnhB,IACnCnE,KAAKI,KAAK8kB,SAASI,UAAYnhB,EAC/BnE,KAAKyC,gBAAgBE,SAAS,oBAAoB0G,SAClDrJ,KAAKyC,gBAAgByJ,OACpBhS,EAAE+R,QAAQ7D,YAAY,wBACpBmd,QAAQ,mCAAmCrW,SAC3CH,MAAM7U,EAAEgV,SAAS,GAAGuC,aACpB5U,IAAI,OAA2C,GAAnC3C,EAAEgM,UAAaxJ,EAAS,EAAI,KACxCsJ,KAAK,UAAU9F,KAAK,WAAcF,KAAKwlB,gBAAgB,QAAUzZ,YAMxEpQ,EAAE,WACD,IAAI8I,EAAa,6lCAWd9H,IACF8H,GAAc,wKAIZ/H,GAAUD,KACZgI,GAAc,4PAIf9I,EAAEiB,OAAOC,IAAIkB,UAAU,CAAEI,IAAMsG,EAAYrG,MAAQ,aAS1CzC,EAyDRF,OAxDEe,EAAgB,CAAC,cAAc,mBAAmB,UAAU,UAAU,YAU1Eb,EAAED,OAAOoH,OAAO,QAAS,CACxBjB,OAAS,WACR,IAAI7B,KAAKI,KAAKsV,UAAa,KAAM,sDACjC1V,KAAK4B,gBAAgB8T,UAAUtV,KAAO,SAAUlF,EAAGyF,GAClD,IAb2BsG,EAAKwe,EAC7BC,EAYCze,GAAa,GAAN/L,EAAW8E,KAAK4B,gBAAgB+jB,MAAMxqB,OAASD,EAAEkF,KAAK,gBACjE,GAbGslB,GAAQ,EACZze,GAF4BA,EAcLA,IAZV,GACbwe,EAAQ,GAAG5kB,OAHsB4kB,EAcLjpB,GAV5Bb,EAAEuE,KAAKulB,EAAO,SAAUhsB,EAAG8K,GAC1B,IAAI5I,EAAE2E,WAAW2G,EAAI1C,IAAsB,OAAfmhB,GAAQ,KAE9BA,EAOuC,OAAO/kB,EAAE/G,KAAK,MAAM,GAC9DoG,KAAK4B,gBAAgB+jB,MAAMC,MAC7B3e,EAAI4e,YAAYlqB,EAAEyK,MAAM,SAAUhG,GACjCJ,KAAK8lB,WAAW1lB,EAAMO,IACpBX,OAGHA,KAAK8lB,WAAW7e,EAAI4e,cAAellB,KAItCO,SAAW,CACV/F,QAAS,EACT4qB,WAAY,EACZH,OAAQ,GAET/iB,IAAM,CACLijB,WAAa,SAAU1lB,EAAM0K,GAC5B,IAAIqD,EAAM,GACT3S,EAAIwE,KAAK4B,gBACT2F,EAAQvH,KAELrE,EAAEsF,QAAQb,KAASA,EAAO,CAACA,IAC/BzE,EAAEuE,KAAKE,EAAM,SAAU3G,EAAGusB,GACzB,IAAIzrB,EAAIyrB,EAAGC,YAAc,GACzB1rB,EAAEsN,KAAOme,EAAGE,WAAa,GACtBF,EAAGG,qBAAsB5rB,EAAEiS,MAAQ,UACtCjS,EAAE6F,KAAO4lB,EAAGI,UACRzqB,EAAEsF,QAAQ1G,EAAE6F,QAAS7F,EAAE6F,KAAO,CAAC7F,EAAE6F,OAClCmH,EAAMnH,KAAKiX,OAAS1b,EAAE2E,WAAW0lB,EAAGK,WACtC9rB,EAAEsN,KAAKrM,EAAE6b,MAAMC,WAAa0O,EAAGK,WAE7B9rB,EAAEsN,KAAKU,IAAM/M,EAAEmqB,MAAMI,YAAaxrB,EAAEsN,KAAKU,GAAK/M,EAAEmqB,MAAMI,UAAYxrB,EAAEsN,KAAKU,IACxEhO,EAAEgS,WAAYhS,EAAEgS,SAAW,IAC/BhS,EAAEgS,SAAS+Z,aAAeN,EAC1B7X,EAAIrN,KAAKvG,KAEVuQ,EAASlR,KAAK,KAAMuU,QAx7IxB,I,kBChBAoY,OAAOC,SAAS,WACZ7qB,EAAE0C,UAAUooB,GAAG,SAAU,kBAAmB,SAAShtB,GACjD8sB,OAAOG,UAAUC,wBAGrBhrB,EAAE,0BAA0B8qB,GAAG,QAAS,SAASpgB,GAE7C,OADA1K,EAAEqE,MAAMmC,QAAQ,MAAMkH,UACf","file":"javascripts/studip-admission.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 156);\n","import \"./jquery/jstree/jquery.jstree.js\"\nimport \"./bootstrap/admission.js\"\n","/*\n * jsTree 1.0-rc3\n * http://jstree.com/\n *\n * Copyright (c) 2010 Ivan Bozhanov (vakata.com)\n *\n * Licensed same as jquery - under the terms of either the MIT License or the GPL Version 2 License\n *   http://www.opensource.org/licenses/mit-license.php\n *   http://www.gnu.org/licenses/gpl.html\n *\n * $Date: 2011-02-09 01:17:14 +0200 (ср, 09 февр 2011) $\n * $Revision: 236 $\n */\n\n/*jslint browser: true, onevar: true, undef: true, bitwise: true, strict: true */\n/*global window : false, clearInterval: false, clearTimeout: false, document: false, setInterval: false, setTimeout: false, jQuery: false, navigator: false, XSLTProcessor: false, DOMParser: false, XMLSerializer: false, ActiveXObject: false */\n\n\"use strict\";\n\n// top wrapper to prevent multiple inclusion (is this OK?)\n(function () { if(jQuery && jQuery.jstree) { return; }\n\tvar is_ie6 = false, is_ie7 = false, is_ff2 = false;\n\n/* \n * jsTree core\n */\n(function ($) {\n\t// Common functions not related to jsTree \n\t// decided to move them to a `vakata` \"namespace\"\n\t$.vakata = {};\n\t// CSS related functions\n\t$.vakata.css = {\n\t\tget_css : function(rule_name, delete_flag, sheet) {\n\t\t\trule_name = rule_name.toLowerCase();\n\t\t\tvar css_rules = sheet.cssRules || sheet.rules,\n\t\t\t\tj = 0;\n\t\t\tdo {\n\t\t\t\tif(css_rules.length && j > css_rules.length + 5) { return false; }\n\t\t\t\tif(css_rules[j].selectorText && css_rules[j].selectorText.toLowerCase() == rule_name) {\n\t\t\t\t\tif(delete_flag === true) {\n\t\t\t\t\t\tif(sheet.removeRule) { sheet.removeRule(j); }\n\t\t\t\t\t\tif(sheet.deleteRule) { sheet.deleteRule(j); }\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse { return css_rules[j]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (css_rules[++j]);\n\t\t\treturn false;\n\t\t},\n\t\tadd_css : function(rule_name, sheet) {\n\t\t\tif($.jstree.css.get_css(rule_name, false, sheet)) { return false; }\n\t\t\tif(sheet.insertRule) { sheet.insertRule(rule_name + ' { }', 0); } else { sheet.addRule(rule_name, null, 0); }\n\t\t\treturn $.vakata.css.get_css(rule_name);\n\t\t},\n\t\tremove_css : function(rule_name, sheet) { \n\t\t\treturn $.vakata.css.get_css(rule_name, true, sheet); \n\t\t},\n\t\tadd_sheet : function(opts) {\n\t\t\tvar tmp = false, is_new = true;\n\t\t\tif(opts.str) {\n\t\t\t\tif(opts.title) { tmp = $(\"style[id='\" + opts.title + \"-stylesheet']\")[0]; }\n\t\t\t\tif(tmp) { is_new = false; }\n\t\t\t\telse {\n\t\t\t\t\ttmp = document.createElement(\"style\");\n\t\t\t\t\ttmp.setAttribute('type',\"text/css\");\n\t\t\t\t\tif(opts.title) { tmp.setAttribute(\"id\", opts.title + \"-stylesheet\"); }\n\t\t\t\t}\n\t\t\t\tif(tmp.styleSheet) {\n\t\t\t\t\tif(is_new) { \n\t\t\t\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(tmp); \n\t\t\t\t\t\ttmp.styleSheet.cssText = opts.str; \n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttmp.styleSheet.cssText = tmp.styleSheet.cssText + \" \" + opts.str; \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttmp.appendChild(document.createTextNode(opts.str));\n\t\t\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(tmp);\n\t\t\t\t}\n\t\t\t\treturn tmp.sheet || tmp.styleSheet;\n\t\t\t}\n\t\t\tif(opts.url) {\n\t\t\t\tif(document.createStyleSheet) {\n\t\t\t\t\ttry { tmp = document.createStyleSheet(opts.url); } catch (e) { }\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttmp\t\t\t= document.createElement('link');\n\t\t\t\t\ttmp.rel\t\t= 'stylesheet';\n\t\t\t\t\ttmp.type\t= 'text/css';\n\t\t\t\t\ttmp.media\t= \"all\";\n\t\t\t\t\ttmp.href\t= opts.url;\n\t\t\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(tmp);\n\t\t\t\t\treturn tmp.styleSheet;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// private variables \n\tvar instances = [],\t\t\t// instance array (used by $.jstree.reference/create/focused)\n\t\tfocused_instance = -1,\t// the index in the instance array of the currently focused instance\n\t\tplugins = {},\t\t\t// list of included plugins\n\t\tprepared_move = {};\t\t// for the move_node function\n\n\t// jQuery plugin wrapper (thanks to jquery UI widget function)\n\t$.fn.jstree = function (settings) {\n\t\tvar isMethodCall = (typeof settings == 'string'), // is this a method call like $().jstree(\"open_node\")\n\t\t\targs = Array.prototype.slice.call(arguments, 1), \n\t\t\treturnValue = this;\n\n\t\t// if a method call execute the method on all selected instances\n\t\tif(isMethodCall) {\n\t\t\tif(settings.substring(0, 1) == '_') { return returnValue; }\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = instances[$.data(this, \"jstree_instance_id\")],\n\t\t\t\t\tmethodValue = (instance && $.isFunction(instance[settings])) ? instance[settings].apply(instance, args) : instance;\n\t\t\t\t\tif(typeof methodValue !== \"undefined\" && (settings.indexOf(\"is_\") === 0 || (methodValue !== true && methodValue !== false))) { returnValue = methodValue; return false; }\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis.each(function() {\n\t\t\t\t// extend settings and allow for multiple hashes and $.data\n\t\t\t\tvar instance_id = $.data(this, \"jstree_instance_id\"),\n\t\t\t\t\ta = [],\n\t\t\t\t\tb = settings ? $.extend({}, true, settings) : {},\n\t\t\t\t\tc = $(this), \n\t\t\t\t\ts = false, \n\t\t\t\t\tt = [];\n\t\t\t\ta = a.concat(args);\n\t\t\t\tif(c.data(\"jstree\")) { a.push(c.data(\"jstree\")); }\n\t\t\t\tb = a.length ? $.extend.apply(null, [true, b].concat(a)) : b;\n\n\t\t\t\t// if an instance already exists, destroy it first\n\t\t\t\tif(typeof instance_id !== \"undefined\" && instances[instance_id]) { instances[instance_id].destroy(); }\n\t\t\t\t// push a new empty object to the instances array\n\t\t\t\tinstance_id = parseInt(instances.push({}),10) - 1;\n\t\t\t\t// store the jstree instance id to the container element\n\t\t\t\t$.data(this, \"jstree_instance_id\", instance_id);\n\t\t\t\t// clean up all plugins\n\t\t\t\tb.plugins = $.isArray(b.plugins) ? b.plugins : $.jstree.defaults.plugins.slice();\n\t\t\t\tb.plugins.unshift(\"core\");\n\t\t\t\t// only unique plugins\n\t\t\t\tb.plugins = b.plugins.sort().join(\",,\").replace(/(,|^)([^,]+)(,,\\2)+(,|$)/g,\"$1$2$4\").replace(/,,+/g,\",\").replace(/,$/,\"\").split(\",\");\n\n\t\t\t\t// extend defaults with passed data\n\t\t\t\ts = $.extend(true, {}, $.jstree.defaults, b);\n\t\t\t\ts.plugins = b.plugins;\n\t\t\t\t$.each(plugins, function (i, val) { \n\t\t\t\t\tif($.inArray(i, s.plugins) === -1) { s[i] = null; delete s[i]; } \n\t\t\t\t\telse { t.push(i); }\n\t\t\t\t});\n\t\t\t\ts.plugins = t;\n\n\t\t\t\t// push the new object to the instances array (at the same time set the default classes to the container) and init\n\t\t\t\tinstances[instance_id] = new $.jstree._instance(instance_id, $(this).addClass(\"jstree jstree-\" + instance_id), s); \n\t\t\t\t// init all activated plugins for this instance\n\t\t\t\t$.each(instances[instance_id]._get_settings().plugins, function (i, val) { instances[instance_id].data[val] = {}; });\n\t\t\t\t$.each(instances[instance_id]._get_settings().plugins, function (i, val) { if(plugins[val]) { plugins[val].__init.apply(instances[instance_id]); } });\n\t\t\t\t// initialize the instance\n\t\t\t\tsetTimeout(function() { if(instances[instance_id]) { instances[instance_id].init(); } }, 0);\n\t\t\t});\n\t\t}\n\t\t// return the jquery selection (or if it was a method call that returned a value - the returned value)\n\t\treturn returnValue;\n\t};\n\t// object to store exposed functions and objects\n\t$.jstree = {\n\t\tdefaults : {\n\t\t\tplugins : []\n\t\t},\n\t\t_focused : function () { return instances[focused_instance] || null; },\n\t\t_reference : function (needle) { \n\t\t\t// get by instance id\n\t\t\tif(instances[needle]) { return instances[needle]; }\n\t\t\t// get by DOM (if still no luck - return null\n\t\t\tvar o = $(needle); \n\t\t\tif(!o.length && typeof needle === \"string\") { o = $(\"#\" + needle); }\n\t\t\tif(!o.length) { return null; }\n\t\t\treturn instances[o.closest(\".jstree\").data(\"jstree_instance_id\")] || null; \n\t\t},\n\t\t_instance : function (index, container, settings) { \n\t\t\t// for plugins to store data in\n\t\t\tthis.data = { core : {} };\n\t\t\tthis.get_settings\t= function () { return $.extend(true, {}, settings); };\n\t\t\tthis._get_settings\t= function () { return settings; };\n\t\t\tthis.get_index\t\t= function () { return index; };\n\t\t\tthis.get_container\t= function () { return container; };\n\t\t\tthis.get_container_ul = function () { return container.children(\"ul:eq(0)\"); };\n\t\t\tthis._set_settings\t= function (s) { \n\t\t\t\tsettings = $.extend(true, {}, settings, s);\n\t\t\t};\n\t\t},\n\t\t_fn : { },\n\t\tplugin : function (pname, pdata) {\n\t\t\tpdata = $.extend({}, {\n\t\t\t\t__init\t\t: $.noop, \n\t\t\t\t__destroy\t: $.noop,\n\t\t\t\t_fn\t\t\t: {},\n\t\t\t\tdefaults\t: false\n\t\t\t}, pdata);\n\t\t\tplugins[pname] = pdata;\n\n\t\t\t$.jstree.defaults[pname] = pdata.defaults;\n\t\t\t$.each(pdata._fn, function (i, val) {\n\t\t\t\tval.plugin\t\t= pname;\n\t\t\t\tval.old\t\t\t= $.jstree._fn[i];\n\t\t\t\t$.jstree._fn[i] = function () {\n\t\t\t\t\tvar rslt,\n\t\t\t\t\t\tfunc = val,\n\t\t\t\t\t\targs = Array.prototype.slice.call(arguments),\n\t\t\t\t\t\tevnt = new $.Event(\"before.jstree\"),\n\t\t\t\t\t\trlbk = false;\n\n\t\t\t\t\tif(this.data.core.locked === true && i !== \"unlock\" && i !== \"is_locked\") { return; }\n\n\t\t\t\t\t// Check if function belongs to the included plugins of this instance\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif(func && func.plugin && $.inArray(func.plugin, this._get_settings().plugins) !== -1) { break; }\n\t\t\t\t\t\tfunc = func.old;\n\t\t\t\t\t} while(func);\n\t\t\t\t\tif(!func) { return; }\n\n\t\t\t\t\t// context and function to trigger events, then finally call the function\n\t\t\t\t\tif(i.indexOf(\"_\") === 0) {\n\t\t\t\t\t\trslt = func.apply(this, args);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\trslt = this.get_container().triggerHandler(evnt, { \"func\" : i, \"inst\" : this, \"args\" : args, \"plugin\" : func.plugin });\n\t\t\t\t\t\tif(rslt === false) { return; }\n\t\t\t\t\t\tif(typeof rslt !== \"undefined\") { args = rslt; }\n\n\t\t\t\t\t\trslt = func.apply(\n\t\t\t\t\t\t\t$.extend({}, this, { \n\t\t\t\t\t\t\t\t__callback : function (data) { \n\t\t\t\t\t\t\t\t\tthis.get_container().triggerHandler( i + '.jstree', { \"inst\" : this, \"args\" : args, \"rslt\" : data, \"rlbk\" : rlbk });\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__rollback : function () { \n\t\t\t\t\t\t\t\t\trlbk = this.get_rollback();\n\t\t\t\t\t\t\t\t\treturn rlbk;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__call_old : function (replace_arguments) {\n\t\t\t\t\t\t\t\t\treturn func.old.apply(this, (replace_arguments ? Array.prototype.slice.call(arguments, 1) : args ) );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), args);\n\t\t\t\t\t}\n\n\t\t\t\t\t// return the result\n\t\t\t\t\treturn rslt;\n\t\t\t\t};\n\t\t\t\t$.jstree._fn[i].old = val.old;\n\t\t\t\t$.jstree._fn[i].plugin = pname;\n\t\t\t});\n\t\t},\n\t\trollback : function (rb) {\n\t\t\tif(rb) {\n\t\t\t\tif(!$.isArray(rb)) { rb = [ rb ]; }\n\t\t\t\t$.each(rb, function (i, val) {\n\t\t\t\t\tinstances[val.i].set_rollback(val.h, val.d);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\t// set the prototype for all instances\n\t$.jstree._fn = $.jstree._instance.prototype = {};\n\n\t// load the css when DOM is ready\n\t$(function() {\n\t\t// code is copied from jQuery ($.browser is deprecated + there is a bug in IE)\n\t\tvar u = navigator.userAgent.toLowerCase(),\n\t\t\tv = (u.match( /.+?(?:rv|it|ra|ie)[\\/: ]([\\d.]+)/ ) || [0,'0'])[1],\n\t\t\tcss_string = '' + \n\t\t\t\t'.jstree ul, .jstree li { display:block; margin:0 0 0 0; padding:0 0 0 0; list-style-type:none; } ' + \n\t\t\t\t'.jstree li { display:block; min-height:18px; line-height:18px; white-space:nowrap; margin-left:18px; min-width:18px; } ' + \n\t\t\t\t'.jstree-rtl li { margin-left:0; margin-right:18px; } ' + \n\t\t\t\t'.jstree > ul > li { margin-left:0px; } ' + \n\t\t\t\t'.jstree-rtl > ul > li { margin-right:0px; } ' + \n\t\t\t\t'.jstree ins { display:inline-block; text-decoration:none; width:18px; height:18px; margin:0 0 0 0; padding:0; } ' + \n\t\t\t\t'.jstree a { display:inline-block; line-height:16px; height:16px; color:black; white-space:nowrap; text-decoration:none; padding:1px 2px; margin:0; } ' + \n\t\t\t\t'.jstree a:focus { outline: none; } ' + \n\t\t\t\t'.jstree a > ins { height:16px; width:16px; } ' + \n\t\t\t\t'.jstree a > .jstree-icon { margin-right:3px; } ' + \n\t\t\t\t'.jstree-rtl a > .jstree-icon { margin-left:3px; margin-right:0; } ' + \n\t\t\t\t'li.jstree-open > ul { display:block; } ' + \n\t\t\t\t'li.jstree-closed > ul { display:none; } ';\n\t\t// Correct IE 6 (does not support the > CSS selector)\n\t\tif(/msie/.test(u) && parseInt(v, 10) == 6) { \n\t\t\tis_ie6 = true;\n\n\t\t\t// fix image flicker and lack of caching\n\t\t\ttry {\n\t\t\t\tdocument.execCommand(\"BackgroundImageCache\", false, true);\n\t\t\t} catch (err) { }\n\n\t\t\tcss_string += '' + \n\t\t\t\t'.jstree li { height:18px; margin-left:0; margin-right:0; } ' + \n\t\t\t\t'.jstree li li { margin-left:18px; } ' + \n\t\t\t\t'.jstree-rtl li li { margin-left:0px; margin-right:18px; } ' + \n\t\t\t\t'li.jstree-open ul { display:block; } ' + \n\t\t\t\t'li.jstree-closed ul { display:none !important; } ' + \n\t\t\t\t'.jstree li a { display:inline; border-width:0 !important; padding:0px 2px !important; } ' + \n\t\t\t\t'.jstree li a ins { height:16px; width:16px; margin-right:3px; } ' + \n\t\t\t\t'.jstree-rtl li a ins { margin-right:0px; margin-left:3px; } ';\n\t\t}\n\t\t// Correct IE 7 (shifts anchor nodes onhover)\n\t\tif(/msie/.test(u) && parseInt(v, 10) == 7) { \n\t\t\tis_ie7 = true;\n\t\t\tcss_string += '.jstree li a { border-width:0 !important; padding:0px 2px !important; } ';\n\t\t}\n\t\t// correct ff2 lack of display:inline-block\n\t\tif(!/compatible/.test(u) && /mozilla/.test(u) && parseFloat(v, 10) < 1.9) {\n\t\t\tis_ff2 = true;\n\t\t\tcss_string += '' + \n\t\t\t\t'.jstree ins { display:-moz-inline-box; } ' + \n\t\t\t\t'.jstree li { line-height:12px; } ' + // WHY??\n\t\t\t\t'.jstree a { display:-moz-inline-box; } ' + \n\t\t\t\t'.jstree .jstree-no-icons .jstree-checkbox { display:-moz-inline-stack !important; } ';\n\t\t\t\t/* this shouldn't be here as it is theme specific */\n\t\t}\n\t\t// the default stylesheet\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"jstree\" });\n\t});\n\n\t// core functions (open, close, create, update, delete)\n\t$.jstree.plugin(\"core\", {\n\t\t__init : function () {\n\t\t\tthis.data.core.locked = false;\n\t\t\tthis.data.core.to_open = this.get_settings().core.initially_open;\n\t\t\tthis.data.core.to_load = this.get_settings().core.initially_load;\n\t\t},\n\t\tdefaults : { \n\t\t\thtml_titles\t: false,\n\t\t\tanimation\t: 500,\n\t\t\tinitially_open : [],\n\t\t\tinitially_load : [],\n\t\t\topen_parents : true,\n\t\t\tnotify_plugins : true,\n\t\t\trtl\t\t\t: false,\n\t\t\tload_open\t: false,\n\t\t\tstrings\t\t: {\n\t\t\t\tloading\t\t: \"Loading ...\",\n\t\t\t\tnew_node\t: \"New node\",\n\t\t\t\tmultiple_selection : \"Multiple selection\"\n\t\t\t}\n\t\t},\n\t\t_fn : { \n\t\t\tinit\t: function () { \n\t\t\t\tthis.set_focus(); \n\t\t\t\tif(this._get_settings().core.rtl) {\n\t\t\t\t\tthis.get_container().addClass(\"jstree-rtl\").css(\"direction\", \"rtl\");\n\t\t\t\t}\n\t\t\t\tthis.get_container().html(\"<ul><li class='jstree-last jstree-leaf'><ins>&#160;</ins><a class='jstree-loading' href='#'><ins class='jstree-icon'>&#160;</ins>\" + this._get_string(\"loading\") + \"</a></li></ul>\");\n\t\t\t\tthis.data.core.li_height = this.get_container_ul().find(\"li.jstree-closed, li.jstree-leaf\").eq(0).height() || 18;\n\n\t\t\t\tthis.get_container()\n\t\t\t\t\t.delegate(\"li > ins\", \"click.jstree\", $.proxy(function (event) {\n\t\t\t\t\t\t\tvar trgt = $(event.target);\n\t\t\t\t\t\t\t// if(trgt.is(\"ins\") && event.pageY - trgt.offset().top < this.data.core.li_height) { this.toggle_node(trgt); }\n\t\t\t\t\t\t\tthis.toggle_node(trgt);\n\t\t\t\t\t\t}, this))\n\t\t\t\t\t.bind(\"mousedown.jstree\", $.proxy(function () { \n\t\t\t\t\t\t\tthis.set_focus(); // This used to be setTimeout(set_focus,0) - why?\n\t\t\t\t\t\t}, this))\n\t\t\t\t\t.bind(\"dblclick.jstree\", function (event) { \n\t\t\t\t\t\tvar sel;\n\t\t\t\t\t\tif(document.selection && document.selection.empty) { document.selection.empty(); }\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif(window.getSelection) {\n\t\t\t\t\t\t\t\tsel = window.getSelection();\n\t\t\t\t\t\t\t\ttry { \n\t\t\t\t\t\t\t\t\tsel.removeAllRanges();\n\t\t\t\t\t\t\t\t\tsel.collapse();\n\t\t\t\t\t\t\t\t} catch (err) { }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tif(this._get_settings().core.notify_plugins) {\n\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t.bind(\"load_node.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\t\t\tvar o = this._get_node(data.rslt.obj),\n\t\t\t\t\t\t\t\t\tt = this;\n\t\t\t\t\t\t\t\tif(o === -1) { o = this.get_container_ul(); }\n\t\t\t\t\t\t\t\tif(!o.length) { return; }\n\t\t\t\t\t\t\t\to.find(\"li\").each(function () {\n\t\t\t\t\t\t\t\t\tvar th = $(this);\n\t\t\t\t\t\t\t\t\tif(th.data(\"jstree\")) {\n\t\t\t\t\t\t\t\t\t\t$.each(th.data(\"jstree\"), function (plugin, values) {\n\t\t\t\t\t\t\t\t\t\t\tif(t.data[plugin] && $.isFunction(t[\"_\" + plugin + \"_notify\"])) {\n\t\t\t\t\t\t\t\t\t\t\t\tt[\"_\" + plugin + \"_notify\"].call(t, th, values);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t}\n\t\t\t\tif(this._get_settings().core.load_open) {\n\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t.bind(\"load_node.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\t\t\tvar o = this._get_node(data.rslt.obj),\n\t\t\t\t\t\t\t\t\tt = this;\n\t\t\t\t\t\t\t\tif(o === -1) { o = this.get_container_ul(); }\n\t\t\t\t\t\t\t\tif(!o.length) { return; }\n\t\t\t\t\t\t\t\to.find(\"li.jstree-open:not(:has(ul))\").each(function () {\n\t\t\t\t\t\t\t\t\tt.load_node(this, $.noop, $.noop);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t}\n\t\t\t\tthis.__callback();\n\t\t\t\tthis.load_node(-1, function () { this.loaded(); this.reload_nodes(); });\n\t\t\t},\n\t\t\tdestroy\t: function () { \n\t\t\t\tvar i,\n\t\t\t\t\tn = this.get_index(),\n\t\t\t\t\ts = this._get_settings(),\n\t\t\t\t\t_this = this;\n\n\t\t\t\t$.each(s.plugins, function (i, val) {\n\t\t\t\t\ttry { plugins[val].__destroy.apply(_this); } catch(err) { }\n\t\t\t\t});\n\t\t\t\tthis.__callback();\n\t\t\t\t// set focus to another instance if this one is focused\n\t\t\t\tif(this.is_focused()) { \n\t\t\t\t\tfor(i in instances) { \n\t\t\t\t\t\tif(instances.hasOwnProperty(i) && i != n) { \n\t\t\t\t\t\t\tinstances[i].set_focus(); \n\t\t\t\t\t\t\tbreak; \n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// if no other instance found\n\t\t\t\tif(n === focused_instance) { focused_instance = -1; }\n\t\t\t\t// remove all traces of jstree in the DOM (only the ones set using jstree*) and cleans all events\n\t\t\t\tthis.get_container()\n\t\t\t\t\t.unbind(\".jstree\")\n\t\t\t\t\t.undelegate(\".jstree\")\n\t\t\t\t\t.removeData(\"jstree_instance_id\")\n\t\t\t\t\t.find(\"[class^='jstree']\")\n\t\t\t\t\t\t.addBack()\n\t\t\t\t\t\t.attr(\"class\", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); });\n\t\t\t\t$(document)\n\t\t\t\t\t.unbind(\".jstree-\" + n)\n\t\t\t\t\t.undelegate(\".jstree-\" + n);\n\t\t\t\t// remove the actual data\n\t\t\t\tinstances[n] = null;\n\t\t\t\tdelete instances[n];\n\t\t\t},\n\n\t\t\t_core_notify : function (n, data) {\n\t\t\t\tif(data.opened) {\n\t\t\t\t\tthis.open_node(n, false, true);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tlock : function () {\n\t\t\t\tthis.data.core.locked = true;\n\t\t\t\tthis.get_container().children(\"ul\").addClass(\"jstree-locked\").css(\"opacity\",\"0.7\");\n\t\t\t\tthis.__callback({});\n\t\t\t},\n\t\t\tunlock : function () {\n\t\t\t\tthis.data.core.locked = false;\n\t\t\t\tthis.get_container().children(\"ul\").removeClass(\"jstree-locked\").css(\"opacity\",\"1\");\n\t\t\t\tthis.__callback({});\n\t\t\t},\n\t\t\tis_locked : function () { return this.data.core.locked; },\n\t\t\tsave_opened : function () {\n\t\t\t\tvar _this = this;\n\t\t\t\tthis.data.core.to_open = [];\n\t\t\t\tthis.get_container_ul().find(\"li.jstree-open\").each(function () { \n\t\t\t\t\tif(this.id) { _this.data.core.to_open.push(\"#\" + this.id.toString().replace(/^#/,\"\").replace(/\\\\\\//g,\"/\").replace(/\\//g,\"\\\\\\/\").replace(/\\\\\\./g,\".\").replace(/\\./g,\"\\\\.\").replace(/\\:/g,\"\\\\:\")); }\n\t\t\t\t});\n\t\t\t\tthis.__callback(_this.data.core.to_open);\n\t\t\t},\n\t\t\tsave_loaded : function () { },\n\t\t\treload_nodes : function (is_callback) {\n\t\t\t\tvar _this = this,\n\t\t\t\t\tdone = true,\n\t\t\t\t\tcurrent = [],\n\t\t\t\t\tremaining = [];\n\t\t\t\tif(!is_callback) { \n\t\t\t\t\tthis.data.core.reopen = false; \n\t\t\t\t\tthis.data.core.refreshing = true; \n\t\t\t\t\tthis.data.core.to_open = $.map($.makeArray(this.data.core.to_open), function (n) { return \"#\" + n.toString().replace(/^#/,\"\").replace(/\\\\\\//g,\"/\").replace(/\\//g,\"\\\\\\/\").replace(/\\\\\\./g,\".\").replace(/\\./g,\"\\\\.\").replace(/\\:/g,\"\\\\:\"); });\n\t\t\t\t\tthis.data.core.to_load = $.map($.makeArray(this.data.core.to_load), function (n) { return \"#\" + n.toString().replace(/^#/,\"\").replace(/\\\\\\//g,\"/\").replace(/\\//g,\"\\\\\\/\").replace(/\\\\\\./g,\".\").replace(/\\./g,\"\\\\.\").replace(/\\:/g,\"\\\\:\"); });\n\t\t\t\t\tif(this.data.core.to_open.length) {\n\t\t\t\t\t\tthis.data.core.to_load = this.data.core.to_load.concat(this.data.core.to_open);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(this.data.core.to_load.length) {\n\t\t\t\t\t$.each(this.data.core.to_load, function (i, val) {\n\t\t\t\t\t\tif(val == \"#\") { return true; }\n\t\t\t\t\t\tif($(val).length) { current.push(val); }\n\t\t\t\t\t\telse { remaining.push(val); }\n\t\t\t\t\t});\n\t\t\t\t\tif(current.length) {\n\t\t\t\t\t\tthis.data.core.to_load = remaining;\n\t\t\t\t\t\t$.each(current, function (i, val) { \n\t\t\t\t\t\t\tif(!_this._is_loaded(val)) {\n\t\t\t\t\t\t\t\t_this.load_node(val, function () { _this.reload_nodes(true); }, function () { _this.reload_nodes(true); });\n\t\t\t\t\t\t\t\tdone = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(this.data.core.to_open.length) {\n\t\t\t\t\t$.each(this.data.core.to_open, function (i, val) {\n\t\t\t\t\t\t_this.open_node(val, false, true); \n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(done) { \n\t\t\t\t\t// TODO: find a more elegant approach to syncronizing returning requests\n\t\t\t\t\tif(this.data.core.reopen) { clearTimeout(this.data.core.reopen); }\n\t\t\t\t\tthis.data.core.reopen = setTimeout(function () { _this.__callback({}, _this); }, 50);\n\t\t\t\t\tthis.data.core.refreshing = false;\n\t\t\t\t\tthis.reopen();\n\t\t\t\t}\n\t\t\t},\n\t\t\treopen : function () {\n\t\t\t\tvar _this = this;\n\t\t\t\tif(this.data.core.to_open.length) {\n\t\t\t\t\t$.each(this.data.core.to_open, function (i, val) {\n\t\t\t\t\t\t_this.open_node(val, false, true); \n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.__callback({});\n\t\t\t},\n\t\t\trefresh : function (obj) {\n\t\t\t\tvar _this = this;\n\t\t\t\tthis.save_opened();\n\t\t\t\tif(!obj) { obj = -1; }\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj) { obj = -1; }\n\t\t\t\tif(obj !== -1) { obj.children(\"UL\").remove(); }\n\t\t\t\telse { this.get_container_ul().empty(); }\n\t\t\t\tthis.load_node(obj, function () { _this.__callback({ \"obj\" : obj}); _this.reload_nodes(); });\n\t\t\t},\n\t\t\t// Dummy function to fire after the first load (so that there is a jstree.loaded event)\n\t\t\tloaded\t: function () { \n\t\t\t\tthis.__callback(); \n\t\t\t},\n\t\t\t// deal with focus\n\t\t\tset_focus\t: function () { \n\t\t\t\tif(this.is_focused()) { return; }\n\t\t\t\tvar f = $.jstree._focused();\n\t\t\t\tif(f) { f.unset_focus(); }\n\n\t\t\t\tthis.get_container().addClass(\"jstree-focused\"); \n\t\t\t\tfocused_instance = this.get_index(); \n\t\t\t\tthis.__callback();\n\t\t\t},\n\t\t\tis_focused\t: function () { \n\t\t\t\treturn focused_instance == this.get_index(); \n\t\t\t},\n\t\t\tunset_focus\t: function () {\n\t\t\t\tif(this.is_focused()) {\n\t\t\t\t\tthis.get_container().removeClass(\"jstree-focused\"); \n\t\t\t\t\tfocused_instance = -1; \n\t\t\t\t}\n\t\t\t\tthis.__callback();\n\t\t\t},\n\n\t\t\t// traverse\n\t\t\t_get_node\t\t: function (obj) { \n\t\t\t\tvar $obj = $(obj, this.get_container()); \n\t\t\t\tif($obj.is(\".jstree\") || obj == -1) { return -1; } \n\t\t\t\t$obj = $obj.closest(\"li\", this.get_container()); \n\t\t\t\treturn $obj.length ? $obj : false; \n\t\t\t},\n\t\t\t_get_next\t\t: function (obj, strict) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj === -1) { return this.get_container().find(\"> ul > li:first-child\"); }\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tif(strict) { return (obj.nextAll(\"li\").size() > 0) ? obj.nextAll(\"li:eq(0)\") : false; }\n\n\t\t\t\tif(obj.hasClass(\"jstree-open\")) { return obj.find(\"li:eq(0)\"); }\n\t\t\t\telse if(obj.nextAll(\"li\").size() > 0) { return obj.nextAll(\"li:eq(0)\"); }\n\t\t\t\telse { return obj.parentsUntil(\".jstree\",\"li\").next(\"li\").eq(0); }\n\t\t\t},\n\t\t\t_get_prev\t\t: function (obj, strict) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj === -1) { return this.get_container().find(\"> ul > li:last-child\"); }\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tif(strict) { return (obj.prevAll(\"li\").length > 0) ? obj.prevAll(\"li:eq(0)\") : false; }\n\n\t\t\t\tif(obj.prev(\"li\").length) {\n\t\t\t\t\tobj = obj.prev(\"li\").eq(0);\n\t\t\t\t\twhile(obj.hasClass(\"jstree-open\")) { obj = obj.children(\"ul:eq(0)\").children(\"li:last\"); }\n\t\t\t\t\treturn obj;\n\t\t\t\t}\n\t\t\t\telse { var o = obj.parentsUntil(\".jstree\",\"li:eq(0)\"); return o.length ? o : false; }\n\t\t\t},\n\t\t\t_get_parent\t\t: function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj == -1 || !obj.length) { return false; }\n\t\t\t\tvar o = obj.parentsUntil(\".jstree\", \"li:eq(0)\");\n\t\t\t\treturn o.length ? o : -1;\n\t\t\t},\n\t\t\t_get_children\t: function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj === -1) { return this.get_container().children(\"ul:eq(0)\").children(\"li\"); }\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\treturn obj.children(\"ul:eq(0)\").children(\"li\");\n\t\t\t},\n\t\t\tget_path\t\t: function (obj, id_mode) {\n\t\t\t\tvar p = [],\n\t\t\t\t\t_this = this;\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj === -1 || !obj || !obj.length) { return false; }\n\t\t\t\tobj.parentsUntil(\".jstree\", \"li\").each(function () {\n\t\t\t\t\tp.push( id_mode ? this.id : _this.get_text(this) );\n\t\t\t\t});\n\t\t\t\tp.reverse();\n\t\t\t\tp.push( id_mode ? obj.attr(\"id\") : this.get_text(obj) );\n\t\t\t\treturn p;\n\t\t\t},\n\n\t\t\t// string functions\n\t\t\t_get_string : function (key) {\n\t\t\t\treturn this._get_settings().core.strings[key] || key;\n\t\t\t},\n\n\t\t\tis_open\t\t: function (obj) { obj = this._get_node(obj); return obj && obj !== -1 && obj.hasClass(\"jstree-open\"); },\n\t\t\tis_closed\t: function (obj) { obj = this._get_node(obj); return obj && obj !== -1 && obj.hasClass(\"jstree-closed\"); },\n\t\t\tis_leaf\t\t: function (obj) { obj = this._get_node(obj); return obj && obj !== -1 && obj.hasClass(\"jstree-leaf\"); },\n\t\t\tcorrect_state\t: function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj || obj === -1) { return false; }\n\t\t\t\tobj.removeClass(\"jstree-closed jstree-open\").addClass(\"jstree-leaf\").children(\"ul\").remove();\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\t// open/close\n\t\t\topen_node\t: function (obj, callback, skip_animation) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tif(!obj.hasClass(\"jstree-closed\")) { if(callback) { callback.call(); } return false; }\n\t\t\t\tvar s = skip_animation || is_ie6 ? 0 : this._get_settings().core.animation,\n\t\t\t\t\tt = this;\n\t\t\t\tif(!this._is_loaded(obj)) {\n\t\t\t\t\tobj.children(\"a\").addClass(\"jstree-loading\");\n\t\t\t\t\tthis.load_node(obj, function () { t.open_node(obj, callback, skip_animation); }, callback);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(this._get_settings().core.open_parents) {\n\t\t\t\t\t\tobj.parentsUntil(\".jstree\",\".jstree-closed\").each(function () {\n\t\t\t\t\t\t\tt.open_node(this, false, true);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(s) { obj.children(\"ul\").css(\"display\",\"none\"); }\n\t\t\t\t\tobj.removeClass(\"jstree-closed\").addClass(\"jstree-open\").children(\"a\").removeClass(\"jstree-loading\");\n\t\t\t\t\tif(s) { obj.children(\"ul\").stop(true, true).slideDown(s, function () { this.style.display = \"\"; t.after_open(obj); }); }\n\t\t\t\t\telse { t.after_open(obj); }\n\t\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t\t\tif(callback) { callback.call(); }\n\t\t\t\t}\n\t\t\t},\n\t\t\tafter_open\t: function (obj) { this.__callback({ \"obj\" : obj }); },\n\t\t\tclose_node\t: function (obj, skip_animation) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar s = skip_animation || is_ie6 ? 0 : this._get_settings().core.animation,\n\t\t\t\t\tt = this;\n\t\t\t\tif(!obj.length || !obj.hasClass(\"jstree-open\")) { return false; }\n\t\t\t\tif(s) { obj.children(\"ul\").attr(\"style\",\"display:block !important\"); }\n\t\t\t\tobj.removeClass(\"jstree-open\").addClass(\"jstree-closed\");\n\t\t\t\tif(s) { obj.children(\"ul\").stop(true, true).slideUp(s, function () { this.style.display = \"\"; t.after_close(obj); }); }\n\t\t\t\telse { t.after_close(obj); }\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\tafter_close\t: function (obj) { this.__callback({ \"obj\" : obj }); },\n\t\t\ttoggle_node\t: function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj.hasClass(\"jstree-closed\")) { return this.open_node(obj); }\n\t\t\t\tif(obj.hasClass(\"jstree-open\")) { return this.close_node(obj); }\n\t\t\t},\n\t\t\topen_all\t: function (obj, do_animation, original_obj) {\n\t\t\t\tobj = obj ? this._get_node(obj) : -1;\n\t\t\t\tif(!obj || obj === -1) { obj = this.get_container_ul(); }\n\t\t\t\tif(original_obj) { \n\t\t\t\t\tobj = obj.find(\"li.jstree-closed\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\toriginal_obj = obj;\n\t\t\t\t\tif(obj.is(\".jstree-closed\")) { obj = obj.find(\"li.jstree-closed\").addBack(); }\n\t\t\t\t\telse { obj = obj.find(\"li.jstree-closed\"); }\n\t\t\t\t}\n\t\t\t\tvar _this = this;\n\t\t\t\tobj.each(function () { \n\t\t\t\t\tvar __this = this; \n\t\t\t\t\tif(!_this._is_loaded(this)) { _this.open_node(this, function() { _this.open_all(__this, do_animation, original_obj); }, !do_animation); }\n\t\t\t\t\telse { _this.open_node(this, false, !do_animation); }\n\t\t\t\t});\n\t\t\t\t// so that callback is fired AFTER all nodes are open\n\t\t\t\tif(original_obj.find('li.jstree-closed').length === 0) { this.__callback({ \"obj\" : original_obj }); }\n\t\t\t},\n\t\t\tclose_all\t: function (obj, do_animation) {\n\t\t\t\tvar _this = this;\n\t\t\t\tobj = obj ? this._get_node(obj) : this.get_container();\n\t\t\t\tif(!obj || obj === -1) { obj = this.get_container_ul(); }\n\t\t\t\tobj.find(\"li.jstree-open\").addBack().each(function () { _this.close_node(this, !do_animation); });\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\tclean_node\t: function (obj) {\n\t\t\t\tobj = obj && obj != -1 ? $(obj) : this.get_container_ul();\n\t\t\t\tobj = obj.is(\"li\") ? obj.find(\"li\").addBack() : obj.find(\"li\");\n\t\t\t\tobj.removeClass(\"jstree-last\")\n\t\t\t\t\t.filter(\"li:last-child\").addClass(\"jstree-last\").end()\n\t\t\t\t\t.filter(\":has(li)\")\n\t\t\t\t\t\t.not(\".jstree-open\").removeClass(\"jstree-leaf\").addClass(\"jstree-closed\");\n\t\t\t\tobj.not(\".jstree-open, .jstree-closed\").addClass(\"jstree-leaf\").children(\"ul\").remove();\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\t// rollback\n\t\t\tget_rollback : function () { \n\t\t\t\tthis.__callback();\n\t\t\t\treturn { i : this.get_index(), h : this.get_container().children(\"ul\").clone(true), d : this.data }; \n\t\t\t},\n\t\t\tset_rollback : function (html, data) {\n\t\t\t\tthis.get_container().empty().append(html);\n\t\t\t\tthis.data = data;\n\t\t\t\tthis.__callback();\n\t\t\t},\n\t\t\t// Dummy functions to be overwritten by any datastore plugin included\n\t\t\tload_node\t: function (obj, s_call, e_call) { this.__callback({ \"obj\" : obj }); },\n\t\t\t_is_loaded\t: function (obj) { return true; },\n\n\t\t\t// Basic operations: create\n\t\t\tcreate_node\t: function (obj, position, js, callback, is_loaded) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tposition = typeof position === \"undefined\" ? \"last\" : position;\n\t\t\t\tvar d = $(\"<li />\"),\n\t\t\t\t\ts = this._get_settings().core,\n\t\t\t\t\ttmp;\n\n\t\t\t\tif(obj !== -1 && !obj.length) { return false; }\n\t\t\t\tif(!is_loaded && !this._is_loaded(obj)) { this.load_node(obj, function () { this.create_node(obj, position, js, callback, true); }); return false; }\n\n\t\t\t\tthis.__rollback();\n\n\t\t\t\tif(typeof js === \"string\") { js = { \"data\" : js }; }\n\t\t\t\tif(!js) { js = {}; }\n\t\t\t\tif(js.attr) { d.attr(js.attr); }\n\t\t\t\tif(js.metadata) { d.data(js.metadata); }\n\t\t\t\tif(js.state) { d.addClass(\"jstree-\" + js.state); }\n\t\t\t\tif(!js.data) { js.data = this._get_string(\"new_node\"); }\n\t\t\t\tif(!$.isArray(js.data)) { tmp = js.data; js.data = []; js.data.push(tmp); }\n\t\t\t\t$.each(js.data, function (i, m) {\n\t\t\t\t\ttmp = $(\"<a />\");\n\t\t\t\t\tif($.isFunction(m)) { m = m.call(this, js); }\n\t\t\t\t\tif(typeof m == \"string\") { tmp.attr('href','#')[ s.html_titles ? \"html\" : \"text\" ](m); }\n\t\t\t\t\telse {\n\t\t\t\t\t\tif(!m.attr) { m.attr = {}; }\n\t\t\t\t\t\tif(!m.attr.href) { m.attr.href = '#'; }\n\t\t\t\t\t\ttmp.attr(m.attr)[ s.html_titles ? \"html\" : \"text\" ](m.title);\n\t\t\t\t\t\tif(m.language) { tmp.addClass(m.language); }\n\t\t\t\t\t}\n\t\t\t\t\ttmp.prepend(\"<ins class='jstree-icon'>&#160;</ins>\");\n\t\t\t\t\tif(!m.icon && js.icon) { m.icon = js.icon; }\n\t\t\t\t\tif(m.icon) { \n\t\t\t\t\t\tif(m.icon.indexOf(\"/\") === -1) { tmp.children(\"ins\").addClass(m.icon); }\n\t\t\t\t\t\telse { tmp.children(\"ins\").css(\"background\",\"url('\" + m.icon + \"') center center no-repeat\"); }\n\t\t\t\t\t}\n\t\t\t\t\td.append(tmp);\n\t\t\t\t});\n\t\t\t\td.prepend(\"<ins class='jstree-icon'>&#160;</ins>\");\n\t\t\t\tif(obj === -1) {\n\t\t\t\t\tobj = this.get_container();\n\t\t\t\t\tif(position === \"before\") { position = \"first\"; }\n\t\t\t\t\tif(position === \"after\") { position = \"last\"; }\n\t\t\t\t}\n\t\t\t\tswitch(position) {\n\t\t\t\t\tcase \"before\": obj.before(d); tmp = this._get_parent(obj); break;\n\t\t\t\t\tcase \"after\" : obj.after(d);  tmp = this._get_parent(obj); break;\n\t\t\t\t\tcase \"inside\":\n\t\t\t\t\tcase \"first\" :\n\t\t\t\t\t\tif(!obj.children(\"ul\").length) { obj.append(\"<ul />\"); }\n\t\t\t\t\t\tobj.children(\"ul\").prepend(d);\n\t\t\t\t\t\ttmp = obj;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"last\":\n\t\t\t\t\t\tif(!obj.children(\"ul\").length) { obj.append(\"<ul />\"); }\n\t\t\t\t\t\tobj.children(\"ul\").append(d);\n\t\t\t\t\t\ttmp = obj;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(!obj.children(\"ul\").length) { obj.append(\"<ul />\"); }\n\t\t\t\t\t\tif(!position) { position = 0; }\n\t\t\t\t\t\ttmp = obj.children(\"ul\").children(\"li\").eq(position);\n\t\t\t\t\t\tif(tmp.length) { tmp.before(d); }\n\t\t\t\t\t\telse { obj.children(\"ul\").append(d); }\n\t\t\t\t\t\ttmp = obj;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(tmp === -1 || tmp.get(0) === this.get_container().get(0)) { tmp = -1; }\n\t\t\t\tthis.clean_node(tmp);\n\t\t\t\tthis.__callback({ \"obj\" : d, \"parent\" : tmp });\n\t\t\t\tif(callback) { callback.call(this, d); }\n\t\t\t\treturn d;\n\t\t\t},\n\t\t\t// Basic operations: rename (deal with text)\n\t\t\tget_text\t: function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tvar s = this._get_settings().core.html_titles;\n\t\t\t\tobj = obj.children(\"a:eq(0)\");\n\t\t\t\tif(s) {\n\t\t\t\t\tobj = obj.clone();\n\t\t\t\t\tobj.children(\"INS\").remove();\n\t\t\t\t\treturn obj.html();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tobj = obj.contents().filter(function() { return this.nodeType == 3; })[0];\n\t\t\t\t\treturn obj.nodeValue;\n\t\t\t\t}\n\t\t\t},\n\t\t\tset_text\t: function (obj, val) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tobj = obj.children(\"a:eq(0)\");\n\t\t\t\tif(this._get_settings().core.html_titles) {\n\t\t\t\t\tvar tmp = obj.children(\"INS\").clone();\n\t\t\t\t\tobj.html(val).prepend(tmp);\n\t\t\t\t\tthis.__callback({ \"obj\" : obj, \"name\" : val });\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tobj = obj.contents().filter(function() { return this.nodeType == 3; })[0];\n\t\t\t\t\tthis.__callback({ \"obj\" : obj, \"name\" : val });\n\t\t\t\t\treturn (obj.nodeValue = val);\n\t\t\t\t}\n\t\t\t},\n\t\t\trename_node : function (obj, val) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tthis.__rollback();\n\t\t\t\tif(obj && obj.length && this.set_text.apply(this, Array.prototype.slice.call(arguments))) { this.__callback({ \"obj\" : obj, \"name\" : val }); }\n\t\t\t},\n\t\t\t// Basic operations: deleting nodes\n\t\t\tdelete_node : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tthis.__rollback();\n\t\t\t\tvar p = this._get_parent(obj), prev = $([]), t = this;\n\t\t\t\tobj.each(function () {\n\t\t\t\t\tprev = prev.add(t._get_prev(this));\n\t\t\t\t});\n\t\t\t\tobj = obj.detach();\n\t\t\t\tif(p !== -1 && p.find(\"> ul > li\").length === 0) {\n\t\t\t\t\tp.removeClass(\"jstree-open jstree-closed\").addClass(\"jstree-leaf\");\n\t\t\t\t}\n\t\t\t\tthis.clean_node(p);\n\t\t\t\tthis.__callback({ \"obj\" : obj, \"prev\" : prev, \"parent\" : p });\n\t\t\t\treturn obj;\n\t\t\t},\n\t\t\tprepare_move : function (o, r, pos, cb, is_cb) {\n\t\t\t\tvar p = {};\n\n\t\t\t\tp.ot = $.jstree._reference(o) || this;\n\t\t\t\tp.o = p.ot._get_node(o);\n\t\t\t\tp.r = r === - 1 ? -1 : this._get_node(r);\n\t\t\t\tp.p = (typeof pos === \"undefined\" || pos === false) ? \"last\" : pos; // TODO: move to a setting\n\t\t\t\tif(!is_cb && prepared_move.o && prepared_move.o[0] === p.o[0] && prepared_move.r[0] === p.r[0] && prepared_move.p === p.p) {\n\t\t\t\t\tthis.__callback(prepared_move);\n\t\t\t\t\tif(cb) { cb.call(this, prepared_move); }\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tp.ot = $.jstree._reference(p.o) || this;\n\t\t\t\tp.rt = $.jstree._reference(p.r) || this; // r === -1 ? p.ot : $.jstree._reference(p.r) || this\n\t\t\t\tif(p.r === -1 || !p.r) {\n\t\t\t\t\tp.cr = -1;\n\t\t\t\t\tswitch(p.p) {\n\t\t\t\t\t\tcase \"first\":\n\t\t\t\t\t\tcase \"before\":\n\t\t\t\t\t\tcase \"inside\":\n\t\t\t\t\t\t\tp.cp = 0; \n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"after\":\n\t\t\t\t\t\tcase \"last\":\n\t\t\t\t\t\t\tp.cp = p.rt.get_container().find(\" > ul > li\").length; \n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tp.cp = p.p;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(!/^(before|after)$/.test(p.p) && !this._is_loaded(p.r)) {\n\t\t\t\t\t\treturn this.load_node(p.r, function () { this.prepare_move(o, r, pos, cb, true); });\n\t\t\t\t\t}\n\t\t\t\t\tswitch(p.p) {\n\t\t\t\t\t\tcase \"before\":\n\t\t\t\t\t\t\tp.cp = p.r.index();\n\t\t\t\t\t\t\tp.cr = p.rt._get_parent(p.r);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"after\":\n\t\t\t\t\t\t\tp.cp = p.r.index() + 1;\n\t\t\t\t\t\t\tp.cr = p.rt._get_parent(p.r);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"inside\":\n\t\t\t\t\t\tcase \"first\":\n\t\t\t\t\t\t\tp.cp = 0;\n\t\t\t\t\t\t\tp.cr = p.r;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"last\":\n\t\t\t\t\t\t\tp.cp = p.r.find(\" > ul > li\").length; \n\t\t\t\t\t\t\tp.cr = p.r;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: \n\t\t\t\t\t\t\tp.cp = p.p;\n\t\t\t\t\t\t\tp.cr = p.r;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tp.np = p.cr == -1 ? p.rt.get_container() : p.cr;\n\t\t\t\tp.op = p.ot._get_parent(p.o);\n\t\t\t\tp.cop = p.o.index();\n\t\t\t\tif(p.op === -1) { p.op = p.ot ? p.ot.get_container() : this.get_container(); }\n\t\t\t\tif(!/^(before|after)$/.test(p.p) && p.op && p.np && p.op[0] === p.np[0] && p.o.index() < p.cp) { p.cp++; }\n\t\t\t\t//if(p.p === \"before\" && p.op && p.np && p.op[0] === p.np[0] && p.o.index() < p.cp) { p.cp--; }\n\t\t\t\tp.or = p.np.find(\" > ul > li:nth-child(\" + (p.cp + 1) + \")\");\n\t\t\t\tprepared_move = p;\n\t\t\t\tthis.__callback(prepared_move);\n\t\t\t\tif(cb) { cb.call(this, prepared_move); }\n\t\t\t},\n\t\t\tcheck_move : function () {\n\t\t\t\tvar obj = prepared_move, ret = true, r = obj.r === -1 ? this.get_container() : obj.r;\n\t\t\t\tif(!obj || !obj.o || obj.or[0] === obj.o[0]) { return false; }\n\t\t\t\tif(!obj.cy) {\n\t\t\t\t\tif(obj.op && obj.np && obj.op[0] === obj.np[0] && obj.cp - 1 === obj.o.index()) { return false; }\n\t\t\t\t\tobj.o.each(function () { \n\t\t\t\t\t\tif(r.parentsUntil(\".jstree\", \"li\").addBack().index(this) !== -1) { ret = false; return false; }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t},\n\t\t\tmove_node : function (obj, ref, position, is_copy, is_prepared, skip_check) {\n\t\t\t\tif(!is_prepared) { \n\t\t\t\t\treturn this.prepare_move(obj, ref, position, function (p) {\n\t\t\t\t\t\tthis.move_node(p, false, false, is_copy, true, skip_check);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(is_copy) { \n\t\t\t\t\tprepared_move.cy = true;\n\t\t\t\t}\n\t\t\t\tif(!skip_check && !this.check_move()) { return false; }\n\n\t\t\t\tthis.__rollback();\n\t\t\t\tvar o = false;\n\t\t\t\tif(is_copy) {\n\t\t\t\t\to = obj.o.clone(true);\n\t\t\t\t\to.find(\"*[id]\").addBack().each(function () {\n\t\t\t\t\t\tif(this.id) { this.id = \"copy_\" + this.id; }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse { o = obj.o; }\n\n\t\t\t\tif(obj.or.length) { obj.or.before(o); }\n\t\t\t\telse { \n\t\t\t\t\tif(!obj.np.children(\"ul\").length) { $(\"<ul />\").appendTo(obj.np); }\n\t\t\t\t\tobj.np.children(\"ul:eq(0)\").append(o); \n\t\t\t\t}\n\n\t\t\t\ttry { \n\t\t\t\t\tobj.ot.clean_node(obj.op);\n\t\t\t\t\tobj.rt.clean_node(obj.np);\n\t\t\t\t\tif(!obj.op.find(\"> ul > li\").length) {\n\t\t\t\t\t\tobj.op.removeClass(\"jstree-open jstree-closed\").addClass(\"jstree-leaf\").children(\"ul\").remove();\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { }\n\n\t\t\t\tif(is_copy) { \n\t\t\t\t\tprepared_move.cy = true;\n\t\t\t\t\tprepared_move.oc = o; \n\t\t\t\t}\n\t\t\t\tthis.__callback(prepared_move);\n\t\t\t\treturn prepared_move;\n\t\t\t},\n\t\t\t_get_move : function () { return prepared_move; }\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree ui plugin\n * This plugins handles selecting/deselecting/hovering/dehovering nodes\n */\n(function ($) {\n\tvar scrollbar_width, e1, e2;\n\t$(function() {\n\t\tif (/msie/.test(navigator.userAgent.toLowerCase())) {\n\t\t\te1 = $('<textarea cols=\"10\" rows=\"2\"></textarea>').css({ position: 'absolute', top: -1000, left: 0 }).appendTo('body');\n\t\t\te2 = $('<textarea cols=\"10\" rows=\"2\" style=\"overflow: hidden;\"></textarea>').css({ position: 'absolute', top: -1000, left: 0 }).appendTo('body');\n\t\t\tscrollbar_width = e1.width() - e2.width();\n\t\t\te1.add(e2).remove();\n\t\t} \n\t\telse {\n\t\t\te1 = $('<div />').css({ width: 100, height: 100, overflow: 'auto', position: 'absolute', top: -1000, left: 0 })\n\t\t\t\t\t.prependTo('body').append('<div />').find('div').css({ width: '100%', height: 200 });\n\t\t\tscrollbar_width = 100 - e1.width();\n\t\t\te1.parent().remove();\n\t\t}\n\t});\n\t$.jstree.plugin(\"ui\", {\n\t\t__init : function () { \n\t\t\tthis.data.ui.selected = $(); \n\t\t\tthis.data.ui.last_selected = false; \n\t\t\tthis.data.ui.hovered = null;\n\t\t\tthis.data.ui.to_select = this.get_settings().ui.initially_select;\n\n\t\t\tthis.get_container()\n\t\t\t\t.delegate(\"a\", \"click.jstree\", $.proxy(function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.currentTarget.blur();\n\t\t\t\t\t\tif(!$(event.currentTarget).hasClass(\"jstree-loading\")) {\n\t\t\t\t\t\t\tthis.select_node(event.currentTarget, true, event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mouseenter.jstree\", $.proxy(function (event) {\n\t\t\t\t\t\tif(!$(event.currentTarget).hasClass(\"jstree-loading\")) {\n\t\t\t\t\t\t\tthis.hover_node(event.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mouseleave.jstree\", $.proxy(function (event) {\n\t\t\t\t\t\tif(!$(event.currentTarget).hasClass(\"jstree-loading\")) {\n\t\t\t\t\t\t\tthis.dehover_node(event.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"reopen.jstree\", $.proxy(function () { \n\t\t\t\t\t\tthis.reselect();\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"get_rollback.jstree\", $.proxy(function () { \n\t\t\t\t\t\tthis.dehover_node();\n\t\t\t\t\t\tthis.save_selected();\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"set_rollback.jstree\", $.proxy(function () { \n\t\t\t\t\t\tthis.reselect();\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"close_node.jstree\", $.proxy(function (event, data) { \n\t\t\t\t\t\tvar s = this._get_settings().ui,\n\t\t\t\t\t\t\tobj = this._get_node(data.rslt.obj),\n\t\t\t\t\t\t\tclk = (obj && obj.length) ? obj.children(\"ul\").find(\"a.jstree-clicked\") : $(),\n\t\t\t\t\t\t\t_this = this;\n\t\t\t\t\t\tif(s.selected_parent_close === false || !clk.length) { return; }\n\t\t\t\t\t\tclk.each(function () { \n\t\t\t\t\t\t\t_this.deselect_node(this);\n\t\t\t\t\t\t\tif(s.selected_parent_close === \"select_parent\") { _this.select_node(obj); }\n\t\t\t\t\t\t});\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"delete_node.jstree\", $.proxy(function (event, data) { \n\t\t\t\t\t\tvar s = this._get_settings().ui.select_prev_on_delete,\n\t\t\t\t\t\t\tobj = this._get_node(data.rslt.obj),\n\t\t\t\t\t\t\tclk = (obj && obj.length) ? obj.find(\"a.jstree-clicked\") : [],\n\t\t\t\t\t\t\t_this = this;\n\t\t\t\t\t\tclk.each(function () { _this.deselect_node(this); });\n\t\t\t\t\t\tif(s && clk.length) { \n\t\t\t\t\t\t\tdata.rslt.prev.each(function () { \n\t\t\t\t\t\t\t\tif(this.parentNode) { _this.select_node(this); return false; /* if return false is removed all prev nodes will be selected */}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"move_node.jstree\", $.proxy(function (event, data) { \n\t\t\t\t\t\tif(data.rslt.cy) { \n\t\t\t\t\t\t\tdata.rslt.oc.find(\"a.jstree-clicked\").removeClass(\"jstree-clicked\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : {\n\t\t\tselect_limit : -1, // 0, 1, 2 ... or -1 for unlimited\n\t\t\tselect_multiple_modifier : \"ctrl\", // on, or ctrl, shift, alt\n\t\t\tselect_range_modifier : \"shift\",\n\t\t\tselected_parent_close : \"select_parent\", // false, \"deselect\", \"select_parent\"\n\t\t\tselected_parent_open : true,\n\t\t\tselect_prev_on_delete : true,\n\t\t\tdisable_selecting_children : false,\n\t\t\tinitially_select : []\n\t\t},\n\t\t_fn : { \n\t\t\t_get_node : function (obj, allow_multiple) {\n\t\t\t\tif(typeof obj === \"undefined\" || obj === null) { return allow_multiple ? this.data.ui.selected : this.data.ui.last_selected; }\n\t\t\t\tvar $obj = $(obj, this.get_container()); \n\t\t\t\tif($obj.is(\".jstree\") || obj == -1) { return -1; } \n\t\t\t\t$obj = $obj.closest(\"li\", this.get_container()); \n\t\t\t\treturn $obj.length ? $obj : false; \n\t\t\t},\n\t\t\t_ui_notify : function (n, data) {\n\t\t\t\tif(data.selected) {\n\t\t\t\t\tthis.select_node(n, false);\n\t\t\t\t}\n\t\t\t},\n\t\t\tsave_selected : function () {\n\t\t\t\tvar _this = this;\n\t\t\t\tthis.data.ui.to_select = [];\n\t\t\t\tthis.data.ui.selected.each(function () { if(this.id) { _this.data.ui.to_select.push(\"#\" + this.id.toString().replace(/^#/,\"\").replace(/\\\\\\//g,\"/\").replace(/\\//g,\"\\\\\\/\").replace(/\\\\\\./g,\".\").replace(/\\./g,\"\\\\.\").replace(/\\:/g,\"\\\\:\")); } });\n\t\t\t\tthis.__callback(this.data.ui.to_select);\n\t\t\t},\n\t\t\treselect : function () {\n\t\t\t\tvar _this = this,\n\t\t\t\t\ts = this.data.ui.to_select;\n\t\t\t\ts = $.map($.makeArray(s), function (n) { return \"#\" + n.toString().replace(/^#/,\"\").replace(/\\\\\\//g,\"/\").replace(/\\//g,\"\\\\\\/\").replace(/\\\\\\./g,\".\").replace(/\\./g,\"\\\\.\").replace(/\\:/g,\"\\\\:\"); });\n\t\t\t\t// this.deselect_all(); WHY deselect, breaks plugin state notifier?\n\t\t\t\t$.each(s, function (i, val) { if(val && val !== \"#\") { _this.select_node(val); } });\n\t\t\t\tthis.data.ui.selected = this.data.ui.selected.filter(function () { return this.parentNode; });\n\t\t\t\tthis.__callback();\n\t\t\t},\n\t\t\trefresh : function (obj) {\n\t\t\t\tthis.save_selected();\n\t\t\t\treturn this.__call_old();\n\t\t\t},\n\t\t\thover_node : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\t//if(this.data.ui.hovered && obj.get(0) === this.data.ui.hovered.get(0)) { return; }\n\t\t\t\tif(!obj.hasClass(\"jstree-hovered\")) { this.dehover_node(); }\n\t\t\t\tthis.data.ui.hovered = obj.children(\"a\").addClass(\"jstree-hovered\").parent();\n\t\t\t\tthis._fix_scroll(obj);\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\tdehover_node : function () {\n\t\t\t\tvar obj = this.data.ui.hovered, p;\n\t\t\t\tif(!obj || !obj.length) { return false; }\n\t\t\t\tp = obj.children(\"a\").removeClass(\"jstree-hovered\").parent();\n\t\t\t\tif(this.data.ui.hovered[0] === p[0]) { this.data.ui.hovered = null; }\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\tselect_node : function (obj, check, e) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj == -1 || !obj || !obj.length) { return false; }\n\t\t\t\tvar s = this._get_settings().ui,\n\t\t\t\t\tis_multiple = (s.select_multiple_modifier == \"on\" || (s.select_multiple_modifier !== false && e && e[s.select_multiple_modifier + \"Key\"])),\n\t\t\t\t\tis_range = (s.select_range_modifier !== false && e && e[s.select_range_modifier + \"Key\"] && this.data.ui.last_selected && this.data.ui.last_selected[0] !== obj[0] && this.data.ui.last_selected.parent()[0] === obj.parent()[0]),\n\t\t\t\t\tis_selected = this.is_selected(obj),\n\t\t\t\t\tproceed = true,\n\t\t\t\t\tt = this;\n\t\t\t\tif(check) {\n\t\t\t\t\tif(s.disable_selecting_children && is_multiple && \n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(obj.parentsUntil(\".jstree\",\"li\").children(\"a.jstree-clicked\").length) ||\n\t\t\t\t\t\t\t(obj.children(\"ul\").find(\"a.jstree-clicked:eq(0)\").length)\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tproceed = false;\n\t\t\t\t\tswitch(!0) {\n\t\t\t\t\t\tcase (is_range):\n\t\t\t\t\t\t\tthis.data.ui.last_selected.addClass(\"jstree-last-selected\");\n\t\t\t\t\t\t\tobj = obj[ obj.index() < this.data.ui.last_selected.index() ? \"nextUntil\" : \"prevUntil\" ](\".jstree-last-selected\").addBack();\n\t\t\t\t\t\t\tif(s.select_limit == -1 || obj.length < s.select_limit) {\n\t\t\t\t\t\t\t\tthis.data.ui.last_selected.removeClass(\"jstree-last-selected\");\n\t\t\t\t\t\t\t\tthis.data.ui.selected.each(function () {\n\t\t\t\t\t\t\t\t\tif(this !== t.data.ui.last_selected[0]) { t.deselect_node(this); }\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tis_selected = false;\n\t\t\t\t\t\t\t\tproceed = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tproceed = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase (is_selected && !is_multiple): \n\t\t\t\t\t\t\tthis.deselect_all();\n\t\t\t\t\t\t\tis_selected = false;\n\t\t\t\t\t\t\tproceed = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase (!is_selected && !is_multiple): \n\t\t\t\t\t\t\tif(s.select_limit == -1 || s.select_limit > 0) {\n\t\t\t\t\t\t\t\tthis.deselect_all();\n\t\t\t\t\t\t\t\tproceed = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase (is_selected && is_multiple): \n\t\t\t\t\t\t\tthis.deselect_node(obj);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase (!is_selected && is_multiple): \n\t\t\t\t\t\t\tif(s.select_limit == -1 || this.data.ui.selected.length + 1 <= s.select_limit) { \n\t\t\t\t\t\t\t\tproceed = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(proceed && !is_selected) {\n\t\t\t\t\tif(!is_range) { this.data.ui.last_selected = obj; }\n\t\t\t\t\tobj.children(\"a\").addClass(\"jstree-clicked\");\n\t\t\t\t\tif(s.selected_parent_open) {\n\t\t\t\t\t\tobj.parents(\".jstree-closed\").each(function () { t.open_node(this, false, true); });\n\t\t\t\t\t}\n\t\t\t\t\tthis.data.ui.selected = this.data.ui.selected.add(obj);\n\t\t\t\t\tthis._fix_scroll(obj.eq(0));\n\t\t\t\t\tthis.__callback({ \"obj\" : obj, \"e\" : e });\n\t\t\t\t}\n\t\t\t},\n\t\t\t_fix_scroll : function (obj) {\n\t\t\t\tvar c = this.get_container()[0], t;\n\t\t\t\tif(c.scrollHeight > c.offsetHeight) {\n\t\t\t\t\tobj = this._get_node(obj);\n\t\t\t\t\tif(!obj || obj === -1 || !obj.length || !obj.is(\":visible\")) { return; }\n\t\t\t\t\tt = obj.offset().top - this.get_container().offset().top;\n\t\t\t\t\tif(t < 0) { \n\t\t\t\t\t\tc.scrollTop = c.scrollTop + t - 1; \n\t\t\t\t\t}\n\t\t\t\t\tif(t + this.data.core.li_height + (c.scrollWidth > c.offsetWidth ? scrollbar_width : 0) > c.offsetHeight) { \n\t\t\t\t\t\tc.scrollTop = c.scrollTop + (t - c.offsetHeight + this.data.core.li_height + 1 + (c.scrollWidth > c.offsetWidth ? scrollbar_width : 0)); \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeselect_node : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tif(this.is_selected(obj)) {\n\t\t\t\t\tobj.children(\"a\").removeClass(\"jstree-clicked\");\n\t\t\t\t\tthis.data.ui.selected = this.data.ui.selected.not(obj);\n\t\t\t\t\tif(this.data.ui.last_selected.get(0) === obj.get(0)) { this.data.ui.last_selected = this.data.ui.selected.eq(0); }\n\t\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t\t}\n\t\t\t},\n\t\t\ttoggle_select : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return false; }\n\t\t\t\tif(this.is_selected(obj)) { this.deselect_node(obj); }\n\t\t\t\telse { this.select_node(obj); }\n\t\t\t},\n\t\t\tis_selected : function (obj) { return this.data.ui.selected.index(this._get_node(obj)) >= 0; },\n\t\t\tget_selected : function (context) { \n\t\t\t\treturn context ? $(context).find(\"a.jstree-clicked\").parent() : this.data.ui.selected; \n\t\t\t},\n\t\t\tdeselect_all : function (context) {\n\t\t\t\tvar ret = context ? $(context).find(\"a.jstree-clicked\").parent() : this.get_container().find(\"a.jstree-clicked\").parent();\n\t\t\t\tret.children(\"a.jstree-clicked\").removeClass(\"jstree-clicked\");\n\t\t\t\tthis.data.ui.selected = $([]);\n\t\t\t\tthis.data.ui.last_selected = false;\n\t\t\t\tthis.__callback({ \"obj\" : ret });\n\t\t\t}\n\t\t}\n\t});\n\t// include the selection plugin by default\n\t$.jstree.defaults.plugins.push(\"ui\");\n})(jQuery);\n//*/\n\n/* \n * jsTree CRRM plugin\n * Handles creating/renaming/removing/moving nodes by user interaction.\n */\n(function ($) {\n\t$.jstree.plugin(\"crrm\", { \n\t\t__init : function () {\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"move_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\tif(this._get_settings().crrm.move.open_onmove) {\n\t\t\t\t\t\tvar t = this;\n\t\t\t\t\t\tdata.rslt.np.parentsUntil(\".jstree\").addBack().filter(\".jstree-closed\").each(function () {\n\t\t\t\t\t\t\tt.open_node(this, false, true);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : {\n\t\t\tinput_width_limit : 200,\n\t\t\tmove : {\n\t\t\t\talways_copy\t\t\t: false, // false, true or \"multitree\"\n\t\t\t\topen_onmove\t\t\t: true,\n\t\t\t\tdefault_position\t: \"last\",\n\t\t\t\tcheck_move\t\t\t: function (m) { return true; }\n\t\t\t}\n\t\t},\n\t\t_fn : {\n\t\t\t_show_input : function (obj, callback) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar rtl = this._get_settings().core.rtl,\n\t\t\t\t\tw = this._get_settings().crrm.input_width_limit,\n\t\t\t\t\tw1 = obj.children(\"ins\").width(),\n\t\t\t\t\tw2 = obj.find(\"> a:visible > ins\").width() * obj.find(\"> a:visible > ins\").length,\n\t\t\t\t\tt = this.get_text(obj),\n\t\t\t\t\th1 = $(\"<div />\", { css : { \"position\" : \"absolute\", \"top\" : \"-200px\", \"left\" : (rtl ? \"0px\" : \"-1000px\"), \"visibility\" : \"hidden\" } }).appendTo(\"body\"),\n\t\t\t\t\th2 = obj.css(\"position\",\"relative\").append(\n\t\t\t\t\t$(\"<input />\", { \n\t\t\t\t\t\t\"value\" : t,\n\t\t\t\t\t\t\"class\" : \"jstree-rename-input\",\n\t\t\t\t\t\t// \"size\" : t.length,\n\t\t\t\t\t\t\"css\" : {\n\t\t\t\t\t\t\t\"padding\" : \"0\",\n\t\t\t\t\t\t\t\"border\" : \"1px solid silver\",\n\t\t\t\t\t\t\t\"position\" : \"absolute\",\n\t\t\t\t\t\t\t\"left\"  : (rtl ? \"auto\" : (w1 + w2 + 4) + \"px\"),\n\t\t\t\t\t\t\t\"right\" : (rtl ? (w1 + w2 + 4) + \"px\" : \"auto\"),\n\t\t\t\t\t\t\t\"top\" : \"0px\",\n\t\t\t\t\t\t\t\"height\" : (this.data.core.li_height - 2) + \"px\",\n\t\t\t\t\t\t\t\"lineHeight\" : (this.data.core.li_height - 2) + \"px\",\n\t\t\t\t\t\t\t\"width\" : \"150px\" // will be set a bit further down\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"blur\" : $.proxy(function () {\n\t\t\t\t\t\t\tvar i = obj.children(\".jstree-rename-input\"),\n\t\t\t\t\t\t\t\tv = i.val();\n\t\t\t\t\t\t\tif(v === \"\") { v = t; }\n\t\t\t\t\t\t\th1.remove();\n\t\t\t\t\t\t\ti.remove(); // rollback purposes\n\t\t\t\t\t\t\tthis.set_text(obj,t); // rollback purposes\n\t\t\t\t\t\t\tthis.rename_node(obj, v);\n\t\t\t\t\t\t\tcallback.call(this, obj, v, t);\n\t\t\t\t\t\t\tobj.css(\"position\",\"\");\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\t\"keyup\" : function (event) {\n\t\t\t\t\t\t\tvar key = event.keyCode || event.which;\n\t\t\t\t\t\t\tif(key == 27) { this.value = t; this.blur(); return; }\n\t\t\t\t\t\t\telse if(key == 13) { this.blur(); return; }\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\th2.width(Math.min(h1.text(\"pW\" + this.value).width(),w));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"keypress\" : function(event) {\n\t\t\t\t\t\t\tvar key = event.keyCode || event.which;\n\t\t\t\t\t\t\tif(key == 13) { return false; }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t).children(\".jstree-rename-input\"); \n\t\t\t\tthis.set_text(obj, \"\");\n\t\t\t\th1.css({\n\t\t\t\t\t\tfontFamily\t\t: h2.css('fontFamily')\t\t|| '',\n\t\t\t\t\t\tfontSize\t\t: h2.css('fontSize')\t\t|| '',\n\t\t\t\t\t\tfontWeight\t\t: h2.css('fontWeight')\t\t|| '',\n\t\t\t\t\t\tfontStyle\t\t: h2.css('fontStyle')\t\t|| '',\n\t\t\t\t\t\tfontStretch\t\t: h2.css('fontStretch')\t\t|| '',\n\t\t\t\t\t\tfontVariant\t\t: h2.css('fontVariant')\t\t|| '',\n\t\t\t\t\t\tletterSpacing\t: h2.css('letterSpacing')\t|| '',\n\t\t\t\t\t\twordSpacing\t\t: h2.css('wordSpacing')\t\t|| ''\n\t\t\t\t});\n\t\t\t\th2.width(Math.min(h1.text(\"pW\" + h2[0].value).width(),w))[0].select();\n\t\t\t},\n\t\t\trename : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tthis.__rollback();\n\t\t\t\tvar f = this.__callback;\n\t\t\t\tthis._show_input(obj, function (obj, new_name, old_name) { \n\t\t\t\t\tf.call(this, { \"obj\" : obj, \"new_name\" : new_name, \"old_name\" : old_name });\n\t\t\t\t});\n\t\t\t},\n\t\t\tcreate : function (obj, position, js, callback, skip_rename) {\n\t\t\t\tvar t, _this = this;\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj) { obj = -1; }\n\t\t\t\tthis.__rollback();\n\t\t\t\tt = this.create_node(obj, position, js, function (t) {\n\t\t\t\t\tvar p = this._get_parent(t),\n\t\t\t\t\t\tpos = $(t).index();\n\t\t\t\t\tif(callback) { callback.call(this, t); }\n\t\t\t\t\tif(p.length && p.hasClass(\"jstree-closed\")) { this.open_node(p, false, true); }\n\t\t\t\t\tif(!skip_rename) { \n\t\t\t\t\t\tthis._show_input(t, function (obj, new_name, old_name) { \n\t\t\t\t\t\t\t_this.__callback({ \"obj\" : obj, \"name\" : new_name, \"parent\" : p, \"position\" : pos });\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse { _this.__callback({ \"obj\" : t, \"name\" : this.get_text(t), \"parent\" : p, \"position\" : pos }); }\n\t\t\t\t});\n\t\t\t\treturn t;\n\t\t\t},\n\t\t\tremove : function (obj) {\n\t\t\t\tobj = this._get_node(obj, true);\n\t\t\t\tvar p = this._get_parent(obj), prev = this._get_prev(obj);\n\t\t\t\tthis.__rollback();\n\t\t\t\tobj = this.delete_node(obj);\n\t\t\t\tif(obj !== false) { this.__callback({ \"obj\" : obj, \"prev\" : prev, \"parent\" : p }); }\n\t\t\t},\n\t\t\tcheck_move : function () {\n\t\t\t\tif(!this.__call_old()) { return false; }\n\t\t\t\tvar s = this._get_settings().crrm.move;\n\t\t\t\tif(!s.check_move.call(this, this._get_move())) { return false; }\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tmove_node : function (obj, ref, position, is_copy, is_prepared, skip_check) {\n\t\t\t\tvar s = this._get_settings().crrm.move;\n\t\t\t\tif(!is_prepared) { \n\t\t\t\t\tif(typeof position === \"undefined\") { position = s.default_position; }\n\t\t\t\t\tif(position === \"inside\" && !s.default_position.match(/^(before|after)$/)) { position = s.default_position; }\n\t\t\t\t\treturn this.__call_old(true, obj, ref, position, is_copy, false, skip_check);\n\t\t\t\t}\n\t\t\t\t// if the move is already prepared\n\t\t\t\tif(s.always_copy === true || (s.always_copy === \"multitree\" && obj.rt.get_index() !== obj.ot.get_index() )) {\n\t\t\t\t\tis_copy = true;\n\t\t\t\t}\n\t\t\t\tthis.__call_old(true, obj, ref, position, is_copy, true, skip_check);\n\t\t\t},\n\n\t\t\tcut : function (obj) {\n\t\t\t\tobj = this._get_node(obj, true);\n\t\t\t\tif(!obj || !obj.length) { return false; }\n\t\t\t\tthis.data.crrm.cp_nodes = false;\n\t\t\t\tthis.data.crrm.ct_nodes = obj;\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\tcopy : function (obj) {\n\t\t\t\tobj = this._get_node(obj, true);\n\t\t\t\tif(!obj || !obj.length) { return false; }\n\t\t\t\tthis.data.crrm.ct_nodes = false;\n\t\t\t\tthis.data.crrm.cp_nodes = obj;\n\t\t\t\tthis.__callback({ \"obj\" : obj });\n\t\t\t},\n\t\t\tpaste : function (obj) { \n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj || !obj.length) { return false; }\n\t\t\t\tvar nodes = this.data.crrm.ct_nodes ? this.data.crrm.ct_nodes : this.data.crrm.cp_nodes;\n\t\t\t\tif(!this.data.crrm.ct_nodes && !this.data.crrm.cp_nodes) { return false; }\n\t\t\t\tif(this.data.crrm.ct_nodes) { this.move_node(this.data.crrm.ct_nodes, obj); this.data.crrm.ct_nodes = false; }\n\t\t\t\tif(this.data.crrm.cp_nodes) { this.move_node(this.data.crrm.cp_nodes, obj, false, true); }\n\t\t\t\tthis.__callback({ \"obj\" : obj, \"nodes\" : nodes });\n\t\t\t}\n\t\t}\n\t});\n\t// include the crr plugin by default\n\t// $.jstree.defaults.plugins.push(\"crrm\");\n})(jQuery);\n//*/\n\n/* \n * jsTree themes plugin\n * Handles loading and setting themes, as well as detecting path to themes, etc.\n */\n(function ($) {\n\tvar themes_loaded = [];\n\t// this variable stores the path to the themes folder - if left as false - it will be autodetected\n\t$.jstree._themes = false;\n\t$.jstree.plugin(\"themes\", {\n\t\t__init : function () { \n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"init.jstree\", $.proxy(function () {\n\t\t\t\t\t\tvar s = this._get_settings().themes;\n\t\t\t\t\t\tthis.data.themes.dots = s.dots; \n\t\t\t\t\t\tthis.data.themes.icons = s.icons; \n\t\t\t\t\t\tthis.set_theme(s.theme, s.url);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"loaded.jstree\", $.proxy(function () {\n\t\t\t\t\t\t// bound here too, as simple HTML tree's won't honor dots & icons otherwise\n\t\t\t\t\t\tif(!this.data.themes.dots) { this.hide_dots(); }\n\t\t\t\t\t\telse { this.show_dots(); }\n\t\t\t\t\t\tif(!this.data.themes.icons) { this.hide_icons(); }\n\t\t\t\t\t\telse { this.show_icons(); }\n\t\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : { \n\t\t\ttheme : \"default\", \n\t\t\turl : false,\n\t\t\tdots : true,\n\t\t\ticons : true\n\t\t},\n\t\t_fn : {\n\t\t\tset_theme : function (theme_name, theme_url) {\n\t\t\t\tif(!theme_name) { return false; }\n\t\t\t\tif(!theme_url) { theme_url = $.jstree._themes + theme_name + '/style.css'; }\n\t\t\t\tif($.inArray(theme_url, themes_loaded) == -1) {\n\t\t\t\t\t$.vakata.css.add_sheet({ \"url\" : theme_url });\n\t\t\t\t\tthemes_loaded.push(theme_url);\n\t\t\t\t}\n\t\t\t\tif(this.data.themes.theme != theme_name) {\n\t\t\t\t\tthis.get_container().removeClass('jstree-' + this.data.themes.theme);\n\t\t\t\t\tthis.data.themes.theme = theme_name;\n\t\t\t\t}\n\t\t\t\tthis.get_container().addClass('jstree-' + theme_name);\n\t\t\t\tif(!this.data.themes.dots) { this.hide_dots(); }\n\t\t\t\telse { this.show_dots(); }\n\t\t\t\tif(!this.data.themes.icons) { this.hide_icons(); }\n\t\t\t\telse { this.show_icons(); }\n\t\t\t\tthis.__callback();\n\t\t\t},\n\t\t\tget_theme\t: function () { return this.data.themes.theme; },\n\n\t\t\tshow_dots\t: function () { this.data.themes.dots = true; this.get_container().children(\"ul\").removeClass(\"jstree-no-dots\"); },\n\t\t\thide_dots\t: function () { this.data.themes.dots = false; this.get_container().children(\"ul\").addClass(\"jstree-no-dots\"); },\n\t\t\ttoggle_dots\t: function () { if(this.data.themes.dots) { this.hide_dots(); } else { this.show_dots(); } },\n\n\t\t\tshow_icons\t: function () { this.data.themes.icons = true; this.get_container().children(\"ul\").removeClass(\"jstree-no-icons\"); },\n\t\t\thide_icons\t: function () { this.data.themes.icons = false; this.get_container().children(\"ul\").addClass(\"jstree-no-icons\"); },\n\t\t\ttoggle_icons: function () { if(this.data.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }\n\t\t}\n\t});\n\t// autodetect themes path\n\t$(function () {\n\t\tif($.jstree._themes === false) {\n\t\t\t$(\"script\").each(function () { \n\t\t\t\tif(this.src.toString().match(/jquery\\.jstree[^\\/]*?\\.js(\\?.*)?$/)) { \n\t\t\t\t\t$.jstree._themes = this.src.toString().replace(/jquery\\.jstree[^\\/]*?\\.js(\\?.*)?$/, \"\") + 'themes/'; \n\t\t\t\t\treturn false; \n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif($.jstree._themes === false) { $.jstree._themes = \"themes/\"; }\n\t});\n\t// include the themes plugin by default\n\t$.jstree.defaults.plugins.push(\"themes\");\n})(jQuery);\n//*/\n\n/*\n * jsTree hotkeys plugin\n * Enables keyboard navigation for all tree instances\n * Depends on the jstree ui & jquery hotkeys plugins\n */\n(function ($) {\n\tvar bound = [];\n\tfunction exec(i, event) {\n\t\tvar f = $.jstree._focused(), tmp;\n\t\tif(f && f.data && f.data.hotkeys && f.data.hotkeys.enabled) { \n\t\t\ttmp = f._get_settings().hotkeys[i];\n\t\t\tif(tmp) { return tmp.call(f, event); }\n\t\t}\n\t}\n\t$.jstree.plugin(\"hotkeys\", {\n\t\t__init : function () {\n\t\t\tif(typeof $.hotkeys === \"undefined\") { throw \"jsTree hotkeys: jQuery hotkeys plugin not included.\"; }\n\t\t\tif(!this.data.ui) { throw \"jsTree hotkeys: jsTree UI plugin not included.\"; }\n\t\t\t$.each(this._get_settings().hotkeys, function (i, v) {\n\t\t\t\tif(v !== false && $.inArray(i, bound) == -1) {\n\t\t\t\t\t$(document).bind(\"keydown\", i, function (event) { return exec(i, event); });\n\t\t\t\t\tbound.push(i);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"lock.jstree\", $.proxy(function () {\n\t\t\t\t\t\tif(this.data.hotkeys.enabled) { this.data.hotkeys.enabled = false; this.data.hotkeys.revert = true; }\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"unlock.jstree\", $.proxy(function () {\n\t\t\t\t\t\tif(this.data.hotkeys.revert) { this.data.hotkeys.enabled = true; }\n\t\t\t\t\t}, this));\n\t\t\tthis.enable_hotkeys();\n\t\t},\n\t\tdefaults : {\n\t\t\t\"up\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected || -1;\n\t\t\t\tthis.hover_node(this._get_prev(o));\n\t\t\t\treturn false; \n\t\t\t},\n\t\t\t\"ctrl+up\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected || -1;\n\t\t\t\tthis.hover_node(this._get_prev(o));\n\t\t\t\treturn false; \n\t\t\t},\n\t\t\t\"shift+up\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected || -1;\n\t\t\t\tthis.hover_node(this._get_prev(o));\n\t\t\t\treturn false; \n\t\t\t},\n\t\t\t\"down\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected || -1;\n\t\t\t\tthis.hover_node(this._get_next(o));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"ctrl+down\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected || -1;\n\t\t\t\tthis.hover_node(this._get_next(o));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"shift+down\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected || -1;\n\t\t\t\tthis.hover_node(this._get_next(o));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"left\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected;\n\t\t\t\tif(o) {\n\t\t\t\t\tif(o.hasClass(\"jstree-open\")) { this.close_node(o); }\n\t\t\t\t\telse { this.hover_node(this._get_prev(o)); }\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"ctrl+left\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected;\n\t\t\t\tif(o) {\n\t\t\t\t\tif(o.hasClass(\"jstree-open\")) { this.close_node(o); }\n\t\t\t\t\telse { this.hover_node(this._get_prev(o)); }\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"shift+left\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected;\n\t\t\t\tif(o) {\n\t\t\t\t\tif(o.hasClass(\"jstree-open\")) { this.close_node(o); }\n\t\t\t\t\telse { this.hover_node(this._get_prev(o)); }\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"right\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected;\n\t\t\t\tif(o && o.length) {\n\t\t\t\t\tif(o.hasClass(\"jstree-closed\")) { this.open_node(o); }\n\t\t\t\t\telse { this.hover_node(this._get_next(o)); }\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"ctrl+right\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected;\n\t\t\t\tif(o && o.length) {\n\t\t\t\t\tif(o.hasClass(\"jstree-closed\")) { this.open_node(o); }\n\t\t\t\t\telse { this.hover_node(this._get_next(o)); }\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"shift+right\" : function () { \n\t\t\t\tvar o = this.data.ui.hovered || this.data.ui.last_selected;\n\t\t\t\tif(o && o.length) {\n\t\t\t\t\tif(o.hasClass(\"jstree-closed\")) { this.open_node(o); }\n\t\t\t\t\telse { this.hover_node(this._get_next(o)); }\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t\"space\" : function () { \n\t\t\t\tif(this.data.ui.hovered) { this.data.ui.hovered.children(\"a:eq(0)\").click(); } \n\t\t\t\treturn false; \n\t\t\t},\n\t\t\t\"ctrl+space\" : function (event) { \n\t\t\t\tevent.type = \"click\";\n\t\t\t\tif(this.data.ui.hovered) { this.data.ui.hovered.children(\"a:eq(0)\").trigger(event); } \n\t\t\t\treturn false; \n\t\t\t},\n\t\t\t\"shift+space\" : function (event) { \n\t\t\t\tevent.type = \"click\";\n\t\t\t\tif(this.data.ui.hovered) { this.data.ui.hovered.children(\"a:eq(0)\").trigger(event); } \n\t\t\t\treturn false; \n\t\t\t},\n\t\t\t\"f2\" : function () { this.rename(this.data.ui.hovered || this.data.ui.last_selected); },\n\t\t\t\"del\" : function () { this.remove(this.data.ui.hovered || this._get_node(null)); }\n\t\t},\n\t\t_fn : {\n\t\t\tenable_hotkeys : function () {\n\t\t\t\tthis.data.hotkeys.enabled = true;\n\t\t\t},\n\t\t\tdisable_hotkeys : function () {\n\t\t\t\tthis.data.hotkeys.enabled = false;\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree JSON plugin\n * The JSON data store. Datastores are build by overriding the `load_node` and `_is_loaded` functions.\n */\n(function ($) {\n\t$.jstree.plugin(\"json_data\", {\n\t\t__init : function() {\n\t\t\tvar s = this._get_settings().json_data;\n\t\t\tif(s.progressive_unload) {\n\t\t\t\tthis.get_container().bind(\"after_close.jstree\", function (e, data) {\n\t\t\t\t\tdata.rslt.obj.children(\"ul\").remove();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdefaults : { \n\t\t\t// `data` can be a function:\n\t\t\t//  * accepts two arguments - node being loaded and a callback to pass the result to\n\t\t\t//  * will be executed in the current tree's scope & ajax won't be supported\n\t\t\tdata : false, \n\t\t\tajax : false,\n\t\t\tcorrect_state : true,\n\t\t\tprogressive_render : false,\n\t\t\tprogressive_unload : false\n\t\t},\n\t\t_fn : {\n\t\t\tload_node : function (obj, s_call, e_call) { var _this = this; this.load_node_json(obj, function () { _this.__callback({ \"obj\" : _this._get_node(obj) }); s_call.call(this); }, e_call); },\n\t\t\t_is_loaded : function (obj) { \n\t\t\t\tvar s = this._get_settings().json_data;\n\t\t\t\tobj = this._get_node(obj); \n\t\t\t\treturn obj == -1 || !obj || (!s.ajax && !s.progressive_render && !$.isFunction(s.data)) || obj.is(\".jstree-open, .jstree-leaf\") || obj.children(\"ul\").children(\"li\").length > 0;\n\t\t\t},\n\t\t\trefresh : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar s = this._get_settings().json_data;\n\t\t\t\tif(obj && obj !== -1 && s.progressive_unload && ($.isFunction(s.data) || !!s.ajax)) {\n\t\t\t\t\tobj.removeData(\"jstree_children\");\n\t\t\t\t}\n\t\t\t\treturn this.__call_old();\n\t\t\t},\n\t\t\tload_node_json : function (obj, s_call, e_call) {\n\t\t\t\tvar s = this.get_settings().json_data, d,\n\t\t\t\t\terror_func = function () {},\n\t\t\t\t\tsuccess_func = function () {};\n\t\t\t\tobj = this._get_node(obj);\n\n\t\t\t\tif(obj && obj !== -1 && (s.progressive_render || s.progressive_unload) && !obj.is(\".jstree-open, .jstree-leaf\") && obj.children(\"ul\").children(\"li\").length === 0 && obj.data(\"jstree_children\")) {\n\t\t\t\t\td = this._parse_json(obj.data(\"jstree_children\"), obj);\n\t\t\t\t\tif(d) {\n\t\t\t\t\t\tobj.append(d);\n\t\t\t\t\t\tif(!s.progressive_unload) { obj.removeData(\"jstree_children\"); }\n\t\t\t\t\t}\n\t\t\t\t\tthis.clean_node(obj);\n\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif(obj && obj !== -1) {\n\t\t\t\t\tif(obj.data(\"jstree_is_loading\")) { return; }\n\t\t\t\t\telse { obj.data(\"jstree_is_loading\",true); }\n\t\t\t\t}\n\t\t\t\tswitch(!0) {\n\t\t\t\t\tcase (!s.data && !s.ajax): throw \"Neither data nor ajax settings supplied.\";\n\t\t\t\t\t// function option added here for easier model integration (also supporting async - see callback)\n\t\t\t\t\tcase ($.isFunction(s.data)):\n\t\t\t\t\t\ts.data.call(this, obj, $.proxy(function (d) {\n\t\t\t\t\t\t\td = this._parse_json(d, obj);\n\t\t\t\t\t\t\tif(!d) { \n\t\t\t\t\t\t\t\tif(obj === -1 || !obj) {\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { this.get_container().children(\"ul\").empty(); }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { this.correct_state(obj); }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(e_call) { e_call.call(this); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(obj === -1 || !obj) { this.get_container().children(\"ul\").empty().append(d.children()); }\n\t\t\t\t\t\t\t\telse { obj.append(d).children(\"a.jstree-loading\").removeClass(\"jstree-loading\"); obj.removeData(\"jstree_is_loading\"); }\n\t\t\t\t\t\t\t\tthis.clean_node(obj);\n\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!!s.data && !s.ajax) || (!!s.data && !!s.ajax && (!obj || obj === -1)):\n\t\t\t\t\t\tif(!obj || obj == -1) {\n\t\t\t\t\t\t\td = this._parse_json(s.data, obj);\n\t\t\t\t\t\t\tif(d) {\n\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty().append(d.children());\n\t\t\t\t\t\t\t\tthis.clean_node();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse { \n\t\t\t\t\t\t\t\tif(s.correct_state) { this.get_container().children(\"ul\").empty(); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!s.data && !!s.ajax) || (!!s.data && !!s.ajax && obj && obj !== -1):\n\t\t\t\t\t\terror_func = function (x, t, e) {\n\t\t\t\t\t\t\tvar ef = this.get_settings().json_data.ajax.error; \n\t\t\t\t\t\t\tif(ef) { ef.call(this, x, t, e); }\n\t\t\t\t\t\t\tif(obj != -1 && obj.length) {\n\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\tif(t === \"success\" && s.correct_state) { this.correct_state(obj); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(t === \"success\" && s.correct_state) { this.get_container().children(\"ul\").empty(); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(e_call) { e_call.call(this); }\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsuccess_func = function (d, t, x) {\n\t\t\t\t\t\t\tvar sf = this.get_settings().json_data.ajax.success; \n\t\t\t\t\t\t\tif(sf) { d = sf.call(this,d,t,x) || d; }\n\t\t\t\t\t\t\tif(d === \"\" || (d && d.toString && d.toString().replace(/^[\\s\\n]+$/,\"\") === \"\") || (!$.isArray(d) && !$.isPlainObject(d))) {\n\t\t\t\t\t\t\t\treturn error_func.call(this, x, t, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\td = this._parse_json(d, obj);\n\t\t\t\t\t\t\tif(d) {\n\t\t\t\t\t\t\t\tif(obj === -1 || !obj) { this.get_container().children(\"ul\").empty().append(d.children()); }\n\t\t\t\t\t\t\t\telse { obj.append(d).children(\"a.jstree-loading\").removeClass(\"jstree-loading\"); obj.removeData(\"jstree_is_loading\"); }\n\t\t\t\t\t\t\t\tthis.clean_node(obj);\n\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(obj === -1 || !obj) {\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty(); \n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.correct_state(obj);\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\ts.ajax.context = this;\n\t\t\t\t\t\ts.ajax.error = error_func;\n\t\t\t\t\t\ts.ajax.success = success_func;\n\t\t\t\t\t\tif(!s.ajax.dataType) { s.ajax.dataType = \"json\"; }\n\t\t\t\t\t\tif($.isFunction(s.ajax.url)) { s.ajax.url = s.ajax.url.call(this, obj); }\n\t\t\t\t\t\tif($.isFunction(s.ajax.data)) { s.ajax.data = s.ajax.data.call(this, obj); }\n\t\t\t\t\t\t$.ajax(s.ajax);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_parse_json : function (js, obj, is_callback) {\n\t\t\t\tvar d = false, \n\t\t\t\t\tp = this._get_settings(),\n\t\t\t\t\ts = p.json_data,\n\t\t\t\t\tt = p.core.html_titles,\n\t\t\t\t\ttmp, i, j, ul1, ul2;\n\n\t\t\t\tif(!js) { return d; }\n\t\t\t\tif(s.progressive_unload && obj && obj !== -1) { \n\t\t\t\t\tobj.data(\"jstree_children\", d);\n\t\t\t\t}\n\t\t\t\tif($.isArray(js)) {\n\t\t\t\t\td = $('<ul>');\n\t\t\t\t\tif(!js.length) { return false; }\n\t\t\t\t\tfor(i = 0, j = js.length; i < j; i++) {\n\t\t\t\t\t\ttmp = this._parse_json(js[i], obj, true);\n\t\t\t\t\t\tif(tmp.length) {\n\t\t\t\t\t\t\td = d.append(tmp);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\td = d.children();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(typeof js == \"string\") { js = { data : js }; }\n\t\t\t\t\tif(!js.data && js.data !== \"\") { return d; }\n\t\t\t\t\td = $(\"<li />\");\n\t\t\t\t\tif(js.attr) { d.attr(js.attr); }\n\t\t\t\t\tif(js.metadata) { d.data(js.metadata); }\n\t\t\t\t\tif(js.state) { d.addClass(\"jstree-\" + js.state); }\n\t\t\t\t\tif(!$.isArray(js.data)) { tmp = js.data; js.data = []; js.data.push(tmp); }\n\t\t\t\t\t$.each(js.data, function (i, m) {\n\t\t\t\t\t\ttmp = $(\"<a />\");\n\t\t\t\t\t\tif($.isFunction(m)) { m = m.call(this, js); }\n\t\t\t\t\t\tif(typeof m == \"string\") { tmp.attr('href','#')[ t ? \"html\" : \"text\" ](m); }\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif(!m.attr) { m.attr = {}; }\n\t\t\t\t\t\t\tif(!m.attr.href) { m.attr.href = '#'; }\n\t\t\t\t\t\t\ttmp.attr(m.attr)[ t ? \"html\" : \"text\" ](m.title);\n\t\t\t\t\t\t\tif(m.language) { tmp.addClass(m.language); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttmp.prepend(\"<ins class='jstree-icon'>&#160;</ins>\");\n\t\t\t\t\t\tif(!m.icon && js.icon) { m.icon = js.icon; }\n\t\t\t\t\t\tif(m.icon) { \n\t\t\t\t\t\t\tif(m.icon.indexOf(\"/\") === -1) { tmp.children(\"ins\").addClass(m.icon); }\n\t\t\t\t\t\t\telse { tmp.children(\"ins\").css(\"background\",\"url('\" + m.icon + \"') center center no-repeat\"); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\td.append(tmp);\n\t\t\t\t\t});\n\t\t\t\t\td.prepend(\"<ins class='jstree-icon'>&#160;</ins>\");\n\t\t\t\t\tif(js.children) { \n\t\t\t\t\t\tif(s.progressive_render && js.state !== \"open\") {\n\t\t\t\t\t\t\td.addClass(\"jstree-closed\").data(\"jstree_children\", js.children);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif(s.progressive_unload) { d.data(\"jstree_children\", js.children); }\n\t\t\t\t\t\t\tif($.isArray(js.children) && js.children.length) {\n\t\t\t\t\t\t\t\ttmp = this._parse_json(js.children, obj, true);\n\t\t\t\t\t\t\t\tif(tmp.length) {\n\t\t\t\t\t\t\t\t\tul2 = $(\"<ul />\");\n\t\t\t\t\t\t\t\t\tul2.append(tmp);\n\t\t\t\t\t\t\t\t\td.append(ul2);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!is_callback) {\n\t\t\t\t\tul1 = $(\"<ul />\");\n\t\t\t\t\tul1.append(d);\n\t\t\t\t\td = ul1;\n\t\t\t\t}\n\t\t\t\treturn d;\n\t\t\t},\n\t\t\tget_json : function (obj, li_attr, a_attr, is_callback) {\n\t\t\t\tvar result = [], \n\t\t\t\t\ts = this._get_settings(), \n\t\t\t\t\t_this = this,\n\t\t\t\t\ttmp1, tmp2, li, a, t, lang;\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj || obj === -1) { obj = this.get_container().find(\"> ul > li\"); }\n\t\t\t\tli_attr = $.isArray(li_attr) ? li_attr : [ \"id\", \"class\" ];\n\t\t\t\tif(!is_callback && this.data.types) { li_attr.push(s.types.type_attr); }\n\t\t\t\ta_attr = $.isArray(a_attr) ? a_attr : [ ];\n\n\t\t\t\tobj.each(function () {\n\t\t\t\t\tli = $(this);\n\t\t\t\t\ttmp1 = { data : [] };\n\t\t\t\t\tif(li_attr.length) { tmp1.attr = { }; }\n\t\t\t\t\t$.each(li_attr, function (i, v) { \n\t\t\t\t\t\ttmp2 = li.attr(v); \n\t\t\t\t\t\tif(tmp2 && tmp2.length && tmp2.replace(/jstree[^ ]*/ig,'').length) {\n\t\t\t\t\t\t\ttmp1.attr[v] = (\" \" + tmp2).replace(/ jstree[^ ]*/ig,'').replace(/\\s+$/ig,\" \").replace(/^ /,\"\").replace(/ $/,\"\"); \n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(li.hasClass(\"jstree-open\")) { tmp1.state = \"open\"; }\n\t\t\t\t\tif(li.hasClass(\"jstree-closed\")) { tmp1.state = \"closed\"; }\n\t\t\t\t\tif(li.data()) { tmp1.metadata = li.data(); }\n\t\t\t\t\ta = li.children(\"a\");\n\t\t\t\t\ta.each(function () {\n\t\t\t\t\t\tt = $(this);\n\t\t\t\t\t\tif(\n\t\t\t\t\t\t\ta_attr.length || \n\t\t\t\t\t\t\t$.inArray(\"languages\", s.plugins) !== -1 || \n\t\t\t\t\t\t\tt.children(\"ins\").get(0).style.backgroundImage.length || \n\t\t\t\t\t\t\t(t.children(\"ins\").get(0).className && t.children(\"ins\").get(0).className.replace(/jstree[^ ]*|$/ig,'').length)\n\t\t\t\t\t\t) { \n\t\t\t\t\t\t\tlang = false;\n\t\t\t\t\t\t\tif($.inArray(\"languages\", s.plugins) !== -1 && $.isArray(s.languages) && s.languages.length) {\n\t\t\t\t\t\t\t\t$.each(s.languages, function (l, lv) {\n\t\t\t\t\t\t\t\t\tif(t.hasClass(lv)) {\n\t\t\t\t\t\t\t\t\t\tlang = lv;\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmp2 = { attr : { }, title : _this.get_text(t, lang) }; \n\t\t\t\t\t\t\t$.each(a_attr, function (k, z) {\n\t\t\t\t\t\t\t\ttmp2.attr[z] = (\" \" + (t.attr(z) || \"\")).replace(/ jstree[^ ]*/ig,'').replace(/\\s+$/ig,\" \").replace(/^ /,\"\").replace(/ $/,\"\");\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif($.inArray(\"languages\", s.plugins) !== -1 && $.isArray(s.languages) && s.languages.length) {\n\t\t\t\t\t\t\t\t$.each(s.languages, function (k, z) {\n\t\t\t\t\t\t\t\t\tif(t.hasClass(z)) { tmp2.language = z; return true; }\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(t.children(\"ins\").get(0).className.replace(/jstree[^ ]*|$/ig,'').replace(/^\\s+$/ig,\"\").length) {\n\t\t\t\t\t\t\t\ttmp2.icon = t.children(\"ins\").get(0).className.replace(/jstree[^ ]*|$/ig,'').replace(/\\s+$/ig,\" \").replace(/^ /,\"\").replace(/ $/,\"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(t.children(\"ins\").get(0).style.backgroundImage.length) {\n\t\t\t\t\t\t\t\ttmp2.icon = t.children(\"ins\").get(0).style.backgroundImage.replace(\"url(\",\"\").replace(\")\",\"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttmp2 = _this.get_text(t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(a.length > 1) { tmp1.data.push(tmp2); }\n\t\t\t\t\t\telse { tmp1.data = tmp2; }\n\t\t\t\t\t});\n\t\t\t\t\tli = li.find(\"> ul > li\");\n\t\t\t\t\tif(li.length) { tmp1.children = _this.get_json(li, li_attr, a_attr, true); }\n\t\t\t\t\tresult.push(tmp1);\n\t\t\t\t});\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree languages plugin\n * Adds support for multiple language versions in one tree\n * This basically allows for many titles coexisting in one node, but only one of them being visible at any given time\n * This is useful for maintaining the same structure in many languages (hence the name of the plugin)\n */\n(function ($) {\n\tvar sh = false;\n\t$.jstree.plugin(\"languages\", {\n\t\t__init : function () { this._load_css();  },\n\t\tdefaults : [],\n\t\t_fn : {\n\t\t\tset_lang : function (i) { \n\t\t\t\tvar langs = this._get_settings().languages,\n\t\t\t\t\tst = false,\n\t\t\t\t\tselector = \".jstree-\" + this.get_index() + ' a';\n\t\t\t\tif(!$.isArray(langs) || langs.length === 0) { return false; }\n\t\t\t\tif($.inArray(i,langs) == -1) {\n\t\t\t\t\tif(!!langs[i]) { i = langs[i]; }\n\t\t\t\t\telse { return false; }\n\t\t\t\t}\n\t\t\t\tif(i == this.data.languages.current_language) { return true; }\n\t\t\t\tst = $.vakata.css.get_css(selector + \".\" + this.data.languages.current_language, false, sh);\n\t\t\t\tif(st !== false) { st.style.display = \"none\"; }\n\t\t\t\tst = $.vakata.css.get_css(selector + \".\" + i, false, sh);\n\t\t\t\tif(st !== false) { st.style.display = \"\"; }\n\t\t\t\tthis.data.languages.current_language = i;\n\t\t\t\tthis.__callback(i);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tget_lang : function () {\n\t\t\t\treturn this.data.languages.current_language;\n\t\t\t},\n\t\t\t_get_string : function (key, lang) {\n\t\t\t\tvar langs = this._get_settings().languages,\n\t\t\t\t\ts = this._get_settings().core.strings;\n\t\t\t\tif($.isArray(langs) && langs.length) {\n\t\t\t\t\tlang = (lang && $.inArray(lang,langs) != -1) ? lang : this.data.languages.current_language;\n\t\t\t\t}\n\t\t\t\tif(s[lang] && s[lang][key]) { return s[lang][key]; }\n\t\t\t\tif(s[key]) { return s[key]; }\n\t\t\t\treturn key;\n\t\t\t},\n\t\t\tget_text : function (obj, lang) {\n\t\t\t\tobj = this._get_node(obj) || this.data.ui.last_selected;\n\t\t\t\tif(!obj.size()) { return false; }\n\t\t\t\tvar langs = this._get_settings().languages,\n\t\t\t\t\ts = this._get_settings().core.html_titles;\n\t\t\t\tif($.isArray(langs) && langs.length) {\n\t\t\t\t\tlang = (lang && $.inArray(lang,langs) != -1) ? lang : this.data.languages.current_language;\n\t\t\t\t\tobj = obj.children(\"a.\" + lang);\n\t\t\t\t}\n\t\t\t\telse { obj = obj.children(\"a:eq(0)\"); }\n\t\t\t\tif(s) {\n\t\t\t\t\tobj = obj.clone();\n\t\t\t\t\tobj.children(\"INS\").remove();\n\t\t\t\t\treturn obj.html();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tobj = obj.contents().filter(function() { return this.nodeType == 3; })[0];\n\t\t\t\t\treturn obj.nodeValue;\n\t\t\t\t}\n\t\t\t},\n\t\t\tset_text : function (obj, val, lang) {\n\t\t\t\tobj = this._get_node(obj) || this.data.ui.last_selected;\n\t\t\t\tif(!obj.size()) { return false; }\n\t\t\t\tvar langs = this._get_settings().languages,\n\t\t\t\t\ts = this._get_settings().core.html_titles,\n\t\t\t\t\ttmp;\n\t\t\t\tif($.isArray(langs) && langs.length) {\n\t\t\t\t\tlang = (lang && $.inArray(lang,langs) != -1) ? lang : this.data.languages.current_language;\n\t\t\t\t\tobj = obj.children(\"a.\" + lang);\n\t\t\t\t}\n\t\t\t\telse { obj = obj.children(\"a:eq(0)\"); }\n\t\t\t\tif(s) {\n\t\t\t\t\ttmp = obj.children(\"INS\").clone();\n\t\t\t\t\tobj.html(val).prepend(tmp);\n\t\t\t\t\tthis.__callback({ \"obj\" : obj, \"name\" : val, \"lang\" : lang });\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tobj = obj.contents().filter(function() { return this.nodeType == 3; })[0];\n\t\t\t\t\tthis.__callback({ \"obj\" : obj, \"name\" : val, \"lang\" : lang });\n\t\t\t\t\treturn (obj.nodeValue = val);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_load_css : function () {\n\t\t\t\tvar langs = this._get_settings().languages,\n\t\t\t\t\tstr = \"/* languages css */\",\n\t\t\t\t\tselector = \".jstree-\" + this.get_index() + ' a',\n\t\t\t\t\tln;\n\t\t\t\tif($.isArray(langs) && langs.length) {\n\t\t\t\t\tthis.data.languages.current_language = langs[0];\n\t\t\t\t\tfor(ln = 0; ln < langs.length; ln++) {\n\t\t\t\t\t\tstr += selector + \".\" + langs[ln] + \" {\";\n\t\t\t\t\t\tif(langs[ln] != this.data.languages.current_language) { str += \" display:none; \"; }\n\t\t\t\t\t\tstr += \" } \";\n\t\t\t\t\t}\n\t\t\t\t\tsh = $.vakata.css.add_sheet({ 'str' : str, 'title' : \"jstree-languages\" });\n\t\t\t\t}\n\t\t\t},\n\t\t\tcreate_node : function (obj, position, js, callback) {\n\t\t\t\tvar t = this.__call_old(true, obj, position, js, function (t) {\n\t\t\t\t\tvar langs = this._get_settings().languages,\n\t\t\t\t\t\ta = t.children(\"a\"),\n\t\t\t\t\t\tln;\n\t\t\t\t\tif($.isArray(langs) && langs.length) {\n\t\t\t\t\t\tfor(ln = 0; ln < langs.length; ln++) {\n\t\t\t\t\t\t\tif(!a.is(\".\" + langs[ln])) {\n\t\t\t\t\t\t\t\tt.append(a.eq(0).clone().removeClass(langs.join(\" \")).addClass(langs[ln]));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ta.not(\".\" + langs.join(\", .\")).remove();\n\t\t\t\t\t}\n\t\t\t\t\tif(callback) { callback.call(this, t); }\n\t\t\t\t});\n\t\t\t\treturn t;\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/*\n * jsTree cookies plugin\n * Stores the currently opened/selected nodes in a cookie and then restores them\n * Depends on the jquery.cookie plugin\n */\n(function ($) {\n\t$.jstree.plugin(\"cookies\", {\n\t\t__init : function () {\n\t\t\tif(typeof $.cookie === \"undefined\") { throw \"jsTree cookie: jQuery cookie plugin not included.\"; }\n\n\t\t\tvar s = this._get_settings().cookies,\n\t\t\t\ttmp;\n\t\t\tif(!!s.save_loaded) {\n\t\t\t\ttmp = $.cookie(s.save_loaded);\n\t\t\t\tif(tmp && tmp.length) { this.data.core.to_load = tmp.split(\",\"); }\n\t\t\t}\n\t\t\tif(!!s.save_opened) {\n\t\t\t\ttmp = $.cookie(s.save_opened);\n\t\t\t\tif(tmp && tmp.length) { this.data.core.to_open = tmp.split(\",\"); }\n\t\t\t}\n\t\t\tif(!!s.save_selected) {\n\t\t\t\ttmp = $.cookie(s.save_selected);\n\t\t\t\tif(tmp && tmp.length && this.data.ui) { this.data.ui.to_select = tmp.split(\",\"); }\n\t\t\t}\n\t\t\tthis.get_container()\n\t\t\t\t.one( ( this.data.ui ? \"reselect\" : \"reopen\" ) + \".jstree\", $.proxy(function () {\n\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t.bind(\"open_node.jstree close_node.jstree select_node.jstree deselect_node.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\t\t\tif(this._get_settings().cookies.auto_save) { this.save_cookie((e.handleObj.namespace + e.handleObj.type).replace(\"jstree\",\"\")); }\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : {\n\t\t\tsave_loaded\t\t: \"jstree_load\",\n\t\t\tsave_opened\t\t: \"jstree_open\",\n\t\t\tsave_selected\t: \"jstree_select\",\n\t\t\tauto_save\t\t: true,\n\t\t\tcookie_options\t: {}\n\t\t},\n\t\t_fn : {\n\t\t\tsave_cookie : function (c) {\n\t\t\t\tif(this.data.core.refreshing) { return; }\n\t\t\t\tvar s = this._get_settings().cookies;\n\t\t\t\tif(!c) { // if called manually and not by event\n\t\t\t\t\tif(s.save_loaded) {\n\t\t\t\t\t\tthis.save_loaded();\n\t\t\t\t\t\t$.cookie(s.save_loaded, this.data.core.to_load.join(\",\"), s.cookie_options);\n\t\t\t\t\t}\n\t\t\t\t\tif(s.save_opened) {\n\t\t\t\t\t\tthis.save_opened();\n\t\t\t\t\t\t$.cookie(s.save_opened, this.data.core.to_open.join(\",\"), s.cookie_options);\n\t\t\t\t\t}\n\t\t\t\t\tif(s.save_selected && this.data.ui) {\n\t\t\t\t\t\tthis.save_selected();\n\t\t\t\t\t\t$.cookie(s.save_selected, this.data.ui.to_select.join(\",\"), s.cookie_options);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswitch(c) {\n\t\t\t\t\tcase \"open_node\":\n\t\t\t\t\tcase \"close_node\":\n\t\t\t\t\t\tif(!!s.save_opened) { \n\t\t\t\t\t\t\tthis.save_opened(); \n\t\t\t\t\t\t\t$.cookie(s.save_opened, this.data.core.to_open.join(\",\"), s.cookie_options); \n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!!s.save_loaded) { \n\t\t\t\t\t\t\tthis.save_loaded(); \n\t\t\t\t\t\t\t$.cookie(s.save_loaded, this.data.core.to_load.join(\",\"), s.cookie_options); \n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"select_node\":\n\t\t\t\t\tcase \"deselect_node\":\n\t\t\t\t\t\tif(!!s.save_selected && this.data.ui) { \n\t\t\t\t\t\t\tthis.save_selected(); \n\t\t\t\t\t\t\t$.cookie(s.save_selected, this.data.ui.to_select.join(\",\"), s.cookie_options); \n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// include cookies by default\n\t// $.jstree.defaults.plugins.push(\"cookies\");\n})(jQuery);\n//*/\n\n/*\n * jsTree sort plugin\n * Sorts items alphabetically (or using any other function)\n */\n(function ($) {\n\t$.jstree.plugin(\"sort\", {\n\t\t__init : function () {\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"load_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tvar obj = this._get_node(data.rslt.obj);\n\t\t\t\t\t\tobj = obj === -1 ? this.get_container().children(\"ul\") : obj.children(\"ul\");\n\t\t\t\t\t\tthis.sort(obj);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"rename_node.jstree create_node.jstree create.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tthis.sort(data.rslt.obj.parent());\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"move_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tvar m = data.rslt.np == -1 ? this.get_container() : data.rslt.np;\n\t\t\t\t\t\tthis.sort(m.children(\"ul\"));\n\t\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : function (a, b) { return this.get_text(a) > this.get_text(b) ? 1 : -1; },\n\t\t_fn : {\n\t\t\tsort : function (obj) {\n\t\t\t\tvar s = this._get_settings().sort,\n\t\t\t\t\tt = this;\n\t\t\t\tobj.append($.makeArray(obj.children(\"li\")).sort($.proxy(s, t)));\n\t\t\t\tobj.find(\"> li > ul\").each(function() { t.sort($(this)); });\n\t\t\t\tthis.clean_node(obj);\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/*\n * jsTree DND plugin\n * Drag and drop plugin for moving/copying nodes\n */\n(function ($) {\n\tvar o = false,\n\t\tr = false,\n\t\tm = false,\n\t\tml = false,\n\t\tsli = false,\n\t\tsti = false,\n\t\tdir1 = false,\n\t\tdir2 = false,\n\t\tlast_pos = false;\n\t$.vakata.dnd = {\n\t\tis_down : false,\n\t\tis_drag : false,\n\t\thelper : false,\n\t\tscroll_spd : 10,\n\t\tinit_x : 0,\n\t\tinit_y : 0,\n\t\tthreshold : 5,\n\t\thelper_left : 5,\n\t\thelper_top : 10,\n\t\tuser_data : {},\n\n\t\tdrag_start : function (e, data, html) { \n\t\t\tif($.vakata.dnd.is_drag) { $.vakata.drag_stop({}); }\n\t\t\ttry {\n\t\t\t\te.currentTarget.unselectable = \"on\";\n\t\t\t\te.currentTarget.onselectstart = function() { return false; };\n\t\t\t\tif(e.currentTarget.style) { e.currentTarget.style.MozUserSelect = \"none\"; }\n\t\t\t} catch(err) { }\n\t\t\t$.vakata.dnd.init_x = e.pageX;\n\t\t\t$.vakata.dnd.init_y = e.pageY;\n\t\t\t$.vakata.dnd.user_data = data;\n\t\t\t$.vakata.dnd.is_down = true;\n\t\t\t$.vakata.dnd.helper = $(\"<div id='vakata-dragged' />\").html(html); //.fadeTo(10,0.25);\n\t\t\t$(document).bind(\"mousemove\", $.vakata.dnd.drag);\n\t\t\t$(document).bind(\"mouseup\", $.vakata.dnd.drag_stop);\n\t\t\treturn false;\n\t\t},\n\t\tdrag : function (e) { \n\t\t\tif(!$.vakata.dnd.is_down) { return; }\n\t\t\tif(!$.vakata.dnd.is_drag) {\n\t\t\t\tif(Math.abs(e.pageX - $.vakata.dnd.init_x) > 5 || Math.abs(e.pageY - $.vakata.dnd.init_y) > 5) { \n\t\t\t\t\t$.vakata.dnd.helper.appendTo(\"body\");\n\t\t\t\t\t$.vakata.dnd.is_drag = true;\n\t\t\t\t\t$(document).triggerHandler(\"drag_start.vakata\", { \"event\" : e, \"data\" : $.vakata.dnd.user_data });\n\t\t\t\t}\n\t\t\t\telse { return; }\n\t\t\t}\n\n\t\t\t// maybe use a scrolling parent element instead of document?\n\t\t\tif(e.type === \"mousemove\") { // thought of adding scroll in order to move the helper, but mouse poisition is n/a\n\t\t\t\tvar d = $(document), t = d.scrollTop(), l = d.scrollLeft();\n\t\t\t\tif(e.pageY - t < 20) { \n\t\t\t\t\tif(sti && dir1 === \"down\") { clearInterval(sti); sti = false; }\n\t\t\t\t\tif(!sti) { dir1 = \"up\"; sti = setInterval(function () { $(document).scrollTop($(document).scrollTop() - $.vakata.dnd.scroll_spd); }, 150); }\n\t\t\t\t}\n\t\t\t\telse { \n\t\t\t\t\tif(sti && dir1 === \"up\") { clearInterval(sti); sti = false; }\n\t\t\t\t}\n\t\t\t\tif($(window).height() - (e.pageY - t) < 20) {\n\t\t\t\t\tif(sti && dir1 === \"up\") { clearInterval(sti); sti = false; }\n\t\t\t\t\tif(!sti) { dir1 = \"down\"; sti = setInterval(function () { $(document).scrollTop($(document).scrollTop() + $.vakata.dnd.scroll_spd); }, 150); }\n\t\t\t\t}\n\t\t\t\telse { \n\t\t\t\t\tif(sti && dir1 === \"down\") { clearInterval(sti); sti = false; }\n\t\t\t\t}\n\n\t\t\t\tif(e.pageX - l < 20) {\n\t\t\t\t\tif(sli && dir2 === \"right\") { clearInterval(sli); sli = false; }\n\t\t\t\t\tif(!sli) { dir2 = \"left\"; sli = setInterval(function () { $(document).scrollLeft($(document).scrollLeft() - $.vakata.dnd.scroll_spd); }, 150); }\n\t\t\t\t}\n\t\t\t\telse { \n\t\t\t\t\tif(sli && dir2 === \"left\") { clearInterval(sli); sli = false; }\n\t\t\t\t}\n\t\t\t\tif($(window).width() - (e.pageX - l) < 20) {\n\t\t\t\t\tif(sli && dir2 === \"left\") { clearInterval(sli); sli = false; }\n\t\t\t\t\tif(!sli) { dir2 = \"right\"; sli = setInterval(function () { $(document).scrollLeft($(document).scrollLeft() + $.vakata.dnd.scroll_spd); }, 150); }\n\t\t\t\t}\n\t\t\t\telse { \n\t\t\t\t\tif(sli && dir2 === \"right\") { clearInterval(sli); sli = false; }\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$.vakata.dnd.helper.css({ left : (e.pageX + $.vakata.dnd.helper_left) + \"px\", top : (e.pageY + $.vakata.dnd.helper_top) + \"px\" });\n\t\t\t$(document).triggerHandler(\"drag.vakata\", { \"event\" : e, \"data\" : $.vakata.dnd.user_data });\n\t\t},\n\t\tdrag_stop : function (e) {\n\t\t\tif(sli) { clearInterval(sli); }\n\t\t\tif(sti) { clearInterval(sti); }\n\t\t\t$(document).unbind(\"mousemove\", $.vakata.dnd.drag);\n\t\t\t$(document).unbind(\"mouseup\", $.vakata.dnd.drag_stop);\n\t\t\t$(document).triggerHandler(\"drag_stop.vakata\", { \"event\" : e, \"data\" : $.vakata.dnd.user_data });\n\t\t\t$.vakata.dnd.helper.remove();\n\t\t\t$.vakata.dnd.init_x = 0;\n\t\t\t$.vakata.dnd.init_y = 0;\n\t\t\t$.vakata.dnd.user_data = {};\n\t\t\t$.vakata.dnd.is_down = false;\n\t\t\t$.vakata.dnd.is_drag = false;\n\t\t}\n\t};\n\t$(function() {\n\t\tvar css_string = '#vakata-dragged { display:block; margin:0 0 0 0; padding:4px 4px 4px 24px; position:absolute; top:-2000px; line-height:16px; z-index:10000; } ';\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"vakata\" });\n\t});\n\n\t$.jstree.plugin(\"dnd\", {\n\t\t__init : function () {\n\t\t\tthis.data.dnd = {\n\t\t\t\tactive : false,\n\t\t\t\tafter : false,\n\t\t\t\tinside : false,\n\t\t\t\tbefore : false,\n\t\t\t\toff : false,\n\t\t\t\tprepared : false,\n\t\t\t\tw : 0,\n\t\t\t\tto1 : false,\n\t\t\t\tto2 : false,\n\t\t\t\tcof : false,\n\t\t\t\tcw : false,\n\t\t\t\tch : false,\n\t\t\t\ti1 : false,\n\t\t\t\ti2 : false,\n\t\t\t\tmto : false\n\t\t\t};\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"mouseenter.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tif(this.data.themes) {\n\t\t\t\t\t\t\t\tm.attr(\"class\", \"jstree-\" + this.data.themes.theme); \n\t\t\t\t\t\t\t\tif(ml) { ml.attr(\"class\", \"jstree-\" + this.data.themes.theme); }\n\t\t\t\t\t\t\t\t$.vakata.dnd.helper.attr(\"class\", \"jstree-dnd-helper jstree-\" + this.data.themes.theme);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//if($(e.currentTarget).find(\"> ul > li\").length === 0) {\n\t\t\t\t\t\t\tif(e.currentTarget === e.target && $.vakata.dnd.user_data.obj && $($.vakata.dnd.user_data.obj).length && $($.vakata.dnd.user_data.obj).parents(\".jstree:eq(0)\")[0] !== e.target) { // node should not be from the same tree\n\t\t\t\t\t\t\t\tvar tr = $.jstree._reference(e.target), dc;\n\t\t\t\t\t\t\t\tif(tr.data.dnd.foreign) {\n\t\t\t\t\t\t\t\t\tdc = tr._get_settings().dnd.drag_check.call(this, { \"o\" : o, \"r\" : tr.get_container(), is_root : true });\n\t\t\t\t\t\t\t\t\tif(dc === true || dc.inside === true || dc.before === true || dc.after === true) {\n\t\t\t\t\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-ok\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\ttr.prepare_move(o, tr.get_container(), \"last\");\n\t\t\t\t\t\t\t\t\tif(tr.check_move()) {\n\t\t\t\t\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-ok\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"mouseup.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\t//if($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree && $(e.currentTarget).find(\"> ul > li\").length === 0) {\n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree && e.currentTarget === e.target && $.vakata.dnd.user_data.obj && $($.vakata.dnd.user_data.obj).length && $($.vakata.dnd.user_data.obj).parents(\".jstree:eq(0)\")[0] !== e.target) { // node should not be from the same tree\n\t\t\t\t\t\t\tvar tr = $.jstree._reference(e.currentTarget), dc;\n\t\t\t\t\t\t\tif(tr.data.dnd.foreign) {\n\t\t\t\t\t\t\t\tdc = tr._get_settings().dnd.drag_check.call(this, { \"o\" : o, \"r\" : tr.get_container(), is_root : true });\n\t\t\t\t\t\t\t\tif(dc === true || dc.inside === true || dc.before === true || dc.after === true) {\n\t\t\t\t\t\t\t\t\ttr._get_settings().dnd.drag_finish.call(this, { \"o\" : o, \"r\" : tr.get_container(), is_root : true });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\ttr.move_node(o, tr.get_container(), \"last\", e[tr._get_settings().dnd.copy_modifier + \"Key\"]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"mouseleave.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tif(e.relatedTarget && e.relatedTarget.id && e.relatedTarget.id === \"jstree-marker-line\") {\n\t\t\t\t\t\t\treturn false; \n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tif(this.data.dnd.i1) { clearInterval(this.data.dnd.i1); }\n\t\t\t\t\t\t\tif(this.data.dnd.i2) { clearInterval(this.data.dnd.i2); }\n\t\t\t\t\t\t\tif(this.data.dnd.to1) { clearTimeout(this.data.dnd.to1); }\n\t\t\t\t\t\t\tif(this.data.dnd.to2) { clearTimeout(this.data.dnd.to2); }\n\t\t\t\t\t\t\tif($.vakata.dnd.helper.children(\"ins\").hasClass(\"jstree-ok\")) {\n\t\t\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-invalid\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"mousemove.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tvar cnt = this.get_container()[0];\n\n\t\t\t\t\t\t\t// Horizontal scroll\n\t\t\t\t\t\t\tif(e.pageX + 24 > this.data.dnd.cof.left + this.data.dnd.cw) {\n\t\t\t\t\t\t\t\tif(this.data.dnd.i1) { clearInterval(this.data.dnd.i1); }\n\t\t\t\t\t\t\t\tthis.data.dnd.i1 = setInterval($.proxy(function () { this.scrollLeft += $.vakata.dnd.scroll_spd; }, cnt), 100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(e.pageX - 24 < this.data.dnd.cof.left) {\n\t\t\t\t\t\t\t\tif(this.data.dnd.i1) { clearInterval(this.data.dnd.i1); }\n\t\t\t\t\t\t\t\tthis.data.dnd.i1 = setInterval($.proxy(function () { this.scrollLeft -= $.vakata.dnd.scroll_spd; }, cnt), 100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(this.data.dnd.i1) { clearInterval(this.data.dnd.i1); }\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Vertical scroll\n\t\t\t\t\t\t\tif(e.pageY + 24 > this.data.dnd.cof.top + this.data.dnd.ch) {\n\t\t\t\t\t\t\t\tif(this.data.dnd.i2) { clearInterval(this.data.dnd.i2); }\n\t\t\t\t\t\t\t\tthis.data.dnd.i2 = setInterval($.proxy(function () { this.scrollTop += $.vakata.dnd.scroll_spd; }, cnt), 100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(e.pageY - 24 < this.data.dnd.cof.top) {\n\t\t\t\t\t\t\t\tif(this.data.dnd.i2) { clearInterval(this.data.dnd.i2); }\n\t\t\t\t\t\t\t\tthis.data.dnd.i2 = setInterval($.proxy(function () { this.scrollTop -= $.vakata.dnd.scroll_spd; }, cnt), 100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(this.data.dnd.i2) { clearInterval(this.data.dnd.i2); }\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"scroll.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree && m && ml) {\n\t\t\t\t\t\t\tm.hide();\n\t\t\t\t\t\t\tml.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mousedown.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\tif(e.which === 1) {\n\t\t\t\t\t\t\tthis.start_drag(e.currentTarget, e);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mouseenter.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tthis.dnd_enter(e.currentTarget);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mousemove.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tif(!r || !r.length || r.children(\"a\")[0] !== e.currentTarget) {\n\t\t\t\t\t\t\t\tthis.dnd_enter(e.currentTarget);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(typeof this.data.dnd.off.top === \"undefined\") { this.data.dnd.off = $(e.target).offset(); }\n\t\t\t\t\t\t\tthis.data.dnd.w = (e.pageY - (this.data.dnd.off.top || 0)) % this.data.core.li_height;\n\t\t\t\t\t\t\tif(this.data.dnd.w < 0) { this.data.dnd.w += this.data.core.li_height; }\n\t\t\t\t\t\t\tthis.dnd_show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mouseleave.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tif(e.relatedTarget && e.relatedTarget.id && e.relatedTarget.id === \"jstree-marker-line\") {\n\t\t\t\t\t\t\t\treturn false; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(m) { m.hide(); }\n\t\t\t\t\t\t\t\tif(ml) { ml.hide(); }\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\tvar ec = $(e.currentTarget).closest(\"li\"), \n\t\t\t\t\t\t\t\ter = $(e.relatedTarget).closest(\"li\");\n\t\t\t\t\t\t\tif(er[0] !== ec.prev()[0] && er[0] !== ec.next()[0]) {\n\t\t\t\t\t\t\t\tif(m) { m.hide(); }\n\t\t\t\t\t\t\t\tif(ml) { ml.hide(); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\tthis.data.dnd.mto = setTimeout( \n\t\t\t\t\t\t\t\t(function (t) { return function () { t.dnd_leave(e); }; })(this),\n\t\t\t\t\t\t\t0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"mouseup.jstree\", $.proxy(function (e) { \n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree) {\n\t\t\t\t\t\t\tthis.dnd_finish(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\n\t\t\t$(document)\n\t\t\t\t.bind(\"drag_stop.vakata\", $.proxy(function () {\n\t\t\t\t\t\tif(this.data.dnd.to1) { clearTimeout(this.data.dnd.to1); }\n\t\t\t\t\t\tif(this.data.dnd.to2) { clearTimeout(this.data.dnd.to2); }\n\t\t\t\t\t\tif(this.data.dnd.i1) { clearInterval(this.data.dnd.i1); }\n\t\t\t\t\t\tif(this.data.dnd.i2) { clearInterval(this.data.dnd.i2); }\n\t\t\t\t\t\tthis.data.dnd.after\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.before\t= false;\n\t\t\t\t\t\tthis.data.dnd.inside\t= false;\n\t\t\t\t\t\tthis.data.dnd.off\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.prepared\t= false;\n\t\t\t\t\t\tthis.data.dnd.w\t\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.to1\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.to2\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.i1\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.i2\t\t= false;\n\t\t\t\t\t\tthis.data.dnd.active\t= false;\n\t\t\t\t\t\tthis.data.dnd.foreign\t= false;\n\t\t\t\t\t\tif(m) { m.css({ \"top\" : \"-2000px\" }); }\n\t\t\t\t\t\tif(ml) { ml.css({ \"top\" : \"-2000px\" }); }\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"drag_start.vakata\", $.proxy(function (e, data) {\n\t\t\t\t\t\tif(data.data.jstree) { \n\t\t\t\t\t\t\tvar et = $(data.event.target);\n\t\t\t\t\t\t\tif(et.closest(\".jstree\").hasClass(\"jstree-\" + this.get_index())) {\n\t\t\t\t\t\t\t\tthis.dnd_enter(et);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\t\t\t\t/*\n\t\t\t\t.bind(\"keydown.jstree-\" + this.get_index() + \" keyup.jstree-\" + this.get_index(), $.proxy(function(e) {\n\t\t\t\t\t\tif($.vakata.dnd.is_drag && $.vakata.dnd.user_data.jstree && !this.data.dnd.foreign) {\n\t\t\t\t\t\t\tvar h = $.vakata.dnd.helper.children(\"ins\");\n\t\t\t\t\t\t\tif(e[this._get_settings().dnd.copy_modifier + \"Key\"] && h.hasClass(\"jstree-ok\")) {\n\t\t\t\t\t\t\t\th.parent().html(h.parent().html().replace(/ \\(Copy\\)$/, \"\") + \" (Copy)\");\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\th.parent().html(h.parent().html().replace(/ \\(Copy\\)$/, \"\"));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)); */\n\n\n\n\t\t\tvar s = this._get_settings().dnd;\n\t\t\tif(s.drag_target) {\n\t\t\t\t$(document)\n\t\t\t\t\t.delegate(s.drag_target, \"mousedown.jstree-\" + this.get_index(), $.proxy(function (e) {\n\t\t\t\t\t\to = e.target;\n\t\t\t\t\t\t$.vakata.dnd.drag_start(e, { jstree : true, obj : e.target }, \"<ins class='jstree-icon'></ins>\" + $(e.target).text() );\n\t\t\t\t\t\tif(this.data.themes) { \n\t\t\t\t\t\t\tif(m) { m.attr(\"class\", \"jstree-\" + this.data.themes.theme); }\n\t\t\t\t\t\t\tif(ml) { ml.attr(\"class\", \"jstree-\" + this.data.themes.theme); }\n\t\t\t\t\t\t\t$.vakata.dnd.helper.attr(\"class\", \"jstree-dnd-helper jstree-\" + this.data.themes.theme); \n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-invalid\");\n\t\t\t\t\t\tvar cnt = this.get_container();\n\t\t\t\t\t\tthis.data.dnd.cof = cnt.offset();\n\t\t\t\t\t\tthis.data.dnd.cw = parseInt(cnt.width(),10);\n\t\t\t\t\t\tthis.data.dnd.ch = parseInt(cnt.height(),10);\n\t\t\t\t\t\tthis.data.dnd.foreign = true;\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}, this));\n\t\t\t}\n\t\t\tif(s.drop_target) {\n\t\t\t\t$(document)\n\t\t\t\t\t.delegate(s.drop_target, \"mouseenter.jstree-\" + this.get_index(), $.proxy(function (e) {\n\t\t\t\t\t\t\tif(this.data.dnd.active && this._get_settings().dnd.drop_check.call(this, { \"o\" : o, \"r\" : $(e.target), \"e\" : e })) {\n\t\t\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-ok\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this))\n\t\t\t\t\t.delegate(s.drop_target, \"mouseleave.jstree-\" + this.get_index(), $.proxy(function (e) {\n\t\t\t\t\t\t\tif(this.data.dnd.active) {\n\t\t\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-invalid\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this))\n\t\t\t\t\t.delegate(s.drop_target, \"mouseup.jstree-\" + this.get_index(), $.proxy(function (e) {\n\t\t\t\t\t\t\tif(this.data.dnd.active && $.vakata.dnd.helper.children(\"ins\").hasClass(\"jstree-ok\")) {\n\t\t\t\t\t\t\t\tthis._get_settings().dnd.drop_finish.call(this, { \"o\" : o, \"r\" : $(e.target), \"e\" : e });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this));\n\t\t\t}\n\t\t},\n\t\tdefaults : {\n\t\t\tcopy_modifier\t: \"ctrl\",\n\t\t\tcheck_timeout\t: 100,\n\t\t\topen_timeout\t: 500,\n\t\t\tdrop_target\t\t: \".jstree-drop\",\n\t\t\tdrop_check\t\t: function (data) { return true; },\n\t\t\tdrop_finish\t\t: $.noop,\n\t\t\tdrag_target\t\t: \".jstree-draggable\",\n\t\t\tdrag_finish\t\t: $.noop,\n\t\t\tdrag_check\t\t: function (data) { return { after : false, before : false, inside : true }; }\n\t\t},\n\t\t_fn : {\n\t\t\tdnd_prepare : function () {\n\t\t\t\tif(!r || !r.length) { return; }\n\t\t\t\tthis.data.dnd.off = r.offset();\n\t\t\t\tif(this._get_settings().core.rtl) {\n\t\t\t\t\tthis.data.dnd.off.right = this.data.dnd.off.left + r.width();\n\t\t\t\t}\n\t\t\t\tif(this.data.dnd.foreign) {\n\t\t\t\t\tvar a = this._get_settings().dnd.drag_check.call(this, { \"o\" : o, \"r\" : r });\n\t\t\t\t\tthis.data.dnd.after = a.after;\n\t\t\t\t\tthis.data.dnd.before = a.before;\n\t\t\t\t\tthis.data.dnd.inside = a.inside;\n\t\t\t\t\tthis.data.dnd.prepared = true;\n\t\t\t\t\treturn this.dnd_show();\n\t\t\t\t}\n\t\t\t\tthis.prepare_move(o, r, \"before\");\n\t\t\t\tthis.data.dnd.before = this.check_move();\n\t\t\t\tthis.prepare_move(o, r, \"after\");\n\t\t\t\tthis.data.dnd.after = this.check_move();\n\t\t\t\tif(this._is_loaded(r)) {\n\t\t\t\t\tthis.prepare_move(o, r, \"inside\");\n\t\t\t\t\tthis.data.dnd.inside = this.check_move();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.data.dnd.inside = false;\n\t\t\t\t}\n\t\t\t\tthis.data.dnd.prepared = true;\n\t\t\t\treturn this.dnd_show();\n\t\t\t},\n\t\t\tdnd_show : function () {\n\t\t\t\tif(!this.data.dnd.prepared) { return; }\n\t\t\t\tvar o = [\"before\",\"inside\",\"after\"],\n\t\t\t\t\tr = false,\n\t\t\t\t\trtl = this._get_settings().core.rtl,\n\t\t\t\t\tpos;\n\t\t\t\tif(this.data.dnd.w < this.data.core.li_height/3) { o = [\"before\",\"inside\",\"after\"]; }\n\t\t\t\telse if(this.data.dnd.w <= this.data.core.li_height*2/3) {\n\t\t\t\t\to = this.data.dnd.w < this.data.core.li_height/2 ? [\"inside\",\"before\",\"after\"] : [\"inside\",\"after\",\"before\"];\n\t\t\t\t}\n\t\t\t\telse { o = [\"after\",\"inside\",\"before\"]; }\n\t\t\t\t$.each(o, $.proxy(function (i, val) { \n\t\t\t\t\tif(this.data.dnd[val]) {\n\t\t\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-ok\");\n\t\t\t\t\t\tr = val;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}, this));\n\t\t\t\tif(r === false) { $.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-invalid\"); }\n\t\t\t\t\n\t\t\t\tpos = rtl ? (this.data.dnd.off.right - 18) : (this.data.dnd.off.left + 10);\n\t\t\t\tswitch(r) {\n\t\t\t\t\tcase \"before\":\n\t\t\t\t\t\tm.css({ \"left\" : pos + \"px\", \"top\" : (this.data.dnd.off.top - 6) + \"px\" }).show();\n\t\t\t\t\t\tif(ml) { ml.css({ \"left\" : (pos + 8) + \"px\", \"top\" : (this.data.dnd.off.top - 1) + \"px\" }).show(); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"after\":\n\t\t\t\t\t\tm.css({ \"left\" : pos + \"px\", \"top\" : (this.data.dnd.off.top + this.data.core.li_height - 6) + \"px\" }).show();\n\t\t\t\t\t\tif(ml) { ml.css({ \"left\" : (pos + 8) + \"px\", \"top\" : (this.data.dnd.off.top + this.data.core.li_height - 1) + \"px\" }).show(); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"inside\":\n\t\t\t\t\t\tm.css({ \"left\" : pos + ( rtl ? -4 : 4) + \"px\", \"top\" : (this.data.dnd.off.top + this.data.core.li_height/2 - 5) + \"px\" }).show();\n\t\t\t\t\t\tif(ml) { ml.hide(); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tm.hide();\n\t\t\t\t\t\tif(ml) { ml.hide(); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_pos = r;\n\t\t\t\treturn r;\n\t\t\t},\n\t\t\tdnd_open : function () {\n\t\t\t\tthis.data.dnd.to2 = false;\n\t\t\t\tthis.open_node(r, $.proxy(this.dnd_prepare,this), true);\n\t\t\t},\n\t\t\tdnd_finish : function (e) {\n\t\t\t\tif(this.data.dnd.foreign) {\n\t\t\t\t\tif(this.data.dnd.after || this.data.dnd.before || this.data.dnd.inside) {\n\t\t\t\t\t\tthis._get_settings().dnd.drag_finish.call(this, { \"o\" : o, \"r\" : r, \"p\" : last_pos });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.dnd_prepare();\n\t\t\t\t\tthis.move_node(o, r, last_pos, e[this._get_settings().dnd.copy_modifier + \"Key\"]);\n\t\t\t\t}\n\t\t\t\to = false;\n\t\t\t\tr = false;\n\t\t\t\tm.hide();\n\t\t\t\tif(ml) { ml.hide(); }\n\t\t\t},\n\t\t\tdnd_enter : function (obj) {\n\t\t\t\tif(this.data.dnd.mto) { \n\t\t\t\t\tclearTimeout(this.data.dnd.mto);\n\t\t\t\t\tthis.data.dnd.mto = false;\n\t\t\t\t}\n\t\t\t\tvar s = this._get_settings().dnd;\n\t\t\t\tthis.data.dnd.prepared = false;\n\t\t\t\tr = this._get_node(obj);\n\t\t\t\tif(s.check_timeout) { \n\t\t\t\t\t// do the calculations after a minimal timeout (users tend to drag quickly to the desired location)\n\t\t\t\t\tif(this.data.dnd.to1) { clearTimeout(this.data.dnd.to1); }\n\t\t\t\t\tthis.data.dnd.to1 = setTimeout($.proxy(this.dnd_prepare, this), s.check_timeout); \n\t\t\t\t}\n\t\t\t\telse { \n\t\t\t\t\tthis.dnd_prepare(); \n\t\t\t\t}\n\t\t\t\tif(s.open_timeout) { \n\t\t\t\t\tif(this.data.dnd.to2) { clearTimeout(this.data.dnd.to2); }\n\t\t\t\t\tif(r && r.length && r.hasClass(\"jstree-closed\")) { \n\t\t\t\t\t\t// if the node is closed - open it, then recalculate\n\t\t\t\t\t\tthis.data.dnd.to2 = setTimeout($.proxy(this.dnd_open, this), s.open_timeout);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(r && r.length && r.hasClass(\"jstree-closed\")) { \n\t\t\t\t\t\tthis.dnd_open();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdnd_leave : function (e) {\n\t\t\t\tthis.data.dnd.after\t\t= false;\n\t\t\t\tthis.data.dnd.before\t= false;\n\t\t\t\tthis.data.dnd.inside\t= false;\n\t\t\t\t$.vakata.dnd.helper.children(\"ins\").attr(\"class\",\"jstree-invalid\");\n\t\t\t\tm.hide();\n\t\t\t\tif(ml) { ml.hide(); }\n\t\t\t\tif(r && r[0] === e.target.parentNode) {\n\t\t\t\t\tif(this.data.dnd.to1) {\n\t\t\t\t\t\tclearTimeout(this.data.dnd.to1);\n\t\t\t\t\t\tthis.data.dnd.to1 = false;\n\t\t\t\t\t}\n\t\t\t\t\tif(this.data.dnd.to2) {\n\t\t\t\t\t\tclearTimeout(this.data.dnd.to2);\n\t\t\t\t\t\tthis.data.dnd.to2 = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tstart_drag : function (obj, e) {\n\t\t\t\to = this._get_node(obj);\n\t\t\t\tif(this.data.ui && this.is_selected(o)) { o = this._get_node(null, true); }\n\t\t\t\tvar dt = o.length > 1 ? this._get_string(\"multiple_selection\") : this.get_text(o),\n\t\t\t\t\tcnt = this.get_container();\n\t\t\t\tif(!this._get_settings().core.html_titles) { dt = dt.replace(/</ig,\"&lt;\").replace(/>/ig,\"&gt;\"); }\n\t\t\t\t$.vakata.dnd.drag_start(e, { jstree : true, obj : o }, \"<ins class='jstree-icon'></ins>\" + dt );\n\t\t\t\tif(this.data.themes) { \n\t\t\t\t\tif(m) { m.attr(\"class\", \"jstree-\" + this.data.themes.theme); }\n\t\t\t\t\tif(ml) { ml.attr(\"class\", \"jstree-\" + this.data.themes.theme); }\n\t\t\t\t\t$.vakata.dnd.helper.attr(\"class\", \"jstree-dnd-helper jstree-\" + this.data.themes.theme); \n\t\t\t\t}\n\t\t\t\tthis.data.dnd.cof = cnt.offset();\n\t\t\t\tthis.data.dnd.cw = parseInt(cnt.width(),10);\n\t\t\t\tthis.data.dnd.ch = parseInt(cnt.height(),10);\n\t\t\t\tthis.data.dnd.active = true;\n\t\t\t}\n\t\t}\n\t});\n\t$(function() {\n\t\tvar css_string = '' + \n\t\t\t'#vakata-dragged ins { display:block; text-decoration:none; width:16px; height:16px; margin:0 0 0 0; padding:0; position:absolute; top:4px; left:4px; ' + \n\t\t\t' -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; ' +\n\t\t\t'} ' + \n\t\t\t'#vakata-dragged .jstree-ok { background:green; } ' + \n\t\t\t'#vakata-dragged .jstree-invalid { background:red; } ' + \n\t\t\t'#jstree-marker { padding:0; margin:0; font-size:12px; overflow:hidden; height:12px; width:8px; position:absolute; top:-30px; z-index:10001; background-repeat:no-repeat; display:none; background-color:transparent; text-shadow:1px 1px 1px white; color:black; line-height:10px; } ' + \n\t\t\t'#jstree-marker-line { padding:0; margin:0; line-height:0%; font-size:1px; overflow:hidden; height:1px; width:100px; position:absolute; top:-30px; z-index:10000; background-repeat:no-repeat; display:none; background-color:#456c43; ' + \n\t\t\t' cursor:pointer; border:1px solid #eeeeee; border-left:0; -moz-box-shadow: 0px 0px 2px #666; -webkit-box-shadow: 0px 0px 2px #666; box-shadow: 0px 0px 2px #666; ' + \n\t\t\t' -moz-border-radius:1px; border-radius:1px; -webkit-border-radius:1px; ' +\n\t\t\t'}' + \n\t\t\t'';\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"jstree\" });\n\t\tm = $(\"<div />\").attr({ id : \"jstree-marker\" }).hide().html(\"&raquo;\")\n\t\t\t.bind(\"mouseleave mouseenter\", function (e) { \n\t\t\t\tm.hide();\n\t\t\t\tml.hide();\n\t\t\t\te.preventDefault(); \n\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\treturn false; \n\t\t\t})\n\t\t\t.appendTo(\"body\");\n\t\tml = $(\"<div />\").attr({ id : \"jstree-marker-line\" }).hide()\n\t\t\t.bind(\"mouseup\", function (e) { \n\t\t\t\tif(r && r.length) { \n\t\t\t\t\tr.children(\"a\").trigger(e); \n\t\t\t\t\te.preventDefault(); \n\t\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\t\treturn false; \n\t\t\t\t} \n\t\t\t})\n\t\t\t.bind(\"mouseleave\", function (e) { \n\t\t\t\tvar rt = $(e.relatedTarget);\n\t\t\t\tif(rt.is(\".jstree\") || rt.closest(\".jstree\").length === 0) {\n\t\t\t\t\tif(r && r.length) { \n\t\t\t\t\t\tr.children(\"a\").trigger(e); \n\t\t\t\t\t\tm.hide();\n\t\t\t\t\t\tml.hide();\n\t\t\t\t\t\te.preventDefault(); \n\t\t\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\t\t\treturn false; \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.appendTo(\"body\");\n\t\t$(document).bind(\"drag_start.vakata\", function (e, data) {\n\t\t\tif(data.data.jstree) { m.show(); if(ml) { ml.show(); } }\n\t\t});\n\t\t$(document).bind(\"drag_stop.vakata\", function (e, data) {\n\t\t\tif(data.data.jstree) { m.hide(); if(ml) { ml.hide(); } }\n\t\t});\n\t});\n})(jQuery);\n//*/\n\n/*\n * jsTree checkbox plugin\n * Inserts checkboxes in front of every node\n * Depends on the ui plugin\n * DOES NOT WORK NICELY WITH MULTITREE DRAG'N'DROP\n */\n(function ($) {\n\t$.jstree.plugin(\"checkbox\", {\n\t\t__init : function () {\n\t\t\tthis.data.checkbox.noui = this._get_settings().checkbox.override_ui;\n\t\t\tif(this.data.ui && this.data.checkbox.noui) {\n\t\t\t\tthis.select_node = this.deselect_node = this.deselect_all = $.noop;\n\t\t\t\tthis.get_selected = this.get_checked;\n\t\t\t}\n\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"open_node.jstree create_node.jstree clean_node.jstree refresh.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tthis._prepare_checkboxes(data.rslt.obj);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"loaded.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tthis._prepare_checkboxes();\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate( (this.data.ui && this.data.checkbox.noui ? \"a\" : \"ins.jstree-checkbox\") , \"click.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif(this._get_node(e.target).hasClass(\"jstree-checked\")) { this.uncheck_node(e.target); }\n\t\t\t\t\t\telse { this.check_node(e.target); }\n\t\t\t\t\t\tif(this.data.ui && this.data.checkbox.noui) {\n\t\t\t\t\t\t\tthis.save_selected();\n\t\t\t\t\t\t\tif(this.data.cookies) { this.save_cookie(\"select_node\"); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : {\n\t\t\toverride_ui : false,\n\t\t\ttwo_state : false,\n\t\t\treal_checkboxes : false,\n\t\t\tchecked_parent_open : true,\n\t\t\treal_checkboxes_names : function (n) { return [ (\"check_\" + (n[0].id || Math.ceil(Math.random() * 10000))) , 1]; }\n\t\t},\n\t\t__destroy : function () {\n\t\t\tthis.get_container()\n\t\t\t\t.find(\"input.jstree-real-checkbox\").removeClass(\"jstree-real-checkbox\").end()\n\t\t\t\t.find(\"ins.jstree-checkbox\").remove();\n\t\t},\n\t\t_fn : {\n\t\t\t_checkbox_notify : function (n, data) {\n\t\t\t\tif(data.checked) {\n\t\t\t\t\tthis.check_node(n, false);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_prepare_checkboxes : function (obj) {\n\t\t\t\tobj = !obj || obj == -1 ? this.get_container().find(\"> ul > li\") : this._get_node(obj);\n\t\t\t\tif(obj === false) { return; } // added for removing root nodes\n\t\t\t\tvar c, _this = this, t, ts = this._get_settings().checkbox.two_state, rc = this._get_settings().checkbox.real_checkboxes, rcn = this._get_settings().checkbox.real_checkboxes_names;\n\t\t\t\tobj.each(function () {\n\t\t\t\t\tt = $(this);\n\t\t\t\t\tc = t.is(\"li\") && (t.hasClass(\"jstree-checked\") || (rc && t.children(\":checked\").length)) ? \"jstree-checked\" : \"jstree-unchecked\";\n\t\t\t\t\tt.find(\"li\").addBack().each(function () {\n\t\t\t\t\t\tvar $t = $(this), nm;\n\t\t\t\t\t\t$t.children(\"a\" + (_this.data.languages ? \"\" : \":eq(0)\") ).not(\":has(.jstree-checkbox)\").prepend(\"<ins class='jstree-checkbox'>&#160;</ins>\").parent().not(\".jstree-checked, .jstree-unchecked\").addClass( ts ? \"jstree-unchecked\" : c );\n\t\t\t\t\t\tif(rc) {\n\t\t\t\t\t\t\tif(!$t.children(\":checkbox\").length) {\n\t\t\t\t\t\t\t\tnm = rcn.call(_this, $t);\n\t\t\t\t\t\t\t\t$t.prepend(\"<input type='checkbox' class='jstree-real-checkbox' id='\" + nm[0] + \"' name='\" + nm[0] + \"' value='\" + nm[1] + \"' />\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t$t.children(\":checkbox\").addClass(\"jstree-real-checkbox\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!ts) {\n\t\t\t\t\t\t\tif(c === \"jstree-checked\" || $t.hasClass(\"jstree-checked\") || $t.children(':checked').length) {\n\t\t\t\t\t\t\t\t$t.find(\"li\").addBack().addClass(\"jstree-checked\").children(\":checkbox\").prop(\"checked\", true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif($t.hasClass(\"jstree-checked\") || $t.children(':checked').length) {\n\t\t\t\t\t\t\t\t$t.addClass(\"jstree-checked\").children(\":checkbox\").prop(\"checked\", true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tif(!ts) {\n\t\t\t\t\tobj.find(\".jstree-checked\").parent().parent().each(function () { _this._repair_state(this); }); \n\t\t\t\t}\n\t\t\t},\n\t\t\tchange_state : function (obj, state) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar coll = false, rc = this._get_settings().checkbox.real_checkboxes;\n\t\t\t\tif(!obj || obj === -1) { return false; }\n\t\t\t\tstate = (state === false || state === true) ? state : obj.hasClass(\"jstree-checked\");\n\t\t\t\tif(this._get_settings().checkbox.two_state) {\n\t\t\t\t\tif(state) { \n\t\t\t\t\t\tobj.removeClass(\"jstree-checked\").addClass(\"jstree-unchecked\"); \n\t\t\t\t\t\tif(rc) { obj.children(\":checkbox\").prop(\"checked\", false); }\n\t\t\t\t\t}\n\t\t\t\t\telse { \n\t\t\t\t\t\tobj.removeClass(\"jstree-unchecked\").addClass(\"jstree-checked\"); \n\t\t\t\t\t\tif(rc) { obj.children(\":checkbox\").prop(\"checked\", true); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(state) { \n\t\t\t\t\t\tcoll = obj.find(\"li\").addBack();\n\t\t\t\t\t\tif(!coll.filter(\".jstree-checked, .jstree-undetermined\").length) { return false; }\n\t\t\t\t\t\tcoll.removeClass(\"jstree-checked jstree-undetermined\").addClass(\"jstree-unchecked\"); \n\t\t\t\t\t\tif(rc) { coll.children(\":checkbox\").prop(\"checked\", false); }\n\t\t\t\t\t}\n\t\t\t\t\telse { \n\t\t\t\t\t\tcoll = obj.find(\"li\").addBack();\n\t\t\t\t\t\tif(!coll.filter(\".jstree-unchecked, .jstree-undetermined\").length) { return false; }\n\t\t\t\t\t\tcoll.removeClass(\"jstree-unchecked jstree-undetermined\").addClass(\"jstree-checked\"); \n\t\t\t\t\t\tif(rc) { coll.children(\":checkbox\").prop(\"checked\", true); }\n\t\t\t\t\t\tif(this.data.ui) { this.data.ui.last_selected = obj; }\n\t\t\t\t\t\tthis.data.checkbox.last_selected = obj;\n\t\t\t\t\t}\n\t\t\t\t\tobj.parentsUntil(\".jstree\", \"li\").each(function () {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tif(state) {\n\t\t\t\t\t\t\tif($this.children(\"ul\").children(\"li.jstree-checked, li.jstree-undetermined\").length) {\n\t\t\t\t\t\t\t\t$this.parentsUntil(\".jstree\", \"li\").addBack().removeClass(\"jstree-checked jstree-unchecked\").addClass(\"jstree-undetermined\");\n\t\t\t\t\t\t\t\tif(rc) { $this.parentsUntil(\".jstree\", \"li\").addBack().children(\":checkbox\").prop(\"checked\", false); }\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t$this.removeClass(\"jstree-checked jstree-undetermined\").addClass(\"jstree-unchecked\");\n\t\t\t\t\t\t\t\tif(rc) { $this.children(\":checkbox\").prop(\"checked\", false); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif($this.children(\"ul\").children(\"li.jstree-unchecked, li.jstree-undetermined\").length) {\n\t\t\t\t\t\t\t\t$this.parentsUntil(\".jstree\", \"li\").addBack().removeClass(\"jstree-checked jstree-unchecked\").addClass(\"jstree-undetermined\");\n\t\t\t\t\t\t\t\tif(rc) { $this.parentsUntil(\".jstree\", \"li\").addBack().children(\":checkbox\").prop(\"checked\", false); }\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t$this.removeClass(\"jstree-unchecked jstree-undetermined\").addClass(\"jstree-checked\");\n\t\t\t\t\t\t\t\tif(rc) { $this.children(\":checkbox\").prop(\"checked\", true); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(this.data.ui && this.data.checkbox.noui) { this.data.ui.selected = this.get_checked(); }\n\t\t\t\tthis.__callback(obj);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tcheck_node : function (obj) {\n\t\t\t\tif(this.change_state(obj, false)) { \n\t\t\t\t\tobj = this._get_node(obj);\n\t\t\t\t\tif(this._get_settings().checkbox.checked_parent_open) {\n\t\t\t\t\t\tvar t = this;\n\t\t\t\t\t\tobj.parents(\".jstree-closed\").each(function () { t.open_node(this, false, true); });\n\t\t\t\t\t}\n\t\t\t\t\tthis.__callback({ \"obj\" : obj }); \n\t\t\t\t}\n\t\t\t},\n\t\t\tuncheck_node : function (obj) {\n\t\t\t\tif(this.change_state(obj, true)) { this.__callback({ \"obj\" : this._get_node(obj) }); }\n\t\t\t},\n\t\t\tcheck_all : function () {\n\t\t\t\tvar _this = this, \n\t\t\t\t\tcoll = this._get_settings().checkbox.two_state ? this.get_container_ul().find(\"li\") : this.get_container_ul().children(\"li\");\n\t\t\t\tcoll.each(function () {\n\t\t\t\t\t_this.change_state(this, false);\n\t\t\t\t});\n\t\t\t\tthis.__callback();\n\t\t\t},\n\t\t\tuncheck_all : function () {\n\t\t\t\tvar _this = this,\n\t\t\t\t\tcoll = this._get_settings().checkbox.two_state ? this.get_container_ul().find(\"li\") : this.get_container_ul().children(\"li\");\n\t\t\t\tcoll.each(function () {\n\t\t\t\t\t_this.change_state(this, true);\n\t\t\t\t});\n\t\t\t\tthis.__callback();\n\t\t\t},\n\n\t\t\tis_checked : function(obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\treturn obj.length ? obj.is(\".jstree-checked\") : false;\n\t\t\t},\n\t\t\tget_checked : function (obj, get_all) {\n\t\t\t\tobj = !obj || obj === -1 ? this.get_container() : this._get_node(obj);\n\t\t\t\treturn get_all || this._get_settings().checkbox.two_state ? obj.find(\".jstree-checked\") : obj.find(\"> ul > .jstree-checked, .jstree-undetermined > ul > .jstree-checked\");\n\t\t\t},\n\t\t\tget_unchecked : function (obj, get_all) { \n\t\t\t\tobj = !obj || obj === -1 ? this.get_container() : this._get_node(obj);\n\t\t\t\treturn get_all || this._get_settings().checkbox.two_state ? obj.find(\".jstree-unchecked\") : obj.find(\"> ul > .jstree-unchecked, .jstree-undetermined > ul > .jstree-unchecked\");\n\t\t\t},\n\n\t\t\tshow_checkboxes : function () { this.get_container().children(\"ul\").removeClass(\"jstree-no-checkboxes\"); },\n\t\t\thide_checkboxes : function () { this.get_container().children(\"ul\").addClass(\"jstree-no-checkboxes\"); },\n\n\t\t\t_repair_state : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj.length) { return; }\n\t\t\t\tif(this._get_settings().checkbox.two_state) {\n\t\t\t\t\tobj.find('li').addBack().not('.jstree-checked').removeClass('jstree-undetermined').addClass('jstree-unchecked').children(':checkbox').prop('checked', true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar rc = this._get_settings().checkbox.real_checkboxes,\n\t\t\t\t\ta = obj.find(\"> ul > .jstree-checked\").length,\n\t\t\t\t\tb = obj.find(\"> ul > .jstree-undetermined\").length,\n\t\t\t\t\tc = obj.find(\"> ul > li\").length;\n\t\t\t\tif(c === 0) { if(obj.hasClass(\"jstree-undetermined\")) { this.change_state(obj, false); } }\n\t\t\t\telse if(a === 0 && b === 0) { this.change_state(obj, true); }\n\t\t\t\telse if(a === c) { this.change_state(obj, false); }\n\t\t\t\telse { \n\t\t\t\t\tobj.parentsUntil(\".jstree\",\"li\").addBack().removeClass(\"jstree-checked jstree-unchecked\").addClass(\"jstree-undetermined\");\n\t\t\t\t\tif(rc) { obj.parentsUntil(\".jstree\", \"li\").addBack().children(\":checkbox\").prop(\"checked\", false); }\n\t\t\t\t}\n\t\t\t},\n\t\t\treselect : function () {\n\t\t\t\tif(this.data.ui && this.data.checkbox.noui) { \n\t\t\t\t\tvar _this = this,\n\t\t\t\t\t\ts = this.data.ui.to_select;\n\t\t\t\t\ts = $.map($.makeArray(s), function (n) { return \"#\" + n.toString().replace(/^#/,\"\").replace(/\\\\\\//g,\"/\").replace(/\\//g,\"\\\\\\/\").replace(/\\\\\\./g,\".\").replace(/\\./g,\"\\\\.\").replace(/\\:/g,\"\\\\:\"); });\n\t\t\t\t\tthis.deselect_all();\n\t\t\t\t\t$.each(s, function (i, val) { _this.check_node(val); });\n\t\t\t\t\tthis.__callback();\n\t\t\t\t}\n\t\t\t\telse { \n\t\t\t\t\tthis.__call_old(); \n\t\t\t\t}\n\t\t\t},\n\t\t\tsave_loaded : function () {\n\t\t\t\tvar _this = this;\n\t\t\t\tthis.data.core.to_load = [];\n\t\t\t\tthis.get_container_ul().find(\"li.jstree-closed.jstree-undetermined\").each(function () {\n\t\t\t\t\tif(this.id) { _this.data.core.to_load.push(\"#\" + this.id); }\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\t$(function() {\n\t\tvar css_string = '.jstree .jstree-real-checkbox { display:none; } ';\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"jstree\" });\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree XML plugin\n * The XML data store. Datastores are build by overriding the `load_node` and `_is_loaded` functions.\n */\n(function ($) {\n\t$.vakata.xslt = function (xml, xsl, callback) {\n\t\tvar r = false, p, q, s;\n\t\t// IE9\n\t\tif(r === false && window.ActiveXObject) {\n\t\t\ttry {\n\t\t\t\tr = new ActiveXObject(\"Msxml2.XSLTemplate\");\n\t\t\t\tq = new ActiveXObject(\"Msxml2.DOMDocument\");\n\t\t\t\tq.loadXML(xml);\n\t\t\t\ts = new ActiveXObject(\"Msxml2.FreeThreadedDOMDocument\");\n\t\t\t\ts.loadXML(xsl);\n\t\t\t\tr.stylesheet = s;\n\t\t\t\tp = r.createProcessor();\n\t\t\t\tp.input = q;\n\t\t\t\tp.transform();\n\t\t\t\tr = p.output;\n\t\t\t}\n\t\t\tcatch (e) { }\n\t\t}\n\t\txml = $.parseXML(xml);\n\t\txsl = $.parseXML(xsl);\n\t\t// FF, Chrome\n\t\tif(r === false && typeof (XSLTProcessor) !== \"undefined\") {\n\t\t\tp = new XSLTProcessor();\n\t\t\tp.importStylesheet(xsl);\n\t\t\tr = p.transformToFragment(xml, document);\n\t\t\tr = $('<div />').append(r).html();\n\t\t}\n\t\t// OLD IE\n\t\tif(r === false && typeof (xml.transformNode) !== \"undefined\") {\n\t\t\tr = xml.transformNode(xsl);\n\t\t}\n\t\tcallback.call(null, r);\n\t};\n\tvar xsl = {\n\t\t'nest' : '<' + '?xml version=\"1.0\" encoding=\"utf-8\" ?>' + \n\t\t\t'<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >' + \n\t\t\t'<xsl:output method=\"html\" encoding=\"utf-8\" omit-xml-declaration=\"yes\" standalone=\"no\" indent=\"no\" media-type=\"text/html\" />' + \n\t\t\t'<xsl:template match=\"/\">' + \n\t\t\t'\t<xsl:call-template name=\"nodes\">' + \n\t\t\t'\t\t<xsl:with-param name=\"node\" select=\"/root\" />' + \n\t\t\t'\t</xsl:call-template>' + \n\t\t\t'</xsl:template>' + \n\t\t\t'<xsl:template name=\"nodes\">' + \n\t\t\t'\t<xsl:param name=\"node\" />' + \n\t\t\t'\t<ul>' + \n\t\t\t'\t<xsl:for-each select=\"$node/item\">' + \n\t\t\t'\t\t<xsl:variable name=\"children\" select=\"count(./item) &gt; 0\" />' + \n\t\t\t'\t\t<li>' + \n\t\t\t'\t\t\t<xsl:attribute name=\"class\">' + \n\t\t\t'\t\t\t\t<xsl:if test=\"position() = last()\">jstree-last </xsl:if>' + \n\t\t\t'\t\t\t\t<xsl:choose>' + \n\t\t\t'\t\t\t\t\t<xsl:when test=\"@state = \\'open\\'\">jstree-open </xsl:when>' + \n\t\t\t'\t\t\t\t\t<xsl:when test=\"$children or @hasChildren or @state = \\'closed\\'\">jstree-closed </xsl:when>' + \n\t\t\t'\t\t\t\t\t<xsl:otherwise>jstree-leaf </xsl:otherwise>' + \n\t\t\t'\t\t\t\t</xsl:choose>' + \n\t\t\t'\t\t\t\t<xsl:value-of select=\"@class\" />' + \n\t\t\t'\t\t\t</xsl:attribute>' + \n\t\t\t'\t\t\t<xsl:for-each select=\"@*\">' + \n\t\t\t'\t\t\t\t<xsl:if test=\"name() != \\'class\\' and name() != \\'state\\' and name() != \\'hasChildren\\'\">' + \n\t\t\t'\t\t\t\t\t<xsl:attribute name=\"{name()}\"><xsl:value-of select=\".\" /></xsl:attribute>' + \n\t\t\t'\t\t\t\t</xsl:if>' + \n\t\t\t'\t\t\t</xsl:for-each>' + \n\t\t\t'\t<ins class=\"jstree-icon\"><xsl:text>&#xa0;</xsl:text></ins>' + \n\t\t\t'\t\t\t<xsl:for-each select=\"content/name\">' + \n\t\t\t'\t\t\t\t<a>' + \n\t\t\t'\t\t\t\t<xsl:attribute name=\"href\">' + \n\t\t\t'\t\t\t\t\t<xsl:choose>' + \n\t\t\t'\t\t\t\t\t<xsl:when test=\"@href\"><xsl:value-of select=\"@href\" /></xsl:when>' + \n\t\t\t'\t\t\t\t\t<xsl:otherwise>#</xsl:otherwise>' + \n\t\t\t'\t\t\t\t\t</xsl:choose>' + \n\t\t\t'\t\t\t\t</xsl:attribute>' + \n\t\t\t'\t\t\t\t<xsl:attribute name=\"class\"><xsl:value-of select=\"@lang\" /> <xsl:value-of select=\"@class\" /></xsl:attribute>' + \n\t\t\t'\t\t\t\t<xsl:attribute name=\"style\"><xsl:value-of select=\"@style\" /></xsl:attribute>' + \n\t\t\t'\t\t\t\t<xsl:for-each select=\"@*\">' + \n\t\t\t'\t\t\t\t\t<xsl:if test=\"name() != \\'style\\' and name() != \\'class\\' and name() != \\'href\\'\">' + \n\t\t\t'\t\t\t\t\t\t<xsl:attribute name=\"{name()}\"><xsl:value-of select=\".\" /></xsl:attribute>' + \n\t\t\t'\t\t\t\t\t</xsl:if>' + \n\t\t\t'\t\t\t\t</xsl:for-each>' + \n\t\t\t'\t\t\t\t\t<ins>' + \n\t\t\t'\t\t\t\t\t\t<xsl:attribute name=\"class\">jstree-icon ' + \n\t\t\t'\t\t\t\t\t\t\t<xsl:if test=\"string-length(attribute::icon) > 0 and not(contains(@icon,\\'/\\'))\"><xsl:value-of select=\"@icon\" /></xsl:if>' + \n\t\t\t'\t\t\t\t\t\t</xsl:attribute>' + \n\t\t\t'\t\t\t\t\t\t<xsl:if test=\"string-length(attribute::icon) > 0 and contains(@icon,\\'/\\')\"><xsl:attribute name=\"style\">background:url(<xsl:value-of select=\"@icon\" />) center center no-repeat;</xsl:attribute></xsl:if>' + \n\t\t\t'\t\t\t\t\t\t<xsl:text>&#xa0;</xsl:text>' + \n\t\t\t'\t\t\t\t\t</ins>' + \n\t\t\t'\t\t\t\t\t<xsl:copy-of select=\"./child::node()\" />' + \n\t\t\t'\t\t\t\t</a>' + \n\t\t\t'\t\t\t</xsl:for-each>' + \n\t\t\t'\t\t\t<xsl:if test=\"$children or @hasChildren\"><xsl:call-template name=\"nodes\"><xsl:with-param name=\"node\" select=\"current()\" /></xsl:call-template></xsl:if>' + \n\t\t\t'\t\t</li>' + \n\t\t\t'\t</xsl:for-each>' + \n\t\t\t'\t</ul>' + \n\t\t\t'</xsl:template>' + \n\t\t\t'</xsl:stylesheet>',\n\n\t\t'flat' : '<' + '?xml version=\"1.0\" encoding=\"utf-8\" ?>' + \n\t\t\t'<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >' + \n\t\t\t'<xsl:output method=\"html\" encoding=\"utf-8\" omit-xml-declaration=\"yes\" standalone=\"no\" indent=\"no\" media-type=\"text/xml\" />' + \n\t\t\t'<xsl:template match=\"/\">' + \n\t\t\t'\t<ul>' + \n\t\t\t'\t<xsl:for-each select=\"//item[not(@parent_id) or @parent_id=0 or not(@parent_id = //item/@id)]\">' + /* the last `or` may be removed */\n\t\t\t'\t\t<xsl:call-template name=\"nodes\">' + \n\t\t\t'\t\t\t<xsl:with-param name=\"node\" select=\".\" />' + \n\t\t\t'\t\t\t<xsl:with-param name=\"is_last\" select=\"number(position() = last())\" />' + \n\t\t\t'\t\t</xsl:call-template>' + \n\t\t\t'\t</xsl:for-each>' + \n\t\t\t'\t</ul>' + \n\t\t\t'</xsl:template>' + \n\t\t\t'<xsl:template name=\"nodes\">' + \n\t\t\t'\t<xsl:param name=\"node\" />' + \n\t\t\t'\t<xsl:param name=\"is_last\" />' + \n\t\t\t'\t<xsl:variable name=\"children\" select=\"count(//item[@parent_id=$node/attribute::id]) &gt; 0\" />' + \n\t\t\t'\t<li>' + \n\t\t\t'\t<xsl:attribute name=\"class\">' + \n\t\t\t'\t\t<xsl:if test=\"$is_last = true()\">jstree-last </xsl:if>' + \n\t\t\t'\t\t<xsl:choose>' + \n\t\t\t'\t\t\t<xsl:when test=\"@state = \\'open\\'\">jstree-open </xsl:when>' + \n\t\t\t'\t\t\t<xsl:when test=\"$children or @hasChildren or @state = \\'closed\\'\">jstree-closed </xsl:when>' + \n\t\t\t'\t\t\t<xsl:otherwise>jstree-leaf </xsl:otherwise>' + \n\t\t\t'\t\t</xsl:choose>' + \n\t\t\t'\t\t<xsl:value-of select=\"@class\" />' + \n\t\t\t'\t</xsl:attribute>' + \n\t\t\t'\t<xsl:for-each select=\"@*\">' + \n\t\t\t'\t\t<xsl:if test=\"name() != \\'parent_id\\' and name() != \\'hasChildren\\' and name() != \\'class\\' and name() != \\'state\\'\">' + \n\t\t\t'\t\t<xsl:attribute name=\"{name()}\"><xsl:value-of select=\".\" /></xsl:attribute>' + \n\t\t\t'\t\t</xsl:if>' + \n\t\t\t'\t</xsl:for-each>' + \n\t\t\t'\t<ins class=\"jstree-icon\"><xsl:text>&#xa0;</xsl:text></ins>' + \n\t\t\t'\t<xsl:for-each select=\"content/name\">' + \n\t\t\t'\t\t<a>' + \n\t\t\t'\t\t<xsl:attribute name=\"href\">' + \n\t\t\t'\t\t\t<xsl:choose>' + \n\t\t\t'\t\t\t<xsl:when test=\"@href\"><xsl:value-of select=\"@href\" /></xsl:when>' + \n\t\t\t'\t\t\t<xsl:otherwise>#</xsl:otherwise>' + \n\t\t\t'\t\t\t</xsl:choose>' + \n\t\t\t'\t\t</xsl:attribute>' + \n\t\t\t'\t\t<xsl:attribute name=\"class\"><xsl:value-of select=\"@lang\" /> <xsl:value-of select=\"@class\" /></xsl:attribute>' + \n\t\t\t'\t\t<xsl:attribute name=\"style\"><xsl:value-of select=\"@style\" /></xsl:attribute>' + \n\t\t\t'\t\t<xsl:for-each select=\"@*\">' + \n\t\t\t'\t\t\t<xsl:if test=\"name() != \\'style\\' and name() != \\'class\\' and name() != \\'href\\'\">' + \n\t\t\t'\t\t\t\t<xsl:attribute name=\"{name()}\"><xsl:value-of select=\".\" /></xsl:attribute>' + \n\t\t\t'\t\t\t</xsl:if>' + \n\t\t\t'\t\t</xsl:for-each>' + \n\t\t\t'\t\t\t<ins>' + \n\t\t\t'\t\t\t\t<xsl:attribute name=\"class\">jstree-icon ' + \n\t\t\t'\t\t\t\t\t<xsl:if test=\"string-length(attribute::icon) > 0 and not(contains(@icon,\\'/\\'))\"><xsl:value-of select=\"@icon\" /></xsl:if>' + \n\t\t\t'\t\t\t\t</xsl:attribute>' + \n\t\t\t'\t\t\t\t<xsl:if test=\"string-length(attribute::icon) > 0 and contains(@icon,\\'/\\')\"><xsl:attribute name=\"style\">background:url(<xsl:value-of select=\"@icon\" />) center center no-repeat;</xsl:attribute></xsl:if>' + \n\t\t\t'\t\t\t\t<xsl:text>&#xa0;</xsl:text>' + \n\t\t\t'\t\t\t</ins>' + \n\t\t\t'\t\t\t<xsl:copy-of select=\"./child::node()\" />' + \n\t\t\t'\t\t</a>' + \n\t\t\t'\t</xsl:for-each>' + \n\t\t\t'\t<xsl:if test=\"$children\">' + \n\t\t\t'\t\t<ul>' + \n\t\t\t'\t\t<xsl:for-each select=\"//item[@parent_id=$node/attribute::id]\">' + \n\t\t\t'\t\t\t<xsl:call-template name=\"nodes\">' + \n\t\t\t'\t\t\t\t<xsl:with-param name=\"node\" select=\".\" />' + \n\t\t\t'\t\t\t\t<xsl:with-param name=\"is_last\" select=\"number(position() = last())\" />' + \n\t\t\t'\t\t\t</xsl:call-template>' + \n\t\t\t'\t\t</xsl:for-each>' + \n\t\t\t'\t\t</ul>' + \n\t\t\t'\t</xsl:if>' + \n\t\t\t'\t</li>' + \n\t\t\t'</xsl:template>' + \n\t\t\t'</xsl:stylesheet>'\n\t},\n\tescape_xml = function(string) {\n\t\treturn string\n\t\t\t.toString()\n\t\t\t.replace(/&/g, '&amp;')\n\t\t\t.replace(/</g, '&lt;')\n\t\t\t.replace(/>/g, '&gt;')\n\t\t\t.replace(/\"/g, '&quot;')\n\t\t\t.replace(/'/g, '&apos;');\n\t};\n\t$.jstree.plugin(\"xml_data\", {\n\t\tdefaults : { \n\t\t\tdata : false,\n\t\t\tajax : false,\n\t\t\txsl : \"flat\",\n\t\t\tclean_node : false,\n\t\t\tcorrect_state : true,\n\t\t\tget_skip_empty : false,\n\t\t\tget_include_preamble : true\n\t\t},\n\t\t_fn : {\n\t\t\tload_node : function (obj, s_call, e_call) { var _this = this; this.load_node_xml(obj, function () { _this.__callback({ \"obj\" : _this._get_node(obj) }); s_call.call(this); }, e_call); },\n\t\t\t_is_loaded : function (obj) { \n\t\t\t\tvar s = this._get_settings().xml_data;\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\treturn obj == -1 || !obj || (!s.ajax && !$.isFunction(s.data)) || obj.is(\".jstree-open, .jstree-leaf\") || obj.children(\"ul\").children(\"li\").size() > 0;\n\t\t\t},\n\t\t\tload_node_xml : function (obj, s_call, e_call) {\n\t\t\t\tvar s = this.get_settings().xml_data,\n\t\t\t\t\terror_func = function () {},\n\t\t\t\t\tsuccess_func = function () {};\n\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj && obj !== -1) {\n\t\t\t\t\tif(obj.data(\"jstree_is_loading\")) { return; }\n\t\t\t\t\telse { obj.data(\"jstree_is_loading\",true); }\n\t\t\t\t}\n\t\t\t\tswitch(!0) {\n\t\t\t\t\tcase (!s.data && !s.ajax): throw \"Neither data nor ajax settings supplied.\";\n\t\t\t\t\tcase ($.isFunction(s.data)):\n\t\t\t\t\t\ts.data.call(this, obj, $.proxy(function (d) {\n\t\t\t\t\t\t\tthis.parse_xml(d, $.proxy(function (d) {\n\t\t\t\t\t\t\t\tif(d) {\n\t\t\t\t\t\t\t\t\td = d.replace(/ ?xmlns=\"[^\"]*\"/ig, \"\");\n\t\t\t\t\t\t\t\t\tif(d.length > 10) {\n\t\t\t\t\t\t\t\t\t\td = $(d);\n\t\t\t\t\t\t\t\t\t\tif(obj === -1 || !obj) { this.get_container().children(\"ul\").empty().append(d.children()); }\n\t\t\t\t\t\t\t\t\t\telse { obj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\"); obj.append(d); obj.removeData(\"jstree_is_loading\"); }\n\t\t\t\t\t\t\t\t\t\tif(s.clean_node) { this.clean_node(obj); }\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tif(obj && obj !== -1) { \n\t\t\t\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\t\t\tthis.correct_state(obj);\n\t\t\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty();\n\t\t\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t\t\t}, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!!s.data && !s.ajax) || (!!s.data && !!s.ajax && (!obj || obj === -1)):\n\t\t\t\t\t\tif(!obj || obj == -1) {\n\t\t\t\t\t\t\tthis.parse_xml(s.data, $.proxy(function (d) {\n\t\t\t\t\t\t\t\tif(d) {\n\t\t\t\t\t\t\t\t\td = d.replace(/ ?xmlns=\"[^\"]*\"/ig, \"\");\n\t\t\t\t\t\t\t\t\tif(d.length > 10) {\n\t\t\t\t\t\t\t\t\t\td = $(d);\n\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty().append(d.children());\n\t\t\t\t\t\t\t\t\t\tif(s.clean_node) { this.clean_node(obj); }\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse { \n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty(); \n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!s.data && !!s.ajax) || (!!s.data && !!s.ajax && obj && obj !== -1):\n\t\t\t\t\t\terror_func = function (x, t, e) {\n\t\t\t\t\t\t\tvar ef = this.get_settings().xml_data.ajax.error; \n\t\t\t\t\t\t\tif(ef) { ef.call(this, x, t, e); }\n\t\t\t\t\t\t\tif(obj !== -1 && obj.length) {\n\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\tif(t === \"success\" && s.correct_state) { this.correct_state(obj); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(t === \"success\" && s.correct_state) { this.get_container().children(\"ul\").empty(); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(e_call) { e_call.call(this); }\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsuccess_func = function (d, t, x) {\n\t\t\t\t\t\t\td = x.responseText;\n\t\t\t\t\t\t\tvar sf = this.get_settings().xml_data.ajax.success; \n\t\t\t\t\t\t\tif(sf) { d = sf.call(this,d,t,x) || d; }\n\t\t\t\t\t\t\tif(d === \"\" || (d && d.toString && d.toString().replace(/^[\\s\\n]+$/,\"\") === \"\")) {\n\t\t\t\t\t\t\t\treturn error_func.call(this, x, t, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.parse_xml(d, $.proxy(function (d) {\n\t\t\t\t\t\t\t\tif(d) {\n\t\t\t\t\t\t\t\t\td = d.replace(/ ?xmlns=\"[^\"]*\"/ig, \"\");\n\t\t\t\t\t\t\t\t\tif(d.length > 10) {\n\t\t\t\t\t\t\t\t\t\td = $(d);\n\t\t\t\t\t\t\t\t\t\tif(obj === -1 || !obj) { this.get_container().children(\"ul\").empty().append(d.children()); }\n\t\t\t\t\t\t\t\t\t\telse { obj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\"); obj.append(d); obj.removeData(\"jstree_is_loading\"); }\n\t\t\t\t\t\t\t\t\t\tif(s.clean_node) { this.clean_node(obj); }\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tif(obj && obj !== -1) { \n\t\t\t\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\t\t\tthis.correct_state(obj);\n\t\t\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty();\n\t\t\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t\t\t};\n\t\t\t\t\t\ts.ajax.context = this;\n\t\t\t\t\t\ts.ajax.error = error_func;\n\t\t\t\t\t\ts.ajax.success = success_func;\n\t\t\t\t\t\tif(!s.ajax.dataType) { s.ajax.dataType = \"xml\"; }\n\t\t\t\t\t\tif($.isFunction(s.ajax.url)) { s.ajax.url = s.ajax.url.call(this, obj); }\n\t\t\t\t\t\tif($.isFunction(s.ajax.data)) { s.ajax.data = s.ajax.data.call(this, obj); }\n\t\t\t\t\t\t$.ajax(s.ajax);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tparse_xml : function (xml, callback) {\n\t\t\t\tvar s = this._get_settings().xml_data;\n\t\t\t\t$.vakata.xslt(xml, xsl[s.xsl], callback);\n\t\t\t},\n\t\t\tget_xml : function (tp, obj, li_attr, a_attr, is_callback) {\n\t\t\t\tvar result = \"\", \n\t\t\t\t\ts = this._get_settings(), \n\t\t\t\t\t_this = this,\n\t\t\t\t\ttmp1, tmp2, li, a, lang;\n\t\t\t\tif(!tp) { tp = \"flat\"; }\n\t\t\t\tif(!is_callback) { is_callback = 0; }\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(!obj || obj === -1) { obj = this.get_container().find(\"> ul > li\"); }\n\t\t\t\tli_attr = $.isArray(li_attr) ? li_attr : [ \"id\", \"class\" ];\n\t\t\t\tif(!is_callback && this.data.types && $.inArray(s.types.type_attr, li_attr) === -1) { li_attr.push(s.types.type_attr); }\n\n\t\t\t\ta_attr = $.isArray(a_attr) ? a_attr : [ ];\n\n\t\t\t\tif(!is_callback) { \n\t\t\t\t\tif(s.xml_data.get_include_preamble) { \n\t\t\t\t\t\tresult += '<' + '?xml version=\"1.0\" encoding=\"UTF-8\"?' + '>'; \n\t\t\t\t\t}\n\t\t\t\t\tresult += \"<root>\"; \n\t\t\t\t}\n\t\t\t\tobj.each(function () {\n\t\t\t\t\tresult += \"<item\";\n\t\t\t\t\tli = $(this);\n\t\t\t\t\t$.each(li_attr, function (i, v) { \n\t\t\t\t\t\tvar t = li.attr(v);\n\t\t\t\t\t\tif(!s.xml_data.get_skip_empty || typeof t !== \"undefined\") {\n\t\t\t\t\t\t\tresult += \" \" + v + \"=\\\"\" + escape_xml((\" \" + (t || \"\")).replace(/ jstree[^ ]*/ig,'').replace(/\\s+$/ig,\" \").replace(/^ /,\"\").replace(/ $/,\"\")) + \"\\\"\"; \n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(li.hasClass(\"jstree-open\")) { result += \" state=\\\"open\\\"\"; }\n\t\t\t\t\tif(li.hasClass(\"jstree-closed\")) { result += \" state=\\\"closed\\\"\"; }\n\t\t\t\t\tif(tp === \"flat\") { result += \" parent_id=\\\"\" + escape_xml(is_callback) + \"\\\"\"; }\n\t\t\t\t\tresult += \">\";\n\t\t\t\t\tresult += \"<content>\";\n\t\t\t\t\ta = li.children(\"a\");\n\t\t\t\t\ta.each(function () {\n\t\t\t\t\t\ttmp1 = $(this);\n\t\t\t\t\t\tlang = false;\n\t\t\t\t\t\tresult += \"<name\";\n\t\t\t\t\t\tif($.inArray(\"languages\", s.plugins) !== -1) {\n\t\t\t\t\t\t\t$.each(s.languages, function (k, z) {\n\t\t\t\t\t\t\t\tif(tmp1.hasClass(z)) { result += \" lang=\\\"\" + escape_xml(z) + \"\\\"\"; lang = z; return false; }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(a_attr.length) { \n\t\t\t\t\t\t\t$.each(a_attr, function (k, z) {\n\t\t\t\t\t\t\t\tvar t = tmp1.attr(z);\n\t\t\t\t\t\t\t\tif(!s.xml_data.get_skip_empty || typeof t !== \"undefined\") {\n\t\t\t\t\t\t\t\t\tresult += \" \" + z + \"=\\\"\" + escape_xml((\" \" + t || \"\").replace(/ jstree[^ ]*/ig,'').replace(/\\s+$/ig,\" \").replace(/^ /,\"\").replace(/ $/,\"\")) + \"\\\"\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(tmp1.children(\"ins\").get(0).className.replace(/jstree[^ ]*|$/ig,'').replace(/^\\s+$/ig,\"\").length) {\n\t\t\t\t\t\t\tresult += ' icon=\"' + escape_xml(tmp1.children(\"ins\").get(0).className.replace(/jstree[^ ]*|$/ig,'').replace(/\\s+$/ig,\" \").replace(/^ /,\"\").replace(/ $/,\"\")) + '\"';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(tmp1.children(\"ins\").get(0).style.backgroundImage.length) {\n\t\t\t\t\t\t\tresult += ' icon=\"' + escape_xml(tmp1.children(\"ins\").get(0).style.backgroundImage.replace(\"url(\",\"\").replace(\")\",\"\").replace(/'/ig,\"\").replace(/\"/ig,\"\")) + '\"';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult += \">\";\n\t\t\t\t\t\tresult += \"<![CDATA[\" + _this.get_text(tmp1, lang) + \"]]>\";\n\t\t\t\t\t\tresult += \"</name>\";\n\t\t\t\t\t});\n\t\t\t\t\tresult += \"</content>\";\n\t\t\t\t\ttmp2 = li[0].id || true;\n\t\t\t\t\tli = li.find(\"> ul > li\");\n\t\t\t\t\tif(li.length) { tmp2 = _this.get_xml(tp, li, li_attr, a_attr, tmp2); }\n\t\t\t\t\telse { tmp2 = \"\"; }\n\t\t\t\t\tif(tp == \"nest\") { result += tmp2; }\n\t\t\t\t\tresult += \"</item>\";\n\t\t\t\t\tif(tp == \"flat\") { result += tmp2; }\n\t\t\t\t});\n\t\t\t\tif(!is_callback) { result += \"</root>\"; }\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/*\n * jsTree search plugin\n * Enables both sync and async search on the tree\n * DOES NOT WORK WITH JSON PROGRESSIVE RENDER\n */\n(function ($) {\n\tif($().jquery.split('.')[1] >= 8) {\n\t\t$.expr[':'].jstree_contains = $.expr.createPseudo(function(search) {\n\t\t\treturn function(a) {\n\t\t\t\treturn (a.textContent || a.innerText || \"\").toLowerCase().indexOf(search.toLowerCase())>=0;\n\t\t\t};\n\t\t});\n\t\t$.expr[':'].jstree_title_contains = $.expr.createPseudo(function(search) {\n\t\t\treturn function(a) {\n\t\t\t\treturn (a.getAttribute(\"title\") || \"\").toLowerCase().indexOf(search.toLowerCase())>=0;\n\t\t\t};\n\t\t});\n\t}\n\telse {\n\t\t$.expr[':'].jstree_contains = function(a,i,m){\n\t\t\treturn (a.textContent || a.innerText || \"\").toLowerCase().indexOf(m[3].toLowerCase())>=0;\n\t\t};\n\t\t$.expr[':'].jstree_title_contains = function(a,i,m) {\n\t\t\treturn (a.getAttribute(\"title\") || \"\").toLowerCase().indexOf(m[3].toLowerCase())>=0;\n\t\t};\n\t}\n\t$.jstree.plugin(\"search\", {\n\t\t__init : function () {\n\t\t\tthis.data.search.str = \"\";\n\t\t\tthis.data.search.result = $();\n\t\t\tif(this._get_settings().search.show_only_matches) {\n\t\t\t\tthis.get_container()\n\t\t\t\t\t.bind(\"search.jstree\", function (e, data) {\n\t\t\t\t\t\t$(this).children(\"ul\").find(\"li\").hide().removeClass(\"jstree-last\");\n\t\t\t\t\t\tdata.rslt.nodes.parentsUntil(\".jstree\").addBack().show()\n\t\t\t\t\t\t\t.filter(\"ul\").each(function () { $(this).children(\"li:visible\").eq(-1).addClass(\"jstree-last\"); });\n\t\t\t\t\t})\n\t\t\t\t\t.bind(\"clear_search.jstree\", function () {\n\t\t\t\t\t\t$(this).children(\"ul\").find(\"li\").css(\"display\",\"\").end().end().jstree(\"clean_node\", -1);\n\t\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdefaults : {\n\t\t\tajax : false,\n\t\t\tsearch_method : \"jstree_contains\", // for case insensitive - jstree_contains\n\t\t\tshow_only_matches : false\n\t\t},\n\t\t_fn : {\n\t\t\tsearch : function (str, skip_async) {\n\t\t\t\tif($.trim(str) === \"\") { this.clear_search(); return; }\n\t\t\t\tvar s = this.get_settings().search, \n\t\t\t\t\tt = this,\n\t\t\t\t\terror_func = function () { },\n\t\t\t\t\tsuccess_func = function () { };\n\t\t\t\tthis.data.search.str = str;\n\n\t\t\t\tif(!skip_async && s.ajax !== false && this.get_container_ul().find(\"li.jstree-closed:not(:has(ul)):eq(0)\").length > 0) {\n\t\t\t\t\tthis.search.supress_callback = true;\n\t\t\t\t\terror_func = function () { };\n\t\t\t\t\tsuccess_func = function (d, t, x) {\n\t\t\t\t\t\tvar sf = this.get_settings().search.ajax.success; \n\t\t\t\t\t\tif(sf) { d = sf.call(this,d,t,x) || d; }\n\t\t\t\t\t\tthis.data.search.to_open = d;\n\t\t\t\t\t\tthis._search_open();\n\t\t\t\t\t};\n\t\t\t\t\ts.ajax.context = this;\n\t\t\t\t\ts.ajax.error = error_func;\n\t\t\t\t\ts.ajax.success = success_func;\n\t\t\t\t\tif($.isFunction(s.ajax.url)) { s.ajax.url = s.ajax.url.call(this, str); }\n\t\t\t\t\tif($.isFunction(s.ajax.data)) { s.ajax.data = s.ajax.data.call(this, str); }\n\t\t\t\t\tif(!s.ajax.data) { s.ajax.data = { \"search_string\" : str }; }\n\t\t\t\t\tif(!s.ajax.dataType || /^json/.exec(s.ajax.dataType)) { s.ajax.dataType = \"json\"; }\n\t\t\t\t\t$.ajax(s.ajax);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif(this.data.search.result.length) { this.clear_search(); }\n\t\t\t\tthis.data.search.result = this.get_container().find(\"a\" + (this.data.languages ? \".\" + this.get_lang() : \"\" ) + \":\" + (s.search_method) + \"(\" + this.data.search.str + \")\");\n\t\t\t\tthis.data.search.result.addClass(\"jstree-search\").parent().parents(\".jstree-closed\").each(function () {\n\t\t\t\t\tt.open_node(this, false, true);\n\t\t\t\t});\n\t\t\t\tthis.__callback({ nodes : this.data.search.result, str : str });\n\t\t\t},\n\t\t\tclear_search : function (str) {\n\t\t\t\tthis.data.search.result.removeClass(\"jstree-search\");\n\t\t\t\tthis.__callback(this.data.search.result);\n\t\t\t\tthis.data.search.result = $();\n\t\t\t},\n\t\t\t_search_open : function (is_callback) {\n\t\t\t\tvar _this = this,\n\t\t\t\t\tdone = true,\n\t\t\t\t\tcurrent = [],\n\t\t\t\t\tremaining = [];\n\t\t\t\tif(this.data.search.to_open.length) {\n\t\t\t\t\t$.each(this.data.search.to_open, function (i, val) {\n\t\t\t\t\t\tif(val == \"#\") { return true; }\n\t\t\t\t\t\tif($(val).length && $(val).is(\".jstree-closed\")) { current.push(val); }\n\t\t\t\t\t\telse { remaining.push(val); }\n\t\t\t\t\t});\n\t\t\t\t\tif(current.length) {\n\t\t\t\t\t\tthis.data.search.to_open = remaining;\n\t\t\t\t\t\t$.each(current, function (i, val) { \n\t\t\t\t\t\t\t_this.open_node(val, function () { _this._search_open(true); }); \n\t\t\t\t\t\t});\n\t\t\t\t\t\tdone = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(done) { this.search(this.data.search.str, true); }\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree contextmenu plugin\n */\n(function ($) {\n\t$.vakata.context = {\n\t\thide_on_mouseleave : false,\n\n\t\tcnt\t\t: $(\"<div id='vakata-contextmenu' />\"),\n\t\tvis\t\t: false,\n\t\ttgt\t\t: false,\n\t\tpar\t\t: false,\n\t\tfunc\t: false,\n\t\tdata\t: false,\n\t\trtl\t\t: false,\n\t\tshow\t: function (s, t, x, y, d, p, rtl) {\n\t\t\t$.vakata.context.rtl = !!rtl;\n\t\t\tvar html = $.vakata.context.parse(s), h, w;\n\t\t\tif(!html) { return; }\n\t\t\t$.vakata.context.vis = true;\n\t\t\t$.vakata.context.tgt = t;\n\t\t\t$.vakata.context.par = p || t || null;\n\t\t\t$.vakata.context.data = d || null;\n\t\t\t$.vakata.context.cnt\n\t\t\t\t.html(html)\n\t\t\t\t.css({ \"visibility\" : \"hidden\", \"display\" : \"block\", \"left\" : 0, \"top\" : 0 });\n\n\t\t\tif($.vakata.context.hide_on_mouseleave) {\n\t\t\t\t$.vakata.context.cnt\n\t\t\t\t\t.one(\"mouseleave\", function(e) { $.vakata.context.hide(); });\n\t\t\t}\n\n\t\t\th = $.vakata.context.cnt.height();\n\t\t\tw = $.vakata.context.cnt.width();\n\t\t\tif(x + w > $(document).width()) { \n\t\t\t\tx = $(document).width() - (w + 5); \n\t\t\t\t$.vakata.context.cnt.find(\"li > ul\").addClass(\"right\"); \n\t\t\t}\n\t\t\tif(y + h > $(document).height()) { \n\t\t\t\ty = y - (h + t[0].offsetHeight); \n\t\t\t\t$.vakata.context.cnt.find(\"li > ul\").addClass(\"bottom\"); \n\t\t\t}\n\n\t\t\t$.vakata.context.cnt\n\t\t\t\t.css({ \"left\" : x, \"top\" : y })\n\t\t\t\t.find(\"li:has(ul)\")\n\t\t\t\t\t.bind(\"mouseenter\", function (e) { \n\t\t\t\t\t\tvar w = $(document).width(),\n\t\t\t\t\t\t\th = $(document).height(),\n\t\t\t\t\t\t\tul = $(this).children(\"ul\").show(); \n\t\t\t\t\t\tif(w !== $(document).width()) { ul.toggleClass(\"right\"); }\n\t\t\t\t\t\tif(h !== $(document).height()) { ul.toggleClass(\"bottom\"); }\n\t\t\t\t\t})\n\t\t\t\t\t.bind(\"mouseleave\", function (e) { \n\t\t\t\t\t\t$(this).children(\"ul\").hide(); \n\t\t\t\t\t})\n\t\t\t\t\t.end()\n\t\t\t\t.css({ \"visibility\" : \"visible\" })\n\t\t\t\t.show();\n\t\t\t$(document).triggerHandler(\"context_show.vakata\");\n\t\t},\n\t\thide\t: function () {\n\t\t\t$.vakata.context.vis = false;\n\t\t\t$.vakata.context.cnt.attr(\"class\",\"\").css({ \"visibility\" : \"hidden\" });\n\t\t\t$(document).triggerHandler(\"context_hide.vakata\");\n\t\t},\n\t\tparse\t: function (s, is_callback) {\n\t\t\tif(!s) { return false; }\n\t\t\tvar str = \"\",\n\t\t\t\ttmp = false,\n\t\t\t\twas_sep = true;\n\t\t\tif(!is_callback) { $.vakata.context.func = {}; }\n\t\t\tstr += \"<ul>\";\n\t\t\t$.each(s, function (i, val) {\n\t\t\t\tif(!val) { return true; }\n\t\t\t\t$.vakata.context.func[i] = val.action;\n\t\t\t\tif(!was_sep && val.separator_before) {\n\t\t\t\t\tstr += \"<li class='vakata-separator vakata-separator-before'></li>\";\n\t\t\t\t}\n\t\t\t\twas_sep = false;\n\t\t\t\tstr += \"<li class='\" + (val._class || \"\") + (val._disabled ? \" jstree-contextmenu-disabled \" : \"\") + \"'><ins \";\n\t\t\t\tif(val.icon && val.icon.indexOf(\"/\") === -1) { str += \" class='\" + val.icon + \"' \"; }\n\t\t\t\tif(val.icon && val.icon.indexOf(\"/\") !== -1) { str += \" style='background:url(\" + val.icon + \") center center no-repeat;' \"; }\n\t\t\t\tstr += \">&#160;</ins><a href='#' rel='\" + i + \"'>\";\n\t\t\t\tif(val.submenu) {\n\t\t\t\t\tstr += \"<span style='float:\" + ($.vakata.context.rtl ? \"left\" : \"right\") + \";'>&raquo;</span>\";\n\t\t\t\t}\n\t\t\t\tstr += val.label + \"</a>\";\n\t\t\t\tif(val.submenu) {\n\t\t\t\t\ttmp = $.vakata.context.parse(val.submenu, true);\n\t\t\t\t\tif(tmp) { str += tmp; }\n\t\t\t\t}\n\t\t\t\tstr += \"</li>\";\n\t\t\t\tif(val.separator_after) {\n\t\t\t\t\tstr += \"<li class='vakata-separator vakata-separator-after'></li>\";\n\t\t\t\t\twas_sep = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr = str.replace(/<li class\\='vakata-separator vakata-separator-after'\\><\\/li\\>$/,\"\");\n\t\t\tstr += \"</ul>\";\n\t\t\t$(document).triggerHandler(\"context_parse.vakata\");\n\t\t\treturn str.length > 10 ? str : false;\n\t\t},\n\t\texec\t: function (i) {\n\t\t\tif($.isFunction($.vakata.context.func[i])) {\n\t\t\t\t// if is string - eval and call it!\n\t\t\t\t$.vakata.context.func[i].call($.vakata.context.data, $.vakata.context.par);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\telse { return false; }\n\t\t}\n\t};\n\t$(function () {\n\t\tvar css_string = '' + \n\t\t\t'#vakata-contextmenu { display:block; visibility:hidden; left:0; top:-200px; position:absolute; margin:0; padding:0; min-width:180px; background:#ebebeb; border:1px solid silver; z-index:10000; *width:180px; } ' + \n\t\t\t'#vakata-contextmenu ul { min-width:180px; *width:180px; } ' + \n\t\t\t'#vakata-contextmenu ul, #vakata-contextmenu li { margin:0; padding:0; list-style-type:none; display:block; } ' + \n\t\t\t'#vakata-contextmenu li { line-height:20px; min-height:20px; position:relative; padding:0px; } ' + \n\t\t\t'#vakata-contextmenu li a { padding:1px 6px; line-height:17px; display:block; text-decoration:none; margin:1px 1px 0 1px; } ' + \n\t\t\t'#vakata-contextmenu li ins { float:left; width:16px; height:16px; text-decoration:none; margin-right:2px; } ' + \n\t\t\t'#vakata-contextmenu li a:hover, #vakata-contextmenu li.vakata-hover > a { background:gray; color:white; } ' + \n\t\t\t'#vakata-contextmenu li ul { display:none; position:absolute; top:-2px; left:100%; background:#ebebeb; border:1px solid gray; } ' + \n\t\t\t'#vakata-contextmenu .right { right:100%; left:auto; } ' + \n\t\t\t'#vakata-contextmenu .bottom { bottom:-1px; top:auto; } ' + \n\t\t\t'#vakata-contextmenu li.vakata-separator { min-height:0; height:1px; line-height:1px; font-size:1px; overflow:hidden; margin:0 2px; background:silver; /* border-top:1px solid #fefefe; */ padding:0; } ';\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"vakata\" });\n\t\t$.vakata.context.cnt\n\t\t\t.delegate(\"a\",\"click\", function (e) { e.preventDefault(); })\n\t\t\t.delegate(\"a\",\"mouseup\", function (e) {\n\t\t\t\tif(!$(this).parent().hasClass(\"jstree-contextmenu-disabled\") && $.vakata.context.exec($(this).attr(\"rel\"))) {\n\t\t\t\t\t$.vakata.context.hide();\n\t\t\t\t}\n\t\t\t\telse { $(this).blur(); }\n\t\t\t})\n\t\t\t.delegate(\"a\",\"mouseover\", function () {\n\t\t\t\t$.vakata.context.cnt.find(\".vakata-hover\").removeClass(\"vakata-hover\");\n\t\t\t})\n\t\t\t.appendTo(\"body\");\n\t\t$(document).bind(\"mousedown\", function (e) { if($.vakata.context.vis && !$.contains($.vakata.context.cnt[0], e.target)) { $.vakata.context.hide(); } });\n\t\tif(typeof $.hotkeys !== \"undefined\") {\n\t\t\t$(document)\n\t\t\t\t.bind(\"keydown\", \"up\", function (e) { \n\t\t\t\t\tif($.vakata.context.vis) { \n\t\t\t\t\t\tvar o = $.vakata.context.cnt.find(\"ul:visible\").last().children(\".vakata-hover\").removeClass(\"vakata-hover\").prevAll(\"li:not(.vakata-separator)\").first();\n\t\t\t\t\t\tif(!o.length) { o = $.vakata.context.cnt.find(\"ul:visible\").last().children(\"li:not(.vakata-separator)\").last(); }\n\t\t\t\t\t\to.addClass(\"vakata-hover\");\n\t\t\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} \n\t\t\t\t})\n\t\t\t\t.bind(\"keydown\", \"down\", function (e) { \n\t\t\t\t\tif($.vakata.context.vis) { \n\t\t\t\t\t\tvar o = $.vakata.context.cnt.find(\"ul:visible\").last().children(\".vakata-hover\").removeClass(\"vakata-hover\").nextAll(\"li:not(.vakata-separator)\").first();\n\t\t\t\t\t\tif(!o.length) { o = $.vakata.context.cnt.find(\"ul:visible\").last().children(\"li:not(.vakata-separator)\").first(); }\n\t\t\t\t\t\to.addClass(\"vakata-hover\");\n\t\t\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} \n\t\t\t\t})\n\t\t\t\t.bind(\"keydown\", \"right\", function (e) { \n\t\t\t\t\tif($.vakata.context.vis) { \n\t\t\t\t\t\t$.vakata.context.cnt.find(\".vakata-hover\").children(\"ul\").show().children(\"li:not(.vakata-separator)\").removeClass(\"vakata-hover\").first().addClass(\"vakata-hover\");\n\t\t\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} \n\t\t\t\t})\n\t\t\t\t.bind(\"keydown\", \"left\", function (e) { \n\t\t\t\t\tif($.vakata.context.vis) { \n\t\t\t\t\t\t$.vakata.context.cnt.find(\".vakata-hover\").children(\"ul\").hide().children(\".vakata-separator\").removeClass(\"vakata-hover\");\n\t\t\t\t\t\te.stopImmediatePropagation(); \n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} \n\t\t\t\t})\n\t\t\t\t.bind(\"keydown\", \"esc\", function (e) { \n\t\t\t\t\t$.vakata.context.hide(); \n\t\t\t\t\te.preventDefault();\n\t\t\t\t})\n\t\t\t\t.bind(\"keydown\", \"space\", function (e) { \n\t\t\t\t\t$.vakata.context.cnt.find(\".vakata-hover\").last().children(\"a\").click();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\t\t}\n\t});\n\n\t$.jstree.plugin(\"contextmenu\", {\n\t\t__init : function () {\n\t\t\tthis.get_container()\n\t\t\t\t.delegate(\"a\", \"contextmenu.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif(!$(e.currentTarget).hasClass(\"jstree-loading\")) {\n\t\t\t\t\t\t\tthis.show_contextmenu(e.currentTarget, e.pageX, e.pageY);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"a\", \"click.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tif(this.data.contextmenu) {\n\t\t\t\t\t\t\t$.vakata.context.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"destroy.jstree\", $.proxy(function () {\n\t\t\t\t\t\t// TODO: move this to descruct method\n\t\t\t\t\t\tif(this.data.contextmenu) {\n\t\t\t\t\t\t\t$.vakata.context.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\t\t\t$(document).bind(\"context_hide.vakata\", $.proxy(function () { this.data.contextmenu = false; }, this));\n\t\t},\n\t\tdefaults : { \n\t\t\tselect_node : false, // requires UI plugin\n\t\t\tshow_at_node : true,\n\t\t\titems : { // Could be a function that should return an object like this one\n\t\t\t\t\"create\" : {\n\t\t\t\t\t\"separator_before\"\t: false,\n\t\t\t\t\t\"separator_after\"\t: true,\n\t\t\t\t\t\"label\"\t\t\t\t: \"Create\",\n\t\t\t\t\t\"action\"\t\t\t: function (obj) { this.create(obj); }\n\t\t\t\t},\n\t\t\t\t\"rename\" : {\n\t\t\t\t\t\"separator_before\"\t: false,\n\t\t\t\t\t\"separator_after\"\t: false,\n\t\t\t\t\t\"label\"\t\t\t\t: \"Rename\",\n\t\t\t\t\t\"action\"\t\t\t: function (obj) { this.rename(obj); }\n\t\t\t\t},\n\t\t\t\t\"remove\" : {\n\t\t\t\t\t\"separator_before\"\t: false,\n\t\t\t\t\t\"icon\"\t\t\t\t: false,\n\t\t\t\t\t\"separator_after\"\t: false,\n\t\t\t\t\t\"label\"\t\t\t\t: \"Delete\",\n\t\t\t\t\t\"action\"\t\t\t: function (obj) { if(this.is_selected(obj)) { this.remove(); } else { this.remove(obj); } }\n\t\t\t\t},\n\t\t\t\t\"ccp\" : {\n\t\t\t\t\t\"separator_before\"\t: true,\n\t\t\t\t\t\"icon\"\t\t\t\t: false,\n\t\t\t\t\t\"separator_after\"\t: false,\n\t\t\t\t\t\"label\"\t\t\t\t: \"Edit\",\n\t\t\t\t\t\"action\"\t\t\t: false,\n\t\t\t\t\t\"submenu\" : { \n\t\t\t\t\t\t\"cut\" : {\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Cut\",\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (obj) { this.cut(obj); }\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"copy\" : {\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\n\t\t\t\t\t\t\t\"icon\"\t\t\t\t: false,\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Copy\",\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (obj) { this.copy(obj); }\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"paste\" : {\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\n\t\t\t\t\t\t\t\"icon\"\t\t\t\t: false,\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Paste\",\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (obj) { this.paste(obj); }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_fn : {\n\t\t\tshow_contextmenu : function (obj, x, y) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar s = this.get_settings().contextmenu,\n\t\t\t\t\ta = obj.children(\"a:visible:eq(0)\"),\n\t\t\t\t\to = false,\n\t\t\t\t\ti = false;\n\t\t\t\tif(s.select_node && this.data.ui && !this.is_selected(obj)) {\n\t\t\t\t\tthis.deselect_all();\n\t\t\t\t\tthis.select_node(obj, true);\n\t\t\t\t}\n\t\t\t\tif(s.show_at_node || typeof x === \"undefined\" || typeof y === \"undefined\") {\n\t\t\t\t\to = a.offset();\n\t\t\t\t\tx = o.left;\n\t\t\t\t\ty = o.top + this.data.core.li_height;\n\t\t\t\t}\n\t\t\t\ti = obj.data(\"jstree\") && obj.data(\"jstree\").contextmenu ? obj.data(\"jstree\").contextmenu : s.items;\n\t\t\t\tif($.isFunction(i)) { i = i.call(this, obj); }\n\t\t\t\tthis.data.contextmenu = true;\n\t\t\t\t$.vakata.context.show(i, a, x, y, this, obj, this._get_settings().core.rtl);\n\t\t\t\tif(this.data.themes) { $.vakata.context.cnt.attr(\"class\", \"jstree-\" + this.data.themes.theme + \"-context\"); }\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree types plugin\n * Adds support types of nodes\n * You can set an attribute on each li node, that represents its type.\n * According to the type setting the node may get custom icon/validation rules\n */\n(function ($) {\n\t$.jstree.plugin(\"types\", {\n\t\t__init : function () {\n\t\t\tvar s = this._get_settings().types;\n\t\t\tthis.data.types.attach_to = [];\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"init.jstree\", $.proxy(function () { \n\t\t\t\t\t\tvar types = s.types, \n\t\t\t\t\t\t\tattr  = s.type_attr, \n\t\t\t\t\t\t\ticons_css = \"\", \n\t\t\t\t\t\t\t_this = this;\n\n\t\t\t\t\t\t$.each(types, function (i, tp) {\n\t\t\t\t\t\t\t$.each(tp, function (k, v) { \n\t\t\t\t\t\t\t\tif(!/^(max_depth|max_children|icon|valid_children)$/.test(k)) { _this.data.types.attach_to.push(k); }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif(!tp.icon) { return true; }\n\t\t\t\t\t\t\tif( tp.icon.image || tp.icon.position) {\n\t\t\t\t\t\t\t\tif(i == \"default\")\t{ icons_css += '.jstree-' + _this.get_index() + ' a > .jstree-icon { '; }\n\t\t\t\t\t\t\t\telse\t\t\t\t{ icons_css += '.jstree-' + _this.get_index() + ' li[' + attr + '=\"' + i + '\"] > a > .jstree-icon { '; }\n\t\t\t\t\t\t\t\tif(tp.icon.image)\t{ icons_css += ' background-image:url(' + tp.icon.image + '); '; }\n\t\t\t\t\t\t\t\tif(tp.icon.position){ icons_css += ' background-position:' + tp.icon.position + '; '; }\n\t\t\t\t\t\t\t\telse\t\t\t\t{ icons_css += ' background-position:0 0; '; }\n\t\t\t\t\t\t\t\ticons_css += '} ';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif(icons_css !== \"\") { $.vakata.css.add_sheet({ 'str' : icons_css, title : \"jstree-types\" }); }\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"before.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tvar s, t, \n\t\t\t\t\t\t\to = this._get_settings().types.use_data ? this._get_node(data.args[0]) : false, \n\t\t\t\t\t\t\td = o && o !== -1 && o.length ? o.data(\"jstree\") : false;\n\t\t\t\t\t\tif(d && d.types && d.types[data.func] === false) { e.stopImmediatePropagation(); return false; }\n\t\t\t\t\t\tif($.inArray(data.func, this.data.types.attach_to) !== -1) {\n\t\t\t\t\t\t\tif(!data.args[0] || (!data.args[0].tagName && !data.args[0].jquery)) { return; }\n\t\t\t\t\t\t\ts = this._get_settings().types.types;\n\t\t\t\t\t\t\tt = this._get_type(data.args[0]);\n\t\t\t\t\t\t\tif(\n\t\t\t\t\t\t\t\t( \n\t\t\t\t\t\t\t\t\t(s[t] && typeof s[t][data.func] !== \"undefined\") || \n\t\t\t\t\t\t\t\t\t(s[\"default\"] && typeof s[\"default\"][data.func] !== \"undefined\") \n\t\t\t\t\t\t\t\t) && this._check(data.func, data.args[0]) === false\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\t\t\tif(is_ie6) {\n\t\t\t\tthis.get_container()\n\t\t\t\t\t.bind(\"load_node.jstree set_type.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\t\tvar r = data && data.rslt && data.rslt.obj && data.rslt.obj !== -1 ? this._get_node(data.rslt.obj).parent() : this.get_container_ul(),\n\t\t\t\t\t\t\t\tc = false,\n\t\t\t\t\t\t\t\ts = this._get_settings().types;\n\t\t\t\t\t\t\t$.each(s.types, function (i, tp) {\n\t\t\t\t\t\t\t\tif(tp.icon && (tp.icon.image || tp.icon.position)) {\n\t\t\t\t\t\t\t\t\tc = i === \"default\" ? r.find(\"li > a > .jstree-icon\") : r.find(\"li[\" + s.type_attr + \"='\" + i + \"'] > a > .jstree-icon\");\n\t\t\t\t\t\t\t\t\tif(tp.icon.image) { c.css(\"backgroundImage\",\"url(\" + tp.icon.image + \")\"); }\n\t\t\t\t\t\t\t\t\tc.css(\"backgroundPosition\", tp.icon.position || \"0 0\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}, this));\n\t\t\t}\n\t\t},\n\t\tdefaults : {\n\t\t\t// defines maximum number of root nodes (-1 means unlimited, -2 means disable max_children checking)\n\t\t\tmax_children\t\t: -1,\n\t\t\t// defines the maximum depth of the tree (-1 means unlimited, -2 means disable max_depth checking)\n\t\t\tmax_depth\t\t\t: -1,\n\t\t\t// defines valid node types for the root nodes\n\t\t\tvalid_children\t\t: \"all\",\n\n\t\t\t// whether to use $.data\n\t\t\tuse_data : false, \n\t\t\t// where is the type stores (the rel attribute of the LI element)\n\t\t\ttype_attr : \"rel\",\n\t\t\t// a list of types\n\t\t\ttypes : {\n\t\t\t\t// the default type\n\t\t\t\t\"default\" : {\n\t\t\t\t\t\"max_children\"\t: -1,\n\t\t\t\t\t\"max_depth\"\t\t: -1,\n\t\t\t\t\t\"valid_children\": \"all\"\n\n\t\t\t\t\t// Bound functions - you can bind any other function here (using boolean or function)\n\t\t\t\t\t//\"select_node\"\t: true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_fn : {\n\t\t\t_types_notify : function (n, data) {\n\t\t\t\tif(data.type && this._get_settings().types.use_data) {\n\t\t\t\t\tthis.set_type(data.type, n);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_get_type : function (obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\treturn (!obj || !obj.length) ? false : obj.attr(this._get_settings().types.type_attr) || \"default\";\n\t\t\t},\n\t\t\tset_type : function (str, obj) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar ret = (!obj.length || !str) ? false : obj.attr(this._get_settings().types.type_attr, str);\n\t\t\t\tif(ret) { this.__callback({ obj : obj, type : str}); }\n\t\t\t\treturn ret;\n\t\t\t},\n\t\t\t_check : function (rule, obj, opts) {\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tvar v = false, t = this._get_type(obj), d = 0, _this = this, s = this._get_settings().types, data = false;\n\t\t\t\tif(obj === -1) { \n\t\t\t\t\tif(!!s[rule]) { v = s[rule]; }\n\t\t\t\t\telse { return; }\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(t === false) { return; }\n\t\t\t\t\tdata = s.use_data ? obj.data(\"jstree\") : false;\n\t\t\t\t\tif(data && data.types && typeof data.types[rule] !== \"undefined\") { v = data.types[rule]; }\n\t\t\t\t\telse if(!!s.types[t] && typeof s.types[t][rule] !== \"undefined\") { v = s.types[t][rule]; }\n\t\t\t\t\telse if(!!s.types[\"default\"] && typeof s.types[\"default\"][rule] !== \"undefined\") { v = s.types[\"default\"][rule]; }\n\t\t\t\t}\n\t\t\t\tif($.isFunction(v)) { v = v.call(this, obj); }\n\t\t\t\tif(rule === \"max_depth\" && obj !== -1 && opts !== false && s.max_depth !== -2 && v !== 0) {\n\t\t\t\t\t// also include the node itself - otherwise if root node it is not checked\n\t\t\t\t\tobj.children(\"a:eq(0)\").parentsUntil(\".jstree\",\"li\").each(function (i) {\n\t\t\t\t\t\t// check if current depth already exceeds global tree depth\n\t\t\t\t\t\tif(s.max_depth !== -1 && s.max_depth - (i + 1) <= 0) { v = 0; return false; }\n\t\t\t\t\t\td = (i === 0) ? v : _this._check(rule, this, false);\n\t\t\t\t\t\t// check if current node max depth is already matched or exceeded\n\t\t\t\t\t\tif(d !== -1 && d - (i + 1) <= 0) { v = 0; return false; }\n\t\t\t\t\t\t// otherwise - set the max depth to the current value minus current depth\n\t\t\t\t\t\tif(d >= 0 && (d - (i + 1) < v || v < 0) ) { v = d - (i + 1); }\n\t\t\t\t\t\t// if the global tree depth exists and it minus the nodes calculated so far is less than `v` or `v` is unlimited\n\t\t\t\t\t\tif(s.max_depth >= 0 && (s.max_depth - (i + 1) < v || v < 0) ) { v = s.max_depth - (i + 1); }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tcheck_move : function () {\n\t\t\t\tif(!this.__call_old()) { return false; }\n\t\t\t\tvar m  = this._get_move(),\n\t\t\t\t\ts  = m.rt._get_settings().types,\n\t\t\t\t\tmc = m.rt._check(\"max_children\", m.cr),\n\t\t\t\t\tmd = m.rt._check(\"max_depth\", m.cr),\n\t\t\t\t\tvc = m.rt._check(\"valid_children\", m.cr),\n\t\t\t\t\tch = 0, d = 1, t;\n\n\t\t\t\tif(vc === \"none\") { return false; } \n\t\t\t\tif($.isArray(vc) && m.ot && m.ot._get_type) {\n\t\t\t\t\tm.o.each(function () {\n\t\t\t\t\t\tif($.inArray(m.ot._get_type(this), vc) === -1) { d = false; return false; }\n\t\t\t\t\t});\n\t\t\t\t\tif(d === false) { return false; }\n\t\t\t\t}\n\t\t\t\tif(s.max_children !== -2 && mc !== -1) {\n\t\t\t\t\tch = m.cr === -1 ? this.get_container().find(\"> ul > li\").not(m.o).length : m.cr.find(\"> ul > li\").not(m.o).length;\n\t\t\t\t\tif(ch + m.o.length > mc) { return false; }\n\t\t\t\t}\n\t\t\t\tif(s.max_depth !== -2 && md !== -1) {\n\t\t\t\t\td = 0;\n\t\t\t\t\tif(md === 0) { return false; }\n\t\t\t\t\tif(typeof m.o.d === \"undefined\") {\n\t\t\t\t\t\t// TODO: deal with progressive rendering and async when checking max_depth (how to know the depth of the moved node)\n\t\t\t\t\t\tt = m.o;\n\t\t\t\t\t\twhile(t.length > 0) {\n\t\t\t\t\t\t\tt = t.find(\"> ul > li\");\n\t\t\t\t\t\t\td ++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tm.o.d = d;\n\t\t\t\t\t}\n\t\t\t\t\tif(md - m.o.d < 0) { return false; }\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tcreate_node : function (obj, position, js, callback, is_loaded, skip_check) {\n\t\t\t\tif(!skip_check && (is_loaded || this._is_loaded(obj))) {\n\t\t\t\t\tvar p  = (typeof position == \"string\" && position.match(/^before|after$/i) && obj !== -1) ? this._get_parent(obj) : this._get_node(obj),\n\t\t\t\t\t\ts  = this._get_settings().types,\n\t\t\t\t\t\tmc = this._check(\"max_children\", p),\n\t\t\t\t\t\tmd = this._check(\"max_depth\", p),\n\t\t\t\t\t\tvc = this._check(\"valid_children\", p),\n\t\t\t\t\t\tch;\n\t\t\t\t\tif(typeof js === \"string\") { js = { data : js }; }\n\t\t\t\t\tif(!js) { js = {}; }\n\t\t\t\t\tif(vc === \"none\") { return false; } \n\t\t\t\t\tif($.isArray(vc)) {\n\t\t\t\t\t\tif(!js.attr || !js.attr[s.type_attr]) { \n\t\t\t\t\t\t\tif(!js.attr) { js.attr = {}; }\n\t\t\t\t\t\t\tjs.attr[s.type_attr] = vc[0]; \n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif($.inArray(js.attr[s.type_attr], vc) === -1) { return false; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(s.max_children !== -2 && mc !== -1) {\n\t\t\t\t\t\tch = p === -1 ? this.get_container().find(\"> ul > li\").length : p.find(\"> ul > li\").length;\n\t\t\t\t\t\tif(ch + 1 > mc) { return false; }\n\t\t\t\t\t}\n\t\t\t\t\tif(s.max_depth !== -2 && md !== -1 && (md - 1) < 0) { return false; }\n\t\t\t\t}\n\t\t\t\treturn this.__call_old(true, obj, position, js, callback, is_loaded, skip_check);\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree HTML plugin\n * The HTML data store. Datastores are build by replacing the `load_node` and `_is_loaded` functions.\n */\n(function ($) {\n\t$.jstree.plugin(\"html_data\", {\n\t\t__init : function () { \n\t\t\t// this used to use html() and clean the whitespace, but this way any attached data was lost\n\t\t\tthis.data.html_data.original_container_html = this.get_container().find(\" > ul > li\").clone(true);\n\t\t\t// remove white space from LI node - otherwise nodes appear a bit to the right\n\t\t\tthis.data.html_data.original_container_html.find(\"li\").addBack().contents().filter(function() { return this.nodeType == 3; }).remove();\n\t\t},\n\t\tdefaults : { \n\t\t\tdata : false,\n\t\t\tajax : false,\n\t\t\tcorrect_state : true\n\t\t},\n\t\t_fn : {\n\t\t\tload_node : function (obj, s_call, e_call) { var _this = this; this.load_node_html(obj, function () { _this.__callback({ \"obj\" : _this._get_node(obj) }); s_call.call(this); }, e_call); },\n\t\t\t_is_loaded : function (obj) { \n\t\t\t\tobj = this._get_node(obj); \n\t\t\t\treturn obj == -1 || !obj || (!this._get_settings().html_data.ajax && !$.isFunction(this._get_settings().html_data.data)) || obj.is(\".jstree-open, .jstree-leaf\") || obj.children(\"ul\").children(\"li\").size() > 0;\n\t\t\t},\n\t\t\tload_node_html : function (obj, s_call, e_call) {\n\t\t\t\tvar d,\n\t\t\t\t\ts = this.get_settings().html_data,\n\t\t\t\t\terror_func = function () {},\n\t\t\t\t\tsuccess_func = function () {};\n\t\t\t\tobj = this._get_node(obj);\n\t\t\t\tif(obj && obj !== -1) {\n\t\t\t\t\tif(obj.data(\"jstree_is_loading\")) { return; }\n\t\t\t\t\telse { obj.data(\"jstree_is_loading\",true); }\n\t\t\t\t}\n\t\t\t\tswitch(!0) {\n\t\t\t\t\tcase ($.isFunction(s.data)):\n\t\t\t\t\t\ts.data.call(this, obj, $.proxy(function (d) {\n\t\t\t\t\t\t\tif(d && d !== \"\" && d.toString && d.toString().replace(/^[\\s\\n]+$/,\"\") !== \"\") {\n\t\t\t\t\t\t\t\td = $(d);\n\t\t\t\t\t\t\t\tif(!d.is(\"ul\")) { d = $(\"<ul />\").append(d); }\n\t\t\t\t\t\t\t\tif(obj == -1 || !obj) { this.get_container().children(\"ul\").empty().append(d.children()).find(\"li, a\").filter(function () { return !this.firstChild || !this.firstChild.tagName || this.firstChild.tagName !== \"INS\"; }).prepend(\"<ins class='jstree-icon'>&#160;</ins>\").end().filter(\"a\").children(\"ins:first-child\").not(\".jstree-icon\").addClass(\"jstree-icon\"); }\n\t\t\t\t\t\t\t\telse { obj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\"); obj.append(d).children(\"ul\").find(\"li, a\").filter(function () { return !this.firstChild || !this.firstChild.tagName || this.firstChild.tagName !== \"INS\"; }).prepend(\"<ins class='jstree-icon'>&#160;</ins>\").end().filter(\"a\").children(\"ins:first-child\").not(\".jstree-icon\").addClass(\"jstree-icon\"); obj.removeData(\"jstree_is_loading\"); }\n\t\t\t\t\t\t\t\tthis.clean_node(obj);\n\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(obj && obj !== -1) {\n\t\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.correct_state(obj);\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty();\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!s.data && !s.ajax):\n\t\t\t\t\t\tif(!obj || obj == -1) {\n\t\t\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t\t\t.children(\"ul\").empty()\n\t\t\t\t\t\t\t\t.append(this.data.html_data.original_container_html)\n\t\t\t\t\t\t\t\t.find(\"li, a\").filter(function () { return !this.firstChild || !this.firstChild.tagName || this.firstChild.tagName !== \"INS\"; }).prepend(\"<ins class='jstree-icon'>&#160;</ins>\").end()\n\t\t\t\t\t\t\t\t.filter(\"a\").children(\"ins:first-child\").not(\".jstree-icon\").addClass(\"jstree-icon\");\n\t\t\t\t\t\t\tthis.clean_node();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!!s.data && !s.ajax) || (!!s.data && !!s.ajax && (!obj || obj === -1)):\n\t\t\t\t\t\tif(!obj || obj == -1) {\n\t\t\t\t\t\t\td = $(s.data);\n\t\t\t\t\t\t\tif(!d.is(\"ul\")) { d = $(\"<ul />\").append(d); }\n\t\t\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t\t\t.children(\"ul\").empty().append(d.children())\n\t\t\t\t\t\t\t\t.find(\"li, a\").filter(function () { return !this.firstChild || !this.firstChild.tagName || this.firstChild.tagName !== \"INS\"; }).prepend(\"<ins class='jstree-icon'>&#160;</ins>\").end()\n\t\t\t\t\t\t\t\t.filter(\"a\").children(\"ins:first-child\").not(\".jstree-icon\").addClass(\"jstree-icon\");\n\t\t\t\t\t\t\tthis.clean_node();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase (!s.data && !!s.ajax) || (!!s.data && !!s.ajax && obj && obj !== -1):\n\t\t\t\t\t\tobj = this._get_node(obj);\n\t\t\t\t\t\terror_func = function (x, t, e) {\n\t\t\t\t\t\t\tvar ef = this.get_settings().html_data.ajax.error; \n\t\t\t\t\t\t\tif(ef) { ef.call(this, x, t, e); }\n\t\t\t\t\t\t\tif(obj != -1 && obj.length) {\n\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\tif(t === \"success\" && s.correct_state) { this.correct_state(obj); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(t === \"success\" && s.correct_state) { this.get_container().children(\"ul\").empty(); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(e_call) { e_call.call(this); }\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsuccess_func = function (d, t, x) {\n\t\t\t\t\t\t\tvar sf = this.get_settings().html_data.ajax.success; \n\t\t\t\t\t\t\tif(sf) { d = sf.call(this,d,t,x) || d; }\n\t\t\t\t\t\t\tif(d === \"\" || (d && d.toString && d.toString().replace(/^[\\s\\n]+$/,\"\") === \"\")) {\n\t\t\t\t\t\t\t\treturn error_func.call(this, x, t, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(d) {\n\t\t\t\t\t\t\t\td = $(d);\n\t\t\t\t\t\t\t\tif(!d.is(\"ul\")) { d = $(\"<ul />\").append(d); }\n\t\t\t\t\t\t\t\tif(obj == -1 || !obj) { this.get_container().children(\"ul\").empty().append(d.children()).find(\"li, a\").filter(function () { return !this.firstChild || !this.firstChild.tagName || this.firstChild.tagName !== \"INS\"; }).prepend(\"<ins class='jstree-icon'>&#160;</ins>\").end().filter(\"a\").children(\"ins:first-child\").not(\".jstree-icon\").addClass(\"jstree-icon\"); }\n\t\t\t\t\t\t\t\telse { obj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\"); obj.append(d).children(\"ul\").find(\"li, a\").filter(function () { return !this.firstChild || !this.firstChild.tagName || this.firstChild.tagName !== \"INS\"; }).prepend(\"<ins class='jstree-icon'>&#160;</ins>\").end().filter(\"a\").children(\"ins:first-child\").not(\".jstree-icon\").addClass(\"jstree-icon\"); obj.removeData(\"jstree_is_loading\"); }\n\t\t\t\t\t\t\t\tthis.clean_node(obj);\n\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(obj && obj !== -1) {\n\t\t\t\t\t\t\t\t\tobj.children(\"a.jstree-loading\").removeClass(\"jstree-loading\");\n\t\t\t\t\t\t\t\t\tobj.removeData(\"jstree_is_loading\");\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.correct_state(obj);\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif(s.correct_state) { \n\t\t\t\t\t\t\t\t\t\tthis.get_container().children(\"ul\").empty();\n\t\t\t\t\t\t\t\t\t\tif(s_call) { s_call.call(this); } \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\ts.ajax.context = this;\n\t\t\t\t\t\ts.ajax.error = error_func;\n\t\t\t\t\t\ts.ajax.success = success_func;\n\t\t\t\t\t\tif(!s.ajax.dataType) { s.ajax.dataType = \"html\"; }\n\t\t\t\t\t\tif($.isFunction(s.ajax.url)) { s.ajax.url = s.ajax.url.call(this, obj); }\n\t\t\t\t\t\tif($.isFunction(s.ajax.data)) { s.ajax.data = s.ajax.data.call(this, obj); }\n\t\t\t\t\t\t$.ajax(s.ajax);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// include the HTML data plugin by default\n\t$.jstree.defaults.plugins.push(\"html_data\");\n})(jQuery);\n//*/\n\n/* \n * jsTree themeroller plugin\n * Adds support for jQuery UI themes. Include this at the end of your plugins list, also make sure \"themes\" is not included.\n */\n(function ($) {\n\t$.jstree.plugin(\"themeroller\", {\n\t\t__init : function () {\n\t\t\tvar s = this._get_settings().themeroller;\n\t\t\tthis.get_container()\n\t\t\t\t.addClass(\"ui-widget-content\")\n\t\t\t\t.addClass(\"jstree-themeroller\")\n\t\t\t\t.delegate(\"a\",\"mouseenter.jstree\", function (e) {\n\t\t\t\t\tif(!$(e.currentTarget).hasClass(\"jstree-loading\")) {\n\t\t\t\t\t\t$(this).addClass(s.item_h);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.delegate(\"a\",\"mouseleave.jstree\", function () {\n\t\t\t\t\t$(this).removeClass(s.item_h);\n\t\t\t\t})\n\t\t\t\t.bind(\"init.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tdata.inst.get_container().find(\"> ul > li > .jstree-loading > ins\").addClass(\"ui-icon-refresh\");\n\t\t\t\t\t\tthis._themeroller(data.inst.get_container().find(\"> ul > li\"));\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"open_node.jstree create_node.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tthis._themeroller(data.rslt.obj);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"loaded.jstree refresh.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tthis._themeroller();\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"close_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tthis._themeroller(data.rslt.obj);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"delete_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tthis._themeroller(data.rslt.parent);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"correct_state.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tdata.rslt.obj\n\t\t\t\t\t\t\t.children(\"ins.jstree-icon\").removeClass(s.opened + \" \" + s.closed + \" ui-icon\").end()\n\t\t\t\t\t\t\t.find(\"> a > ins.ui-icon\")\n\t\t\t\t\t\t\t\t.filter(function() { \n\t\t\t\t\t\t\t\t\treturn this.className.toString()\n\t\t\t\t\t\t\t\t\t\t.replace(s.item_clsd,\"\").replace(s.item_open,\"\").replace(s.item_leaf,\"\")\n\t\t\t\t\t\t\t\t\t\t.indexOf(\"ui-icon-\") === -1; \n\t\t\t\t\t\t\t\t}).removeClass(s.item_open + \" \" + s.item_clsd).addClass(s.item_leaf || \"jstree-no-icon\");\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"select_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tdata.rslt.obj.children(\"a\").addClass(s.item_a);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"deselect_node.jstree deselect_all.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t\t.find(\"a.\" + s.item_a).removeClass(s.item_a).end()\n\t\t\t\t\t\t\t.find(\"a.jstree-clicked\").addClass(s.item_a);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"dehover_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tdata.rslt.obj.children(\"a\").removeClass(s.item_h);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"hover_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tthis.get_container()\n\t\t\t\t\t\t\t.find(\"a.\" + s.item_h).not(data.rslt.obj).removeClass(s.item_h);\n\t\t\t\t\t\tdata.rslt.obj.children(\"a\").addClass(s.item_h);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"move_node.jstree\", $.proxy(function (e, data) {\n\t\t\t\t\t\tthis._themeroller(data.rslt.o);\n\t\t\t\t\t\tthis._themeroller(data.rslt.op);\n\t\t\t\t\t}, this));\n\t\t},\n\t\t__destroy : function () {\n\t\t\tvar s = this._get_settings().themeroller,\n\t\t\t\tc = [ \"ui-icon\" ];\n\t\t\t$.each(s, function (i, v) {\n\t\t\t\tv = v.split(\" \");\n\t\t\t\tif(v.length) { c = c.concat(v); }\n\t\t\t});\n\t\t\tthis.get_container()\n\t\t\t\t.removeClass(\"ui-widget-content\")\n\t\t\t\t.find(\".\" + c.join(\", .\")).removeClass(c.join(\" \"));\n\t\t},\n\t\t_fn : {\n\t\t\t_themeroller : function (obj) {\n\t\t\t\tvar s = this._get_settings().themeroller;\n\t\t\t\tobj = (!obj || obj == -1) ? this.get_container_ul() : this._get_node(obj);\n\t\t\t\tobj = (!obj || obj == -1) ? this.get_container_ul() : obj.parent();\n\t\t\t\tobj\n\t\t\t\t\t.find(\"li.jstree-closed\")\n\t\t\t\t\t\t.children(\"ins.jstree-icon\").removeClass(s.opened).addClass(\"ui-icon \" + s.closed).end()\n\t\t\t\t\t\t.children(\"a\").addClass(s.item)\n\t\t\t\t\t\t\t.children(\"ins.jstree-icon\").addClass(\"ui-icon\")\n\t\t\t\t\t\t\t\t.filter(function() { \n\t\t\t\t\t\t\t\t\treturn this.className.toString()\n\t\t\t\t\t\t\t\t\t\t.replace(s.item_clsd,\"\").replace(s.item_open,\"\").replace(s.item_leaf,\"\")\n\t\t\t\t\t\t\t\t\t\t.indexOf(\"ui-icon-\") === -1; \n\t\t\t\t\t\t\t\t}).removeClass(s.item_leaf + \" \" + s.item_open).addClass(s.item_clsd || \"jstree-no-icon\")\n\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.end()\n\t\t\t\t\t.end()\n\t\t\t\t\t.find(\"li.jstree-open\")\n\t\t\t\t\t\t.children(\"ins.jstree-icon\").removeClass(s.closed).addClass(\"ui-icon \" + s.opened).end()\n\t\t\t\t\t\t.children(\"a\").addClass(s.item)\n\t\t\t\t\t\t\t.children(\"ins.jstree-icon\").addClass(\"ui-icon\")\n\t\t\t\t\t\t\t\t.filter(function() { \n\t\t\t\t\t\t\t\t\treturn this.className.toString()\n\t\t\t\t\t\t\t\t\t\t.replace(s.item_clsd,\"\").replace(s.item_open,\"\").replace(s.item_leaf,\"\")\n\t\t\t\t\t\t\t\t\t\t.indexOf(\"ui-icon-\") === -1; \n\t\t\t\t\t\t\t\t}).removeClass(s.item_leaf + \" \" + s.item_clsd).addClass(s.item_open || \"jstree-no-icon\")\n\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.end()\n\t\t\t\t\t.end()\n\t\t\t\t\t.find(\"li.jstree-leaf\")\n\t\t\t\t\t\t.children(\"ins.jstree-icon\").removeClass(s.closed + \" ui-icon \" + s.opened).end()\n\t\t\t\t\t\t.children(\"a\").addClass(s.item)\n\t\t\t\t\t\t\t.children(\"ins.jstree-icon\").addClass(\"ui-icon\")\n\t\t\t\t\t\t\t\t.filter(function() { \n\t\t\t\t\t\t\t\t\treturn this.className.toString()\n\t\t\t\t\t\t\t\t\t\t.replace(s.item_clsd,\"\").replace(s.item_open,\"\").replace(s.item_leaf,\"\")\n\t\t\t\t\t\t\t\t\t\t.indexOf(\"ui-icon-\") === -1; \n\t\t\t\t\t\t\t\t}).removeClass(s.item_clsd + \" \" + s.item_open).addClass(s.item_leaf || \"jstree-no-icon\");\n\t\t\t}\n\t\t},\n\t\tdefaults : {\n\t\t\t\"opened\"\t: \"ui-icon-triangle-1-se\",\n\t\t\t\"closed\"\t: \"ui-icon-triangle-1-e\",\n\t\t\t\"item\"\t\t: \"ui-state-default\",\n\t\t\t\"item_h\"\t: \"ui-state-hover\",\n\t\t\t\"item_a\"\t: \"ui-state-active\",\n\t\t\t\"item_open\"\t: \"ui-icon-folder-open\",\n\t\t\t\"item_clsd\"\t: \"ui-icon-folder-collapsed\",\n\t\t\t\"item_leaf\"\t: \"ui-icon-document\"\n\t\t}\n\t});\n\t$(function() {\n\t\tvar css_string = '' + \n\t\t\t'.jstree-themeroller .ui-icon { overflow:visible; } ' + \n\t\t\t'.jstree-themeroller a { padding:0 2px; } ' + \n\t\t\t'.jstree-themeroller .jstree-no-icon { display:none; }';\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"jstree\" });\n\t});\n})(jQuery);\n//*/\n\n/* \n * jsTree unique plugin\n * Forces different names amongst siblings (still a bit experimental)\n * NOTE: does not check language versions (it will not be possible to have nodes with the same title, even in different languages)\n */\n(function ($) {\n\t$.jstree.plugin(\"unique\", {\n\t\t__init : function () {\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"before.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tvar nms = [], res = true, p, t;\n\t\t\t\t\t\tif(data.func == \"move_node\") {\n\t\t\t\t\t\t\t// obj, ref, position, is_copy, is_prepared, skip_check\n\t\t\t\t\t\t\tif(data.args[4] === true) {\n\t\t\t\t\t\t\t\tif(data.args[0].o && data.args[0].o.length) {\n\t\t\t\t\t\t\t\t\tdata.args[0].o.children(\"a\").each(function () { nms.push($(this).text().replace(/^\\s+/g,\"\")); });\n\t\t\t\t\t\t\t\t\tres = this._check_unique(nms, data.args[0].np.find(\"> ul > li\").not(data.args[0].o), \"move_node\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(data.func == \"create_node\") {\n\t\t\t\t\t\t\t// obj, position, js, callback, is_loaded\n\t\t\t\t\t\t\tif(data.args[4] || this._is_loaded(data.args[0])) {\n\t\t\t\t\t\t\t\tp = this._get_node(data.args[0]);\n\t\t\t\t\t\t\t\tif(data.args[1] && (data.args[1] === \"before\" || data.args[1] === \"after\")) {\n\t\t\t\t\t\t\t\t\tp = this._get_parent(data.args[0]);\n\t\t\t\t\t\t\t\t\tif(!p || p === -1) { p = this.get_container(); }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof data.args[2] === \"string\") { nms.push(data.args[2]); }\n\t\t\t\t\t\t\t\telse if(!data.args[2] || !data.args[2].data) { nms.push(this._get_string(\"new_node\")); }\n\t\t\t\t\t\t\t\telse { nms.push(data.args[2].data); }\n\t\t\t\t\t\t\t\tres = this._check_unique(nms, p.find(\"> ul > li\"), \"create_node\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(data.func == \"rename_node\") {\n\t\t\t\t\t\t\t// obj, val\n\t\t\t\t\t\t\tnms.push(data.args[1]);\n\t\t\t\t\t\t\tt = this._get_node(data.args[0]);\n\t\t\t\t\t\t\tp = this._get_parent(t);\n\t\t\t\t\t\t\tif(!p || p === -1) { p = this.get_container(); }\n\t\t\t\t\t\t\tres = this._check_unique(nms, p.find(\"> ul > li\").not(t), \"rename_node\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!res) {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this));\n\t\t},\n\t\tdefaults : { \n\t\t\terror_callback : $.noop\n\t\t},\n\t\t_fn : { \n\t\t\t_check_unique : function (nms, p, func) {\n\t\t\t\tvar cnms = [], ok = true;\n\t\t\t\tp.children(\"a\").each(function () { cnms.push($(this).text().replace(/^\\s+/g,\"\")); });\n\t\t\t\tif(!cnms.length || !nms.length) { return true; }\n\t\t\t\t$.each(nms, function (i, v) {\n\t\t\t\t\tif($.inArray(v, cnms) !== -1) {\n\t\t\t\t\t\tok = false;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(!ok) {\n\t\t\t\t\tthis._get_settings().unique.error_callback.call(null, nms, p, func);\n\t\t\t\t}\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tcheck_move : function () {\n\t\t\t\tif(!this.__call_old()) { return false; }\n\t\t\t\tvar p = this._get_move(), nms = [];\n\t\t\t\tif(p.o && p.o.length) {\n\t\t\t\t\tp.o.children(\"a\").each(function () { nms.push($(this).text().replace(/^\\s+/g,\"\")); });\n\t\t\t\t\treturn this._check_unique(nms, p.np.find(\"> ul > li\").not(p.o), \"check_move\");\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n/*\n * jsTree wholerow plugin\n * Makes select and hover work on the entire width of the node\n * MAY BE HEAVY IN LARGE DOM\n */\n(function ($) {\n\t$.jstree.plugin(\"wholerow\", {\n\t\t__init : function () {\n\t\t\tif(!this.data.ui) { throw \"jsTree wholerow: jsTree UI plugin not included.\"; }\n\t\t\tthis.data.wholerow.html = false;\n\t\t\tthis.data.wholerow.to = false;\n\t\t\tthis.get_container()\n\t\t\t\t.bind(\"init.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tthis._get_settings().core.animation = 0;\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"open_node.jstree create_node.jstree clean_node.jstree loaded.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tthis._prepare_wholerow_span( data && data.rslt && data.rslt.obj ? data.rslt.obj : -1 );\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"search.jstree clear_search.jstree reopen.jstree after_open.jstree after_close.jstree create_node.jstree delete_node.jstree clean_node.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tif(this.data.to) { clearTimeout(this.data.to); }\n\t\t\t\t\t\tthis.data.to = setTimeout( (function (t, o) { return function() { t._prepare_wholerow_ul(o); }; })(this,  data && data.rslt && data.rslt.obj ? data.rslt.obj : -1), 0);\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"deselect_all.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tthis.get_container().find(\" > .jstree-wholerow .jstree-clicked\").removeClass(\"jstree-clicked \" + (this.data.themeroller ? this._get_settings().themeroller.item_a : \"\" ));\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"select_node.jstree deselect_node.jstree \", $.proxy(function (e, data) { \n\t\t\t\t\t\tdata.rslt.obj.each(function () { \n\t\t\t\t\t\t\tvar ref = data.inst.get_container().find(\" > .jstree-wholerow li:visible:eq(\" + ( parseInt((($(this).offset().top - data.inst.get_container().offset().top + data.inst.get_container()[0].scrollTop) / data.inst.data.core.li_height),10)) + \")\");\n\t\t\t\t\t\t\t// ref.children(\"a\")[e.type === \"select_node\" ? \"addClass\" : \"removeClass\"](\"jstree-clicked\");\n\t\t\t\t\t\t\tref.children(\"a\").attr(\"class\",data.rslt.obj.children(\"a\").attr(\"class\"));\n\t\t\t\t\t\t});\n\t\t\t\t\t}, this))\n\t\t\t\t.bind(\"hover_node.jstree dehover_node.jstree\", $.proxy(function (e, data) { \n\t\t\t\t\t\tthis.get_container().find(\" > .jstree-wholerow .jstree-hovered\").removeClass(\"jstree-hovered \" + (this.data.themeroller ? this._get_settings().themeroller.item_h : \"\" ));\n\t\t\t\t\t\tif(e.type === \"hover_node\") {\n\t\t\t\t\t\t\tvar ref = this.get_container().find(\" > .jstree-wholerow li:visible:eq(\" + ( parseInt(((data.rslt.obj.offset().top - this.get_container().offset().top + this.get_container()[0].scrollTop) / this.data.core.li_height),10)) + \")\");\n\t\t\t\t\t\t\t// ref.children(\"a\").addClass(\"jstree-hovered\");\n\t\t\t\t\t\t\tref.children(\"a\").attr(\"class\",data.rslt.obj.children(\".jstree-hovered\").attr(\"class\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\".jstree-wholerow-span, ins.jstree-icon, li\", \"click.jstree\", function (e) {\n\t\t\t\t\t\tvar n = $(e.currentTarget);\n\t\t\t\t\t\tif(e.target.tagName === \"A\" || (e.target.tagName === \"INS\" && n.closest(\"li\").is(\".jstree-open, .jstree-closed\"))) { return; }\n\t\t\t\t\t\tn.closest(\"li\").children(\"a:visible:eq(0)\").click();\n\t\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\t})\n\t\t\t\t.delegate(\"li\", \"mouseover.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\t\tif($(e.currentTarget).children(\".jstree-hovered, .jstree-clicked\").length) { return false; }\n\t\t\t\t\t\tthis.hover_node(e.currentTarget);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}, this))\n\t\t\t\t.delegate(\"li\", \"mouseleave.jstree\", $.proxy(function (e) {\n\t\t\t\t\t\tif($(e.currentTarget).children(\"a\").hasClass(\"jstree-hovered\").length) { return; }\n\t\t\t\t\t\tthis.dehover_node(e.currentTarget);\n\t\t\t\t\t}, this));\n\t\t\tif(is_ie7 || is_ie6) {\n\t\t\t\t$.vakata.css.add_sheet({ str : \".jstree-\" + this.get_index() + \" { position:relative; } \", title : \"jstree\" });\n\t\t\t}\n\t\t},\n\t\tdefaults : {\n\t\t},\n\t\t__destroy : function () {\n\t\t\tthis.get_container().children(\".jstree-wholerow\").remove();\n\t\t\tthis.get_container().find(\".jstree-wholerow-span\").remove();\n\t\t},\n\t\t_fn : {\n\t\t\t_prepare_wholerow_span : function (obj) {\n\t\t\t\tobj = !obj || obj == -1 ? this.get_container().find(\"> ul > li\") : this._get_node(obj);\n\t\t\t\tif(obj === false) { return; } // added for removing root nodes\n\t\t\t\tobj.each(function () {\n\t\t\t\t\t$(this).find(\"li\").addBack().each(function () {\n\t\t\t\t\t\tvar $t = $(this);\n\t\t\t\t\t\tif($t.children(\".jstree-wholerow-span\").length) { return true; }\n\t\t\t\t\t\t$t.prepend(\"<span class='jstree-wholerow-span' style='width:\" + ($t.parentsUntil(\".jstree\",\"li\").length * 18) + \"px;'>&#160;</span>\");\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\t_prepare_wholerow_ul : function () {\n\t\t\t\tvar o = this.get_container().children(\"ul\").eq(0), h = o.html();\n\t\t\t\to.addClass(\"jstree-wholerow-real\");\n\t\t\t\tif(this.data.wholerow.last_html !== h) {\n\t\t\t\t\tthis.data.wholerow.last_html = h;\n\t\t\t\t\tthis.get_container().children(\".jstree-wholerow\").remove();\n\t\t\t\t\tthis.get_container().append(\n\t\t\t\t\t\to.clone().removeClass(\"jstree-wholerow-real\")\n\t\t\t\t\t\t\t.wrapAll(\"<div class='jstree-wholerow' />\").parent()\n\t\t\t\t\t\t\t.width(o.parent()[0].scrollWidth)\n\t\t\t\t\t\t\t.css(\"top\", (o.height() + ( is_ie7 ? 5 : 0)) * -1 )\n\t\t\t\t\t\t\t.find(\"li[id]\").each(function () { this.removeAttribute(\"id\"); }).end()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t$(function() {\n\t\tvar css_string = '' + \n\t\t\t'.jstree .jstree-wholerow-real { position:relative; z-index:1; } ' + \n\t\t\t'.jstree .jstree-wholerow-real li { cursor:pointer; } ' + \n\t\t\t'.jstree .jstree-wholerow-real a { border-left-color:transparent !important; border-right-color:transparent !important; } ' + \n\t\t\t'.jstree .jstree-wholerow { position:relative; z-index:0; height:0; } ' + \n\t\t\t'.jstree .jstree-wholerow ul, .jstree .jstree-wholerow li { width:100%; } ' + \n\t\t\t'.jstree .jstree-wholerow, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow li, .jstree .jstree-wholerow a { margin:0 !important; padding:0 !important; } ' + \n\t\t\t'.jstree .jstree-wholerow, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow li { background:transparent !important; }' + \n\t\t\t'.jstree .jstree-wholerow ins, .jstree .jstree-wholerow span, .jstree .jstree-wholerow input { display:none !important; }' + \n\t\t\t'.jstree .jstree-wholerow a, .jstree .jstree-wholerow a:hover { text-indent:-9999px; !important; width:100%; padding:0 !important; border-right-width:0px !important; border-left-width:0px !important; } ' + \n\t\t\t'.jstree .jstree-wholerow-span { position:absolute; left:0; margin:0px; padding:0; height:18px; border-width:0; padding:0; z-index:0; }';\n\t\tif(is_ff2) {\n\t\t\tcss_string += '' + \n\t\t\t\t'.jstree .jstree-wholerow a { display:block; height:18px; margin:0; padding:0; border:0; } ' + \n\t\t\t\t'.jstree .jstree-wholerow-real a { border-color:transparent !important; } ';\n\t\t}\n\t\tif(is_ie7 || is_ie6) {\n\t\t\tcss_string += '' + \n\t\t\t\t'.jstree .jstree-wholerow, .jstree .jstree-wholerow li, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow a { margin:0; padding:0; line-height:18px; } ' + \n\t\t\t\t'.jstree .jstree-wholerow a { display:block; height:18px; line-height:18px; overflow:hidden; } ';\n\t\t}\n\t\t$.vakata.css.add_sheet({ str : css_string, title : \"jstree\" });\n\t});\n})(jQuery);\n//*/\n\n/*\n* jsTree model plugin\n* This plugin gets jstree to use a class model to retrieve data, creating great dynamism\n*/\n(function ($) {\n\tvar nodeInterface = [\"getChildren\",\"getChildrenCount\",\"getAttr\",\"getName\",\"getProps\"],\n\t\tvalidateInterface = function(obj, inter) {\n\t\t\tvar valid = true;\n\t\t\tobj = obj || {};\n\t\t\tinter = [].concat(inter);\n\t\t\t$.each(inter, function (i, v) {\n\t\t\t\tif(!$.isFunction(obj[v])) { valid = false; return false; }\n\t\t\t});\n\t\t\treturn valid;\n\t\t};\n\t$.jstree.plugin(\"model\", {\n\t\t__init : function () {\n\t\t\tif(!this.data.json_data) { throw \"jsTree model: jsTree json_data plugin not included.\"; }\n\t\t\tthis._get_settings().json_data.data = function (n, b) {\n\t\t\t\tvar obj = (n == -1) ? this._get_settings().model.object : n.data(\"jstree_model\");\n\t\t\t\tif(!validateInterface(obj, nodeInterface)) { return b.call(null, false); }\n\t\t\t\tif(this._get_settings().model.async) {\n\t\t\t\t\tobj.getChildren($.proxy(function (data) {\n\t\t\t\t\t\tthis.model_done(data, b);\n\t\t\t\t\t}, this));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.model_done(obj.getChildren(), b);\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tdefaults : {\n\t\t\tobject : false,\n\t\t\tid_prefix : false,\n\t\t\tasync : false\n\t\t},\n\t\t_fn : {\n\t\t\tmodel_done : function (data, callback) {\n\t\t\t\tvar ret = [], \n\t\t\t\t\ts = this._get_settings(),\n\t\t\t\t\t_this = this;\n\n\t\t\t\tif(!$.isArray(data)) { data = [data]; }\n\t\t\t\t$.each(data, function (i, nd) {\n\t\t\t\t\tvar r = nd.getProps() || {};\n\t\t\t\t\tr.attr = nd.getAttr() || {};\n\t\t\t\t\tif(nd.getChildrenCount()) { r.state = \"closed\"; }\n\t\t\t\t\tr.data = nd.getName();\n\t\t\t\t\tif(!$.isArray(r.data)) { r.data = [r.data]; }\n\t\t\t\t\tif(_this.data.types && $.isFunction(nd.getType)) {\n\t\t\t\t\t\tr.attr[s.types.type_attr] = nd.getType();\n\t\t\t\t\t}\n\t\t\t\t\tif(r.attr.id && s.model.id_prefix) { r.attr.id = s.model.id_prefix + r.attr.id; }\n\t\t\t\t\tif(!r.metadata) { r.metadata = { }; }\n\t\t\t\t\tr.metadata.jstree_model = nd;\n\t\t\t\t\tret.push(r);\n\t\t\t\t});\n\t\t\t\tcallback.call(null, ret);\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n//*/\n\n})();","/* ------------------------------------------------------------------------\n * Anmeldeverfahren und -sets\n * ------------------------------------------------------------------------ */\n\nSTUDIP.domReady(function () {\n    $(document).on('change', 'tr.course input', function(i) {\n        STUDIP.Admission.toggleNotSavedAlert();\n    });\n\n    $('a.userlist-delete-user').on('click', function(event) {\n        $(this).closest('tr').remove();\n        return false;\n    });\n});\n"],"sourceRoot":""}