{"version":3,"sources":["webpack:///src/assets/js/vendor/jquery-3.6.0.min.js","webpack:///src/assets/js/selectize.js","webpack:///src/assets/js/bootstrap.min.js","webpack:///src/assets/js/wow.min.js","webpack:///src/assets/js/meanmenu/jquery.meanmenu.js","webpack:///src/assets/js/sparkline/jquery.sparkline.min.js","webpack:///src/assets/js/bootstrap-select/bootstrap-select.js","webpack:///src/assets/js/sparkline/sparkline-active.js","webpack:///src/assets/js/flot/jquery.flot.js","webpack:///src/assets/js/flot/jquery.flot.resize.js","webpack:///src/assets/js/flot/flot-active.js","webpack:///src/assets/js/knob/jquery.knob.js","webpack:///src/assets/js/knob/jquery.appear.js","webpack:///src/assets/js/knob/knob-active.js","webpack:///src/assets/js/wave/waves.min.js","webpack:///src/assets/js/wave/wave-active.js","webpack:///src/assets/js/animation/animation-active.js","webpack:///src/assets/js/chat/jquery.chat.js","webpack:///src/assets/js/todo/jquery.todo.js","webpack:///src/assets/js/plugins.js","webpack:///src/assets/js/main.js","webpack:///node_modules/swiper/dist/js/swiper.js","webpack:///src/assets/js/chosen/chosen.jquery.js","webpack:///node_modules/jquery/dist/jquery.js","webpack:///src/assets/js/jquery-ui.js","webpack:///src/assets/js/min/scripts-min.js","webpack:///src/assets/js/min/jquery.datetimepicker.full.min.js"],"names":[],"mappings":"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CAA6C,wGAAwG,oBAAoB,6BAA6B,iBAAiB,6BAA6B,0BAA0B,0BAA0B,mDAAmD,IAAI,0EAA0E,YAAY,KAAK,8CAA8C,YAAY,uCAAuC,IAAI,mEAAmE,SAAS,aAAa,SAAS,qCAAqC,gBAAgB,oEAAoE,IAAI,mDAAmD,SAAS,uCAAuC,MAAM,IAAI,6CAA6C,SAAS,0CAA0C,sBAAsB,4CAA4C,4DAA4D,6CAA6C,sCAAsC,sCAAsC,wBAAwB,uCAAuC,MAAM,8DAA8D,YAAY,qCAAqC,IAAI,yDAAyD,SAAS,oEAAoE,mCAAmC,UAAU,qBAAqB,gBAAgB,kBAAkB,iBAAiB,gBAAgB,SAAS,mCAAmC,cAAc,8QAA8Q,6BAA6B,oDAAoD,iCAAiC,qEAAqE,GAAG,GAAG,a;CCD/rQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;;AAE5D;AACA;AACA,SAAS;AACT;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;;AAGA;AACA,kEAAkE,UAAU;AAC5E;AACA;AACA,iEAAiE,WAAW;AAC5E;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;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QAAQ,8BAA8B,4BAA4B,YAAY,WAAW,iEAAiE,qCAAqC,UAAU,0NAA0N,YAAY,cAAc,iBAAiB,gCAAgC,yCAAyC,oBAAoB,kBAAkB,6HAA6H,iBAAiB,qBAAqB,cAAc,8UAA8U,SAAS,QAAQ,8BAA8B,4BAA4B,YAAY,WAAW,sEAAsE,mCAAmC,sEAAsE,kBAAkB,wBAAwB,yBAAyB,8CAA8C,+GAA+G,gCAAgC,iEAAiE,iBAAiB,iCAAiC,4CAA4C,QAAQ,IAAI,qDAAqD,iBAAiB,QAAQ,WAAW,iCAAiC,gCAAgC,iEAAiE,sCAAsC,2BAA2B,uBAAuB,6BAA6B,4BAA4B,qBAAqB,SAAS,mBAAmB,uEAAuE,EAAE,EAAE,iB;CCJ1kU;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,KAAK,yBAAyB;AAC9B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,uBAAuB;AAC9B,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB,gBAAgB;AAChB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,0CAA0C,EAAE;AAC5C;AACA,oCAAoC,EAAE,oBAAoB,EAAE;AAC5D,KAAK;AACL;AACA;AACA,yCAAyC,EAAE,+BAA+B,EAAE;AAC5E,iDAAiD,EAAE,qCAAqC,EAAE;AAC1F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mIAAmI;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oCAAoC;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE,8CAA8C,EAAE;AACvF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,8BAA8B;AAC9B;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D,EAAE;AAC5D,6DAA6D,EAAE;AAC/D;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA,8CAA8C,IAAI;AAClD,oDAAoD,IAAI;AACxD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA,qBAAqB,eAAe;AACpC;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,yDAAyD;AAC3F,uCAAuC,wGAAwG;AAC/I;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;;AAGD,CAAC;;CC/1DD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,CAAC,U;CC3CD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW,+BAA+B,SAAS,SAAS,SAAS,SAAS,gBAAgB,oBAAoB,YAAY,WAAW,sBAAsB,sBAAsB,sBAAsB,YAAY,WAAW,sBAAsB,sBAAsB,sBAAsB,WAAW,yCAAyC,KAAK,gDAAgD,uBAAuB,8BAA8B,yCAAyC,+BAA+B,+BAA+B,+BAA+B,mBAAmB,UAAU,mBAAmB,sCAAsC,sBAAsB,mCAAmC,MAAM,GAAG,8BAA8B,iCAAiC,mBAAmB,oDAAoD,yCAAyC,yBAAyB,4BAA4B,uBAAuB,uBAAuB,IAAI,eAAe,IAAI,eAAe,IAAI,wFAAwF,wBAAwB,IAAI,eAAe,IAAI,eAAe,IAAI,uIAAuI,sMAAsM,sPAAsP,sBAAsB,EAAE,cAAc,EAAE,cAAc,EAAE,mFAAmF,uJAAuJ,mCAAmC,+CAA+C,KAAK,gCAAgC,iCAAiC,kBAAkB,k2BAAk2B;;AAEpjG;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,mBAAmB,0DAA0D;AAC7E;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;;AAEnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6DAA6D;AAC7D;AACA,6BAA6B;;AAE7B;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA,aAAa,OAAO;;AAEpB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,gEAAgE;AAChE;AACA;AACA,YAAY,OAAO;AACnB;AACA,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,QAAQ;AACpB,aAAa,OAAO;;AAEpB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,YAAY,OAAO;AACnB;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ,yCAAyC;AAC7D;AACA,YAAY,QAAQ,uCAAuC;AAC3D;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,iBAAiB;AAC7B;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D,qCAAqC,wBAAwB;AAC7D,yCAAyC,mBAAmB;AAC5D,kCAAkC,kBAAkB;AACpD,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,qCAAqC,cAAc;AACnD,qCAAqC,cAAc;AACnD;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,eAAe;;AAEtC;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,eAAe;;AAEtC;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,0BAA0B;AACjD;AACA,uBAAuB,0BAA0B;AACjD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,cAAc;AACzC,yCAAyC;;AAEzC;AACA,uCAAuC;AACvC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA,6DAA6D,UAAU,EAAE;AACzE;;AAEA;AACA;AACA,wBAAwB;AACxB,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;;AAEA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB;;AAExB,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB,kBAAkB;;AAEzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;;AAEA;AACA;;AAEA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb,uBAAuB,mBAAmB;AAC1C;AACA,gCAAgC;;AAEhC;AACA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE,iCAAiC,wCAAwC;;AAEzE;AACA;AACA,qCAAqC,gFAAgF;AACrH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B;;AAE7B;;AAEA;AACA;;AAEA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;;AAEA;AACA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,wDAAwD;;AAExD;AACA,8DAA8D;;AAE9D;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,UAAU;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA,yCAAyC,sBAAsB;AAC/D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;;AAE7C;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yDAAyD,yCAAyC;;AAElG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,wE;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,2BAA2B,uBAAuB;AAClD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,+BAA+B,uBAAuB;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,mBAAmB;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,mBAAmB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+EAA+E,6DAA6D,EAAE;AAC9I;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;;AAEA,2BAA2B,oBAAoB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wHAAwH,mCAAmC,SAAS,qCAAqC;AACzM;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA,wEAAwE;AACxE;AACA,sEAAsE;AACtE;AACA,oEAAoE;AACpE,2GAA2G,WAAW;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAA4B,8BAA8B,qCAAqC;AACpJ;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+BAA+B,mBAAmB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD,gCAAgC,EAAE;AACvF;;AAEA;AACA;AACA;AACA,qDAAqD,cAAc,EAAE;AACrE;;AAEA;AACA;AACA,iDAAiD,gCAAgC,EAAE;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8BAA8B;;AAEpE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,uBAAuB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,sCAAsC;;AAEvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,kBAAkB,EAAE;AACrD;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;;AAEA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;CC/lGD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY,wCAAwC,+GAA+G,SAAS,QAAQ,UAAU,oBAAoB,iBAAiB,mBAAmB,aAAa,cAAc,aAAa,UAAU,yBAAyB,EAAE,iBAAiB,IAAI,KAAK,qBAAqB,mBAAmB,aAAa,cAAc,qBAAqB,KAAK,KAAK,eAAe,cAAc,OAAO,gBAAgB,cAAc,MAAM,wBAAwB,KAAK,gBAAgB,QAAQ,iBAAiB,mBAAmB,aAAa,MAAM,kBAAkB,8BAA8B,sBAAsB,uBAAuB,wBAAwB,oBAAoB,IAAI,SAAS,KAAK,YAAY,eAAe,cAAc,aAAa,OAAO,qBAAqB,KAAK,KAAK,cAAc,8BAA8B,yCAAyC,0BAA0B,2BAA2B,WAAW,KAAK,YAAY,MAAM,OAAO,aAAa,0BAA0B,6BAA6B,KAAK,qBAAqB,UAAU,6BAA6B,mCAAmC,qIAAqI,+BAA+B,wBAAwB,QAAQ,GAAG,4BAA4B,kCAAkC,4JAA4J,IAAI;;AAE3nD;AACA,mBAAmB,GAAG;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;CC1DD;AACA;;AAEA;AACA,kDAAkD,2BAA2B;AAC7E;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA,wDAAwD,SAAS;AACjE,0BAA0B,SAAS;AACnC,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;;AAEA,4BAA4B,SAAS;AACrC,4BAA4B,SAAS;AACrC,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;;;;AAKL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;;AAGL;AACA;AACA;;;AAGA;AACA,uDAAuD,2BAA2B;AAClF;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;;;;AAIA,CAAC,U;CCvXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB,WAAW;AACjC,uBAAuB,kBAAkB;AACzC,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,uBAAuB;AACvB,sBAAsB;AACtB,mBAAmB;AACnB;AACA,4BAA4B;AAC5B,2BAA2B;AAC3B,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,mDAAmD;AACnD,gDAAgD,+BAA+B;AAC/E;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC,qCAAqC;AACrC,mCAAmC;AACnC,sCAAsC;AACtC,mCAAmC;AACnC,yCAAyC;AACzC,mCAAmC;AACnC,kCAAkC,eAAe;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C,QAAQ;;AAEtD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,qBAAqB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,G;CChyBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,CAAC,U;CCrJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,KAAK,GAAG,oBAAoB;AAC5B,GAAG;AACH,K;;AAEA,CAAC,U;CChCD,eAAe,aAAa,2DAA2D,iCAAiC,sEAAsE,gDAAgD,aAAa,cAAc,8BAA8B,cAAc,4CAA4C,cAAc,eAAe,wCAAwC,cAAc,0BAA0B,cAAc,gBAAgB,+IAA+I,cAAc,WAAW,aAAa,sBAAsB,mGAAmG,4EAA4E,cAAc,SAAS,qDAAqD,GAAG,SAAS,kBAAkB,MAAM,qCAAqC,mLAAmL,yCAAyC,2CAA2C,sBAAsB,OAAO,8RAA8R,mDAAmD,IAAI,iBAAiB,SAAS,UAAU,IAAI,KAAK,cAAc,oCAAoC,wCAAwC,gBAAgB,EAAE,qEAAqE,IAAI,MAAM,kBAAkB,SAAS,cAAc,WAAW,aAAa,mFAAmF,sDAAsD,iCAAiC,mBAAmB,wBAAwB,kEAAkE,eAAe,sCAAsC,gHAAgH,iBAAiB,iHAAiH,+LAA+L,WAAW,qGAAqG,4CAA4C,yBAAyB,UAAU,oCAAoC,2DAA2D,mBAAmB,kJAAkJ,0DAA0D,wMAAwM,OAAO,wBAAwB,8PAA8P,2CAA2C,6KAA6K,oBAAoB,8EAA8E,IAAI,gBAAgB,8KAA8K,IAAI,kBAAkB,mBAAmB,yEAAyE,kCAAkC,qHAAqH,oEAAoE,oCAAoC,uEAAuE,IAAI,iBAAiB,mBAAmB,yEAAyE,kCAAkC,uCAAuC,IAAI,iCAAiC,SAAS,kEAAkE,2BAA2B,aAAa,wFAAwF,0BAA0B,QAAQ,0BAA0B,oBAAoB,oBAAoB,iPAAiP,wBAAwB,kEAAkE,2BAA2B,IAAI,6KAA6K,wBAAwB,sBAAsB,UAAU,kEAAkE,QAAQ,2BAA2B,IAAI,6BAA6B,qCAAqC,mGAAmG,OAAO,yBAAyB,yBAAyB,kBAAkB,aAAa,eAAe,oBAAoB,WAAW,wBAAwB,uBAAuB,IAAI,mBAAmB,6BAA6B,UAAU,GAAG;AACjpM,qC;CCDA;AACA;;AAEA;;AAEA,CAAC,U;CCLD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF,CAAC,U;CCvUD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC,gB;CC3DD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B,6DAA6D;AAC1F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC,gB;CCvKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;CCvBA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;;AAIA,CAAC;;CC1FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,oBAAoB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oDAAoD;AACpD,0DAA0D;AAC1D;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,0CAA0C;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB,gDAAgD;AAChD;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,eAAe,WAAW;AAC1B,GAAG,YAAY;;AAEf;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB;AAChB,eAAe;AACf;AACA;AACA,KAAK;AACL,oDAAoD;AACpD,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,8BAA8B;AAC9B,4BAA4B;AAC5B,cAAc;AACd,wCAAwC;AACxC,4CAA4C;AAC5C,GAAG,UAAU;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,0CAA0C,oBAAoB;AAC9D,uEAAuE,iBAAiB;AACxF,6CAA6C,oBAAoB;AACjE,8CAA8C,qBAAqB;AACnE;AACA;AACA,qBAAqB,kCAAkC;AACvD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,yBAAyB,kBAAkB;AAC3C;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,gBAAgB;AACnC,+CAA+C,0BAA0B;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,qBAAqB,iBAAiB;AACtC,yFAAyF,mCAAmC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,qBAAqB,iBAAiB;AACtC,yFAAyF,sCAAsC;AAC/H;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,qBAAqB,iBAAiB;AACtC,yFAAyF,sCAAsC;AAC/H;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA,uCAAuC,gCAAgC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;;AAEpC;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,yCAAyC,mCAAmC;AAC5E;AACA,0CAA0C;AAC1C,uBAAuB,oBAAoB;AAC3C,iDAAiD,uCAAuC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA,kCAAkC,uBAAuB;AACzD,yCAAyC,8BAA8B;AACvE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA,mBAAmB,mBAAmB;AACtC;AACA,sCAAsC,2BAA2B;AACjE,+CAA+C,oCAAoC;AACnF;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;;AAEpC;AACA,mBAAmB,mBAAmB;AACtC;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mEAAmE,sBAAsB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAoE;AAC1F,OAAO;AACP,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAc;AAC/D;AACA,uBAAuB,6BAA6B;AACpD,0CAA0C,2CAA2C;AACrF,sCAAsC,uCAAuC;;AAE7E;AACA,iBAAiB,wBAAwB;AACzC,oCAAoC,aAAa;AACjD;AACA;AACA,KAAK,6BAA6B,mBAAmB;AACrD,gCAAgC,mBAAmB;;AAEnD;AACA;AACA,iBAAiB,wBAAwB;AACzC,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,qBAAqB;AAC9C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA,OAAO;AACP,mBAAmB,qBAAqB;AACxC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,+CAA+C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA,uCAAuC;AACvC;AACA,mCAAmC,oBAAoB;AACvD,OAAO,OAAO,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA,2CAA2C;AAC3C;AACA,mCAAmC,oBAAoB;AACvD,OAAO,OAAO,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB,iBAAiB;AACpC;AACA;AACA,mDAAmD,kCAAkC;AACrF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB,iBAAiB;AACpC,sCAAsC;AACtC;AACA;AACA,uCAAuC,sBAAsB;AAC7D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,mBAAmB,iBAAiB;AACpC;;AAEA,qBAAqB,uBAAuB;AAC5C;AACA,6CAA6C,8BAA8B;AAC3E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,+BAA+B,yCAAyC;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oEAAoE,4BAA4B,EAAE;AAClG;AACA,mEAAmE;AACnE;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,oCAAoC;AACtE;AACA,wCAAwC,uCAAuC;AAC/E;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA,kCAAkC,oCAAoC;AACtE;AACA,wCAAwC,uCAAuC;AAC/E;AACA,cAAc,sCAAsC;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,0BAA0B,EAAE;AACjG;;AAEA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,yDAAyD,iBAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C,mCAAmC,aAAa;AAChD;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,yBAAyB,cAAc,qBAAqB;;AAE5D;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA,yCAAyC,kCAAkC;AAC3E;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,+BAA+B,EAAE;AACpE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,cAAc,aAAa,gCAAgC,EAAE;AAC7D,UAAU,aAAa,oCAAoC,EAAE;;AAE7D;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU,EAAE;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAmC;AACrE,OAAO;AACP;AACA,kCAAkC,mCAAmC;;AAErE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,6CAA6C,iEAAiE;AAC9G,sBAAsB,iEAAiE;AACvF,iDAAiD,mBAAmB;AACpE,kCAAkC,2CAA2C;AAC7E,oDAAoD,8BAA8B;AAClF;AACA,OAAO;AACP,kCAAkC,2CAA2C;AAC7E,oDAAoD,8BAA8B;AAClF;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,6DAA6D;AACnF;AACA;AACA,kCAAkC,iBAAiB,6DAA6D,EAAE;AAClH,YAAY,iBAAiB,8DAA8D,EAAE;AAC7F;;AAEA;AACA;AACA;AACA,kCAAkC,iBAAiB,6DAA6D,EAAE;AAClH,YAAY,iBAAiB,8DAA8D,EAAE;AAC7F;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA,oCAAoC,6CAA6C;AACjF,iEAAiE,oCAAoC;AACrG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA,kCAAkC,iDAAiD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;;AAEhD;AACA;AACA,kBAAkB,aAAa,oCAAoC,EAAE;AACrE,cAAc,aAAa,qCAAqC,EAAE;AAClE,OAAO,OAAO,aAAa,sCAAsC,EAAE;AACnE;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB,4CAA4C;AAC7D;AACA,2CAA2C,OAAO;AAClD;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,qDAAqD;AACzE;;AAEA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,8BAA8B,QAAQ;AACtC,6DAA6D,6BAA6B;;AAE1F;AACA,cAAc,0BAA0B;;AAExC;AACA;;AAEA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,qEAAqE,wCAAwC;;AAE7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oEAAoE,iBAAiB;AACrF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uCAAuC,iCAAiC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C,yCAAyC,mBAAmB;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc,sCAAsC;;AAEpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,8EAA8E;AAC/G,YAAY,+DAA+D;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,cAAc;AACtD,6CAA6C,cAAc;AAC3D,YAAY,eAAe;AAC3B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,cAAc;AACtD,6CAA6C,cAAc;AAC3D,YAAY,eAAe;AAC3B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,gBAAgB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,iCAAiC;;AAExE;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;;AAEA;AACA,mCAAmC,oBAAoB;AACvD,wCAAwC,oBAAoB;AAC5D,UAAU,qBAAqB;;;AAG/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA,0DAA0D,uBAAuB,EAAE;AACnF,8DAA8D,uBAAuB,EAAE;;AAEvF;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA,kEAAkE,qCAAqC;;AAEvG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D,kFAAkF,wBAAwB;AAC1G;AACA,KAAK;AACL,qBAAqB,2BAA2B;AAChD;AACA;AACA,4CAA4C,UAAU;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4GAA4G,QAAQ;AACpH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC,wBAAwB,8BAA8B;AACtD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC,wBAAwB,+BAA+B;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,qBAAqB;AAC5C,0BAA0B,gCAAgC;AAC1D;AACA;AACA,KAAK;AACL;AACA;;AAEA,qBAAqB,2BAA2B;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,2CAA2C,0CAA0C;AACrF,6CAA6C,qBAAqB;AAClE;AACA;AACA,KAAK;AACL;AACA,yCAAyC,0CAA0C;AACnF,2CAA2C,qBAAqB;AAChE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,oBAAoB;AAChE,sCAAsC,oBAAoB;AAC1D;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA,8DAA8D,QAAQ;AACtE,8DAA8D,QAAQ;AACtE,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,QAAQ;;AAEhE;AACA;;AAEA;AACA;AACA,0HAA0H,QAAQ;;AAElI;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,cAAc;;AAE5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4IAA4I;AAC1K,KAAK;AACL;AACA,8BAA8B,2IAA2I;AACzK;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,+BAA+B,QAAQ;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,4CAA4C,QAAQ;AACpD;AACA,SAAS;AACT;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,0BAA0B;AACxD,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,4BAA4B;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,qDAAqD,qBAAqB;AAC1E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,qDAAqD,qBAAqB;AAC1E,SAAS;AACT;AACA,yBAAyB,qBAAqB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,QAAQ;AACnF;;AAEA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mDAAmD;AACjG,cAAc,2BAA2B;AACzC;AACA;AACA,mDAAmD,mDAAmD;AACtG,cAAc,2BAA2B;AACzC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qCAAqC,QAAQ;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,4HAA4H,gCAAgC;AAC5J;AACA,mGAAmG,mCAAmC;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8HAA8H,gCAAgC;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,iFAAiF,QAAQ;;AAEzF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC,0CAA0C,EAAE;AAC7E,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4FAA4F,QAAQ;AACpG,8CAA8C,0BAA0B;AACxE;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,kDAAkD;;AAE1F;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,oBAAoB,aAAa;;AAEjC,8BAA8B;AAC9B,6BAA6B,gBAAgB;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,QAAQ;AAClF,0EAA0E,QAAQ;AAClF;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4BAA4B,kBAAkB;AACvF;AACA,OAAO;;AAEP;AACA,wCAAwC;AACxC;;AAEA;AACA,qCAAqC;AACrC,6CAA6C;AAC7C,2CAA2C;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,WAAW,kBAAkB;AACtE;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,oBAAoB,qBAAqB,YAAY,qBAAqB,SAAS,qBAAqB,KAAK,qBAAqB;;AAE7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA;AACA,OAAO;AACP,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA,uBAAuB,iBAAiB;;AAExC;AACA;;AAEA;AACA;AACA,+BAA+B,QAAQ;;AAEvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,QAAQ;AAC7E;AACA;AACA,WAAW;AACX;AACA,qEAAqE,QAAQ;AAC7E;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,yDAAyD,QAAQ;AACjE;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA,6CAA6C,gDAAgD;;AAE7F;AACA,oDAAoD,oBAAoB;AACxE,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,sBAAsB;AACtD,YAAY,qDAAqD;;AAEjE;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA,WAAW;AACX,mCAAmC,yBAAyB;AAC5D,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,2CAA2C,cAAc,EAAE;AAC3D;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iDAAiD;AACvG,yBAAyB,wCAAwC;AACjE;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C,0BAA0B,uCAAuC;AACjE;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C,0BAA0B,0CAA0C;AACpE;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD,gBAAgB,uBAAuB;AACvC;AACA,wDAAwD,oBAAoB;AAC5E,wDAAwD,oBAAoB;AAC5E,OAAO;AACP;AACA,iCAAiC,oBAAoB;AACrD,gBAAgB,uBAAuB;AACvC;AACA,wBAAwB,oBAAoB;AAC5C,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D,yBAAyB;AACrF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,2DAA2D,aAAa;;AAExE,4BAA4B,qBAAqB,EAAE;AACnD;AACA;;AAEA;;AAEA;AACA;AACA,8DAA8D,iCAAiC;AAC/F,gBAAgB,aAAa;AAC7B,SAAS,0DAA0D,qBAAqB;AACxF,cAAc,aAAa;AAC3B,OAAO;AACP;AACA;;AAEA,wBAAwB,aAAa;;AAErC,0BAA0B,gBAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAkC,aAAa;AAC5D,WAAW;AACX;AACA;AACA,WAAW,kCAAkC,aAAa;AAC1D;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,kCAAkC;AAClF,gDAAgD,kCAAkC;;AAElF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,mFAAmF,wBAAwB;AAC3G;AACA,uFAAuF,aAAa;AACpG;;AAEA,6BAA6B,oBAAoB;AACjD,YAAY,uBAAuB;AACnC;AACA,KAAK;AACL;AACA;AACA,8BAA8B,cAAc;AAC5C,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B,cAAc;AAC5C,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,+CAA+C,4BAA4B;AAC3E,OAAO;AACP;AACA;AACA,wCAAwC,6BAA6B;AACrE,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA,KAAK;AACL;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA,KAAK;AACL;AACA;AACA;AACA,8CAA8C,QAAQ;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,QAAQ;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD,wEAAwE,2BAA2B;AACnG,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gHAAgH,QAAQ;AACxH;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,QAAQ;;AAE/B;AACA,6BAA6B,QAAQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,gHAAgH,QAAQ;AACxH;;AAEA;AACA;AACA,sCAAsC,iEAAiE;AACvG;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAe,EAAE;AACnE,gDAAgD,eAAe,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA,gEAAgE,QAAQ;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,gEAAgE,QAAQ;AACxE;AACA,KAAK;AACL;AACA;AACA,gEAAgE,QAAQ;;AAExE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD,6BAA6B,oBAAoB;AACjD,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,iCAAiC;AAClH,kFAAkF,gCAAgC;AAClH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,iCAAiC;AAClH,kFAAkF,gCAAgC;AAClH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yDAAyD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE,4BAA4B,QAAQ;AACpC,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE;AACA,kDAAkD,QAAQ;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mFAAmF,QAAQ;;AAE3F;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,iDAAiD;AACrF,oCAAoC,iDAAiD;AACrF,+BAA+B,gCAAgC;AAC/D;AACA;AACA,0EAA0E,gBAAgB;AAC1F,0EAA0E,gBAAgB;AAC1F;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,4EAA4E;AACzG,6BAA6B,4EAA4E;AACzG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;;AAEvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;;AAEA,sIAAsI,gCAAgC;;AAEtK;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0BAA0B,QAAQ;;AAElC;;AAEA,sIAAsI,gCAAgC;;AAEtK;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,4BAA4B;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA,OAAO;AACP;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,QAAQ;AACjD,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8HAA8H,QAAQ;AACtI;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAA0B,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,uCAAuC;AACnF;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,iCAAiC,iCAAiC;AAClE,8BAA8B,4BAA4B;AAC1D;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,kCAAkC,8BAA8B;AAChE;AACA;AACA,kCAAkC,mBAAmB;AACrD,kCAAkC,8BAA8B;AAChE;AACA,SAAS;AACT;AACA,qCAAqC,gDAAgD;;AAErF;AACA,qCAAqC,gDAAgD;AACrF;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA,mCAAmC,kBAAkB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,UAAU;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA,OAAO;AACP;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA,KAAK;AACL;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,OAAO;AAC7F,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wEAAwE,iCAAiC;;AAEzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA,OAAO;AACP;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA,OAAO;AACP;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA,OAAO;AACP;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA,OAAO;AACP;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,wFAAwF,oBAAoB,EAAE;AAC9G;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA,0EAA0E,QAAQ;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,OAAO;AACP,+BAA+B,eAAe;AAC9C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA,wFAAwF,QAAQ;AAChG;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,8GAA8G,QAAQ;AACtH;AACA;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,2DAA2D,cAAc;AACzE,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qCAAqC,cAAc;AACnD,2DAA2D,cAAc;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qCAAqC,QAAQ;AAC7C,mCAAmC,QAAQ;AAC3C,oCAAoC,uCAAuC;AAC3E;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,QAAQ;AAC5E,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+BAA+B;AAC5D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,sDAAsD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wDAAwD;AAC5F,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wDAAwD;AAC5F,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,gBAAgB;AAC3D,2CAA2C,gBAAgB;AAC3D,2CAA2C,gBAAgB;AAC3D,wCAAwC,aAAa;AACrD,wCAAwC,aAAa;;AAErD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gFAAgF;AACvH,sCAAsC,mFAAmF;AACzH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,mDAAmD,QAAQ;;AAE3D;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA,OAAO;AACP;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,8DAA8D;AAC9D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA,iGAAiG,QAAQ;AACzG,yEAAyE,QAAQ;AACjF;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0BAA0B;AACzE,oDAAoD,0BAA0B;AAC9E,uEAAuE,0BAA0B;AACjG,cAAc,0BAA0B;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0BAA0B,QAAQ;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kCAAkC;AACzF,4DAA4D,kCAAkC;AAC9F,mGAAmG,qCAAqC;AACxI,iGAAiG,kCAAkC;AACnI,gBAAgB,kCAAkC;AAClD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,OAAO;AACP,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA,OAAO;AACP;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA,OAAO;AACP;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA,OAAO;AACP;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA,OAAO;AACP;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA,OAAO;AACP;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA,OAAO;AACP;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;CC37PD;AACA;AACA,kBAAkB;AAClB,yCAAyC,0BAA0B,2DAA2D,EAAE,kBAAkB,0BAA0B,EAAE,mCAAmC,8BAA8B,oCAAoC,cAAc;;AAEjS;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA,iCAAiC;AACjC,OAAO;AACP;;AAEA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2LAA2L;AAC3L,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe,cAAc,cAAc;AACpF;AACA,0CAA0C,WAAW;AACrD;AACA,wEAAwE;AACxE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,GAAG;;AAEH,CAAC;;CCxuCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF,6CAA6C;AAC7C;AACA;AACA,kBAAkB,kCAAkC;AACpD,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,kCAAkC,IAAI;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,6BAA6B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD,UAAU,4CAA4C;AACtD;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA,CAAC;;;;AAID;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,QAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB,0BAA0B,wBAAwB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,0CAA0C;AAC1C,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA,OAAO;AACP,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,sCAAsC;AAC9E,oCAAoC,uCAAuC;AAC3E,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,qCAAqC;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA,GAAG;AACH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE;AACF;;AAEA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,sBAAsB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uCAAuC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,cAAc,qCAAqC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;;;AAGA;AACA;AACA;AACA;;;;;AAKA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C,cAAc,WAAW;AACxE,mBAAmB,UAAU;AAC7B;AACA,sBAAsB,cAAc,sBAAsB,gBAAgB;AAC1E,gBAAgB,WAAW,YAAY;AACvC,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,cAAc;AAC3D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;;AAEf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,gBAAgB,uBAAuB;AACvC;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;;AAGA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa;;AAEb;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,KAAK;AACL;;AAEA,WAAW;AACX,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,oDAAoD;AACpD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA,sBAAsB;AACtB,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA,CAAC;;CCptVD;AACA;AACA;AACA,qDAAqD;;AAErD,aAAa,aAAa,qEAAqE,aAAa,aAAa,cAAc,sBAAsB,mEAAmE,uCAAuC,gBAAgB,eAAe,qEAAqE,KAAK,2BAA2B,cAAc,+CAA+C,uEAAuE,0DAA0D,oBAAoB,cAAc,mCAAmC,gDAAgD,0CAA0C,eAAe,oCAAoC,0BAA0B,sCAAsC,mCAAmC,aAAa,4CAA4C,cAAc,oCAAoC,qCAAqC,uCAAuC,qGAAqG,GAAG,iCAAiC,4CAA4C,IAAI,wDAAwD,+CAA+C,kBAAkB,kDAAkD,mFAAmF,6BAA6B,iDAAiD,IAAI,yHAAyH,2BAA2B,YAAY,SAAS,+BAA+B,oCAAoC,oBAAoB,sDAAsD,0DAA0D,uBAAuB,0RAA0R,oCAAoC,yFAAyF,qBAAqB,iBAAiB,mDAAmD,MAAM,sBAAsB,oDAAoD,yEAAyE,UAAU,yBAAyB,6BAA6B,2MAA2M,yEAAyE,mBAAmB,8BAA8B,oKAAoK,oMAAoM,8BAA8B,SAAS,2EAA2E,WAAW,+DAA+D,oBAAoB,kLAAkL,mCAAmC,oBAAoB,sBAAsB,cAAc,iDAAiD,eAAe,6BAA6B,sCAAsC,6BAA6B,sBAAsB,aAAa,uBAAuB,WAAW,iEAAiE,OAAO,KAAK,6EAA6E,OAAO,gCAAgC,yBAAyB,uCAAuC,YAAY,0BAA0B,iHAAiH,+BAA+B,UAAU,sJAAsJ,kCAAkC,IAAI,gCAAgC,+LAA+L,mBAAmB,yBAAyB,YAAY,EAAE,oBAAoB,yBAAyB,YAAY,EAAE,sBAAsB,gBAAgB,gBAAgB,cAAc,WAAW,4DAA4D,SAAS,6BAA6B,yCAAyC,SAAS,mBAAmB,eAAe,aAAa,cAAc,gCAAgC,EAAE,uKAAuK,mBAAmB,sDAAsD,4FAA4F,oCAAoC,WAAW,4CAA4C,iFAAiF,yBAAyB,8BAA8B,mCAAmC,2BAA2B,mCAAmC,gCAAgC,sCAAsC,+EAA+E,sDAAsD,qBAAqB,aAAa,gJAAgJ,aAAa,2HAA2H,6DAA6D,mEAAmE,wBAAwB,EAAE,oBAAoB,wNAAwN,sBAAsB,WAAW,6BAA6B,qDAAqD,OAAO,wBAAwB,iDAAiD,uBAAuB,yDAAyD,wBAAwB,6DAA6D,EAAE,wBAAwB,iDAAiD,oBAAoB,yDAAyD,sBAAsB,6DAA6D,EAAE,0BAA0B,0BAA0B,UAAU,qKAAqK,+HAA+H,SAAS,6BAA6B,eAAe,0CAA0C,+BAA+B,SAAS,8CAA8C,wBAAwB,KAAK,WAAW,cAAc,qKAAqK,iCAAiC,GAAG,EAAE,sBAAsB,SAAS,kBAAkB,wFAAwF,gBAAgB,kCAAkC,cAAc,6BAA6B,wIAAwI,0BAA0B,uBAAuB,qCAAqC,kBAAkB,YAAY,aAAa,gBAAgB,2BAA2B,WAAW,mCAAmC,mIAAmI,2BAA2B,qLAAqL,OAAO,yIAAyI,2BAA2B,yDAAyD,OAAO,+DAA+D,aAAa,iGAAiG,2BAA2B,4CAA4C,gDAAgD,iJAAiJ,8BAA8B,0CAA0C,cAAc,OAAO,0CAA0C,uCAAuC,mBAAmB,yBAAyB,0BAA0B,EAAE,+DAA+D,gFAAgF,2CAA2C,mCAAmC,6QAA6Q,mNAAmN,yLAAyL,6CAA6C,uJAAuJ,yBAAyB,qCAAqC,+CAA+C,0KAA0K,EAAE,0BAA0B,qDAAqD,QAAQ,iDAAiD,UAAU,iDAAiD,sFAAsF,6KAA6K,uBAAuB,QAAQ,GAAG,EAAE,gBAAgB,KAAK,mBAAmB,wIAAwI,iLAAiL,mBAAmB,6IAA6I,6KAA6K,OAAO,mBAAmB,0TAA0T,2JAA2J,mBAAmB,0TAA0T,wJAAwJ,UAAU,gBAAgB,2FAA2F,gBAAgB,4FAA4F,uCAAuC,yDAAyD,mBAAmB,qBAAqB,kBAAkB,wBAAwB,eAAe,yGAAyG,oDAAoD,mBAAmB,EAAE,6BAA6B,yCAAyC,EAAE,cAAc,8CAA8C,kBAAkB,IAAI,YAAY,IAAI,YAAY,IAAI,qDAAqD,6BAA6B,EAAE,mIAAmI,4CAA4C,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,yGAAyG,EAAE,kEAAkE,6HAA6H,EAAE,8IAA8I,qCAAqC,8BAA8B,qCAAqC,IAAI,MAAM,OAAO,KAAK,kBAAkB,QAAQ,kBAAkB,OAAO,oBAAoB,OAAO,OAAO,KAAK,qBAAqB,aAAa,qBAAqB,YAAY,wBAAwB,IAAI,MAAM,iBAAiB,UAAU,MAAM,UAAU,kBAAkB,eAAe,wBAAwB,cAAc,uEAAuE,kBAAkB,oBAAoB,qIAAqI,cAAc,uBAAuB,2CAA2C,qDAAqD,uEAAuE,oEAAoE,kBAAkB,qEAAqE,sHAAsH,6BAA6B,4BAA4B,yGAAyG,oCAAoC,8BAA8B,wBAAwB,2DAA2D,iDAAiD,kCAAkC,+HAA+H,uBAAuB,uDAAuD,4CAA4C,eAAe,cAAc,wBAAwB,gBAAgB,kCAAkC,mBAAmB,yBAAyB,uGAAuG,eAAe,gBAAgB,uBAAuB,yBAAyB,mBAAmB,yEAAyE,+CAA+C,KAAK,IAAI,mBAAmB,gBAAgB,yBAAyB,sBAAsB,UAAU,0BAA0B,6HAA6H,+BAA+B,0CAA0C,wGAAwG,aAAa,mBAAmB,iCAAiC,gDAAgD,+BAA+B,qBAAqB,GAAG,yBAAyB,+CAA+C,yBAAyB,EAAE,mDAAmD,yBAAyB,gDAAgD,6DAA6D,EAAE,mDAAmD,yBAAyB,mCAAmC,oDAAoD,kDAAkD,WAAW,qBAAqB,4DAA4D,8CAA8C,kEAAkE,iMAAiM,0CAA0C,yBAAyB,kEAAkE,oEAAoE,6FAA6F,mBAAmB,wCAAwC,oBAAoB,0EAA0E,qEAAqE,yBAAyB,0BAA0B,sCAAsC,8BAA8B,mBAAmB,8BAA8B,6EAA6E,sLAAsL,EAAE,EAAE,sBAAsB,eAAe,kBAAkB,eAAe,kBAAkB,aAAa,mDAAmD,sCAAsC,2CAA2C,wCAAwC,KAAK,4CAA4C,UAAU,6CAA6C,mBAAmB,IAAI,aAAa,YAAY,0BAA0B,4HAA4H,EAAE,wLAAwL,mBAAmB,SAAS,uDAAuD,wBAAwB,MAAM,yCAAyC,gTAAgT,8DAA8D,cAAc,+GAA+G,6CAA6C,IAAI,uEAAuE,uBAAuB,SAAS,mDAAmD,SAAS,oBAAoB,UAAU,2CAA2C,gCAAgC,qBAAqB,oDAAoD,iMAAiM,cAAc,gJAAgJ,gBAAgB,uMAAuM,OAAO,iIAAiI,WAAW,UAAU,gCAAgC,8GAA8G,kGAAkG,yBAAyB,6FAA6F,0CAA0C,mEAAmE,2CAA2C,qBAAqB,6BAA6B,4FAA4F,OAAO,0BAA0B,eAAe,uBAAuB,yBAAyB,GAAG,uBAAuB,sDAAsD,aAAa,kFAAkF,SAAS,2BAA2B,uCAAuC,uCAAuC,IAAI,6BAA6B,cAAc,EAAE,gDAAgD,0CAA0C,gCAAgC,cAAc,6BAA6B,YAAY,EAAE,wBAAwB,EAAE,EAAE,cAAc,4CAA4C,2CAA2C,MAAM,gCAAgC,oDAAoD,4DAA4D,SAAS,gCAAgC,sDAAsD,4EAA4E,MAAM,EAAE,SAAS,kEAAkE,SAAS,QAAQ,kCAAkC,yCAAyC,eAAe,SAAS,mHAAmH,2BAA2B,4CAA4C,mBAAmB,uBAAuB,IAAI,iDAAiD,uBAAuB,yBAAyB,IAAI,kDAAkD,uBAAuB,sDAAsD,2BAA2B,0DAA0D,OAAO,qEAAqE,wDAAwD,0EAA0E,KAAK,kCAAkC,0BAA0B,IAAI,KAAK,SAAS,gBAAgB,wHAAwH,oBAAoB,SAAS,oBAAoB,gBAAgB,mDAAmD,uDAAuD,sDAAsD,SAAS,4DAA4D,4BAA4B,2BAA2B,6BAA6B,iIAAiI,sBAAsB,wCAAwC,8EAA8E,kCAAkC,gBAAgB,6CAA6C,sEAAsE,OAAO,iGAAiG,uBAAuB,OAAO,gGAAgG,yBAAyB,gBAAgB,+DAA+D,uBAAuB,6BAA6B,0BAA0B,iDAAiD,oBAAoB,kBAAkB,6EAA6E,2BAA2B,QAAQ,aAAa,cAAc,MAAM,kBAAkB,MAAM,iBAAiB,MAAM,wBAAwB,aAAa,eAAe,MAAM,kBAAkB,MAAM,gBAAgB,MAAM,uBAAuB,OAAO,SAAS,+BAA+B,yCAAyC,cAAc,gIAAgI,qJAAqJ,gPAAgP,+HAA+H,iCAAiC,IAAI,+BAA+B,kCAAkC,gCAAgC,qBAAqB,yDAAyD,iCAAiC,cAAc,wBAAwB,mBAAmB,2BAA2B,KAAK,eAAe,kBAAkB,cAAc,uCAAuC,oIAAoI,mHAAmH,iEAAiE,gBAAgB,yDAAyD,cAAc,cAAc,aAAa,6DAA6D,8FAA8F,mEAAmE,yEAAyE,+BAA+B,uCAAuC,0BAA0B,8CAA8C,gCAAgC,uCAAuC,0BAA0B,8CAA8C,oCAAoC,4DAA4D,0BAA0B,gDAAgD,sBAAsB,uBAAuB,iDAAiD,sCAAsC,IAAI,qBAAqB,iHAAiH,wBAAwB,2HAA2H,sEAAsE,6DAA6D,8CAA8C,oGAAoG,2CAA2C,qCAAqC,GAAG,6BAA6B,2HAA2H,gNAAgN,EAAE,KAAK,8DAA8D,iBAAiB,wBAAwB,cAAc,iBAAiB,+BAA+B,kBAAkB,0BAA0B,qBAAqB,+EAA+E,kBAAkB,mBAAmB,oBAAoB,cAAc,6BAA6B,EAAE,0DAA0D,yBAAyB,yDAAyD,gBAAgB,qCAAqC,oCAAoC,EAAE,0DAA0D,OAAO,6IAA6I,gDAAgD,gBAAgB,IAAI,kCAAkC,qLAAqL,wDAAwD,EAAE,0CAA0C,gOAAgO,sGAAsG,UAAU,yFAAyF,OAAO,IAAI,SAAS,iEAAiE,QAAQ,UAAU,6EAA6E,+CAA+C,QAAQ,0GAA0G,QAAQ,wIAAwI,2FAA2F,wDAAwD,EAAE,+CAA+C,kJAAkJ,WAAW,mJAAmJ,wDAAwD,EAAE,kDAAkD,8MAA8M,aAAa,qCAAqC,qBAAqB,qBAAqB,QAAQ,IAAI,oCAAoC,IAAI,iFAAiF,4DAA4D,+CAA+C,sGAAsG,WAAW,+CAA+C,6BAA6B,iDAAiD,sBAAsB,sCAAsC,cAAc,EAAE,wDAAwD,EAAE,+CAA+C,4MAA4M,gBAAgB,IAAI,IAAI,gBAAgB,IAAI,wCAAwC,wKAAwK,+FAA+F,gFAAgF,oDAAoD,iBAAiB,0CAA0C,6DAA6D,0DAA0D,aAAa,wDAAwD,EAAE,wCAAwC,4WAA4W,4DAA4D,MAAM,sCAAsC,KAAK,uCAAuC,ixBAAixB,iDAAiD,oHAAoH,IAAI,mGAAmG,4RAA4R,6BAA6B,EAAE,gBAAgB,iEAAiE,iBAAiB,iIAAiI,EAAE,yCAAyC,iHAAiH,+HAA+H,IAAI,+EAA+E,+CAA+C,gBAAgB,IAAI,4CAA4C,EAAE,sCAAsC,kDAAkD,mHAAmH,0DAA0D,IAAI,eAAe,UAAU,mBAAmB,WAAW,UAAU,mDAAmD,yCAAyC,wKAAwK,KAAK,KAAK,oBAAoB,8HAA8H,IAAI,kDAAkD,oFAAoF,gDAAgD,qBAAqB,uFAAuF,yJAAyJ,+MAA+M,wDAAwD,EAAE,kEAAkE,sBAAsB,IAAI,6BAA6B,uCAAuC,sUAAsU,0BAA0B,KAAK,cAAc,oCAAoC,oBAAoB,QAAQ,0BAA0B,sBAAsB,qDAAqD,EAAE,QAAQ,qCAAqC,yEAAyE,sBAAsB,6BAA6B,cAAc,sBAAsB,wCAAwC,oBAAoB,eAAe,EAAE,EAAE,kCAAkC,MAAM,iOAAiO,oCAAoC,MAAM,gOAAgO,uKAAuK,0FAA0F,8BAA8B,0BAA0B,oCAAoC,gBAAgB,+BAA+B,cAAc,EAAE,gBAAgB,+BAA+B,cAAc,GAAG,EAAE,MAAM,cAAc,mJAAmJ,wBAAwB,UAAU,+TAA+T,+BAA+B,0HAA0H,cAAc,4GAA4G,QAAQ,iEAAiE,0BAA0B,qBAAqB,qCAAqC,uCAAuC,eAAe,yBAAyB,4BAA4B,iCAAiC,EAAE,4BAA4B,4BAA4B,sDAAsD,GAAG,2BAA2B,0BAA0B,mBAAmB,UAAU,gIAAgI,iDAAiD,sEAAsE,2BAA2B,kEAAkE,mCAAmC,YAAY,oGAAoG,YAAY,oGAAoG,oBAAoB,mBAAmB,4QAA4Q,gCAAgC,OAAO,oEAAoE,yBAAyB,2BAA2B,8QAA8Q,0BAA0B,iHAAiH,qBAAqB,MAAM,0TAA0T,0BAA0B,kRAAkR,gCAAgC,0LAA0L,sBAAsB,0BAA0B,6EAA6E,kBAAkB,iDAAiD,MAAM,gDAAgD,MAAM,gDAAgD,MAAM,8BAA8B,MAAM,+BAA+B,uGAAuG,2BAA2B,mFAAmF,oBAAoB,mBAAmB,oaAAoa,2BAA2B,iCAAiC,2dAA2d,qBAAqB,6DAA6D,uTAAuT,6EAA6E,sDAAsD,qEAAqE,4DAA4D,eAAe,qBAAqB,8CAA8C,yDAAyD,eAAe,sBAAsB,kKAAkK,kCAAkC,oDAAoD,+BAA+B,2BAA2B,sCAAsC,qEAAqE,+EAA+E,6BAA6B,oFAAoF,aAAa,uBAAuB,yBAAyB,6DAA6D,+CAA+C,GAAG,yBAAyB,gDAAgD,0BAA0B,OAAO,oBAAoB,qCAAqC,qBAAqB,0GAA0G,wBAAwB,8DAA8D,2BAA2B,sHAAsH,qDAAqD,opBAAopB,qBAAqB,iEAAiE,2KAA2K,qBAAqB,iBAAiB,gDAAgD,oCAAoC,oCAAoC,2CAA2C,iDAAiD,iEAAiE,yDAAyD,EAAE,0BAA0B,kHAAkH,6BAA6B,sBAAsB,mLAAmL,uCAAuC,qBAAqB,wCAAwC,kDAAkD,oJAAoJ,mEAAmE,6BAA6B,4BAA4B,gPAAgP,qCAAqC,MAAM,IAAI,kBAAkB,SAAS,SAAS,0CAA0C,qBAAqB,0DAA0D,OAAO,4BAA4B,kCAAkC,6BAA6B,8CAA8C,oBAAoB,0EAA0E,cAAc,+BAA+B,kCAAkC,oEAAoE,sCAAsC,yCAAyC,mCAAmC,gEAAgE,mVAAmV,uKAAuK,6CAA6C,mBAAmB,kBAAkB,uBAAuB,0FAA0F,EAAE,oBAAoB,yCAAyC,kBAAkB,4EAA4E,EAAE,2BAA2B,QAAQ,0HAA0H,wBAAwB,6MAA6M,qBAAqB,uKAAuK,qNAAqN,cAAc,4CAA4C,EAAE,sBAAsB,eAAe,kBAAkB,+CAA+C,MAAM,6CAA6C,MAAM,qDAAqD,MAAM,kDAAkD,MAAM,sCAAsC,MAAM,oCAAoC,MAAM,wCAAwC,MAAM,2FAA2F,MAAM,kEAAkE,MAAM,0CAA0C,MAAM,0bAA0b,2BAA2B,kCAAkC,sBAAsB,uBAAuB,0IAA0I,oBAAoB,oFAAoF,yHAAyH,oEAAoE,kBAAkB,wEAAwE,4HAA4H,2JAA2J,cAAc,sEAAsE,6FAA6F,kCAAkC,yMAAyM,sBAAsB,OAAO,iCAAiC,oBAAoB,0BAA0B,MAAM,sJAAsJ,gCAAgC,4GAA4G,qBAAqB,MAAM,obAAob,cAAc,oJAAoJ,OAAO,EAAE,6BAA6B,UAAU,mVAAmV,oBAAoB,0JAA0J,iBAAiB,oBAAoB,2BAA2B,4FAA4F,4BAA4B,cAAc,mBAAmB,gBAAgB,eAAe,wBAAwB,gMAAgM,2BAA2B,2DAA2D,2EAA2E,8IAA8I,iBAAiB,oBAAoB,wIAAwI,mCAAmC,8CAA8C,wBAAwB,4CAA4C,sBAAsB,8EAA8E,6CAA6C,oBAAoB,6EAA6E,4DAA4D,gBAAgB,GAAG,kBAAkB,6BAA6B,sBAAsB,4BAA4B,wBAAwB,iEAAiE,uBAAuB,iEAAiE,wBAAwB,yEAAyE,uBAAuB,MAAM,+OAA+O,sBAAsB,UAAU,8PAA8P,qCAAqC,8GAA8G,0BAA0B,UAAU,+PAA+P,sCAAsC,wFAAwF,uBAAuB,oEAAoE,oBAAoB,8DAA8D,OAAO,kBAAkB,uFAAuF,8BAA8B,0BAA0B,oDAAoD,0FAA0F,4FAA4F,GAAG,EAAE,4BAA4B,mDAAmD,2DAA2D,gDAAgD,+FAA+F,kEAAkE,kFAAkF,wOAAwO,oBAAoB,0CAA0C,KAAK,SAAS,mBAAmB,kBAAkB,iDAAiD,MAAM,+CAA+C,MAAM,4CAA4C,MAAM,0CAA0C,MAAM,6EAA6E,MAAM,iDAAiD,MAAM,4HAA4H,MAAM,sCAAsC,sBAAsB,+FAA+F,OAAO,mBAAmB,kBAAkB,4CAA4C,MAAM,0CAA0C,MAAM,uCAAuC,MAAM,uCAAuC,mBAAmB,yCAAyC,uBAAuB,kBAAkB,mDAAmD,kBAAkB,4DAA4D,0EAA0E,UAAU,eAAe,kBAAkB,8GAA8G,sBAAsB,mBAAmB,yBAAyB,QAAQ,kKAAkK,qCAAqC,EAAE,oEAAoE,OAAO,0OAA0O,yCAAyC,OAAO,0BAA0B,0DAA0D,kIAAkI,oCAAoC,kCAAkC,OAAO,mFAAmF,6BAA6B,kEAAkE,2HAA2H,wBAAwB,yCAAyC,EAAE,qBAAqB,yHAAyH,0BAA0B,6JAA6J,oCAAoC,2BAA2B,wEAAwE,kCAAkC,6CAA6C,sBAAsB,4BAA4B,gKAAgK,wBAAwB,eAAe,oFAAoF,sCAAsC,wFAAwF,mCAAmC,iDAAiD,KAAK,kBAAkB,OAAO,EAAE,kCAAkC,4BAA4B,mEAAmE,gHAAgH,wDAAwD,qBAAqB,sBAAsB,6JAA6J,qBAAqB,2FAA2F,OAAO,mBAAmB,sBAAsB,0BAA0B,mBAAmB,oHAAoH,YAAY,wBAAwB,uDAAuD,UAAU,iHAAiH,mBAAmB,oCAAoC,oBAAoB,8JAA8J,qBAAqB,yDAAyD,uBAAuB,EAAE,wBAAwB,8DAA8D,0BAA0B,gBAAgB,YAAY,IAAI,8CAA8C,EAAE,EAAE,sBAAsB,gCAAgC,6GAA6G,gBAAgB,0FAA0F,iCAAiC,EAAE,wBAAwB,wBAAwB,6EAA6E,2BAA2B,WAAW,uBAAuB,uBAAuB,EAAE,+BAA+B,4DAA4D,2BAA2B,8DAA8D,qBAAqB,uNAAuN,oBAAoB,mBAAmB,yBAAyB,mBAAmB,sDAAsD,yBAAyB,0FAA0F,gCAAgC,sBAAsB,gCAAgC,oEAAoE,8BAA8B,wBAAwB,2BAA2B,4BAA4B,sBAAsB,uDAAuD,4BAA4B,mCAAmC,GAAG,gDAAgD,SAAS,UAAU,mDAAmD,mGAAmG,wBAAwB,MAAM,4OAA4O,yCAAyC,QAAQ,EAAE,kBAAkB,0BAA0B,IAAI,GAAG,4BAA4B,iDAAiD,2DAA2D,sOAAsO,oBAAoB,gBAAgB,qBAAqB,mDAAmD,qBAAqB,gRAAgR,yBAAyB,gBAAgB,wCAAwC,WAAW,0EAA0E,cAAc,mIAAmI,kKAAkK,WAAW,mCAAmC,qDAAqD,IAAI,6NAA6N,IAAI,gGAAgG,8BAA8B,kCAAkC,2CAA2C,gBAAgB,EAAE,kCAAkC,oDAAoD,iIAAiI,mCAAmC,6CAA6C,YAAY,qBAAqB,0GAA0G,MAAM,6BAA6B,2CAA2C,uEAAuE,4BAA4B,+CAA+C,mCAAmC,4DAA4D,gCAAgC,0CAA0C,OAAO,yBAAyB,QAAQ,gEAAgE,QAAQ,oHAAoH,OAAO,gHAAgH,OAAO,2FAA2F,KAAK,qCAAqC,SAAS,4BAA4B,8EAA8E,sCAAsC,IAAI,0BAA0B,yKAAyK,oBAAoB,aAAa,sSAAsS,4CAA4C,mMAAmM,qCAAqC,EAAE,kDAAkD,0BAA0B,0CAA0C,kFAAkF,8BAA8B,iCAAiC,mOAAmO,iEAAiE,wGAAwG,oBAAoB,8BAA8B,wmBAAwmB,yCAAyC,iEAAiE,iBAAiB,qEAAqE,EAAE,sBAAsB,6CAA6C,0KAA0K,qBAAqB,0CAA0C,mBAAmB,kBAAkB,2BAA2B,qEAAqE,qFAAqF,kCAAkC,2BAA2B,2BAA2B,8BAA8B,wSAAwS,wCAAwC,wEAAwE,EAAE,qBAAqB,uFAAuF,0BAA0B,mBAAmB,oIAAoI,gBAAgB,yBAAyB,oCAAoC,+jBAA+jB,yBAAyB,iDAAiD,gIAAgI,oBAAoB,yDAAyD,6LAA6L,WAAW,GAAG,GAAG,OAAO,mBAAmB,sBAAsB,oDAAoD,SAAS,4BAA4B,0EAA0E,8BAA8B,0BAA0B,0NAA0N,oBAAoB,qeAAqe,kBAAkB,kIAAkI,EAAE,qBAAqB,oJAAoJ,2BAA2B,wHAAwH,2BAA2B,mFAAmF,oiBAAoiB,qBAAqB,sJAAsJ,8BAA8B,sEAAsE,yBAAyB,sEAAsE,yBAAyB,8FAA8F,sCAAsC,0BAA0B,+iBAA+iB,oBAAoB,4GAA4G,6CAA6C,WAAW,yBAAyB,0DAA0D,SAAS,eAAe,6BAA6B,oBAAoB,qeAAqe,0BAA0B,yUAAyU,0CAA0C,0EAA0E,0DAA0D,uGAAuG,4RAA4R,oCAAoC,yFAAyF,yGAAyG,iBAAiB,kEAAkE,QAAQ,wBAAwB,KAAK,4BAA4B,6XAA6X,0BAA0B,2CAA2C,EAAE,OAAO,YAAY,cAAc,0hBAA0hB,mnBAAmnB,iBAAiB,+CAA+C,2lBAA2lB,2EAA2E,yDAAyD,+JAA+J,eAAe,uFAAuF,oCAAoC,4OAA4O,uBAAuB,cAAc,uYAAuY,iBAAiB,qDAAqD,SAAS,eAAe,YAAY,kBAAkB,yBAAyB,uEAAuE,kBAAkB,yBAAyB,8BAA8B,OAAO,iCAAiC,yDAAyD,uFAAuF,MAAM,0EAA0E,wBAAwB,OAAO,yRAAyR,kCAAkC,WAAW,8SAA8S,4BAA4B,yDAAyD,2bAA2b,oBAAoB,wGAAwG,oBAAoB,uFAAuF,8OAA8O,GAAG,uBAAuB,gBAAgB,wHAAwH,YAAY,WAAW,uCAAuC,SAAS,gNAAgN,iCAAiC,WAAW,4RAA4R,uCAAuC,yBAAyB,sHAAsH,aAAa,YAAY,8JAA8J,iEAAiE,ipBAAipB,gCAAgC,sCAAsC,wZAAwZ,+BAA+B,sCAAsC,oIAAoI,iBAAiB,2BAA2B,wBAAwB,8PAA8P,oBAAoB,GAAG,gCAAgC,sCAAsC,oIAAoI,iBAAiB,2BAA2B,+BAA+B,2PAA2P,oBAAoB,uDAAuD,mCAAmC,eAAe,YAAY,8BAA8B,4CAA4C,SAAS,sBAAsB,IAAI,8BAA8B,SAAS,kDAAkD,mCAAmC,2BAA2B,4EAA4E,gDAAgD,iCAAiC,OAAO,2BAA2B,0iBAA0iB,mCAAmC,8BAA8B,gCAAgC,mBAAmB,6BAA6B,kCAAkC,mBAAmB,2EAA2E,kCAAkC,mBAAmB,yEAAyE,wBAAwB,kFAAkF,oEAAoE,2CAA2C,MAAM,6TAA6T,uCAAuC,MAAM,kIAAkI,MAAM,kIAAkI,MAAM,yFAAyF,MAAM,yFAAyF,MAAM,uPAAuP,MAAM,iGAAiG,MAAM,uPAAuP,MAAM,gGAAgG,MAAM,aAAa,uEAAuE,4CAA4C,yBAAyB,wCAAwC,+NAA+N,sBAAsB,kCAAkC,iCAAiC,8NAA8N,UAAU,SAAS,6BAA6B,YAAY,+aAA+a,8QAA8Q,8CAA8C,KAAK,mDAAmD,qDAAqD,kDAAkD,oFAAoF,wHAAwH,mHAAmH,YAAY,0BAA0B,EAAE,iIAAiI,aAAa,SAAS,qPAAqP,+BAA+B,0FAA0F,kIAAkI,2gBAA2gB,4HAA4H,6CAA6C,+BAA+B,wFAAwF,8BAA8B,kQAAkQ,0SAA0S,sBAAsB,kDAAkD,iEAAiE,wCAAwC,qCAAqC,6BAA6B,wBAAwB,8HAA8H,4BAA4B,6WAA6W,0CAA0C,8EAA8E,yBAAyB,sEAAsE,iCAAiC,MAAM,qaAAqa,6BAA6B,iCAAiC,0FAA0F,wBAAwB,iCAAiC,6TAA6T,kCAAkC,iCAAiC,kKAAkK,8BAA8B,WAAW,oTAAoT,wBAAwB,OAAO,uBAAuB,2BAA2B,iCAAiC,yVAAyV,8BAA8B,kCAAkC,yJAAyJ,wBAAwB,aAAa,oBAAoB,yBAAyB,4BAA4B,iIAAiI,2BAA2B,6CAA6C,6DAA6D,iZAAiZ,kCAAkC,gBAAgB,eAAe,+EAA+E,wBAAwB,6BAA6B,2CAA2C,wCAAwC,mBAAmB,wCAAwC,cAAc,qBAAqB,iCAAiC,EAAE,0BAA0B,WAAW,qFAAqF,oBAAoB,mCAAmC,cAAc,sEAAsE,IAAI,KAAK,WAAW,4CAA4C,yBAAyB,iBAAiB,MAAM,mBAAmB,MAAM,iBAAiB,MAAM,iBAAiB,MAAM,qBAAqB,MAAM,iBAAiB,MAAM,4EAA4E,MAAM,oGAAoG,MAAM,wBAAwB,MAAM,YAAY,kGAAkG,uIAAuI,EAAE,4CAA4C,SAAS,gIAAgI,SAAS,wUAAwU,eAAe,kBAAkB,WAAW,aAAa,WAAW,SAAS,SAAS,oBAAoB,oBAAoB,4OAA4O,kCAAkC,gBAAgB,WAAW,aAAa,WAAW,uDAAuD,yBAAyB,gCAAgC,MAAM,iCAAiC,MAAM,6IAA6I,MAAM,mCAAmC,MAAM,mCAAmC,MAAM,sFAAsF,MAAM,uBAAuB,MAAM,6CAA6C,MAAM,2BAA2B,MAAM,uBAAuB,SAAS,4BAA4B,gCAAgC,kCAAkC,gBAAgB,KAAK,WAAW,uDAAuD,yBAAyB,gDAAgD,MAAM,4BAA4B,2BAA2B,MAAM,uBAAuB,SAAS,oBAAoB,4DAA4D,iCAAiC,8BAA8B,gIAAgI,IAAI,2BAA2B,SAAS,SAAS,qOAAqO,6BAA6B,0FAA0F,gCAAgC,2DAA2D,IAAI,oGAAoG,UAAU,oLAAoL,EAAE,EAAE,kBAAkB,qCAAqC,MAAM,uCAAuC,MAAM,qFAAqF,MAAM,qFAAqF,YAAY,uBAAuB,oGAAoG,mJAAmJ,mCAAmC,+DAA+D,0BAA0B,wGAAwG,gSAAgS,sBAAsB,uIAAuI,6BAA6B,iEAAiE,8CAA8C,OAAO,gBAAgB,mCAAmC,iBAAiB,mCAAmC,iBAAiB,+BAA+B,kBAAkB,2BAA2B,sBAAsB,2GAA2G,wBAAwB,oDAAoD,uBAAuB,sDAAsD,iFAAiF,EAAE,2BAA2B,+lBAA+lB,oIAAoI,8CAA8C,mBAAmB,yMAAyM,4FAA4F,wHAAwH,mEAAmE,6QAA6Q,4FAA4F,wHAAwH,mEAAmE,8QAA8Q,wIAAwI,uLAAuL,6IAA6I,qXAAqX,OAAO,KAAK,4BAA4B,OAAO,KAAK,wFAAwF,yDAAyD,0EAA0E,MAAM,8EAA8E,MAAM,8CAA8C,QAAQ,mWAAmW,IAAI,oIAAoI,kTAAkT,IAAI,KAAK,uGAAuG,IAAI,skBAAskB,8IAA8I,6ZAA6Z,aAAa,iIAAiI,KAAK,6BAA6B,oDAAoD,2NAA2N,gEAAgE,KAAK,sKAAsK,KAAK,sIAAsI,eAAe,gCAAgC,4FAA4F,KAAK,sFAAsF,uGAAuG,oBAAoB,0NAA0N,KAAK,6FAA6F,yDAAyD,+DAA+D,kBAAkB,iCAAiC,2MAA2M,qJAAqJ,+BAA+B,+EAA+E,kBAAkB,2BAA2B,uCAAuC,yEAAyE,gCAAgC,gCAAgC,gDAAgD,8BAA8B,yDAAyD,+BAA+B,iEAAiE,mCAAmC,gCAAgC,mCAAmC,iGAAiG,+FAA+F,0BAA0B,2GAA2G,6QAA6Q,8BAA8B,qCAAqC,OAAO,oPAAoP,+BAA+B,4FAA4F,qJAAqJ,8EAA8E,8BAA8B,4BAA4B,qMAAqM,8CAA8C,2OAA2O,gIAAgI,EAAE,sHAAsH,6EAA6E,UAAU,oCAAoC,MAAM,EAAE,qBAAqB,0BAA0B,oEAAoE,uBAAuB,WAAW,yDAAyD,uBAAuB,0CAA0C,2JAA2J,kBAAkB,0BAA0B,6LAA6L,wBAAwB,QAAQ,gFAAgF,wIAAwI,6IAA6I,mBAAmB,gUAAgU,uBAAuB,mCAAmC,qBAAqB,4JAA4J,wBAAwB,qBAAqB,iGAAiG,6IAA6I,yDAAyD,+SAA+S,sBAAsB,4aAA4a,+BAA+B,kIAAkI,2BAA2B,0BAA0B,yBAAyB,wBAAwB,wBAAwB,0BAA0B,UAAU,eAAe,oBAAoB,0BAA0B,qEAAqE,wBAAwB,qBAAqB,kFAAkF,WAAW,oDAAoD,2BAA2B,4DAA4D,oCAAoC,mDAAmD,4WAA4W,oBAAoB,mKAAmK,0BAA0B,0FAA0F,qBAAqB,qIAAqI,2BAA2B,mBAAmB,iOAAiO,0BAA0B,uDAAuD,cAAc,gJAAgJ,EAAE,2BAA2B,yEAAyE,gCAAgC,+CAA+C,gDAAgD,yBAAyB,mBAAmB,wYAAwY,wCAAwC,+eAA+e,6BAA6B,aAAa,mKAAmK,oBAAoB,2DAA2D,0BAA0B,2KAA2K,iBAAiB,oFAAoF,yBAAyB,wJAAwJ,wBAAwB,gBAAgB,sZAAsZ,sCAAsC,iDAAiD,sBAAsB,uLAAuL,mBAAmB,qFAAqF,uBAAuB,sBAAsB,wBAAwB,iGAAiG,gCAAgC,oJAAoJ,mCAAmC,4DAA4D,2BAA2B,kKAAkK,mQAAmQ,iCAAiC,6FAA6F,qCAAqC,kEAAkE,wBAAwB,4SAA4S,yBAAyB,2DAA2D,6BAA6B,oDAAoD,qMAAqM,+CAA+C,aAAa,0IAA0I,+BAA+B,wCAAwC,cAAc,uEAAuE,OAAO,mLAAmL,0BAA0B,cAAc,qNAAqN,oCAAoC,wBAAwB,iEAAiE,4BAA4B,4CAA4C,09CAA09C,kCAAkC,mBAAmB,mEAAmE,OAAO,uSAAuS,iCAAiC,kFAAkF,mDAAmD,sEAAsE,mgCAAmgC,+TAA+T,mBAAmB,yNAAyN,0BAA0B,8NAA8N,WAAW,oBAAoB,OAAO,2GAA2G,mDAAmD,sBAAsB,iBAAiB,IAAI,eAAe,EAAE,8DAA8D,mCAAmC,8FAA8F,EAAE,sBAAsB,iBAAiB,IAAI,eAAe,EAAE,uDAAuD,WAAW,qFAAqF,mGAAmG,6GAA6G,EAAE,sBAAsB,8BAA8B,gBAAgB,2KAA2K,uNAAuN,8LAA8L,mBAAmB,gWAAgW,wBAAwB,wgBAAwgB,wBAAwB,GAAG,GAAG,wCAAwC,sBAAsB,4BAA4B,sEAAsE,sBAAsB,YAAY,8CAA8C,yCAAyC,sBAAsB,0BAA0B,2EAA2E,sBAAsB,YAAY,mDAAmD,wCAAwC,sBAAsB,0NAA0N,sBAAsB,kEAAkE,sgCAAsgC,sCAAsC,sBAAsB,gBAAgB,4GAA4G,2BAA2B,0CAA0C,4EAA4E,EAAE,EAAE,sBAAsB,8KAA8K,KAAK,mWAAmW,gCAAgC,0LAA0L,wCAAwC,2DAA2D,aAAa,4DAA4D,uCAAuC,6DAA6D,aAAa,6KAA6K,aAAa,2DAA2D,wCAAwC,4DAA4D,aAAa,6DAA6D,uCAAuC,uIAAuI,gCAAgC,8CAA8C,uCAAuC,sBAAsB,+DAA+D,gFAAgF,EAAE,yEAAyE,0BAA0B,kCAAkC,wCAAwC,sBAAsB,0BAA0B,sEAAsE,sBAAsB,YAAY,gDAAgD,EAAE,eAAe,oCAAoC,qDAAqD,0GAA0G,0DAA0D,6JAA6J,kBAAkB,wBAAwB,uBAAuB,4BAA4B,0BAA0B,4CAA4C,kDAAkD,mBAAmB,IAAI,uBAAuB,UAAU,SAAS,oBAAoB,4BAA4B,8CAA8C,+LAA+L,8IAA8I,oLAAoL,0HAA0H,4MAA4M,kOAAkO,yCAAyC,yIAAyI,wEAAwE,6BAA6B,iFAAiF,oBAAoB,qBAAqB,iDAAiD,cAAc,0EAA0E,MAAM,wFAAwF,2GAA2G,sHAAsH,0BAA0B,2BAA2B,yDAAyD,MAAM,yCAAyC,0BAA0B,oCAAoC,2EAA2E,wKAAwK,8LAA8L,KAAK,WAAW,0HAA0H,gBAAgB,0JAA0J,6BAA6B,UAAU,qQAAqQ,uBAAuB,sYAAsY,oLAAoL,uHAAuH,6EAA6E,2BAA2B,4BAA4B,2BAA2B,aAAa,4FAA4F,gCAAgC,yBAAyB,sCAAsC,6PAA6P,aAAa,yBAAyB,sDAAsD,EAAE,kCAAkC,iCAAiC,4CAA4C,EAAE,kCAAkC,gBAAgB,iEAAiE,wBAAwB,aAAa,6BAA6B,yBAAyB,gSAAgS,wBAAwB,sGAAsG,8cAA8c,wBAAwB,iBAAiB,gCAAgC,uLAAuL,oDAAoD,8MAA8M,aAAa,iQAAiQ,kCAAkC,mBAAmB,8CAA8C,gBAAgB,+CAA+C,0BAA0B,SAAS,oUAAoU,sCAAsC,0BAA0B,+MAA+M,gSAAgS,0BAA0B,+OAA+O,0BAA0B,4CAA4C,oQAAoQ,0BAA0B,saAAsa,2TAA2T,6CAA6C,qNAAqN,IAAI,uDAAuD,OAAO,kCAAkC,kCAAkC,uFAAuF,4CAA4C,wIAAwI,+FAA+F,EAAE,yBAAyB,kCAAkC,2FAA2F,kBAAkB,4DAA4D,0KAA0K,4EAA4E,UAAU,gBAAgB,OAAO,iCAAiC,iBAAiB,wBAAwB,OAAO,mDAAmD,mBAAmB,wBAAwB,OAAO,mDAAmD,mBAAmB,OAAO,mCAAmC,oBAAoB,yFAAyF,oBAAoB,yFAAyF,oBAAoB,yFAAyF,oBAAoB,0FAA0F,0BAA0B,kFAAkF,WAAW,eAAe,OAAO,2LAA2L,yCAAyC,iBAAiB,2MAA2M,4CAA4C,sKAAsK,mCAAmC,aAAa,GAAG,GAAG,kEAAkE,OAAO,iKAAiK,0BAA0B,8BAA8B,8CAA8C,GAAG,6CAA6C,iBAAiB,+IAA+I,iFAAiF,aAAa,sBAAsB,aAAa,eAAe,8HAA8H,qEAAqE,gCAAgC,iFAAiF,sDAAsD,gKAAgK,iDAAiD,GAAG,oBAAoB,iHAAiH,aAAa,2BAA2B,2wCAA2wC,iBAAiB,gNAAgN,wEAAwE,2CAA2C,wEAAwE,2CAA2C,GAAG,4CAA4C,iBAAiB,4CAA4C,gCAAgC,cAAc,kCAAkC,sHAAsH,EAAE,EAAE,sBAAsB,yFAAyF,2HAA2H,gCAAgC,4DAA4D,6FAA6F,uBAAuB,0BAA0B,wBAAwB,WAAW,EAAE,iBAAiB,+CAA+C,uCAAuC,iBAAiB,6CAA6C,+CAA+C,oGAAoG,mKAAmK,mBAAmB,oCAAoC,sBAAsB,4DAA4D,EAAE,iBAAiB,oCAAoC,gEAAgE,sCAAsC,kBAAkB,kYAAkY,whBAAwhB,EAAE,eAAe,sBAAsB,0BAA0B,gDAAgD,iEAAiE,oJAAoJ,oEAAoE,kCAAkC,iCAAiC,kLAAkL,qBAAqB,gFAAgF,0BAA0B,kDAAkD,oBAAoB,kBAAkB,gMAAgM,wBAAwB,wFAAwF,0hBAA0hB,kBAAkB,mCAAmC,sBAAsB,4BAA4B,0EAA0E,qBAAqB,8BAA8B,6TAA6T,mBAAmB,qBAAqB,gDAAgD,WAAW,qTAAqT,sBAAsB,GAAG,mBAAmB,oBAAoB,sBAAsB,kBAAkB,0BAA0B,sEAAsE,8BAA8B,iCAAiC,mHAAmH,iBAAiB,WAAW,2UAA2U,uCAAuC,iDAAiD,2BAA2B,2BAA2B,6PAA6P,kCAAkC,+CAA+C,4EAA4E,wBAAwB,wFAAwF,2BAA2B,sCAAsC,0BAA0B,sIAAsI,oBAAoB,gJAAgJ,UAAU,4PAA4P,mBAAmB,8CAA8C,mBAAmB,uBAAuB,uBAAuB,2CAA2C,sEAAsE,sDAAsD,EAAE,4BAA4B,MAAM,kKAAkK,sBAAsB,kFAAkF,0EAA0E,0FAA0F,6IAA6I,kBAAkB,kCAAkC,kLAAkL,+BAA+B,EAAE,oBAAoB,4DAA4D,GAAG,8BAA8B,oRAAoR,2BAA2B,kCAAkC,uLAAuL,MAAM,YAAY,cAAc,yBAAyB,eAAe,iBAAiB,wFAAwF,+MAA+M,gCAAgC,EAAE,qGAAqG,2BAA2B,0BAA0B,cAAc,OAAO,qCAAqC,yBAAyB,+HAA+H,0FAA0F,oBAAoB,0BAA0B,oBAAoB,kFAAkF,YAAY,2EAA2E,gGAAgG,EAAE,2BAA2B,qHAAqH,cAAc,OAAO,iGAAiG,yBAAyB,mMAAmM,4FAA4F,sBAAsB,4BAA4B,oBAAoB,0FAA0F,oEAAoE,2EAA2E,kGAAkG,oBAAoB,wBAAwB,wBAAwB,oBAAoB,0DAA0D,EAAE,6BAA6B,gEAAgE,6BAA6B,oDAAoD,sBAAsB,+BAA+B,gDAAgD,2DAA2D,uBAAuB,mBAAmB,mEAAmE,sBAAsB,mCAAmC,8FAA8F,yBAAyB,qBAAqB,uBAAuB,6FAA6F,kHAAkH,0BAA0B,sBAAsB,oLAAoL,sDAAsD,kYAAkY,kBAAkB,yBAAyB,yBAAyB,mDAAmD,gEAAgE,4BAA4B,gJAAgJ,sCAAsC,uJAAuJ,yBAAyB,8DAA8D,cAAc,uBAAuB,gEAAgE,6CAA6C,EAAE,2BAA2B,yEAAyE,+BAA+B,iGAAiG,2BAA2B,QAAQ,8EAA8E,KAAK,6FAA6F,MAAM,8JAA8J,sJAAsJ,uBAAuB,4FAA4F,4BAA4B,MAAM,+PAA+P,yDAAyD,SAAS,eAAe,2BAA2B,+DAA+D,0BAA0B,gHAAgH,EAAE,YAAY,mBAAmB,mBAAmB,yBAAyB,mDAAmD,oIAAoI,oBAAoB,gCAAgC,4EAA4E,eAAe,6BAA6B,kCAAkC,uEAAuE,eAAe,0EAA0E,2BAA2B,sGAAsG,qBAAqB,YAAY,WAAW,+BAA+B,qBAAqB,oDAAoD,gBAAgB,0BAA0B,MAAM,4DAA4D,eAAe,uHAAuH,uBAAuB,6BAA6B,iEAAiE,yBAAyB,6BAA6B,sEAAsE,mBAAmB,6BAA6B,2KAA2K,kBAAkB,6BAA6B,6KAA6K,qBAAqB,qCAAqC,sJAAsJ,oCAAoC,gKAAgK,0BAA0B,uCAAuC,4KAA4K,gBAAgB,OAAO,6FAA6F,2BAA2B,qCAAqC,8BAA8B,wCAAwC,4BAA4B,sCAAsC,+BAA+B,0CAA0C,mCAAmC,sBAAsB,yQAAyQ,UAAU,wCAAwC,4JAA4J,+FAA+F,yFAAyF,kBAAkB,mBAAmB,yBAAyB,WAAW,8BAA8B,4IAA4I,UAAU,WAAW,iGAAiG,QAAQ,WAAW,+BAA+B,4BAA4B,WAAW,kKAAkK,sEAAsE,IAAI,oBAAoB,SAAS,kFAAkF,qSAAqS,IAAI,yBAAyB,gEAAgE,+DAA+D,EAAE,oBAAoB,gIAAgI,YAAY,kRAAkR,uDAAuD,gSAAgS,EAAE,wBAAwB,uHAAuH,4DAA4D,SAAS,6BAA6B,4BAA4B,wFAAwF,+BAA+B,2FAA2F,2BAA2B,sFAAsF,8BAA8B,0FAA0F,EAAE,0CAA0C,0BAA0B,SAAS,qHAAqH,2CAA2C,0BAA0B,6EAA6E,4CAA4C,8MAA8M,qBAAqB,iGAAiG,mBAAmB,wCAAwC,kEAAkE,+BAA+B,mKAAmK,yBAAyB,cAAc,gGAAgG,0BAA0B,qDAAqD,gCAAgC,oGAAoG,wBAAwB,4FAA4F,0BAA0B,8CAA8C,wbAAwb,mDAAmD,kLAAkL,uCAAuC,0BAA0B,0JAA0J,oBAAoB,WAAW,wEAAwE,sJAAsJ,8BAA8B,0DAA0D,+BAA+B,yOAAyO,EAAE,EAAE,4GAA4G,qBAAqB,kEAAkE,yBAAyB,0BAA0B,uNAAuN,0CAA0C,sFAAsF,qCAAqC,uLAAuL,sBAAsB,GAAG,kDAAkD,uCAAuC,sQAAsQ,oBAAoB,8BAA8B,sBAAsB,KAAK,GAAG,wBAAwB,2CAA2C,8EAA8E,8DAA8D,kCAAkC,iCAAiC,+CAA+C,0hBAA0hB,oBAAoB,6UAA6U,sBAAsB,sMAAsM,sBAAsB,MAAM,MAAM,wBAAwB,WAAW,4EAA4E,qCAAqC,2GAA2G,qBAAqB,EAAE,qDAAqD,qCAAqC,uJAAuJ,mBAAmB,EAAE,mDAAmD,iDAAiD,oDAAoD,uBAAuB,0FAA0F,sBAAsB,8BAA8B,WAAW,gDAAgD,kEAAkE,oBAAoB,yCAAyC,UAAU,4CAA4C,uGAAuG,wBAAwB,qGAAqG,oFAAoF,kBAAkB,iDAAiD,8CAA8C,4MAA4M,6aAA6a,8BAA8B,EAAE,sBAAsB,WAAW,oBAAoB,wEAAwE,sLAAsL,SAAS,6BAA6B,qCAAqC,oFAAoF,qBAAqB,oCAAoC,mEAAmE,OAAO,4HAA4H,qHAAqH,SAAS,yCAAyC,UAAU,oBAAoB,6IAA6I,mDAAmD,yBAAyB,kCAAkC,0YAA0Y,kBAAkB,oWAAoW,sBAAsB,iCAAiC,eAAe,yBAAyB,mBAAmB,mHAAmH,mBAAmB,mBAAmB,uBAAuB,iBAAiB,+BAA+B,kBAAkB,yEAAyE,2BAA2B,gBAAgB,uBAAuB,MAAM,6BAA6B,gBAAgB,uLAAuL,EAAE,+BAA+B,0DAA0D,2BAA2B,6BAA6B,8BAA8B,EAAE,+GAA+G,wBAAwB,0BAA0B,GAAG,qBAAqB,wBAAwB,gSAAgS,6BAA6B,qEAAqE,qBAAqB,oCAAoC,0BAA0B,MAAM,+IAA+I,iBAAiB,sBAAsB,sHAAsH,gBAAgB,qBAAqB,MAAM,mIAAmI,mBAAmB,qCAAqC,qBAAqB,SAAS,kBAAkB,kEAAkE,MAAM,gEAAgE,MAAM,mEAAmE,MAAM,qEAAqE,MAAM,+EAA+E,MAAM,4CAA4C,MAAM,6CAA6C,MAAM,uEAAuE,MAAM,uEAAuE,MAAM,kCAAkC,uBAAuB,gCAAgC,sDAAsD,8EAA8E,uBAAuB,oCAAoC,wJAAwJ,OAAO,yCAAyC,OAAO,gBAAgB,sBAAsB,wCAAwC,kBAAkB,8CAA8C,4CAA4C,0BAA0B,MAAM,6OAA6O,gCAAgC,oQAAoQ,sBAAsB,4BAA4B,gKAAgK,wBAAwB,6TAA6T,0BAA0B,yBAAyB,kIAAkI,wBAAwB,4FAA4F,8BAA8B,oBAAoB,kDAAkD,2BAA2B,gBAAgB,qBAAqB,yCAAyC,eAAe,4BAA4B,2BAA2B,OAAO,6HAA6H,qBAAqB,uKAAuK,oCAAoC,oDAAoD,oBAAoB,kHAAkH,mIAAmI,+BAA+B,mRAAmR,qBAAqB,mFAAmF,2BAA2B,kGAAkG,gEAAgE,IAAI,yCAAyC,yLAAyL,4DAA4D,EAAE,yBAAyB,mBAAmB,oUAAoU,kBAAkB,0OAA0O,yBAAyB,8HAA8H,qBAAqB,2EAA2E,2BAA2B,sCAAsC,sCAAsC,kEAAkE,6CAA6C,oBAAoB,mGAAmG,8BAA8B,kFAAkF,6NAA6N,aAAa,EAAE,2LAA2L,mFAAmF,wBAAwB,SAAS,wBAAwB,OAAO,oBAAoB,+BAA+B,6CAA6C,wBAAwB,wNAAwN,+BAA+B,+EAA+E,iCAAiC,qPAAqP,qJAAqJ,yBAAyB,OAAO,sEAAsE,oGAAoG,+BAA+B,uDAAuD,sBAAsB,gDAAgD,wBAAwB,qCAAqC,8RAA8R,qBAAqB,wCAAwC,uBAAuB,2GAA2G,mBAAmB,kIAAkI,sBAAsB,UAAU,2HAA2H,2CAA2C,mFAAmF,kCAAkC,WAAW,0DAA0D,qBAAqB,0BAA0B,UAAU,kTAAkT,uQAAuQ,MAAM,8FAA8F,MAAM,gEAAgE,KAAK,yBAAyB,oBAAoB,MAAM,oHAAoH,MAAM,qEAAqE,gCAAgC,+DAA+D,mBAAmB,yBAAyB,iCAAiC,qBAAqB,QAAQ,8EAA8E,8BAA8B,sCAAsC,WAAW,qCAAqC,SAAS,SAAS,6BAA6B,+CAA+C,+CAA+C,6EAA6E,gEAAgE,6BAA6B,8DAA8D,uGAAuG,uBAAuB,2CAA2C,mFAAmF,0BAA0B,oCAAoC,4BAA4B,sBAAsB,wBAAwB,sBAAsB,gBAAgB,2BAA2B,gCAAgC,iBAAiB,oCAAoC,oBAAoB,EAAE,0BAA0B,6FAA6F,wDAAwD,0QAA0Q,WAAW,+CAA+C,cAAc,EAAE,4BAA4B,iDAAiD,aAAa,+CAA+C,eAAe,EAAE,4BAA4B,QAAQ,sRAAsR,YAAY,iGAAiG,gBAAgB,+FAA+F,aAAa,+FAA+F,iBAAiB,aAAa,gBAAgB,oBAAoB,uDAAuD,kBAAkB,6UAA6U,gGAAgG,0CAA0C,MAAM,yCAAyC,MAAM,sGAAsG,MAAM,wGAAwG,MAAM,4EAA4E,4BAA4B,MAAM,6EAA6E,4BAA4B,mBAAmB,mBAAmB,iDAAiD,kIAAkI,qCAAqC,4DAA4D,gdAAgd,6BAA6B,mBAAmB,yBAAyB,oFAAoF,oBAAoB,sBAAsB,2IAA2I,0BAA0B,0DAA0D,gCAAgC,WAAW,8GAA8G,sHAAsH,EAAE,qBAAqB,qBAAqB,8BAA8B,KAAK,2DAA2D,YAAY,6BAA6B,uBAAuB,2IAA2I,6DAA6D,2JAA2J,wBAAwB,mEAAmE,6BAA6B,uBAAuB,wQAAwQ,6EAA6E,uBAAuB,OAAO,0DAA0D,oCAAoC,6JAA6J,oEAAoE,iKAAiK,+BAA+B,gMAAgM,iCAAiC,EAAE,2hBAA2hB,KAAK,iEAAiE,qhBAAqhB,qBAAqB,wBAAwB,gtCAAgtC,wBAAwB,2BAA2B,4bAA4b,wFAAwF,uBAAuB,KAAK,6RAA6R,4GAA4G,8DAA8D,MAAM,8JAA8J,0BAA0B,YAAY,8IAA8I,0ZAA0Z,YAAY,uBAAuB,mBAAmB,kBAAkB,qCAAqC,YAAY,6JAA6J,mCAAmC,KAAK,oNAAoN,wOAAwO,uDAAuD,oIAAoI,uBAAuB,kDAAkD,cAAc,sBAAsB,0FAA0F,kEAAkE,kDAAkD,qBAAqB,kDAAkD,cAAc,mBAAmB,oDAAoD,IAAI,6BAA6B,iSAAiS,qWAAqW,oCAAoC,oNAAoN,+IAA+I,kCAAkC,qPAAqP,wFAAwF,sCAAsC,oDAAoD,+BAA+B,wCAAwC,sDAAsD,kCAAkC,qBAAqB,qFAAqF,yBAAyB,mBAAmB,wEAAwE,+BAA+B,4CAA4C,yBAAyB,KAAK,gDAAgD,KAAK,gPAAgP,aAAa,aAAa,6FAA6F,2CAA2C,oHAAoH,KAAK,oBAAoB,YAAY,qCAAqC,+DAA+D,yCAAyC,YAAY,WAAW,iCAAiC,SAAS,EAAE,2BAA2B,qCAAqC,sHAAsH,sBAAsB,kEAAkE,kCAAkC,KAAK,gDAAgD,KAAK,0JAA0J,sBAAsB,4DAA4D,iBAAiB,KAAK,yCAAyC,IAAI,wDAAwD,gDAAgD,EAAE,mCAAmC,kCAAkC,KAAK,6RAA6R,8BAA8B,QAAQ,6TAA6T,oCAAoC,KAAK,sSAAsS,YAAY,gCAAgC,8BAA8B,6HAA6H,mBAAmB,iCAAiC,gWAAgW,sBAAsB,wXAAwX,gJAAgJ,oCAAoC,WAAW,6BAA6B,aAAa,6EAA6E,EAAE,gCAAgC,mEAAmE,KAAK,8VAA8V,+KAA+K,KAAK,kJAAkJ,KAAK,kRAAkR,4xBAA4xB,2BAA2B,sKAAsK,kHAAkH,0LAA0L,uJAAuJ,qCAAqC,kEAAkE,wBAAwB,4SAA4S,6BAA6B,6CAA6C,iCAAiC,oNAAoN,iJAAiJ,aAAa,0IAA0I,+BAA+B,wCAAwC,cAAc,kCAAkC,OAAO,uKAAuK,0BAA0B,cAAc,+GAA+G,oCAAoC,wBAAwB,iEAAiE,4BAA4B,uBAAuB,g0CAAg0C,kCAAkC,mBAAmB,kOAAkO,OAAO,mSAAmS,+BAA+B,+OAA+O,qnCAAqnC,2TAA2T,8BAA8B,kMAAkM,mBAAmB,uBAAuB,4CAA4C,EAAE,sBAAsB,kBAAkB,WAAW,gKAAgK,6GAA6G,+FAA+F,6BAA6B,kBAAkB,mBAAmB,8BAA8B,6CAA6C,0DAA0D,kLAAkL,yCAAyC,wDAAwD,yCAAyC,qBAAqB,mBAAmB,4CAA4C,sDAAsD,mBAAmB,2CAA2C,gEAAgE,KAAK,mLAAmL,mgBAAmgB,QAAQ,WAAW,sBAAsB,uCAAuC,qDAAqD,qBAAqB,sEAAsE,qBAAqB,cAAc,OAAO,2KAA2K,EAAE,eAAe,kBAAkB,yBAAyB,yFAAyF,uBAAuB,4EAA4E,SAAS,6FAA6F,qBAAqB,sDAAsD,8GAA8G,oBAAoB,0PAA0P,wBAAwB,yCAAyC,EAAE,8BAA8B,mCAAmC,iDAAiD,gBAAgB,4BAA4B,IAAI,UAAU,oBAAoB,qDAAqD,gCAAgC,iCAAiC,kBAAkB,oIAAoI,0BAA0B,+CAA+C,2BAA2B,4CAA4C,0HAA0H,6BAA6B,0BAA0B,4CAA4C,MAAM,aAAa,kIAAkI,gBAAgB,GAAG,wKAAwK,oCAAoC,8FAA8F,kFAAkF,yJAAyJ,yCAAyC,qBAAqB,wGAAwG,kBAAkB,iQAAiQ,SAAS,gBAAgB,8NAA8N,wCAAwC,8BAA8B,0CAA0C,yIAAyI,sBAAsB,kCAAkC,kBAAkB,2CAA2C,8CAA8C,qDAAqD,wDAAwD,SAAS,oBAAoB,0GAA0G,yBAAyB,oEAAoE,qBAAqB,sCAAsC,qBAAqB,sBAAsB,kIAAkI,QAAQ,mCAAmC,wBAAwB,+BAA+B,8EAA8E,uBAAuB,2CAA2C,mFAAmF,0BAA0B,oCAAoC,4BAA4B,0BAA0B,gDAAgD,4IAA4I,mBAAmB,qIAAqI,0BAA0B,MAAM,uIAAuI,oVAAoV,gCAAgC,0JAA0J,4BAA4B,eAAe,qBAAqB,4JAA4J,qBAAqB,iIAAiI,qBAAqB,mBAAmB,kHAAkH,EAAE,oBAAoB,mBAAmB,0CAA0C,sBAAsB,MAAM,uHAAuH,qBAAqB,oJAAoJ,uBAAuB,gBAAgB,sBAAsB,mEAAmE,yBAAyB,kBAAkB,wBAAwB,oEAAoE,uBAAuB,uCAAuC,0BAA0B,yCAAyC,oBAAoB,4DAA4D,6BAA6B,mBAAmB,uBAAuB,2DAA2D,oBAAoB,uHAAuH,2BAA2B,eAAe,wBAAwB,wBAAwB,EAAE,OAAO,aAAa,oBAAoB,oCAAoC,qBAAqB,yHAAyH,oIAAoI,iCAAiC,2DAA2D,IAAI,wBAAwB,UAAU,IAAI,wBAAwB,UAAU,8BAA8B,qBAAqB,0BAA0B,sTAAsT,uBAAuB,yKAAyK,2BAA2B,kFAAkF,kDAAkD,gDAAgD,oNAAoN,gCAAgC,OAAO,gFAAgF,yBAAyB,0FAA0F,4BAA4B,kBAAkB,mDAAmD,MAAM,qDAAqD,MAAM,8CAA8C,MAAM,2BAA2B,MAAM,uGAAuG,gIAAgI,eAAe,sNAAsN,wBAAwB,eAAe,2BAA2B,kHAAkH,4BAA4B,0OAA0O,4BAA4B,yBAAyB,KAAK,0DAA0D,aAAa,SAAS,6BAA6B,mEAAmE,0BAA0B,qPAAqP,+BAA+B,qCAAqC,aAAa,EAAE,gBAAgB,oBAAoB,4DAA4D,4DAA4D,kBAAkB,6UAA6U,qBAAqB,uKAAuK,4DAA4D,kEAAkE,qBAAqB,wCAAwC,yDAAyD,gHAAgH,sBAAsB,sCAAsC,yBAAyB,oDAAoD,wNAAwN,qDAAqD,8DAA8D,4DAA4D,yDAAyD,uBAAuB,mGAAmG,sBAAsB,QAAQ,YAAY,gGAAgG,sFAAsF,mHAAmH,mOAAmO,sCAAsC,8BAA8B,oMAAoM,qBAAqB,uDAAuD,0BAA0B,0DAA0D,gCAAgC,QAAQ,iFAAiF,eAAe,iMAAiM,qGAAqG,0BAA0B,SAAS,qCAAqC,qBAAqB,oFAAoF,kBAAkB,oBAAoB,+CAA+C,sBAAsB,wBAAwB,wBAAwB,wDAAwD,+BAA+B,8BAA8B,+HAA+H,kCAAkC,oDAAoD,2DAA2D,2BAA2B,8BAA8B,qEAAqE,uEAAuE,0CAA0C,aAAa,2BAA2B,+KAA+K,+CAA+C,2XAA2X,uBAAuB,qCAAqC,aAAa,wCAAwC,aAAa,2IAA2I,sFAAsF,8EAA8E,0IAA0I,gDAAgD,wFAAwF,oCAAoC,mEAAmE,yDAAyD,EAAE,uBAAuB,0BAA0B,qGAAqG,+CAA+C,GAAG,yBAAyB,iCAAiC,uBAAuB,2GAA2G,qBAAqB,yLAAyL,gKAAgK,4BAA4B,gDAAgD,8FAA8F,wFAAwF,oBAAoB,4BAA4B,iFAAiF,oBAAoB,gCAAgC,oBAAoB,+BAA+B,qBAAqB,4BAA4B,WAAW,mBAAmB,KAAK,kDAAkD,6CAA6C,4BAA4B,oBAAoB,oBAAoB,gBAAgB,wHAAwH,sFAAsF,eAAe,2MAA2M,sBAAsB,wCAAwC,IAAI,qBAAqB,sBAAsB,OAAO,IAAI,IAAI,+BAA+B,WAAW,OAAO,+DAA+D,2CAA2C,uBAAuB,OAAO,6BAA6B,6BAA6B,yDAAyD,qDAAqD,wBAAwB,gEAAgE,EAAE,UAAU,uBAAuB,0BAA0B,SAAS,8CAA8C,oBAAoB,4BAA4B,+BAA+B,mDAAmD,2DAA2D,uCAAuC,+BAA+B,oDAAoD,qGAAqG,gCAAgC,+FAA+F,8JAA8J,oBAAoB,UAAU,gCAAgC,kBAAkB,gBAAgB,kCAAkC,+DAA+D,+HAA+H,0BAA0B,WAAW,mEAAmE,4BAA4B,EAAE,gCAAgC,+BAA+B,qBAAqB,WAAW,mCAAmC,sBAAsB,oDAAoD,gHAAgH,cAAc,yFAAyF,GAAG,oBAAoB,oCAAoC,cAAc,uEAAuE,4BAA4B,kBAAkB,oEAAoE,mLAAmL,gBAAgB,8IAA8I,mCAAmC,qBAAqB,6DAA6D,8BAA8B,kDAAkD,qEAAqE,2BAA2B,oBAAoB,6DAA6D,EAAE,sBAAsB,uBAAuB,uBAAuB,wBAAwB,cAAc,sCAAsC,uiBAAuiB,YAAY,6BAA6B,KAAK,6KAA6K,6CAA6C,8BAA8B,UAAU,IAAI,sCAAsC,OAAO,kBAAkB,wFAAwF,6CAA6C,oBAAoB,kCAAkC,+GAA+G,mBAAmB,iEAAiE,gPAAgP,0BAA0B,0NAA0N,uDAAuD,wCAAwC,UAAU,6DAA6D,sBAAsB,2FAA2F,2JAA2J,qBAAqB,mBAAmB,0BAA0B,+BAA+B,4BAA4B,8EAA8E,uBAAuB,iCAAiC,2CAA2C,qBAAqB,WAAW,mCAAmC,kCAAkC,yLAAyL,4BAA4B,2DAA2D,SAAS,kBAAkB,qBAAqB,kCAAkC,mFAAmF,EAAE,aAAa,E;CCLv/vP;;AAEA,0BAA0B,iCAAiC,4QAA4Q,kBAAkB,cAAc,wHAAwH,8EAA8E,cAAc,SAAS,+DAA+D;;AAEnoB,mBAAmB,qCAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd,yBAAyB,iEAAiE;AAC1F,aAAa;;AAEb,yBAAyB,iDAAiD;AAC1E;AACA;;AAEA,mBAAmB,mHAAmH,yBAAyB,6BAA6B;AAC5L;;AAEA,mBAAmB;AACnB,qBAAqB;AACrB,0BAA0B,kEAAkE,sBAAsB,oBAAoB,4EAA4E,0BAA0B,wCAAwC,gCAAgC,qBAAqB,yBAAyB,oBAAoB,mDAAmD,yBAAyB,IAAI,qBAAqB,kDAAkD,qBAAqB,oBAAoB,oBAAoB,qBAAqB,mBAAmB;AAClnB,yCAAyC,0DAA0D,mBAAmB,+CAA+C,2CAA2C,uCAAuC,6CAA6C;AACpS;AACA;AACA,mBAAmB,6DAA6D,+CAA+C,8BAA8B,OAAO;AACpK;AACA,2MAA2M;AAC3M,kBAAkB,YAAY,oGAAoG,qBAAqB,qBAAqB,8BAA8B,UAAU,4JAA4J,8BAA8B,OAAO,wBAAwB,YAAY,2BAA2B,OAAO,wBAAwB,cAAc;AACjgB,kCAAkC,uCAAuC;AACzE;AACA;AACA,4DAA4D,WAAW,qBAAqB,kDAAkD,6BAA6B,iBAAiB,oGAAoG,8BAA8B,0CAA0C,yBAAyB,6CAA6C,OAAO,oBAAoB,yBAAyB,2BAA2B,8CAA8C,OAAO,uCAAuC,WAAW,0BAA0B;AAC9nB,uBAAuB;AACvB,kCAAkC,OAAO;AACzC;AACA,sEAAsE,wBAAwB,uBAAuB,0LAA0L,4CAA4C,EAAE;AAC7V,6BAA6B,0BAA0B;;AAEvD,sBAAsB,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B,OAAO;AACrE;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2gBAA2gB;AAC5hB;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA,iCAAiC,iHAAiH;AAClJ,iCAAiC,4DAA4D,GAAG,oCAAoC,EAAE,MAAM,mFAAmF,YAAY,MAAM,mCAAmC,wBAAwB,mBAAmB,8BAA8B,iBAAiB;AAC9W,sCAAsC,EAAE;;AAExC,iCAAiC;AACjC,uCAAuC,yFAAyF,2EAA2E;AAC3M,mCAAmC,eAAe,0CAA0C,sCAAsC,wFAAwF,OAAO,2DAA2D;AAC5R,iEAAiE;AACjE,qEAAqE,8GAA8G,KAAK;AACxL,kFAAkF,aAAa,8CAA8C,aAAa,UAAU,qCAAqC,EAAE,EAAE;;AAE7M,uBAAuB;;AAEvB,8BAA8B,gFAAgF;;AAE9G,wBAAwB;;AAExB,wBAAwB,qCAAqC,MAAM,gBAAgB,YAAY,YAAY,UAAU,wDAAwD;;AAE7K,2BAA2B,yCAAyC,KAAK;;AAEzE,2BAA2B;AAC3B,+FAA+F,iBAAiB;AAChH,sBAAsB,mBAAmB;AACzC;AACA;;AAEA,wBAAwB,qBAAqB,oQAAoQ;;AAEjT,wBAAwB,wBAAwB,mCAAmC,kDAAkD,KAAK,0CAA0C,GAAG;;AAEvL,wBAAwB,qDAAqD,8BAA8B,8BAA8B,qDAAqD,sCAAsC,oCAAoC,4CAA4C,iSAAiS,yDAAyD,4CAA4C,iFAAiF,4FAA4F,yFAAyF,2CAA2C,0BAA0B,qBAAqB,oCAAoC,EAAE,8BAA8B,wCAAwC,6BAA6B,sBAAsB,EAAE,gCAAgC,0BAA0B,qBAAqB,mEAAmE,4BAA4B,EAAE,8BAA8B,wCAAwC,sCAAsC,SAAS,iEAAiE,wCAAwC,YAAY;AACrlD,iGAAiG,YAAY,EAAE,yDAAyD,gHAAgH,mBAAmB;AAC3S;AACA,sDAAsD,yBAAyB,OAAO,YAAY,gCAAgC,WAAW,6DAA6D,mFAAmF,2EAA2E,6fAA6f,mBAAmB,mGAAmG;AAC39B,4ZAA4Z,mKAAmK,gFAAgF,0KAA0K;AACzzB,8CAA8C,gJAAgJ,mBAAmB;AACjN,8BAA8B,kBAAkB;AAChD;AACA,+BAA+B,0BAA0B,+BAA+B,iEAAiE,0TAA0T,mBAAmB,+BAA+B;AACrgB;AACA;AACA;AACA,gCAAgC,8FAA8F,8BAA8B,YAAY,kBAAkB,eAAe,YAAY,kBAAkB,eAAe,OAAO,eAAe,MAAM,mEAAmE,MAAM,+BAA+B,8BAA8B,uCAAuC,+JAA+J,sBAAsB,qFAAqF;AACzsB,uDAAuD,gCAAgC,uDAAuD;AAC9I,qDAAqD;AACrD,0FAA0F,iIAAiI,2BAA2B,kCAAkC,0BAA0B,iEAAiE,+BAA+B;AAClZ;AACA,0BAA0B,8EAA8E,OAAO,YAAY,gCAAgC,OAAO,KAAK,qBAAqB,qBAAqB,gCAAgC;AACjP;AACA,mCAAmC,SAAS,sCAAsC,4DAA4D,uBAAuB,GAAG,+BAA+B,kDAAkD;AACzP,0BAA0B,YAAY,YAAY,WAAW,uBAAuB,4DAA4D,UAAU,aAAa,OAAO,+BAA+B,QAAQ,oBAAoB,QAAQ,oCAAoC,QAAQ,yBAAyB,EAAE,cAAc,oBAAoB,mJAAmJ,sBAAsB,8OAA8O,uBAAuB,0BAA0B,8NAA8N,EAAE,WAAW,mBAAmB,wCAAwC,gCAAgC,YAAY,gBAAgB,sDAAsD,EAAE,sBAAsB,oBAAoB,0FAA0F,6HAA6H,GAAG,2BAA2B,qBAAqB,uBAAuB,yVAAyV,EAAE,kCAAkC;AACp4D;AACA,gDAAgD,0CAA0C,wBAAwB,sBAAsB;AACxI;AACA;AACA;AACA,uCAAuC,SAAS,SAAS,OAAO,GAAG,GAAG,YAAY,UAAU;AAC5F;AACA,qFAAqF,YAAY,oDAAoD,sDAAsD,qCAAqC,iEAAiE,gDAAgD;AACjW,iFAAiF,kBAAkB,QAAQ,EAAE,+DAA+D,qCAAqC;AACjN;AACA,mMAAmM,qCAAqC,2BAA2B,EAAE,oDAAoD,EAAE,EAAE,0BAA0B,kGAAkG,2HAA2H,uCAAuC,KAAK,sCAAsC,iBAAiB,oBAAoB,OAAO,EAAE,YAAY,sBAAsB;AACttB;AACA,sDAAsD,wCAAwC,iDAAiD,KAAK,qCAAqC,uBAAuB,2DAA2D,EAAE,wBAAwB,qBAAqB,6BAA6B,EAAE,6BAA6B;AACtX,yCAAyC,gEAAgE,EAAE,yBAAyB;AACpI,yCAAyC;AACzC,oCAAoC,4IAA4I,gDAAgD,YAAY,EAAE,wBAAwB,uCAAuC,kCAAkC,qBAAqB,iBAAiB,sBAAsB,uGAAuG,2DAA2D,kCAAkC,wEAAwE,yBAAyB,uEAAuE,sBAAsB,uBAAuB,GAAG;AACvyB;AACA,mCAAmC,uBAAuB,6BAA6B,uBAAuB,4BAA4B,sBAAsB,4BAA4B,uBAAuB,kCAAkC,gEAAgE,qBAAqB,OAAO,2IAA2I,wBAAwB,aAAa,4BAA4B,iBAAiB,6BAA6B,6BAA6B,4BAA4B,gBAAgB,OAAO,mBAAmB,WAAW,2BAA2B,gBAAgB,OAAO,mBAAmB,WAAW,6BAA6B,gCAAgC,UAAU,YAAY,WAAW,6BAA6B,gCAAgC,SAAS,YAAY,WAAW,GAAG,EAAE,+BAA+B,6DAA6D,8BAA8B,qBAAqB,8DAA8D,EAAE,IAAI,YAAY,wBAAwB,8BAA8B,qBAAqB,kCAAkC,2DAA2D,EAAE;;AAEl1C;;AAEA,wBAAwB,sCAAsC,OAAO,sBAAsB;;AAE3F,8BAA8B;AAC9B;AACA;AACA;AACA,wBAAwB,qCAAqC,OAAO,UAAU;AAC9E;AACA,2BAA2B,sBAAsB,yBAAyB,SAAS,OAAO,UAAU;AACpG,8EAA8E;AAC9E,0BAA0B,UAAU;AACpC;AACA,2DAA2D,qCAAqC;AAChG,kCAAkC,gEAAgE,4CAA4C,YAAY;;AAE1J,wBAAwB,0CAA0C,uBAAuB,KAAK;AAC9F;AACA,2BAA2B;;AAE3B,oCAAoC,wDAAwD,OAAO,qEAAqE;;AAExK,uCAAuC,0FAA0F;AACjI;AACA;AACA,gDAAgD,8BAA8B,OAAO,qBAAqB,WAAW;AACrH;AACA,+DAA+D;AAC/D,oEAAoE,KAAK,0CAA0C,SAAS,cAAc,SAAS,2BAA2B,KAAK;AACnL,mDAAmD,mBAAmB,KAAK,sEAAsE,EAAE,yFAAyF;;AAE5O;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mCAAmC,+BAA+B,OAAO,cAAc,0DAA0D,YAAY;AAC9L,kDAAkD,WAAW;AAC7D;AACA,iEAAiE,4BAA4B,YAAY,YAAY,gBAAgB,SAAS;AAC9I,kCAAkC,KAAK;AACvC;AACA,oGAAoG,gCAAgC;AACpI,iCAAiC,uBAAuB,uGAAuG,yCAAyC,kCAAkC,qCAAqC,GAAG,GAAG,+IAA+I,uCAAuC,8GAA8G,gCAAgC,0BAA0B,gBAAgB,2DAA2D,mCAAmC;AACjuB;AACA,+BAA+B,UAAU,iCAAiC,KAAK,qBAAqB,yHAAyH,iBAAiB,8BAA8B,sBAAsB,kCAAkC,qEAAqE,qBAAqB,EAAE,OAAO;AACva;AACA,8BAA8B,8DAA8D,cAAc,iCAAiC,MAAM,iEAAiE,0CAA0C;AAC5P;AACA,kCAAkC;AAClC,mDAAmD,WAAW,wCAAwC;AACtG,iDAAiD,mCAAmC,2HAA2H;AAC/M,kFAAkF,gDAAgD,4CAA4C;AAC9K,+HAA+H,uEAAuE,QAAQ,EAAE,mFAAmF,qHAAqH,oEAAoE,mBAAmB,qFAAqF,qDAAqD,uEAAuE,mCAAmC,qHAAqH,oCAAoC,wEAAwE,mBAAmB,4CAA4C,8BAA8B,OAAO,6GAA6G,OAAO;AAC5pC;;AAEA,yBAAyB;AACzB,2CAA2C;AAC3C,mCAAmC;AACnC;AACA;;AAEA,sBAAsB,iBAAiB,GAAG,6DAA6D,WAAW;;AAElH,sBAAsB,oEAAoE;;AAE1F,yBAAyB,yCAAyC,iCAAiC,wCAAwC,uBAAuB,kDAAkD,iCAAiC;AACrP,kCAAkC,cAAc,8JAA8J,0BAA0B,IAAI,eAAe,oBAAoB;AAC/Q,yBAAyB,yEAAyE,YAAY,OAAO;AACrH,2DAA2D,GAAG,oCAAoC,OAAO,yBAAyB,qCAAqC,uBAAuB,8CAA8C,oBAAoB,8CAA8C,mBAAmB,kFAAkF,EAAE,EAAE;AACvZ,oCAAoC,UAAU,qBAAqB,uKAAuK,yLAAyL,YAAY;AAC/a,6EAA6E,cAAc,8EAA8E,6BAA6B;AACtM,aAAa;;AAEb,sBAAsB;AACtB,2CAA2C,EAAE;AAC7C,iBAAiB,mBAAmB;AACpC,6BAA6B,gCAAgC,gBAAgB,OAAO;AACpF,2DAA2D,GAAG,2BAA2B;AACzF;AACA;AACA,iDAAiD;AACjD,sBAAsB,OAAO;AAC7B,qCAAqC,cAAc;AACnD,0HAA0H,WAAW;AACrI,uEAAuE,sBAAsB,mKAAmK,uBAAuB,oEAAoE,wBAAwB,2EAA2E,EAAE,WAAW,sBAAsB,sBAAsB,2CAA2C,wBAAwB,4BAA4B,mCAAmC,+BAA+B,qBAAqB,6BAA6B,qBAAqB,iCAAiC,wBAAwB,6BAA6B,wBAAwB,iCAAiC,gCAAgC,gCAAgC,gCAAgC,oCAAoC,yBAAyB,6BAA6B,kBAAkB,yBAAyB,yBAAyB,yBAAyB,oHAAoH,EAAE,kBAAkB,2BAA2B,2BAA2B,0LAA0L,EAAE,EAAE;;AAEjgD,mBAAmB;;AAEnB,mBAAmB;;AAEnB,4BAA4B,OAAO,MAAM,2HAA2H,YAAY,uBAAuB;AACvM,+BAA+B;AAC/B,iDAAiD,2CAA2C,YAAY,mBAAmB;;AAE3H,sBAAsB,kCAAkC,UAAU;AAClE,mCAAmC,gBAAgB;AACnD,kEAAkE;AAClE;AACA;AACA,iBAAiB,kBAAkB,uEAAuE,2BAA2B,wFAAwF,GAAG,oCAAoC,sBAAsB,0CAA0C,YAAY,gCAAgC,iCAAiC,SAAS,oBAAoB,iDAAiD,qBAAqB,2BAA2B,uBAAuB,sCAAsC,wBAAwB,YAAY,oBAAoB,kDAAkD,sBAAsB,aAAa,4BAA4B,wFAAwF,oBAAoB,2CAA2C,qBAAqB,aAAa,GAAG,WAAW,YAAY,wBAAwB;AACh+B;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB,WAAW,sBAAsB,iDAAiD,sBAAsB,yBAAyB,oBAAoB,mBAAmB,gCAAgC,2BAA2B;AAC5Q,oDAAoD;AACpD,qKAAqK,GAAG,aAAa,aAAa,2BAA2B;;AAE7N,gDAAgD;AAChD,8CAA8C,UAAU,gBAAgB;AACxE,6SAA6S,EAAE;AAC/S;AACA,4DAA4D,MAAM,MAAM,YAAY,8IAA8I;AAClO,oIAAoI,EAAE,gCAAgC,2HAA2H,aAAa,wBAAwB,wCAAwC,EAAE;AAChX,uBAAuB,kCAAkC;AACzD;AACA,wDAAwD,QAAQ,iHAAiH,uEAAuE,iCAAiC,uCAAuC;AAChU,2BAA2B,qBAAqB,+FAA+F,EAAE;AACjJ;AACA;AACA;AACA,iCAAiC,4HAA4H,OAAO,KAAK,0BAA0B,qBAAqB,EAAE,EAAE;AAC5N,+CAA+C,8HAA8H,kCAAkC,0BAA0B,UAAU,IAAI;;AAEvP,kBAAkB;AAClB,8BAA8B,qCAAqC,sBAAsB,SAAS,YAAY;AAC9G,8HAA8H,EAAE,wNAAwN,wCAAwC;AAChY;AACA,8BAA8B;AAC9B;AACA,gIAAgI,yBAAyB;AACzJ,sBAAsB,OAAO,sDAAsD,oDAAoD;AACvI;AACA;;AAEA,sBAAsB;;AAEtB,mBAAmB;;AAEnB,mBAAmB;;AAEnB,kBAAkB;AAClB,8BAA8B,qBAAqB,yBAAyB,oBAAoB,sFAAsF,6BAA6B,QAAQ,0BAA0B,0BAA0B;AAC/Q;AACA,4CAA4C,WAAW,uBAAuB,iFAAiF,6BAA6B,gIAAgI,0BAA0B,4BAA4B,oBAAoB,oBAAoB,yFAAyF,OAAO,KAAK;AAC/f,yHAAyH,EAAE,wBAAwB,yBAAyB,6CAA6C,GAAG;AAC5N;AACA,mBAAmB,SAAS;AAC5B;;AAEA,yBAAyB,UAAU;AACnC,6GAA6G,MAAM,wHAAwH;AAC3O,gCAAgC;AAChC;AACA,cAAc,uBAAuB,sCAAsC,2BAA2B,2BAA2B,8BAA8B,iBAAiB,4BAA4B,2BAA2B,+BAA+B,iBAAiB,EAAE,gBAAgB,uBAAuB;AAChU,sCAAsC,uEAAuE,iBAAiB,yBAAyB,OAAO,yBAAyB,4CAA4C,yCAAyC,4BAA4B,oBAAoB,GAAG,2CAA2C,oFAAoF,mBAAmB,KAAK;AACtd,8CAA8C,WAAW,2BAA2B,8BAA8B,oBAAoB,GAAG,EAAE,aAAa,2BAA2B,OAAO,oJAAoJ,2BAA2B,eAAe;AACxX;AACA;AACA,wCAAwC,+HAA+H,kBAAkB,kCAAkC,+BAA+B,0BAA0B,uCAAuC,mDAAmD,gCAAgC,GAAG,GAAG,EAAE,gBAAgB,wBAAwB,WAAW,iJAAiJ;AAC1lB,mGAAmG,GAAG,wBAAwB,8BAA8B,qBAAqB,GAAG,2BAA2B,mCAAmC;AAClP,0BAA0B,8BAA8B;AACxD;AACA;AACA,gCAAgC,iEAAiE,KAAK,yEAAyE,2BAA2B,EAAE;;AAE5M,6BAA6B,kBAAkB,mDAAmD,yDAAyD,WAAW;AACtK;AACA;AACA,6BAA6B;;AAE7B,6BAA6B;AAC7B,gCAAgC,iBAAiB,eAAe,yBAAyB;AACzF;AACA;AACA,6EAA6E,uBAAuB,yCAAyC,KAAK;AAClJ,uDAAuD,0HAA0H;;AAEjL,uBAAuB,2DAA2D,OAAO,mdAAmd,YAAY,OAAO,kDAAkD;AACjnB,iBAAiB,mBAAmB,sBAAsB,oBAAoB,kBAAkB,uBAAuB,sFAAsF,6CAA6C,GAAG,EAAE,EAAE;AACjQ;AACA;AACA,cAAc;;AAEd,uBAAuB,kJAAkJ;;AAEzK,uBAAuB,8BAA8B,OAAO;AAC5D,sGAAsG,4BAA4B;;AAElI,gCAAgC,wFAAwF,OAAO;AAC/H;AACA;AACA,sCAAsC,wLAAwL,KAAK;AACnO,2EAA2E,kCAAkC,gCAAgC,YAAY;AACzJ;AACA;AACA,uBAAuB,YAAY,qCAAqC;AACxE,wYAAwY;AACxY;AACA;AACA;;AAEA,mBAAmB;;AAEnB,mBAAmB;;AAEnB,mBAAmB,MAAM,yBAAyB,aAAa;;AAE/D,mCAAmC,UAAU,4BAA4B,wFAAwF,WAAW;AAC5K,8BAA8B,6CAA6C,8CAA8C,4DAA4D,gCAAgC;AACrN,eAAe,WAAW,gCAAgC,mDAAmD;AAC7G,gLAAgL,kDAAkD,sGAAsG,+CAA+C,KAAK,8GAA8G,0EAA0E,gBAAgB,qJAAqJ,6SAA6S,mCAAmC,mEAAmE,2BAA2B,kDAAkD,KAAK;AAC9rC,sGAAsG,kCAAkC,qJAAqJ,KAAK;AAClS,gJAAgJ;AAChJ;AACA,oEAAoE,EAAE,yBAAyB;AAC/F;AACA,gDAAgD;AAChD,kDAAkD,sBAAsB,sBAAsB,0BAA0B,qFAAqF;AAC7M,8DAA8D;AAC9D;AACA,oFAAoF,2IAA2I,gHAAgH,kEAAkE,EAAE,4BAA4B;AAC/a;AACA,6BAA6B;AAC7B,sBAAsB,YAAY;AAClC,wFAAwF,oBAAoB,QAAQ,OAAO;AAC3H,4CAA4C,uBAAuB;AACnE,qDAAqD,gCAAgC,MAAM,2BAA2B,8CAA8C,2DAA2D,uDAAuD,eAAe,uDAAuD,oBAAoB,iCAAiC,2DAA2D,GAAG,EAAE,GAAG,oBAAoB,2CAA2C,YAAY,QAAQ,eAAe,UAAU,sBAAsB,2DAA2D,2BAA2B,SAAS,sBAAsB,yDAAyD,4BAA4B,UAAU,sBAAsB,0FAA0F,yBAAyB,0BAA0B,EAAE,iBAAiB,4BAA4B,qFAAqF,EAAE,EAAE,EAAE,qCAAqC,uDAAuD,4BAA4B;AAC/sC,ocAAoc,uBAAuB,yJAAyJ;AACpnB,wFAAwF,+BAA+B;AACvH,2FAA2F,wCAAwC;AACnI,qIAAqI,EAAE,UAAU,0ZAA0Z,kBAAkB,0LAA0L,EAAE,4BAA4B,2GAA2G,kBAAkB,uBAAuB,oDAAoD;AAC79B,oCAAoC,gIAAgI,EAAE,EAAE,gBAAgB,2BAA2B,8BAA8B,6BAA6B,iCAAiC,0BAA0B,UAAU,mLAAmL,yIAAyI,gCAAgC,EAAE,mCAAmC,cAAc,EAAE,EAAE;AACtuB;AACA;AACA;;AAEA,uBAAuB;;AAEvB,oBAAoB;;AAEpB,oBAAoB;;AAEpB,uBAAuB,4BAA4B,wBAAwB;AAC3E,wDAAwD;AACxD,gDAAgD,OAAO;AACvD,6DAA6D,oBAAoB;;AAEjF,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA,qBAAqB,mGAAmG;AACxH,qEAAqE,EAAE,qHAAqH,kDAAkD,OAAO,uGAAuG;AAC5V,4EAA4E,OAAO,4NAA4N;;AAE/S,0BAA0B,+CAA+C,oBAAoB,6JAA6J;AAC1P,cAAc,6BAA6B,oCAAoC,4BAA4B;AAC3G,mDAAmD;AACnD,8DAA8D,OAAO,qMAAqM;AAC1Q;AACA,6EAA6E,OAAO;AACpF;AACA,wFAAwF,0BAA0B,8CAA8C,uBAAuB;AACvL,2BAA2B,wBAAwB;AACnD;AACA;AACA,6DAA6D,EAAE,EAAE,gBAAgB,sBAAsB,yBAAyB,uBAAuB,qBAAqB,qBAAqB,6BAA6B,oEAAoE,+FAA+F,GAAG,8BAA8B,sBAAsB,yCAAyC,mGAAmG,GAAG,uBAAuB,yCAAyC;AACvoB,uIAAuI,GAAG,sBAAsB,yCAAyC,2DAA2D,GAAG,qBAAqB,yCAAyC,uEAAuE,GAAG,qBAAqB,mBAAmB,uBAAuB,uEAAuE,cAAc,yBAAyB,wEAAwE,6BAA6B,GAAG,qBAAqB,6BAA6B,sBAAsB;AAC5uB;AACA,oCAAoC,0DAA0D,6FAA6F,wBAAwB,MAAM,OAAO,OAAO,8BAA8B;AACrQ,+BAA+B,aAAa;AAC5C,6CAA6C,8BAA8B,2BAA2B,YAAY,yCAAyC;AAC3J,iGAAiG,MAAM,EAAE,WAAW,oHAAoH,kBAAkB,wBAAwB,uDAAuD,QAAQ,8EAA8E,2BAA2B,EAAE,EAAE;AAC9b,0BAA0B,qCAAqC,yDAAyD;AACxH;;AAEA,mBAAmB;AACnB,qDAAqD,cAAc,WAAW,eAAe,UAAU,iDAAiD,cAAc,sBAAsB,gBAAgB,YAAY,WAAW,YAAY,UAAU;;AAEzP,oBAAoB;;AAEpB,0BAA0B,6BAA6B;;AAEvD,uBAAuB,SAAS,kBAAkB;AAClD,iCAAiC,EAAE;AACnC,0OAA0O,gCAAgC,kBAAkB,8BAA8B,kBAAkB,6BAA6B,kBAAkB,kCAAkC,kBAAkB,6BAA6B,kBAAkB,EAAE,GAAG;AACne;AACA,cAAc,+DAA+D;AAC7E,cAAc,wCAAwC;AACtD;AACA;;AAEA,oBAAoB,uDAAuD,uBAAuB,6DAA6D,KAAK;AACpK,qDAAqD;;AAErD,0BAA0B,oBAAoB;;AAE9C,mCAAmC;AACnC;AACA,kBAAkB,gDAAgD,OAAO,OAAO,0WAA0W;;AAE1b,0BAA0B;AAC1B;AACA;AACA,kBAAkB,kBAAkB;AACpC,wBAAwB;;AAExB,gCAAgC;AAChC,cAAc,YAAY,WAAW,sBAAsB,SAAS,0BAA0B,4BAA4B,EAAE,EAAE,EAAE,cAAc,qMAAqM,cAAc,+BAA+B,4DAA4D;AAC5b;AACA,gCAAgC,+IAA+I,2WAA2W,EAAE,6BAA6B,uBAAuB,4QAA4Q,EAAE,+CAA+C,kBAAkB,yBAAyB,mJAAmJ,qBAAqB,GAAG,0BAA0B;AAC7nC;AACA,+CAA+C,0QAA0Q,EAAE,EAAE,oEAAoE,2FAA2F,gBAAgB,cAAc,wCAAwC,WAAW,WAAW,2CAA2C,kBAAkB,sBAAsB,sBAAsB,uBAAuB,gDAAgD,OAAO,kDAAkD,WAAW,EAAE,kDAAkD,gBAAgB,sBAAsB,mCAAmC,iBAAiB;AAC17B,0BAA0B,wBAAwB,8BAA8B,OAAO,sCAAsC,WAAW,uDAAuD,+BAA+B,EAAE,+BAA+B,oDAAoD,wLAAwL,mBAAmB,iCAAiC,oEAAoE,oBAAoB,oCAAoC,mVAAmV,EAAE,8DAA8D,YAAY,mBAAmB,OAAO,oKAAoK,oBAAoB,yMAAyM,EAAE,EAAE,sDAAsD,mBAAmB,mEAAmE,EAAE,cAAc,sBAAsB,WAAW,sBAAsB,wCAAwC,qBAAqB,2CAA2C;AACpxD;;AAEA,mBAAmB;;AAEnB,mBAAmB,iCAAiC,cAAc;;AAElE,uBAAuB;AACvB,iBAAiB,aAAa,oBAAoB,OAAO,8DAA8D;;AAEvH,0BAA0B,sFAAsF,OAAO;AACvH;;AAEA,0BAA0B;AAC1B;AACA,gDAAgD,gBAAgB;AAChE,4BAA4B,kBAAkB,mIAAmI,OAAO,yBAAyB,mHAAmH;AACpU,2BAA2B,4BAA4B,0BAA0B,kBAAkB,6BAA6B,uIAAuI,4EAA4E,6BAA6B,qBAAqB;AACrY,oDAAoD,oBAAoB,aAAa,OAAO,yBAAyB,oGAAoG,EAAE;AAC3N,wBAAwB,sBAAsB,mBAAmB;AACjE;AACA;AACA,mCAAmC,0BAA0B,OAAO;AACpE;AACA,4MAA4M,wCAAwC;AACpP,gCAAgC,YAAY,uBAAuB,gCAAgC,yCAAyC,GAAG,2BAA2B,wEAAwE,OAAO,kFAAkF,kCAAkC;AAC7W;AACA,sBAAsB;AACtB;AACA;AACA,uCAAuC,sIAAsI,oBAAoB,sCAAsC,sBAAsB,0DAA0D,GAAG;AAC1T,2CAA2C,yEAAyE;AACpH;AACA;AACA;AACA,wZAAwZ,gBAAgB,sJAAsJ,uFAAuF,sFAAsF,aAAa,8DAA8D,wEAAwE,iGAAiG,8BAA8B,uDAAuD,EAAE,gCAAgC,gDAAgD,QAAQ,uFAAuF,iRAAiR,oEAAoE,KAAK,eAAe,+BAA+B,gEAAgE,aAAa,YAAY;AACtsD,0BAA0B,6BAA6B;AACvD,4DAA4D;AAC5D,qCAAqC,mFAAmF;AACxH,2BAA2B;AAC3B,qCAAqC,8HAA8H;AACnK;AACA;AACA,oCAAoC;AACpC;AACA,4EAA4E,mBAAmB,KAAK,qGAAqG,+BAA+B,GAAG,uBAAuB,2DAA2D;AAC7T;AACA;AACA;AACA,yCAAyC,8FAA8F,KAAK,iFAAiF,YAAY,OAAO;AAChP,iCAAiC,GAAG,EAAE,sDAAsD;AAC5F,qCAAqC,0GAA0G,EAAE,WAAW,iFAAiF,kBAAkB,YAAY,kBAAkB,eAAe,oBAAoB,EAAE,kBAAkB,8BAA8B,kCAAkC,EAAE,0CAA0C;AAChc,yBAAyB,sBAAsB,cAAc;AAC7D,8CAA8C,4BAA4B,iCAAiC,+CAA+C,wBAAwB,0BAA0B,YAAY,iBAAiB,sCAAsC,+BAA+B,sFAAsF;AACpY,iCAAiC,oBAAoB,EAAE,GAAG,wRAAwR;AAClV,iBAAiB,uBAAuB,qDAAqD,2BAA2B,8BAA8B,wBAAwB,GAAG,EAAE,aAAa,0BAA0B,0BAA0B,0bAA0b,cAAc,QAAQ,sBAAsB,uDAAuD,iBAAiB,0DAA0D,EAAE,EAAE,EAAE,8BAA8B;AACh4B,oCAAoC;AACpC,sBAAsB,YAAY,wBAAwB,EAAE,SAAS,yBAAyB,iEAAiE,EAAE,iEAAiE;AAClO,mCAAmC,+BAA+B,sFAAsF,EAAE,EAAE;AAC5J;;AAEA,oBAAoB;;AAEpB,oBAAoB;;AAEpB,oBAAoB;AACpB,iBAAiB,uBAAuB,qDAAqD,2BAA2B,8BAA8B,iCAAiC,GAAG,EAAE,aAAa,0BAA0B,0BAA0B,iQAAiQ,cAAc,YAAY,mBAAmB,oCAAoC,6FAA6F,EAAE,EAAE,YAAY,qCAAqC,EAAE,6CAA6C,mBAAmB,sBAAsB,+DAA+D,oBAAoB;AAC54B,gFAAgF,EAAE,6JAA6J,uCAAuC,gBAAgB,wBAAwB,gCAAgC,yCAAyC,8CAA8C,EAAE;AACvb,sBAAsB,eAAe;AACrC,+EAA+E,YAAY,YAAY;AACvG;AACA,yBAAyB,4BAA4B,gCAAgC,yCAAyC,iDAAiD,EAAE,sDAAsD;AACvO,sBAAsB,eAAe;AACrC,+EAA+E,YAAY,YAAY;AACvG,kCAAkC,gCAAgC;AAClE;AACA,yBAAyB,+BAA+B;AACxD,sDAAsD,gHAAgH,uDAAuD,0BAA0B,gBAAgB;AACvQ,uDAAuD,YAAY;AACnE,mNAAmN,GAAG,yBAAyB,sCAAsC,eAAe;AACpS;AACA,uBAAuB,EAAE,EAAE;AAC3B,iBAAiB,mBAAmB,0BAA0B,6DAA6D;AAC3H,wLAAwL,iCAAiC,qJAAqJ,uNAAuN,EAAE,aAAa,YAAY,UAAU,mBAAmB,iCAAiC,uCAAuC,EAAE,WAAW,mBAAmB,wJAAwJ,OAAO;AACp4B,0IAA0I;AAC1I;AACA,8BAA8B,uBAAuB,gEAAgE,KAAK,iFAAiF,wCAAwC,EAAE,EAAE,EAAE,6CAA6C,qBAAqB,sBAAsB,yEAAyE,EAAE,oDAAoD,2DAA2D,GAAG;;AAE9gB,oBAAoB,sBAAsB;AAC1C,uBAAuB,gCAAgC;AACvD;AACA;AACA,uCAAuC,ogBAAogB,qDAAqD,kCAAkC,oEAAoE,GAAG;AACzsB,kGAAkG;AAClG,8DAA8D,6EAA6E,2JAA2J,gXAAgX,EAAE,+BAA+B,mCAAmC,2BAA2B;AACrvB,yCAAyC,EAAE,gBAAgB,0BAA0B,8BAA8B,8BAA8B,GAAG,kCAAkC,iBAAiB,6CAA6C,EAAE,wBAAwB,qCAAqC;AACnT,uBAAuB;AACvB,8BAA8B,oBAAoB;AAClD;AACA,iFAAiF,wBAAwB;AACzG;AACA,2FAA2F,EAAE,EAAE,EAAE;AACjG;AACA;AACA,8BAA8B,OAAO,6CAA6C,MAAM,uDAAuD,YAAY,aAAa,gGAAgG;AACxQ;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,gGAAgG,eAAe,gFAAgF,2BAA2B;AAC1N;AACA,mDAAmD,OAAO,iDAAiD,uGAAuG;AAClN;AACA;AACA,mEAAmE,gBAAgB,qBAAqB,eAAe,wBAAwB,wCAAwC,8BAA8B,6BAA6B,kCAAkC,mCAAmC,qBAAqB,mBAAmB,yHAAyH,sBAAsB,uBAAuB,oEAAoE,SAAS,6CAA6C,EAAE,KAAK,6CAA6C,EAAE,SAAS,EAAE,EAAE;AAClsB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;;AAEA,oBAAoB,wBAAwB,0CAA0C;AACtF,mDAAmD;AACnD,sBAAsB,YAAY,wGAAwG;;AAE1I,6BAA6B,WAAW;AACxC;;AAEA,uBAAuB,OAAO,sDAAsD,oBAAoB,wGAAwG,MAAM;;AAEtN,uBAAuB,gDAAgD,yDAAyD,aAAa;AAC7I,iCAAiC,4BAA4B,UAAU,iBAAiB,4MAA4M,2BAA2B,8HAA8H,aAAa,mDAAmD,mBAAmB,iEAAiE,eAAe,qFAAqF,gBAAgB,uBAAuB,EAAE,6BAA6B,kEAAkE,sEAAsE,0DAA0D,qDAAqD;AACl/B;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sBAAsB;AACtB,sBAAsB;AACtB;AACA,qBAAqB,gDAAgD,OAAO,SAAS;AACrF,4CAA4C,gBAAgB;AAC5D,oDAAoD,8BAA8B,qCAAqC,sBAAsB,oCAAoC,yFAAyF,iCAAiC,6CAA6C,2BAA2B,OAAO;AAC1X;AACA;AACA;AACA,qCAAqC,sBAAsB,gBAAgB,wCAAwC,GAAG,wOAAwO,0BAA0B,MAAM,8GAA8G,YAAY,qBAAqB,EAAE,qIAAqI,k/BAAk/B,iFAAiF,gFAAgF,+FAA+F;AACt4D,0EAA0E,qBAAqB,cAAc,MAAM,uBAAuB,YAAY;AACtJ,8BAA8B,EAAE;;AAEhC,oCAAoC;AACpC,gLAAgL;AAChL,qCAAqC,qFAAqF;AAC1H;AACA,uDAAuD,cAAc;AACrE;AACA,0BAA0B,eAAe,6CAA6C,OAAO;AAC7F;AACA,oCAAoC,iDAAiD,sCAAsC,0BAA0B;AACrJ,gDAAgD;AAChD,qFAAqF,oBAAoB,GAAG;AAC5G;AACA;AACA,4DAA4D;AAC5D;AACA,+GAA+G,iEAAiE;AAChL;AACA;AACA,sCAAsC,WAAW,YAAY,SAAS,8EAA8E,EAAE,EAAE,SAAS,4BAA4B,EAAE,mpBAAmpB,WAAW,8BAA8B,gCAAgC,6BAA6B,uCAAuC,EAAE,2CAA2C,8BAA8B,kEAAkE,oDAAoD,6BAA6B,EAAE,6BAA6B,gBAAgB,wFAAwF,GAAG,eAAe,uBAAuB,OAAO,qKAAqK,mBAAmB,qBAAqB,0BAA0B,WAAW,uBAAuB,0BAA0B,sCAAsC,qCAAqC,0BAA0B;AAC5vD;AACA,uDAAuD,GAAG,qBAAqB,cAAc,+BAA+B,2CAA2C,GAAG,uBAAuB,oDAAoD,uCAAuC,SAAS,EAAE,wCAAwC,oCAAoC,wCAAwC,0EAA0E,mCAAmC,MAAM,8BAA8B,aAAa,GAAG,WAAW,oBAAoB;AAC3lB;AACA,+FAA+F,UAAU,6CAA6C,uBAAuB,oBAAoB;AACjM,iEAAiE;AACjE,iCAAiC,oBAAoB,2UAA2U,qBAAqB,IAAI,uBAAuB,+BAA+B,EAAE,sIAAsI,gDAAgD,WAAW,GAAG,iBAAiB,MAAM,yCAAyC,YAAY,iBAAiB,EAAE,qBAAqB,WAAW,EAAE,EAAE,gCAAgC,4CAA4C,gBAAgB,WAAW,sGAAsG,aAAa,oCAAoC,eAAe,6BAA6B,4BAA4B,EAAE,EAAE,0CAA0C,0EAA0E,0CAA0C,UAAU,4BAA4B,uBAAuB,yBAAyB,uCAAuC,oCAAoC,uEAAuE,6BAA6B,qBAAqB,WAAW,EAAE,EAAE,EAAE;AAC3iD;AACA,iBAAiB,+CAA+C,4CAA4C,yBAAyB,EAAE,oDAAoD,kMAAkM,8RAA8R,mDAAmD,wDAAwD,gBAAgB,uBAAuB,8IAA8I,aAAa,uLAAuL,0XAA0X,cAAc,iCAAiC;AACxiD,+BAA+B,2JAA2J,sDAAsD,oBAAoB,2EAA2E,8BAA8B,oBAAoB,6CAA6C,GAAG,SAAS,4GAA4G,wBAAwB,uBAAuB,EAAE,0CAA0C,sCAAsC,sBAAsB,UAAU,cAAc,+BAA+B;AACpvB;AACA,uBAAuB,mTAAmT,sJAAsJ,EAAE,eAAe,sBAAsB,2EAA2E,iCAAiC,EAAE,uBAAuB,0GAA0G,2DAA2D,KAAK,kBAAkB,WAAW,wBAAwB,eAAe;AAC13B,yBAAyB,mBAAmB;AAC5C,sBAAsB,sFAAsF,qFAAqF;AACjM,gKAAgK,SAAS,qGAAqG,EAAE,EAAE,4BAA4B,6BAA6B,gCAAgC,wCAAwC,qBAAqB,iBAAiB,GAAG,EAAE,WAAW,sDAAsD,kBAAkB;AACjhB,+BAA+B,mCAAmC,OAAO,gLAAgL,2BAA2B,EAAE,2CAA2C,qDAAqD,yEAAyE,GAAG,WAAW,mCAAmC,kBAAkB,SAAS,oDAAoD,kBAAkB,2BAA2B;AAC5mB,0EAA0E,mCAAmC,OAAO,iTAAiT,yBAAyB,EAAE,GAAG,8NAA8N,2BAA2B,yEAAyE,EAAE,gBAAgB,wBAAwB,+CAA+C,EAAE,gBAAgB,0BAA0B,gCAAgC,0BAA0B,8BAA8B,kCAAkC,6BAA6B,iCAAiC,gFAAgF,EAAE,6BAA6B,aAAa,+GAA+G,yDAAyD,yCAAyC,6BAA6B,kCAAkC,mLAAmL,mBAAmB,yEAAyE,gFAAgF,WAAW,EAAE;AAC1zD,iBAAiB,oCAAoC,4EAA4E,gCAAgC;AACjK,gBAAgB,gPAAgP,uBAAuB,0BAA0B;;AAEjT,sBAAsB,gBAAgB,cAAc,OAAO;AAC3D,2IAA2I;;AAE3I,yBAAyB;;AAEzB,sBAAsB,2BAA2B,8GAA8G,0DAA0D;;AAEzN,mBAAmB,gBAAgB,sBAAsB,OAAO;AAChE,0DAA0D;AAC1D,2EAA2E,2DAA2D,cAAc,2IAA2I,qEAAqE,GAAG;AACvW,+GAA+G;;AAE/G,mBAAmB;AACnB,mBAAmB,kDAAkD,SAAS,0BAA0B,iCAAiC,YAAY,UAAU,yDAAyD,OAAO,0DAA0D,EAAE,WAAW,uCAAuC;AAC7U,8FAA8F,MAAM,8CAA8C,YAAY,cAAc,EAAE,iDAAiD,kBAAkB;AACjP;AACA;AACA,kCAAkC,wGAAwG,uBAAuB,wBAAwB,qCAAqC,kBAAkB,qCAAqC,oBAAoB,0BAA0B,8BAA8B,sCAAsC;AACvY,iEAAiE;AACjE;AACA,wEAAwE,yDAAyD;AACjI,mBAAmB,+BAA+B,yDAAyD,mIAAmI,yBAAyB,4CAA4C,+BAA+B,yIAAyI,8CAA8C,gLAAgL;AACzrB,6FAA6F,oDAAoD,8EAA8E,GAAG;AAClO;AACA;AACA;AACA,aAAa,sFAAsF;AACnG;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB,qBAAqB,+BAA+B;AACnG,+HAA+H,0BAA0B,uDAAuD,mCAAmC;AACnP,2BAA2B,iFAAiF,sCAAsC,0BAA0B,4BAA4B,kCAAkC;AAC1O,4IAA4I,iCAAiC,sDAAsD,mCAAmC,2CAA2C,oCAAoC,8BAA8B;AACnX;AACA,uFAAuF,GAAG,kCAAkC,qBAAqB,yCAAyC,EAAE,eAAe,kCAAkC,iBAAiB,EAAE,OAAO;AACvQ,iLAAiL,0CAA0C;AAC3N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yHAAyH;AACtI;AACA,2BAA2B,oBAAoB,qBAAqB,+BAA+B;AACnG;AACA,uDAAuD,+mBAA+mB,0BAA0B,uDAAuD,oCAAoC,8BAA8B;AACzzB,0FAA0F,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,OAAO;AACxK,qDAAqD,kBAAkB;AACvE,cAAc,4BAA4B;AAC1C,qDAAqD,EAAE,4CAA4C;AACnG,0DAA0D,6CAA6C,+EAA+E,OAAO,OAAO;AACpM;AACA,iGAAiG,8EAA8E,OAAO,OAAO,cAAc,yFAAyF,EAAE,2FAA2F,0CAA0C;AAC3a;AACA;AACA;AACA;AACA,aAAa,8EAA8E;AAC3F,aAAa,6IAA6I;AAC1J;AACA;AACA;AACA;AACA,aAAa,wWAAwW;AACrX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA,8BAA8B,ofAAof,qBAAqB,6BAA6B,oCAAoC,kCAAkC,uHAAuH,uBAAuB,oCAAoC,yBAAyB,+KAA+K,yBAAyB,oRAAoR,sBAAsB;AACv0C,sEAAsE,iDAAiD;AACvH,kFAAkF,iBAAiB;AACnG,0BAA0B,qDAAqD;AAC/E,wDAAwD,EAAE,0BAA0B,2PAA2P,8BAA8B,gBAAgB,OAAO,qCAAqC,+BAA+B;AACxc,wHAAwH,qCAAqC;AAC7J,qFAAqF,uBAAuB,oFAAoF,oBAAoB,gCAAgC,oBAAoB,yDAAyD,0CAA0C;AAC3W,0DAA0D,uLAAuL,mBAAmB,sRAAsR,oBAAoB,8BAA8B,sEAAsE,4BAA4B,6NAA6N;AAC34B,kLAAkL,yCAAyC,4BAA4B;AACvP;AACA,wDAAwD;AACxD;AACA,yDAAyD,EAAE,iCAAiC,yHAAyH,0CAA0C;AAC/P;AACA;AACA,+CAA+C,oEAAoE,uDAAuD,wEAAwE,yCAAyC;AAC3R;AACA,0CAA0C,iDAAiD,EAAE,wCAAwC,8CAA8C;AACnL,sNAAsN,6BAA6B;AACnP;AACA;AACA;AACA;AACA;AACA;AACA,kOAAkO,iDAAiD,ibAAib,+HAA+H,kCAAkC,MAAM,6IAA6I,oCAAoC,8BAA8B;AAC1jC,gCAAgC,OAAO,kBAAkB,kCAAkC,OAAO,MAAM,4CAA4C;AACpJ,oDAAoD;AACpD,gCAAgC,sDAAsD,GAAG,wCAAwC,iDAAiD,oDAAoD,iBAAiB,kKAAkK,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,WAAW,EAAE,OAAO;AACthB,6GAA6G,gFAAgF,OAAO,OAAO;AAC3M,mDAAmD,EAAE,6FAA6F,2CAA2C;AAC7L;AACA;AACA;AACA,cAAc,yBAAyB;AACvC,cAAc,gDAAgD;AAC9D,cAAc,+HAA+H;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yPAAyP,gFAAgF,OAAO,OAAO;AACrX;AACA,4FAA4F,iBAAiB;AAC7G;AACA,+MAA+M,qBAAqB,+BAA+B,4DAA4D,uBAAuB;AACtV,2KAA2K,6HAA6H,ooBAAooB,6IAA6I,gFAAgF,uBAAuB,cAAc,+DAA+D,0BAA0B,4DAA4D;AACn0C,yLAAyL,mCAAmC;AAC5N,2CAA2C,OAAO,OAAO;AACzD;AACA;AACA;AACA,oDAAoD;AACpD,2EAA2E,wFAAwF,2BAA2B,EAAE,EAAE,oCAAoC,4BAA4B,0BAA0B,2JAA2J,8BAA8B,iBAAiB,QAAQ,mEAAmE,gCAAgC,iDAAiD,6BAA6B;AAC/pB,sMAAsM;AACtM,6DAA6D,kCAAkC,+DAA+D,MAAM,gDAAgD;AACpN,+EAA+E,yCAAyC,qCAAqC,8CAA8C,oCAAoC,8BAA8B;AAC7Q;AACA,gCAAgC,QAAQ,cAAc,oCAAoC,EAAE,gIAAgI;AAC5N,gCAAgC,EAAE,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,YAAY,EAAE,OAAO;AACnK,uDAAuD,uDAAuD;AAC9G;AACA;AACA,8BAA8B;AAC9B;AACA,4CAA4C,GAAG,gGAAgG,6CAA6C;AAC5L;AACA;AACA;AACA;AACA;AACA,cAAc,qNAAqN;AACnO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6GAA6G;AAC3H,cAAc,qKAAqK;AACnL;AACA,8BAA8B,mLAAmL,qBAAqB,+BAA+B;AACrQ,kJAAkJ,wBAAwB,0HAA0H,UAAU,+BAA+B;AAC7U;AACA,mEAAmE,gDAAgD,4BAA4B,2GAA2G,uBAAuB,8TAA8T,sSAAsS,EAAE,EAAE,uBAAuB;AACh5B,gHAAgH,+BAA+B,iPAAiP,0BAA0B,yKAAyK,yBAAyB,gGAAgG,qCAAqC;AACjuB,2DAA2D,sDAAsD,GAAG,8BAA8B,gBAAgB,8BAA8B,6BAA6B,iEAAiE,kCAAkC,OAAO,sHAAsH,gCAAgC;AAC7d,2BAA2B,2KAA2K,gCAAgC,wDAAwD,6BAA6B;AAC3T,2BAA2B,uEAAuE,wBAAwB,eAAe,+CAA+C,MAAM,sCAAsC,mCAAmC,UAAU,8CAA8C,mCAAmC,6BAA6B,oBAAoB,2CAA2C,EAAE,GAAG,wEAAwE,cAAc,OAAO,OAAO,8BAA8B,oCAAoC,8BAA8B,0BAA0B,0GAA0G;AAC3wB,gCAAgC,EAAE,GAAG,+BAA+B;AACpE,mGAAmG,OAAO,OAAO;AACjH;AACA,iCAAiC;AACjC,ykBAAykB,EAAE,yCAAyC,wCAAwC,iEAAiE,0CAA0C,yQAAyQ;AAChhC,8CAA8C,2BAA2B,6JAA6J,sEAAsE,6BAA6B;AACzU,gLAAgL,EAAE,EAAE,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,YAAY,EAAE,GAAG,sCAAsC,YAAY,EAAE,OAAO;AACzW,qOAAqO,uFAAuF,yCAAyC,sBAAsB,gGAAgG,6CAA6C;AACxgB;AACA;AACA;AACA,cAAc,kDAAkD;AAChE,cAAc,uFAAuF;AACrG,cAAc,yXAAyX;AACvY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0PAA0P,qBAAqB,gCAAgC,oDAAoD,wBAAwB;AACzZ,gJAAgJ,mBAAmB,2QAA2Q,mBAAmB,wDAAwD,oDAAoD,8DAA8D,GAAG,kCAAkC,2BAA2B,KAAK,wBAAwB;AACxsB,gkBAAgkB,yBAAyB,kDAAkD;AAC3oB,2EAA2E,sBAAsB,2SAA2S,+BAA+B,uBAAuB,8BAA8B,gBAAgB,QAAQ,uCAAuC,6CAA6C,cAAc,0CAA0C,oCAAoC;AACxqB,oDAAoD;AACpD,uEAAuE,kCAAkC,kDAAkD,mBAAmB,gCAAgC;AAC9M;AACA;AACA;;AAEA,8BAA8B,2FAA2F,+BAA+B,mBAAmB;AAC3K,oJAAoJ,gCAAgC;AACpL,wEAAwE,qHAAqH,GAAG,kCAAkC;AAClO,8GAA8G,mDAAmD,+DAA+D,kCAAkC;AAClQ,qEAAqE,2BAA2B,8BAA8B,6BAA6B;AAC3J,6MAA6M,iHAAiH,GAAG,kCAAkC,wEAAwE,iCAAiC;AAC5c,gEAAgE,8CAA8C,wNAAwN,wHAAwH,6EAA6E,yBAAyB;AACpiB,wFAAwF,OAAO,uFAAuF,gCAAgC,kLAAkL,EAAE,gCAAgC,4EAA4E,qMAAqM,oCAAoC,8EAA8E,kCAAkC;AAC/0B,kIAAkI,gCAAgC;AAClK,0KAA0K;AAC1K;AACA,kHAAkH,6BAA6B;AAC/I;AACA,gHAAgH,iOAAiO,kCAAkC;AACnX,0CAA0C;AAC1C,sFAAsF,EAAE;AACxF,0CAA0C;AAC1C,4FAA4F,EAAE;AAC9F,0GAA0G,qCAAqC;AAC/I,+DAA+D,yDAAyD,yCAAyC,uCAAuC,8BAA8B;AACtO,gCAAgC,QAAQ,oBAAoB,oCAAoC,EAAE,4EAA4E;AAC9K,iCAAiC,2BAA2B,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,YAAY,EAAE,OAAO;AAC7L,uDAAuD;AACvD;AACA,6CAA6C,wCAAwC,iBAAiB,kBAAkB,uEAAuE,wCAAwC,wDAAwD,mCAAmC,GAAG;AACrU,iDAAiD,gGAAgG,6CAA6C;AAC9L,cAAc,6XAA6X;AAC3Y;AACA,2HAA2H;;AAE3H,0BAA0B,8BAA8B,8CAA8C,4JAA4J;AAClQ,iDAAiD,gGAAgG;AACjJ;AACA,uCAAuC,kBAAkB,kCAAkC,iHAAiH,oCAAoC,6BAA6B,uBAAuB,OAAO;AAC3S,yDAAyD,yCAAyC,GAAG,sBAAsB,OAAO,WAAW,0BAA0B;AACvK;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,icAAic;AAC/c,cAAc,2EAA2E;AACzF,cAAc,2WAA2W;AACzX;AACA;AACA,cAAc,qPAAqP;AACnQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,wGAAwG,kHAAkH,qBAAqB,+BAA+B,uBAAuB,0BAA0B,uBAAuB,gCAAgC,qCAAqC,0BAA0B;AACrb,4BAA4B;AAC5B;AACA,wPAAwP,OAAO;AAC/P,iDAAiD,EAAE,0BAA0B,kdAAkd,uBAAuB,cAAc,uGAAuG,8CAA8C,+CAA+C,4BAA4B;AACpyB,kHAAkH,0CAA0C;AAC5J;AACA,6JAA6J;AAC7J;AACA,+CAA+C;AAC/C,4YAA4Y,wBAAwB,0CAA0C;AAC9c;AACA,uKAAuK,EAAE;AACzK,8BAA8B,gPAAgP;AAC9Q;AACA;AACA,8bAA8b,yBAAyB,yDAAyD,gCAAgC,kCAAkC,sCAAsC,iDAAiD,gCAAgC,qEAAqE,6BAA6B;AAC3yB,qHAAqH,wCAAwC,0QAA0Q,2BAA2B,iKAAiK,oCAAoC,cAAc,YAAY,GAAG,2BAA2B,mCAAmC,0CAA0C,UAAU,cAAc,oBAAoB,0CAA0C,EAAE,yBAAyB,2EAA2E,yBAAyB,2CAA2C,EAAE,IAAI,6BAA6B,6BAA6B;AAC5kC,2BAA2B,sEAAsE,wBAAwB,eAAe,6CAA6C,MAAM,qCAAqC,gCAAgC,gKAAgK,kCAAkC,6BAA6B,gCAAgC;AAC/f,oEAAoE,UAAU,4FAA4F,qBAAqB,+NAA+N,qBAAqB,wCAAwC,qBAAqB,IAAI,wCAAwC,wBAAwB,0HAA0H,gBAAgB,kCAAkC,sBAAsB,4BAA4B,iEAAiE,8LAA8L,6BAA6B;AAC9iC,0aAA0a,mCAAmC,oCAAoC,6BAA6B;AAC9gB,sXAAsX,mCAAmC,oCAAoC,uCAAuC;AACpe;AACA,2BAA2B,8BAA8B,gCAAgC,4CAA4C,qCAAqC,8BAA8B,8BAA8B,OAAO,oCAAoC,wBAAwB,+BAA+B,wQAAwQ,qCAAqC,YAAY;AACjoB,yHAAyH,WAAW,iCAAiC;AACrK;AACA,qEAAqE,gDAAgD;AACrH,uHAAuH,iCAAiC;AACxJ;AACA,mKAAmK,oCAAoC,8BAA8B;AACrO,sDAAsD,gHAAgH;AACtK,gCAAgC,EAAE,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,YAAY,EAAE,GAAG,+BAA+B,YAAY,EAAE,GAAG,mCAAmC,YAAY,EAAE,GAAG,gCAAgC,YAAY,EAAE,GAAG,oCAAoC,YAAY,EAAE,GAAG,sCAAsC,YAAY,EAAE,OAAO;AACpa,iGAAiG,6CAA6C;AAC9I;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe,qMAAqM;AACrO,iBAAiB,mBAAmB,uCAAuC;AAC3E;AACA;AACA;AACA;AACA,cAAc,qPAAqP;AACnQ,0BAA0B;;AAE1B,0BAA0B;AAC1B,+GAA+G,qBAAqB,sCAAsC,+CAA+C,sCAAsC,iDAAiD,gCAAgC,qEAAqE,6BAA6B;AAClb,oEAAoE,4BAA4B,4HAA4H,8BAA8B,0EAA0E,iCAAiC;AACrW;AACA,yEAAyE,oCAAoC,8BAA8B;AAC3I,4DAA4D,gHAAgH;AAC5K,gCAAgC,EAAE,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,YAAY,EAAE,GAAG,+BAA+B,YAAY,EAAE,GAAG,mCAAmC,YAAY,EAAE,GAAG,gCAAgC,YAAY,EAAE,GAAG,oCAAoC,YAAY,EAAE,GAAG,sCAAsC,YAAY,EAAE,OAAO;AACpa,iGAAiG,6CAA6C;AAC9I;AACA;AACA;AACA,cAAc,yCAAyC;AACvD,cAAc,iEAAiE;AAC/E,cAAc,6FAA6F;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,2YAA2Y,uBAAuB,oCAAoC,qBAAqB,gCAAgC;AAC3f;AACA;AACA;AACA,gLAAgL,wCAAwC,+CAA+C,mCAAmC,yDAAyD,cAAc,sBAAsB,WAAW,uBAAuB,qBAAqB,uBAAuB,+CAA+C,GAAG,0BAA0B,kQAAkQ,8BAA8B,OAAO,mCAAmC,QAAQ,oCAAoC,mJAAmJ,gCAAgC,0GAA0G,mCAAmC,yHAAyH,mCAAmC,kHAAkH,2BAA2B;AAChgD;AACA,0EAA0E,0DAA0D;AACpI,mEAAmE,OAAO,8HAA8H,mCAAmC,KAAK,GAAG,wKAAwK,EAAE,EAAE,6BAA6B,uCAAuC,oDAAoD,qEAAqE;AAC5lB;AACA,2PAA2P,mBAAmB,GAAG;AACjR,6FAA6F,kCAAkC,uBAAuB,gCAAgC,GAAG,oCAAoC,8BAA8B,0BAA0B,oGAAoG;AACzX,gCAAgC,EAAE,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,kCAAkC,YAAY,EAAE,OAAO;AACnK,+CAA+C,yEAAyE,KAAK,GAAG;AAChI,mDAAmD,EAAE,gGAAgG,6CAA6C;AAClM;AACA;AACA,cAAc,+HAA+H;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB,qBAAqB,6BAA6B;AACjG,sYAAsY,+BAA+B,yBAAyB,mBAAmB,mMAAmM,6BAA6B,4BAA4B;AAC7sB,+CAA+C,mBAAmB;AAClE,+DAA+D,kDAAkD,0BAA0B,wDAAwD;AACnM,8BAA8B,wCAAwC;AACtE;AACA;AACA,mJAAmJ,6CAA6C;AAChM,ygBAAygB,oCAAoC,8BAA8B;AAC3kB,uCAAuC,mEAAmE;AAC1G,gCAAgC,EAAE,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,OAAO;AAChH,uDAAuD,gEAAgE,gGAAgG,6CAA6C;AACpQ;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA;AACA,cAAc,6DAA6D;AAC3E,cAAc,0CAA0C;AACxD;AACA;AACA,8BAA8B,mGAAmG,qBAAqB,6BAA6B;AACnL;AACA,mJAAmJ,4JAA4J,WAAW,qBAAqB,4PAA4P,uBAAuB;AAClmB,sJAAsJ,0BAA0B,oPAAoP,8BAA8B,gBAAgB,QAAQ,6BAA6B,oCAAoC,8DAA8D,gCAAgC;AACznB,sEAAsE,kBAAkB,GAAG;AAC3F,8BAA8B,iEAAiE;AAC/F,+MAA+M,oCAAoC,8BAA8B;AACjR,uCAAuC,8FAA8F;AACrI,oCAAoC,EAAE,GAAG,eAAe,kCAAkC,iBAAiB,EAAE,GAAG,sCAAsC,YAAY,EAAE,GAAG,kCAAkC,YAAY,EAAE,OAAO;AAC9N,iGAAiG,4CAA4C,8NAA8N,YAAY,GAAG,kCAAkC,wDAAwD,uLAAuL,gCAAgC,oGAAoG,gCAAgC,qFAAqF,sDAAsD;AAC17B;;AAEA,+BAA+B;AAC/B,gDAAgD,yCAAyC,oCAAoC,4HAA4H,0CAA0C,0EAA0E,oDAAoD,sKAAsK,gEAAgE,oEAAoE,qCAAqC,2GAA2G,uCAAuC,mHAAmH,8CAA8C,uEAAuE,8BAA8B,qFAAqF,iCAAiC,0CAA0C,sDAAsD,8DAA8D,E;CChlC55C,kBAAkB,YAAY,aAAa,oBAAoB,gFAAgF,mBAAmB,4BAA4B,6BAA6B,eAAe,QAAQ,WAAW,KAAK,mBAAmB,yGAAyG,SAAS,iBAAiB,YAAY,WAAW,qDAAqD,SAAS,IAAI,cAAc,0XAA0X,cAAc,sBAAsB,iDAAiD,sPAAsP,EAAE,8BAA8B,2BAA2B,oBAAoB,8IAA8I,aAAa,+CAA+C,MAAM,2FAA2F,yBAAyB,6DAA6D,4DAA4D,kBAAkB,8BAA8B,mDAAmD,iBAAiB,gCAAgC,mBAAmB,oBAAoB,+FAA+F,mDAAmD,WAAW,sCAAsC,kCAAkC,4DAA4D,MAAM,6CAA6C,sCAAsC,UAAU,KAAK,8BAA8B,UAAU,KAAK,MAAM,8CAA8C,aAAa,MAAM,2MAA2M,KAAK,8BAA8B,SAAS,KAAK,MAAM,8CAA8C,cAAc,MAAM,sCAAsC,aAAa,MAAM,sCAAsC,aAAa,+FAA+F,KAAK,sBAAsB,4CAA4C,cAAc,yBAAyB,+BAA+B,wGAAwG,mCAAmC,QAAQ,WAAW,KAAK,6DAA6D,UAAU,2DAA2D,MAAM,2DAA2D,MAAM,2HAA2H,iBAAiB,MAAM,qBAAqB,MAAM,uBAAuB,MAAM,uBAAuB,4CAA4C,SAAS,2BAA2B,gBAAgB,qBAAqB,6CAA6C,aAAa,kBAAkB,cAAc,0BAA0B,cAAc,mBAAmB,cAAc,qBAAqB,cAAc,gBAAgB,cAAc,kBAAkB,cAAc,0DAA0D,+BAA+B,cAAc,4EAA4E,wCAAwC,cAAc,8BAA8B,cAAc,kBAAkB,cAAc,mCAAmC,cAAc,sBAAsB,cAAc,yCAAyC,cAAc,YAAY,sCAAsC,cAAc,oBAAoB,6CAA6C,cAAc,uBAAuB,cAAc,kCAAkC,cAAc,2BAA2B,cAAc,mBAAmB,qBAAqB,cAAc,sEAAsE,8CAA8C,cAAc,oBAAoB,cAAc,oBAAoB,cAAc,kBAAkB,cAAc,kBAAkB,cAAc,2BAA2B,cAAc,2BAA2B,cAAc,oCAAoC,cAAc,kEAAkE,cAAc,oFAAoF,cAAc,0CAA0C,mDAAmD,cAAc,YAAY,uCAAuC,cAAc,2EAA2E,cAAc,iCAAiC,cAAc,oCAAoC,cAAc,sCAAsC,cAAc,4BAA4B,cAAc,0BAA0B,mBAAmB,4DAA4D,sBAAsB,mBAAmB,IAAI,6MAA6M,SAAS,WAAW,GAAG,sCAAsC,aAAa,aAAa,mBAAmB,mGAAmG,wBAAwB,GAAG,0DAA0D,wBAAwB,MAAM,GAAG,OAAO,MAAM,IAAI,gQAAgQ,KAAK,iQAAiQ,KAAK,wPAAwP,KAAK,0RAA0R,KAAK,wPAAwP,KAAK,2QAA2Q,KAAK,6PAA6P,KAAK,6QAA6Q,KAAK,qQAAqQ,KAAK,gSAAgS,KAAK,8PAA8P,KAAK,kQAAkQ,KAAK,uPAAuP,KAAK,+PAA+P,KAAK,oQAAoQ,KAAK,yQAAyQ,KAAK,2QAA2Q,KAAK,gQAAgQ,KAAK,oHAAoH,KAAK,kLAAkL,KAAK,6QAA6Q,KAAK,2KAA2K,KAAK,6QAA6Q,KAAK,6PAA6P,KAAK,4PAA4P,KAAK,oKAAoK,KAAK,yQAAyQ,KAAK,gQAAgQ,KAAK,uKAAuK,KAAK,uQAAuQ,KAAK,2PAA2P,KAAK,iQAAiQ,KAAK,6PAA6P,UAAU,qQAAqQ,KAAK,kQAAkQ,KAAK,uRAAuR,KAAK,2RAA2R,KAAK,uNAAuN,KAAK,8QAA8Q,KAAK,2KAA2K,KAAK,iTAAiT,KAAK,6RAA6R,KAAK,iQAAiQ,KAAK,oQAAoQ,UAAU,gQAAgQ,KAAK,qPAAqP,KAAK,+PAA+P,UAAU,6PAA6P,KAAK,2PAA2P,KAAK,8PAA8P,UAAU,0KAA0K,KAAK,0KAA0K,KAAK,6LAA6L,KAAK,qOAAqO,KAAK,kRAAkR,KAAK,4RAA4R,KAAK,qQAAqQ,KAAK,wRAAwR,ufAAuf,0BAA0B,2BAA2B,6BAA6B,0BAA0B,8BAA8B,oBAAoB,qBAAqB,wBAAwB,8nBAA8nB,yBAAyB,qBAAqB,IAAI,QAAQ,iBAAiB,qEAAqE,YAAY,wBAAwB,gCAAgC,kBAAkB,gCAAgC,0BAA0B,kDAAkD,wBAAwB,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,aAAa,kBAAkB,sBAAsB,uBAAuB,iBAAiB,8BAA8B,MAAM,iGAAiG,OAAO,gOAAgO,eAAe,wCAAwC,kBAAkB,qCAAqC,+FAA+F,mDAAmD,oBAAoB,8EAA8E,uBAAuB,2BAA2B,MAAM,kEAAkE,6BAA6B,IAAI,6BAA6B,SAAS,6CAA6C,kEAAkE,mCAAmC,4BAA4B,cAAc,SAAS,SAAS,sXAAsX,8DAA8D,4TAA4T,iBAAiB,gHAAgH,yEAAyE,gUAAgU,sJAAsJ,2GAA2G,6BAA6B,6BAA6B,uCAAuC,SAAS,sDAAsD,uLAAuL,qDAAqD,QAAQ,0OAA0O,gCAAgC,gSAAgS,oFAAoF,gCAAgC,WAAW,+BAA+B,MAAM,iGAAiG,yCAAyC,SAAS,sFAAsF,EAAE,mCAAmC,6HAA6H,oBAAoB,sBAAsB,2oCAA2oC,oVAAoV,0EAA0E,yLAAyL,sCAAsC,0BAA0B,qGAAqG,EAAE,cAAc,iDAAiD,mDAAmD,gHAAgH,+DAA+D,aAAa,WAAW,2cAA2c,cAAc,gBAAgB,2BAA2B,EAAE,YAAY,EAAE,2BAA2B,OAAO,mBAAmB,EAAE,MAAM,QAAQ,cAAc,YAAY,EAAE,GAAG,YAAY,EAAE,cAAc,WAAW,WAAW,EAAE,GAAG,6BAA6B,gBAAgB,kFAAkF,sBAAsB,0BAA0B,uFAAuF,4DAA4D,kXAAkX,uKAAuK,qKAAqK,oCAAoC,qFAAqF,+CAA+C,qFAAqF,EAAE,iDAAiD,oCAAoC,iBAAiB,iLAAiL,uDAAuD,iBAAiB,yDAAyD,cAAc,4HAA4H,qFAAqF,6BAA6B,GAAG,wFAAwF,sBAAsB,2GAA2G,gGAAgG,MAAM,whBAAwhB,wBAAwB,0BAA0B,0BAA0B,SAAS,gBAAgB,uiBAAuiB,yHAAyH,+FAA+F,4MAA4M,oBAAoB,4JAA4J,KAAK,uKAAuK,8hDAA8hD,UAAU,ybAAyb,mBAAmB,gLAAgL,yHAAyH,kEAAkE,mEAAmE,qEAAqE,oBAAoB,6KAA6K,WAAW,kBAAkB,mBAAmB,wVAAwV,2BAA2B,+EAA+E,gCAAgC,wLAAwL,oBAAoB,mBAAmB,6BAA6B,qBAAqB,wBAAwB,sEAAsE,mCAAmC,6eAA6e,wBAAwB,sEAAsE,iCAAiC,2VAA2V,6BAA6B,uDAAuD,kCAAkC,uBAAuB,oCAAoC,kGAAkG,6BAA6B,aAAa,4DAA4D,EAAE,2OAA2O,yBAAyB,mDAAmD,8CAA8C,yCAAyC,yBAAyB,mDAAmD,8CAA8C,yCAAyC,kBAAkB,eAAe,gMAAgM,0BAA0B,mCAAmC,uGAAuG,2EAA2E,0EAA0E,kCAAkC,yGAAyG,8MAA8M,gFAAgF,uBAAuB,eAAe,uHAAuH,0FAA0F,gGAAgG,EAAE,gFAAgF,6BAA6B,eAAe,wFAAwF,kWAAkW,0FAA0F,gGAAgG,EAAE,wCAAwC,wCAAwC,sEAAsE,4JAA4J,8BAA8B,0BAA0B,0DAA0D,IAAI,wEAAwE,olBAAolB,2GAA2G,EAAE,meAAme,uDAAuD,uvCAAuvC,6MAA6M,QAAQ,4EAA4E,eAAe,ybAAyb,6EAA6E,6FAA6F,aAAa,wqBAAwqB,oEAAoE,sBAAsB,4FAA4F,eAAe,oBAAoB,aAAa,KAAK,WAAW,aAAa,gDAAgD,8CAA8C,0BAA0B,6IAA6I,gEAAgE,2BAA2B,6IAA6I,2DAA2D,yBAAyB,mCAAmC,YAAY,8VAA8V,oDAAoD,yBAAyB,8BAA8B,2FAA2F,6cAA6c,IAAI,MAAM,sCAAsC,mBAAmB,uEAAuE,qBAAqB,oBAAoB,8BAA8B,2FAA2F,mXAAmX,uCAAuC,kEAAkE,uCAAuC,iZAAiZ,2CAA2C,MAAM,0JAA0J,kCAAkC,qIAAqI,gCAAgC,oBAAoB,sBAAsB,GAAG,sCAAsC,2BAA2B,cAAc,uMAAuM,yRAAyR,6GAA6G,sNAAsN,oIAAoI,KAAK,+DAA+D,gEAAgE,gCAAgC,SAAS,4RAA4R,yGAAyG,GAAG,gCAAgC,SAAS,sNAAsN,gCAAgC,oEAAoE,iMAAiM,gJAAgJ,yFAAyF,OAAO,kCAAkC,gBAAgB,gOAAgO,8BAA8B,0BAA0B,EAAE,eAAe,sCAAsC,0PAA0P,kJAAkJ,sBAAsB,oCAAoC,sBAAsB,qCAAqC,UAAU,mCAAmC,UAAU,uBAAuB,8CAA8C,MAAM,kCAAkC,6DAA6D,MAAM,qCAAqC,MAAM,wCAAwC,MAAM,yBAAyB,MAAM,wMAAwM,MAAM,sDAAsD,MAAM,8CAA8C,qBAAqB,SAAS,qJAAqJ,6FAA6F,+HAA+H,OAAO,GAAG,IAAI,iCAAiC,aAAa,sJAAsJ,oCAAoC,+GAA+G,aAAa,iNAAiN,uCAAuC,EAAE,6CAA6C,kCAAkC,kCAAkC,4CAA4C,EAAE,oCAAoC,yBAAyB,wHAAwH,qBAAqB,+CAA+C,EAAE,uCAAuC,4BAA4B,wFAAwF,2BAA2B,gEAAgE,kGAAkG,2BAA2B,qBAAqB,WAAW,wCAAwC,cAAc,oEAAoE,gVAAgV,+IAA+I,0CAA0C,wdAAwd,aAAa,OAAO,gBAAgB,mEAAmE,aAAa,uBAAuB,8DAA8D,0BAA0B,oCAAoC,EAAE,E","file":"scripts.js","sourcesContent":["/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */\r\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.6.0\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:\"jQuery\"+(f+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==o.call(e))&&(!(t=r(e))||\"function\"==typeof(n=v.call(t,\"constructor\")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,\"string\"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),\"function\"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S=\"sizzle\"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",M=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",I=\"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",W=\"\\\\[\"+M+\"*(\"+I+\")(?:\"+M+\"*([*^$|!~]?=)\"+M+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+I+\"))|)\"+M+\"*\\\\]\",F=\":(\"+I+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+W+\")*)|.*)\\\\)|)\",B=new RegExp(M+\"+\",\"g\"),$=new RegExp(\"^\"+M+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+M+\"+$\",\"g\"),_=new RegExp(\"^\"+M+\"*,\"+M+\"*\"),z=new RegExp(\"^\"+M+\"*([>+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"<a id='\"+S+\"'></a><select id='\"+S+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+\"\").replace(re,ie)},se.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1<t.indexOf(i):\"$=\"===r?i&&t.slice(-i.length)===i:\"~=\"===r?-1<(\" \"+t.replace(B,\" \")+\" \").indexOf(i):\"|=\"===r&&(t===i||t.slice(0,i.length+1)===i+\"-\"))}},CHILD:function(h,e,t,g,v){var y=\"nth\"!==h.slice(0,3),m=\"last\"!==h.slice(-4),x=\"of-type\"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?\"nextSibling\":\"previousSibling\",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l=\"only\"===h&&!u&&\"nextSibling\"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error(\"unsupported pseudo: \"+e);return a[S]?a(o):1<a.length?(t=[e,e,\"\",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,\"$1\"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||\"\")||se.error(\"unsupported lang: \"+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(t=t.toLowerCase())===n||0===t.indexOf(n+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&\"parentNode\"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||\"*\",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[\" \"],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:\" \"===e[s-2].type?\"*\":\"\"})).replace($,\"$1\"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+\" \"];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($,\" \")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+\" \"];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l=\"0\",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG(\"*\",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l=\"function\"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&\"ID\"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split(\"\").sort(j).join(\"\")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement(\"fieldset\"))}),ce(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,\"parentNode\")},parentsUntil:function(e,t,n){return h(e,\"parentNode\",n)},next:function(e){return O(e,\"nextSibling\")},prev:function(e){return O(e,\"previousSibling\")},nextAll:function(e){return h(e,\"nextSibling\")},prevAll:function(e){return h(e,\"previousSibling\")},nextUntil:function(e,t,n){return h(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return h(e,\"previousSibling\",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,\"template\")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return\"Until\"!==r.slice(-5)&&(t=e),t&&\"string\"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\\x20\\t\\r\\n\\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r=\"string\"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:\"\")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&\"string\"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t=\"\",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=\"\"),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[[\"notify\",\"progress\",S.Callbacks(\"memory\"),S.Callbacks(\"memory\"),2],[\"resolve\",\"done\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),1,\"rejected\"]],i=\"pending\",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},\"catch\":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+\"With\"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError(\"Thenable self-resolution\");t=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+\"With\"](this===s?void 0:this,arguments),this},s[t[0]+\"With\"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),\"pending\"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener(\"DOMContentLoaded\",B),C.removeEventListener(\"load\",B),S.ready()}S.fn.ready=function(e){return F.then(e)[\"catch\"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,\"complete\"===E.readyState||\"loading\"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener(\"DOMContentLoaded\",B),C.addEventListener(\"load\",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,\"ms-\").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(K,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=\"true\"===(i=n)||\"false\"!==i&&(\"null\"===i?null:i===+i+\"\"?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,\"hasDataAttrs\"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf(\"data-\")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks(\"once memory\").add(function(){Y.remove(e,[t+\"queue\",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return\"string\"!=typeof t&&(n=t,t=\"fx\",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),\"fx\"===t&&\"inprogress\"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";while(a--)(n=Y.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,te=new RegExp(\"^(?:([+-])=|)(\"+ee+\")([a-z%]*)$\",\"i\"),ne=[\"Top\",\"Right\",\"Bottom\",\"Left\"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&ie(e)&&\"none\"===S.css(e,\"display\")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,\"\")},u=s(),l=n&&n[3]||(S.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(S.cssNumber[t]||\"px\"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?(\"none\"===n&&(l[c]=Y.get(r,\"display\")||null,l[c]||(r.style.display=\"\")),\"\"===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,\"display\"),o.parentNode.removeChild(o),\"none\"===u&&(u=\"block\"),ue[s]=u)))):\"none\"!==n&&(l[c]=\"none\",Y.set(r,\"display\",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"<textarea>x</textarea>\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"<option></option>\",y.option=!!ce.lastChild;var ge={thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function ve(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],\"globalEval\",!t||Y.get(t[n],\"globalEval\"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,\"<select multiple='multiple'>\",\"</select>\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement(\"div\")),s=(de.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));f.textContent=\"\",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),\"script\"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||\"\")&&n.push(o)}return f}var be=/^([^.]*)(?:\\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==(\"focus\"===t)}function Ee(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return\"undefined\"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(P)||[\"\"]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||\"\").match(P)||[\"\"]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,\"events\")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Se(t,\"click\",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Se(t,\"click\"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Y.get(t,\"click\")||A(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Ne=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&\"string\"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,\"script\"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,\"script\"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||\"\")&&!Y.access(u,\"globalEval\")&&S.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")},l):b(u.textContent.replace(Ne,\"\"),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,\"script\")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,\"input\"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:\"input\"!==l&&\"textarea\"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,\"script\")).length&&ye(a,!f&&ve(e,\"script\")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp(\"^(\"+ee+\")(?!px)[a-z%]+$\",\"i\"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join(\"|\"),\"i\");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",l.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n=\"1%\"!==e.top,s=12===t(e.marginLeft),l.style.right=\"60%\",o=36===t(e.right),r=36===t(e.width),l.style.position=\"absolute\",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement(\"div\"),l=E.createElement(\"div\");l.style&&(l.style.backgroundClip=\"content-box\",l.cloneNode(!0).style.backgroundClip=\"\",y.clearCloneStyle=\"content-box\"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement(\"table\"),t=E.createElement(\"tr\"),n=E.createElement(\"div\"),e.style.cssText=\"position:absolute;left:-11111px;border-collapse:separate\",t.style.cssText=\"border:1px solid\",t.style.height=\"1px\",n.style.height=\"9px\",n.style.display=\"block\",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=[\"Webkit\",\"Moz\",\"ms\"],$e=E.createElement(\"div\").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Ge={letterSpacing:\"0\",fontWeight:\"400\"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function Qe(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?(\"content\"===n&&(u-=S.css(e,\"padding\"+ne[a],!0,i)),\"margin\"!==n&&(u-=S.css(e,\"border\"+ne[a]+\"Width\",!0,i))):(u+=S.css(e,\"padding\"+ne[a],!0,i),\"padding\"!==n?u+=S.css(e,\"border\"+ne[a]+\"Width\",!0,i):s+=S.css(e,\"border\"+ne[a]+\"Width\",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,r),o=i,a=We(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a=\"auto\"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===S.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===S.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?\"\":\"px\")),y.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),\"normal\"===i&&t in Ge&&(i=Ge[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each([\"height\",\"width\"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&\"absolute\"===i.position,a=(o||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e[\"offset\"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,\"border\",!1,i)-.5)),s&&(r=te.exec(t))&&\"px\"!==(r[3]||\"px\")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,\"marginLeft\"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),S.each({margin:\"\",padding:\"\",border:\"Width\"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r=\"string\"==typeof e?e.split(\" \"):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},\"margin\"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?\"\":\"px\")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=ne[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=[\"*\"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,\"fxshow\");for(r in n.queue||(null==(a=S._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,\"display\")),\"none\"===(c=S.css(e,\"display\"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,\"display\"),le([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===S.css(e,\"float\")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?\"hidden\"in v&&(g=v.hidden):v=Y.access(e,\"fxshow\",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,\"fxshow\"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&\"object\"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,\"finish\"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return\"string\"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||\"fx\",[]),this.each(function(){var e=!0,t=null!=i&&i+\"queueHooks\",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||\"fx\"),this.each(function(){var e,t=Y.get(this),n=t[a+\"queue\"],r=t[a+\"queueHooks\"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each([\"toggle\",\"show\",\"hide\"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||\"boolean\"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st(\"show\"),slideUp:st(\"hide\"),slideToggle:st(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||\"fx\",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement(\"input\"),nt=E.createElement(\"select\").appendChild(E.createElement(\"option\")),tt.type=\"checkbox\",y.checkOn=\"\"!==tt.value,y.optSelected=nt.selected,(tt=E.createElement(\"input\")).value=\"t\",tt.type=\"radio\",y.radioValue=\"t\"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return\"undefined\"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&\"radio\"===t&&A(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(\" \")}function gt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function vt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,\"tabindex\");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){a=0;while(o=e[a++])r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){a=0;while(o=e[a++])while(-1<r.indexOf(\" \"+o+\" \"))r=r.replace(\" \"+o+\" \",\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(i,t){var o=typeof i,a=\"string\"===o||Array.isArray(i);return\"boolean\"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&\"boolean\"!==o||((e=gt(this))&&Y.set(this,\"__className__\",e),this.setAttribute&&this.setAttribute(\"class\",e||!1===i?\"\":Y.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,r=0;t=\" \"+e+\" \";while(n=this[r++])if(1===n.nodeType&&-1<(\" \"+ht(gt(n))+\" \").indexOf(t))return!0;return!1}});var yt=/\\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t=\"\":\"number\"==typeof t?t+=\"\":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?\"\":e+\"\"})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&\"set\"in r&&void 0!==r.set(this,t,\"value\")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&\"get\"in r&&void 0!==(e=r.get(t,\"value\"))?e:\"string\"==typeof(e=t.value)?e.replace(yt,\"\"):null==e?\"\":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,\"value\");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,\"optgroup\"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each([\"radio\",\"checkbox\"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),y.focusin=\"onfocusin\"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,\"type\")?e.type:e,h=v.call(e,\"namespace\")?e.namespace.split(\".\"):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(\".\")&&(d=(h=d.split(\".\")).shift(),h.sort()),u=d.indexOf(\":\")<0&&\"on\"+d,(e=e[S.expando]?e:new S.Event(d,\"object\"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,\"events\")||Object.create(null))[e.type]&&Y.get(o,\"handle\"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:\"focusin\",blur:\"focusout\"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\\?/;S.parseXML=function(e){var t,n;if(!e||\"string\"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,\"text/xml\")}catch(e){}return n=t&&t.getElementsByTagName(\"parsererror\")[0],t&&!n||S.error(\"Invalid XML: \"+(n?S.map(n.childNodes,function(e){return e.textContent}).join(\"\\n\"):e)),t};var Ct=/\\[\\]$/,Et=/\\r?\\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+\"[\"+(\"object\"==typeof t&&null!=t?e:\"\")+\"]\",t,r,i)});else if(r||\"object\"!==w(e))i(n,e);else for(t in e)At(n+\"[\"+t+\"]\",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join(\"&\")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,\"elements\");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(\":disabled\")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,\"\\r\\n\")}}):{name:t.name,value:n.replace(Et,\"\\r\\n\")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\\/\\//,Ot={},Pt={},Rt=\"*/\".concat(\"*\"),Mt=E.createElement(\"a\");function It(o){return function(e,t){\"string\"!=typeof e&&(t=e,e=\"*\");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])\"+\"===n[0]?(n=n.slice(1)||\"*\",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return\"string\"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s[\"*\"]&&l(\"*\")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Rt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks(\"once memory\"),w=v.statusCode||{},a={},s={},u=\"canceled\",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+\" \"]=(n[t[1].toLowerCase()+\" \"]||[]).concat(t[2])}t=n[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+\"\").replace(Ht,bt.protocol+\"//\"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||\"*\").toLowerCase().match(P)||[\"\"],null==v.crossDomain){r=E.createElement(\"a\");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+\"//\"+Mt.host!=r.protocol+\"//\"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&\"string\"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger(\"ajaxStart\"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,\"\"),v.hasContent?v.data&&v.processData&&0===(v.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(v.data=v.data.replace(Nt,\"+\")):(o=v.url.slice(f.length),v.data&&(v.processData||\"string\"==typeof v.data)&&(f+=(Tt.test(f)?\"&\":\"?\")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,\"$1\"),o=(Tt.test(f)?\"&\":\"?\")+\"_=\"+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader(\"If-Modified-Since\",S.lastModified[f]),S.etag[f]&&T.setRequestHeader(\"If-None-Match\",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader(\"Content-Type\",v.contentType),T.setRequestHeader(\"Accept\",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+(\"*\"!==v.dataTypes[0]?\", \"+Rt+\"; q=0.01\":\"\"):v.accepts[\"*\"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u=\"abort\",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger(\"ajaxSend\",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort(\"timeout\")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,\"No Transport\");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||\"\",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while(\"*\"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray(\"script\",v.dataTypes)&&S.inArray(\"json\",v.dataTypes)<0&&(v.converters[\"text script\"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e[\"throws\"])t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader(\"Last-Modified\"))&&(S.lastModified[f]=u),(u=T.getResponseHeader(\"etag\"))&&(S.etag[f]=u)),204===e||\"HEAD\"===v.type?l=\"nocontent\":304===e?l=\"notmodified\":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l=\"error\",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+\"\",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?\"ajaxSuccess\":\"ajaxError\",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger(\"ajaxComplete\",[T,v]),--S.active||S.event.trigger(\"ajaxStop\")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,\"json\")},getScript:function(e,t){return S.get(e,void 0,t,\"script\")}}),S.each([\"get\",\"post\"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)\"content-type\"===t.toLowerCase()&&(e.contentType=e.headers[t]||\"\")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&\"withCredentials\"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,\"abort\"===e?r.abort():\"error\"===e?\"number\"!=typeof r.status?t(0,\"error\"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,\"text\"!==(r.responseType||\"text\")||\"string\"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o(\"error\"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o(\"abort\");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),S.ajaxTransport(\"script\",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S(\"<script>\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=zt.pop()||S.expando+\"_\"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Ut.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),0<a.length&&S.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?S(\"<div>\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?\"\":(e+\"\").replace(Xt,\"\")},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},\"undefined\"==typeof e&&(C.jQuery=C.$=S),S});","/*! selectize.js - v0.12.6 | https://github.com/selectize/selectize.js | Apache License (v2) */\r\n!function(a,b){\"function\"==typeof define&&define.amd?define(\"sifter\",b):\"object\"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(!(a=e(String(a||\"\").toLowerCase()))||!a.length)return[];var b,c,d,g,i=[],j=a.split(/ +/);for(b=0,c=j.length;b<c;b++){if(d=f(j[b]),this.settings.diacritics)for(g in h)h.hasOwnProperty(g)&&(d=d.replace(new RegExp(g,\"g\"),h[g]));i.push({string:j[b],regex:new RegExp(d,\"i\")})}return i},a.prototype.iterator=function(a,b){var c;c=g(a)?Array.prototype.forEach||function(a){for(var b=0,c=this.length;b<c;b++)a(this[b],b,this)}:function(a){for(var b in this)this.hasOwnProperty(b)&&a(this[b],b,this)},c.apply(a,[b])},a.prototype.getScoreFunction=function(a,b){var c,e,f,g,h;c=this,a=c.prepareSearch(a,b),f=a.tokens,e=a.options.fields,g=f.length,h=a.options.nesting;var i=function(a,b){var c,d;return a?(a=String(a||\"\"),-1===(d=a.search(b.regex))?0:(c=b.string.length/a.length,0===d&&(c+=.5),c)):0},j=function(){var a=e.length;return a?1===a?function(a,b){return i(d(b,e[0],h),a)}:function(b,c){for(var f=0,g=0;f<a;f++)g+=i(d(c,e[f],h),b);return g/a}:function(){return 0}}();return g?1===g?function(a){return j(f[0],a)}:\"and\"===a.options.conjunction?function(a){for(var b,c=0,d=0;c<g;c++){if((b=j(f[c],a))<=0)return 0;d+=b}return d/g}:function(a){for(var b=0,c=0;b<g;b++)c+=j(f[b],a);return c/g}:function(){return 0}},a.prototype.getSortFunction=function(a,c){var e,f,g,h,i,j,k,l,m,n,o;if(g=this,a=g.prepareSearch(a,c),o=!a.query&&c.sort_empty||c.sort,m=function(a,b){return\"$score\"===a?b.score:d(g.items[b.id],a,c.nesting)},i=[],o)for(e=0,f=o.length;e<f;e++)(a.query||\"$score\"!==o[e].field)&&i.push(o[e]);if(a.query){for(n=!0,e=0,f=i.length;e<f;e++)if(\"$score\"===i[e].field){n=!1;break}n&&i.unshift({field:\"$score\",direction:\"desc\"})}else for(e=0,f=i.length;e<f;e++)if(\"$score\"===i[e].field){i.splice(e,1);break}for(l=[],e=0,f=i.length;e<f;e++)l.push(\"desc\"===i[e].direction?-1:1);return j=i.length,j?1===j?(h=i[0].field,k=l[0],function(a,c){return k*b(m(h,a),m(h,c))}):function(a,c){var d,e,f;for(d=0;d<j;d++)if(f=i[d].field,e=l[d]*b(m(f,a),m(f,c)))return e;return 0}:null},a.prototype.prepareSearch=function(a,b){if(\"object\"==typeof a)return a;b=c({},b);var d=b.fields,e=b.sort,f=b.sort_empty;return d&&!g(d)&&(b.fields=[d]),e&&!g(e)&&(b.sort=[e]),f&&!g(f)&&(b.sort_empty=[f]),{options:b,query:String(a||\"\").toLowerCase(),tokens:this.tokenize(a),total:0,items:[]}},a.prototype.search=function(a,b){var c,d,e,f,g=this;return d=this.prepareSearch(a,b),b=d.options,a=d.query,f=b.score||g.getScoreFunction(d),a.length?g.iterator(g.items,function(a,e){c=f(a),(!1===b.filter||c>0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,\"number\"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return\"number\"==typeof a&&\"number\"==typeof b?a>b?1:a<b?-1:0:(a=i(String(a||\"\")),b=i(String(b||\"\")),a>b?1:b>a?-1:0)},c=function(a,b){var c,d,e,f;for(c=1,d=arguments.length;c<d;c++)if(f=arguments[c])for(e in f)f.hasOwnProperty(e)&&(a[e]=f[e]);return a},d=function(a,b,c){if(a&&b){if(!c)return a[b];for(var d=b.split(\".\");d.length&&(a=a[d.shift()]););return a}},e=function(a){return(a+\"\").replace(/^\\s+|\\s+$|/g,\"\")},f=function(a){return(a+\"\").replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")},g=Array.isArray||\"undefined\"!=typeof $&&$.isArray||function(a){return\"[object Array]\"===Object.prototype.toString.call(a)},h={a:\"[aḀá¸Ä‚ăÂâÇǎȺⱥȦȧẠạÄäÀà ÃáĀÄÃãÅåąĄÃąĄ]\",b:\"[bâ¢Î²Î’B฿ðŒá›’]\",c:\"[cĆćĈĉČÄÄŠÄ‹CÌ„c̄ÇçḈḉȻȼƇƈɕᴄCc]\",d:\"[dÄŽÄḊḋá¸á¸‘Ḍá¸á¸’ḓḎá¸ÄÄ‘D̦d̦ƉɖƊɗƋƌáµá¶á¶‘ȡᴅDdð]\",e:\"[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀá»á»„ễỂểḜá¸á¸–ḗḔḕȆȇẸẹỆệⱸᴇEeɘÇÆÆε]\",f:\"[fƑƒḞḟ]\",g:\"[gɢ₲ǤǥĜÄÄžÄŸÄ¢Ä£Æ“É Ä Ä¡]\",h:\"[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]\",i:\"[iÃÃÌìĬÄÎîÇÇÃïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬá¸Æ—ɨɨ̆ᵻᶖİiIıɪIi]\",j:\"[jȷĴĵɈɉÊɟʲ]\",k:\"[kƘƙê€êḰḱǨǩḲḳḴḵκϰâ‚]\",l:\"[lÅłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅÉȴʟLl]\",n:\"[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ÆÉ²È Æžáµ°á¶‡É³ÈµÉ´ï¼®ï½ŽÅŠÅ‹]\",o:\"[oØøÖöÓóÒòÔôǑǒÅÅ‘ÅŽÅȮȯỌá»ÆŸÉµÆ ơỎá»ÅŒÅÕõǪǫȌÈÕ•Ö…]\",p:\"[pṔṕṖṗⱣᵽƤƥᵱ]\",q:\"[qê–ê—Ê ÉŠÉ‹ê˜ê™q̃]\",r:\"[rŔŕɌÉŘřŖŗṘṙÈȑȒȓṚṛⱤɽ]\",s:\"[sŚśṠṡṢṣꞨꞩŜÅŠšŞşȘșS̈s̈]\",t:\"[tŤťṪṫŢţṬá¹Æ®ÊˆÈšÈ›á¹°á¹±á¹®á¹¯Æ¬Æ]\",u:\"[uŬÅɄʉỤụÜüÚúÙùÛûǓǔŰűŬÅƯưỦủŪūŨũŲųȔȕ∪]\",v:\"[vṼṽṾṿƲʋêžêŸâ±±Ê‹]\",w:\"[wẂẃẀáºÅ´Åµáº„ẅẆẇẈẉ]\",x:\"[xẌáºáºŠáº‹Ï‡]\",y:\"[yÃýỲỳŶŷŸÿỸỹẎáºá»´á»µÉŽÉƳƴ]\",z:\"[zŹźáºáº‘ŽžŻżẒẓẔẕƵƶ]\"},i=function(){var a,b,c,d,e=\"\",f={};for(c in h)if(h.hasOwnProperty(c))for(d=h[c].substring(2,h[c].length-1),e+=d,a=0,b=d.length;a<b;a++)f[d.charAt(a)]=c;var g=new RegExp(\"[\"+e+\"]\",\"g\");return function(a){return a.replace(g,function(a){return f[a]}).toLowerCase()}}();return a}),function(a,b){\"function\"==typeof define&&define.amd?define(\"microplugin\",b):\"object\"==typeof exports?module.exports=b():a.MicroPlugin=b()}(this,function(){var a={};a.mixin=function(a){a.plugins={},a.prototype.initializePlugins=function(a){var c,d,e,f=this,g=[];if(f.plugins={names:[],settings:{},requested:{},loaded:{}},b.isArray(a))for(c=0,d=a.length;c<d;c++)\"string\"==typeof a[c]?g.push(a[c]):(f.plugins.settings[a[c].name]=a[c].options,g.push(a[c].name));else if(a)for(e in a)a.hasOwnProperty(e)&&(f.plugins.settings[e]=a[e],g.push(e));for(;g.length;)f.require(g.shift())},a.prototype.loadPlugin=function(b){var c=this,d=c.plugins,e=a.plugins[b];if(!a.plugins.hasOwnProperty(b))throw new Error('Unable to find \"'+b+'\" plugin');d.requested[b]=!0,d.loaded[b]=e.fn.apply(c,[c.plugins.settings[b]||{}]),d.names.push(b)},a.prototype.require=function(a){var b=this,c=b.plugins;if(!b.plugins.loaded.hasOwnProperty(a)){if(c.requested[a])throw new Error('Plugin has circular dependency (\"'+a+'\")');b.loadPlugin(a)}return c.loaded[a]},a.define=function(b,c){a.plugins[b]={name:b,fn:c}}};var b={isArray:Array.isArray||function(a){return\"[object Array]\"===Object.prototype.toString.call(a)}};return a}),function(a,b){\"function\"==typeof define&&define.amd?define(\"selectize\",[\"jquery\",\"sifter\",\"microplugin\"],b):\"object\"==typeof exports?module.exports=b(require(\"jquery\"),require(\"sifter\"),require(\"microplugin\")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){\"use strict\";var d=function(a,b){if(\"string\"!=typeof b||b.length){var c=\"string\"==typeof b?new RegExp(b,\"i\"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement(\"span\");g.className=\"highlight\";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName)&&(\"highlight\"!==a.className||\"SPAN\"!==a.tagName))for(var j=0;j<a.childNodes.length;++j)j+=d(a.childNodes[j]);return b};return a.each(function(){d(this)})}};a.fn.removeHighlight=function(){return this.find(\"span.highlight\").each(function(){this.parentNode.firstChild.nodeName;var a=this.parentNode;a.replaceChild(this.firstChild,this),a.normalize()}).end()};var e=function(){};e.prototype={on:function(a,b){this._events=this._events||{},this._events[a]=this._events[a]||[],this._events[a].push(b)},off:function(a,b){var c=arguments.length;return 0===c?delete this._events:1===c?delete this._events[a]:(this._events=this._events||{},void(a in this._events!=!1&&this._events[a].splice(this._events[a].indexOf(b),1)))},trigger:function(a){if(this._events=this._events||{},a in this._events!=!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,1))}},e.mixin=function(a){for(var b=[\"on\",\"off\",\"trigger\"],c=0;c<b.length;c++)a.prototype[b[c]]=e.prototype[b[c]]};var f=/Mac/.test(navigator.userAgent),g=f?91:17,h=f?18:17,i=!/android/i.test(window.navigator.userAgent)&&!!document.createElement(\"input\").validity,j=function(a){return void 0!==a},k=function(a){return void 0===a||null===a?null:\"boolean\"==typeof a?a?\"1\":\"0\":a+\"\"},l=function(a){return(a+\"\").replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/\"/g,\""\")},m={};m.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},m.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var n=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},o=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},p=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];if(-1===b.indexOf(c))return e.apply(a,arguments);f[c]=arguments},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},q=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},r=function(a){var b={};if(\"selectionStart\"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart(\"character\",-a.value.length),b.start=c.text.length-d,b.length=d}return b},s=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;d<e;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},t=function(b,c){return b?(w.$testInput||(w.$testInput=a(\"<span />\").css({position:\"absolute\",top:-99999,left:-99999,width:\"auto\",padding:0,whiteSpace:\"pre\"}).appendTo(\"body\")),w.$testInput.text(b),s(c,w.$testInput,[\"letterSpacing\",\"fontSize\",\"fontFamily\",\"fontWeight\",\"textTransform\"]),w.$testInput.width()):0},u=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||!1!==a.data(\"grow\"))&&(e=a.val(),c.type&&\"keydown\"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=48&&f<=57||f>=65&&f<=90||f>=96&&f<=111||f>=186&&f<=222||32===f,46===f||8===f?(l=r(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):8===f&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):46===f&&void 0!==l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr(\"placeholder\"),!e&&h&&(e=h),(i=t(e,a)+4)!==b&&(b=i,a.width(i),a.triggerHandler(\"resize\")))};a.on(\"keydown keyup update blur\",c),c()},v=function(a){var b=document.createElement(\"div\");return b.appendChild(a.cloneNode(!0)),b.innerHTML},w=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue(\"direction\"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents(\"[dir]:first\").attr(\"dir\")||\"\",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr(\"tabindex\")||\"\",tagType:\"select\"===h.tagName.toLowerCase()?1:2,rtl:/rtl/i.test(g),eventNS:\".selectize\"+ ++w.count,highlightedValue:null,isBlurring:!1,isOpen:!1,isDisabled:!1,isRequired:c.is(\"[required]\"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:\"\",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:o(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;e<f;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;e<f;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?\"single\":\"multi\"),\"boolean\"!=typeof i.settings.hideSelected&&(i.settings.hideSelected=\"multi\"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(w),void 0!==c?c.mixin(w):function(a,b){b||(b={});console.error(\"Selectize: \"+a),b.explanation&&(console.group&&console.group(),console.error(b.explanation),console.group&&console.groupEnd())}(\"Dependency MicroPlugin is missing\",{explanation:'Make sure you either: (1) are using the \"standalone\" version of Selectize, or (2) require MicroPlugin before you load Selectize.'}),a.extend(w.prototype,{setup:function(){var b,c,d,e,j,k,l,m,n,o,p=this,r=p.settings,s=p.eventNS,t=a(window),v=a(document),w=p.$input;if(l=p.settings.mode,m=w.attr(\"class\")||\"\",b=a(\"<div>\").addClass(r.wrapperClass).addClass(m).addClass(l),c=a(\"<div>\").addClass(r.inputClass).addClass(\"items\").appendTo(b),d=a('<input type=\"text\" autocomplete=\"off\" />').appendTo(c).attr(\"tabindex\",w.is(\":disabled\")?\"-1\":p.tabIndex),k=a(r.dropdownParent||b),e=a(\"<div>\").addClass(r.dropdownClass).addClass(l).hide().appendTo(k),j=a(\"<div>\").addClass(r.dropdownContentClass).appendTo(e),(o=w.attr(\"id\"))&&(d.attr(\"id\",o+\"-selectized\"),a(\"label[for='\"+o+\"']\").attr(\"for\",o+\"-selectized\")),p.settings.copyClassesToDropdown&&e.addClass(m),b.css({width:w[0].style.width}),p.plugins.names.length&&(n=\"plugin-\"+p.plugins.names.join(\" plugin-\"),b.addClass(n),e.addClass(n)),(null===r.maxItems||r.maxItems>1)&&1===p.tagType&&w.attr(\"multiple\",\"multiple\"),p.settings.placeholder&&d.attr(\"placeholder\",r.placeholder),!p.settings.splitOn&&p.settings.delimiter){var x=p.settings.delimiter.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\");p.settings.splitOn=new RegExp(\"\\\\s*\"+x+\"+\\\\s*\")}w.attr(\"autocorrect\")&&d.attr(\"autocorrect\",w.attr(\"autocorrect\")),w.attr(\"autocapitalize\")&&d.attr(\"autocapitalize\",w.attr(\"autocapitalize\")),d[0].type=w[0].type,p.$wrapper=b,p.$control=c,p.$control_input=d,p.$dropdown=e,p.$dropdown_content=j,e.on(\"mouseenter mousedown click\",\"[data-disabled]>[data-selectable]\",function(a){a.stopImmediatePropagation()}),e.on(\"mouseenter\",\"[data-selectable]\",function(){return p.onOptionHover.apply(p,arguments)}),e.on(\"mousedown click\",\"[data-selectable]\",function(){return p.onOptionSelect.apply(p,arguments)}),q(c,\"mousedown\",\"*:not(input)\",function(){return p.onItemSelect.apply(p,arguments)}),u(d),c.on({mousedown:function(){return p.onMouseDown.apply(p,arguments)},click:function(){return p.onClick.apply(p,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return p.onKeyDown.apply(p,arguments)},keyup:function(){return p.onKeyUp.apply(p,arguments)},keypress:function(){return p.onKeyPress.apply(p,arguments)},resize:function(){p.positionDropdown.apply(p,[])},blur:function(){return p.onBlur.apply(p,arguments)},focus:function(){return p.ignoreBlur=!1,p.onFocus.apply(p,arguments)},paste:function(){return p.onPaste.apply(p,arguments)}}),v.on(\"keydown\"+s,function(a){p.isCmdDown=a[f?\"metaKey\":\"ctrlKey\"],p.isCtrlDown=a[f?\"altKey\":\"ctrlKey\"],p.isShiftDown=a.shiftKey}),v.on(\"keyup\"+s,function(a){a.keyCode===h&&(p.isCtrlDown=!1),16===a.keyCode&&(p.isShiftDown=!1),a.keyCode===g&&(p.isCmdDown=!1)}),v.on(\"mousedown\"+s,function(a){if(p.isFocused){if(a.target===p.$dropdown[0]||a.target.parentNode===p.$dropdown[0])return!1;p.$control.has(a.target).length||a.target===p.$control[0]||p.blur(a.target)}}),t.on([\"scroll\"+s,\"resize\"+s].join(\" \"),function(){p.isOpen&&p.positionDropdown.apply(p,arguments)}),t.on(\"mousemove\"+s,function(){p.ignoreHover=!1}),this.revertSettings={$children:w.children().detach(),tabindex:w.attr(\"tabindex\")},w.attr(\"tabindex\",-1).hide().after(p.$wrapper),a.isArray(r.items)&&(p.setValue(r.items),delete r.items),i&&w.on(\"invalid\"+s,function(a){a.preventDefault(),p.isInvalid=!0,p.refreshState()}),p.updateOriginalInput(),p.refreshItems(),p.refreshState(),p.updatePlaceholder(),p.isSetup=!0,w.is(\":disabled\")&&p.disable(),p.on(\"change\",this.onChange),w.data(\"selectize\",p),w.addClass(\"selectized\"),p.trigger(\"initialize\"),!0===r.preload&&p.onSearchChange(\"\")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'<div class=\"optgroup\">'+a.html+\"</div>\"},optgroup_header:function(a,b){return'<div class=\"optgroup-header\">'+b(a[d])+\"</div>\"},option:function(a,b){return'<div class=\"option\">'+b(a[c])+\"</div>\"},item:function(a,b){return'<div class=\"item\">'+b(a[c])+\"</div>\"},option_create:function(a,b){return'<div class=\"create\">Add <strong>'+b(a.input)+\"</strong>…</div>\"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:\"onInitialize\",change:\"onChange\",item_add:\"onItemAdd\",item_remove:\"onItemRemove\",clear:\"onClear\",option_add:\"onOptionAdd\",option_remove:\"onOptionRemove\",option_clear:\"onOptionClear\",optgroup_add:\"onOptionGroupAdd\",optgroup_remove:\"onOptionGroupRemove\",optgroup_clear:\"onOptionGroupClear\",dropdown_open:\"onDropdownOpen\",dropdown_close:\"onDropdownClose\",type:\"onType\",load:\"onLoad\",focus:\"onFocus\",blur:\"onBlur\"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]])&&this.on(a,b)},onClick:function(a){var b=this;b.isFocused&&b.isOpen||(b.focus(),a.preventDefault())},onMouseDown:function(b){var c=this,d=b.isDefaultPrevented();a(b.target);if(c.isFocused){if(b.target!==c.$control_input[0])return\"single\"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger(\"change\")},onPaste:function(b){var c=this;if(c.isFull()||c.isInputHidden||c.isLocked)return void b.preventDefault();c.settings.splitOn&&setTimeout(function(){var b=c.$control_input.val();if(b.match(c.settings.splitOn))for(var d=a.trim(b).split(c.settings.splitOn),e=0,f=d.length;e<f;e++)c.createItem(d[e])},0)},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&\"multi\"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target,this.$control_input[0],this);if(b.isLocked)return void(9!==a.keyCode&&a.preventDefault());switch(a.keyCode){case 65:if(b.isCmdDown)return void b.selectAll();break;case 27:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case 78:if(!a.ctrlKey||a.altKey)break;case 40:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case 80:if(!a.ctrlKey||a.altKey)break;case 38:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case 13:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case 37:return void b.advanceSelection(-1,a);case 39:return void b.advanceSelection(1,a);case 9:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case 8:case 46:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||\"\";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger(\"type\",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;if(b.isDisabled)return b.blur(),a&&a.preventDefault(),!1;b.ignoreFocus||(b.isFocused=!0,\"focus\"===b.settings.preload&&b.onSearchChange(\"\"),c||b.trigger(\"focus\"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState())},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(\"\"),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),b&&b.focus&&b.focus(),c.isBlurring=!1,c.ignoreFocus=!1,c.trigger(\"blur\")};c.isBlurring=!0,c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass(\"create\")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):void 0!==(c=d.attr(\"data-value\"))&&(e.lastQuery=null,e.setTextboxValue(\"\"),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c)))},onItemSelect:function(a){var b=this;b.isLocked||\"multi\"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger(\"load\",a)}])},setTextboxValue:function(a){var b=this.$control_input;b.val()!==a&&(b.val(a).triggerHandler(\"update\"),this.lastValue=a)},getValue:function(){return 1===this.tagType&&this.$input.attr(\"multiple\")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){p(this,b?[]:[\"change\"],function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if(\"single\"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass(\"active\"),l.$activeItems=[],void(l.isFocused&&l.showInput());if(\"mousedown\"===(d=c&&c.type.toLowerCase())&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(\".active:last\"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;e<=h;e++)i=l.$control[0].childNodes[e],-1===l.$activeItems.indexOf(i)&&(a(i).addClass(\"active\"),l.$activeItems.push(i));c.preventDefault()}else\"mousedown\"===d&&l.isCtrlDown||\"keydown\"===d&&this.isShiftDown?b.hasClass(\"active\")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass(\"active\")):l.$activeItems.push(b.addClass(\"active\")[0]):(a(l.$activeItems).removeClass(\"active\"),l.$activeItems=[b.addClass(\"active\")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,k=this;k.$activeOption&&k.$activeOption.removeClass(\"active\"),k.$activeOption=null,b=a(b),b.length&&(k.$activeOption=b.addClass(\"active\"),!c&&j(c)||(e=k.$dropdown_content.height(),f=k.$activeOption.outerHeight(!0),c=k.$dropdown_content.scrollTop()||0,g=k.$activeOption.offset().top-k.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?k.$dropdown_content.stop().animate({scrollTop:i},d?k.settings.scrollDuration:0):g<c&&k.$dropdown_content.stop().animate({scrollTop:h},d?k.settings.scrollDuration:0)))},selectAll:function(){var a=this;\"single\"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(\":not(input)\").addClass(\"active\")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(\"\"),a.$control_input.css({opacity:0,position:\"absolute\",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:\"relative\",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return\"string\"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b,nesting:a.nesting}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&\"function\"!=typeof(e=f.settings.score.apply(this,[b])))throw new Error('Selectize \"score\" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)-1!==f.items.indexOf(k(d.items[c].id))&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,l,m,n,o,p,q,r,s,t;void 0===b&&(b=!0);var u=this,w=a.trim(u.$control_input.val()),x=u.search(w),y=u.$dropdown_content,z=u.$activeOption&&k(u.$activeOption.attr(\"data-value\"));for(g=x.items.length,\"number\"==typeof u.settings.maxOptions&&(g=Math.min(g,u.settings.maxOptions)),h={},i=[],c=0;c<g;c++)for(j=u.options[x.items[c].id],l=u.render(\"option\",j),m=j[u.settings.optgroupField]||\"\",n=a.isArray(m)?m:[m],e=0,f=n&&n.length;e<f;e++)m=n[e],u.optgroups.hasOwnProperty(m)||(m=\"\"),h.hasOwnProperty(m)||(h[m]=document.createDocumentFragment(),i.push(m)),h[m].appendChild(l);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){return(u.optgroups[a].$order||0)-(u.optgroups[b].$order||0)}),o=document.createDocumentFragment(),c=0,g=i.length;c<g;c++)m=i[c],u.optgroups.hasOwnProperty(m)&&h[m].childNodes.length?(p=document.createDocumentFragment(),p.appendChild(u.render(\"optgroup_header\",u.optgroups[m])),p.appendChild(h[m]),o.appendChild(u.render(\"optgroup\",a.extend({},u.optgroups[m],{html:v(p),dom:p})))):o.appendChild(h[m]);if(y.html(o),u.settings.highlight&&(y.removeHighlight(),x.query.length&&x.tokens.length))for(c=0,g=x.tokens.length;c<g;c++)d(y,x.tokens[c].regex);if(!u.settings.hideSelected)for(c=0,g=u.items.length;c<g;c++)u.getOption(u.items[c]).addClass(\"selected\");q=u.canCreate(w),q&&(y.prepend(u.render(\"option_create\",{input:w})),t=a(y[0].childNodes[0])),u.hasOptions=x.items.length>0||q,u.hasOptions?(x.items.length>0?(s=z&&u.getOption(z),s&&s.length?r=s:\"single\"===u.settings.mode&&u.items.length&&(r=u.getOption(u.items[0])),r&&r.length||(r=t&&!u.settings.addPrecedence?u.getAdjacentOption(t,1):y.find(\"[data-selectable]:first\"))):r=t,u.setActiveOption(r),b&&!u.isOpen&&u.open()):(u.setActiveOption(null),b&&u.isOpen&&u.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;c<d;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger(\"option_add\",e,b))},registerOption:function(a){var b=k(a[this.settings.valueField]);return void 0!==b&&null!==b&&!this.options.hasOwnProperty(b)&&(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=k(a[this.settings.optgroupValueField]);return!!b&&(a.$order=a.$order||++this.order,this.optgroups[b]=a,b)},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger(\"optgroup_add\",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger(\"optgroup_remove\",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger(\"optgroup_clear\")},updateOption:function(b,c){var d,e,f,g,h,i,j,l=this;if(b=k(b),f=k(c[l.settings.valueField]),null!==b&&l.options.hasOwnProperty(b)){if(\"string\"!=typeof f)throw new Error(\"Value must be set in option data\");j=l.options[b].$order,f!==b&&(delete l.options[b],-1!==(g=l.items.indexOf(b))&&l.items.splice(g,1,f)),c.$order=c.$order||j,l.options[f]=c,h=l.renderCache.item,i=l.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),-1!==l.items.indexOf(f)&&(d=l.getItem(b),e=a(l.render(\"item\",c)),d.hasClass(\"active\")&&e.addClass(\"active\"),d.replaceWith(e)),l.lastQuery=null,l.isOpen&&l.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=k(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger(\"option_remove\",a),c.removeItem(a,b)},clearOptions:function(){var b=this;b.loadedSearches={},b.userOptions={},b.renderCache={};var c=b.options;a.each(b.options,function(a,d){-1==b.items.indexOf(a)&&delete c[a]}),b.options=b.sifter.items=c,b.lastQuery=null,b.trigger(\"option_clear\")},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find(\"[data-selectable]\"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find(\"[data-selectable]\"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},getElementWithValue:function(b,c){if(void 0!==(b=k(b))&&null!==b)for(var d=0,e=c.length;d<e;d++)if(c[d].getAttribute(\"data-value\")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){this.buffer=document.createDocumentFragment();for(var d=this.$control[0].childNodes,e=0;e<d.length;e++)this.buffer.appendChild(d[e]);for(var f=a.isArray(b)?b:[b],e=0,g=f.length;e<g;e++)this.isPending=e<g-1,this.addItem(f[e],c);var h=this.$control[0];h.insertBefore(this.buffer,h.firstChild),this.buffer=null},addItem:function(b,c){p(this,c?[]:[\"change\"],function(){var d,e,f,g,h,i=this,j=i.settings.mode;if(b=k(b),-1!==i.items.indexOf(b))return void(\"single\"===j&&i.close());i.options.hasOwnProperty(b)&&(\"single\"===j&&i.clear(c),\"multi\"===j&&i.isFull()||(d=a(i.render(\"item\",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find(\"[data-selectable]\"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr(\"data-value\"),i.refreshOptions(i.isFocused&&\"single\"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.isPending||i.positionDropdown(),i.updatePlaceholder(),i.trigger(\"item_add\",b,d),i.isPending||i.updateOriginalInput({silent:c}))))})},removeItem:function(b,c){var d,e,f,g=this;d=b instanceof a?b:g.getItem(b),b=k(d.attr(\"data-value\")),-1!==(e=g.items.indexOf(b))&&(d.remove(),d.hasClass(\"active\")&&(f=g.$activeItems.indexOf(d[0]),g.$activeItems.splice(f,1)),g.items.splice(e,1),g.lastQuery=null,!g.settings.persist&&g.userOptions.hasOwnProperty(b)&&g.removeOption(b,c),e<g.caretPos&&g.setCaret(g.caretPos-1),g.refreshState(),g.updatePlaceholder(),g.updateOriginalInput({silent:c}),g.positionDropdown(),g.trigger(\"item_remove\",b,d))},createItem:function(b,c){var d=this,e=d.caretPos;b=b||a.trim(d.$control_input.val()||\"\");var f=arguments[arguments.length-1];if(\"function\"!=typeof f&&(f=function(){}),\"boolean\"!=typeof c&&(c=!0),!d.canCreate(b))return f(),!1;d.lock();var g=\"function\"==typeof d.settings.create?this.settings.create:function(a){var b={};return b[d.settings.labelField]=a,b[d.settings.valueField]=a,b},h=n(function(a){if(d.unlock(),!a||\"object\"!=typeof a)return f();var b=k(a[d.settings.valueField]);if(\"string\"!=typeof b)return f();d.setTextboxValue(\"\"),d.addOption(a),d.setCaret(e),d.addItem(b),d.refreshOptions(c&&\"single\"!==d.settings.mode),f(a)}),i=g.apply(this,[b,h]);return void 0!==i&&h(i),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){this.refreshValidityState(),this.refreshClasses()},refreshValidityState:function(){if(!this.isRequired)return!1;var a=!this.items.length;this.isInvalid=a,this.$control_input.prop(\"required\",a),this.$input.prop(\"required\",!a)},refreshClasses:function(){var b=this,c=b.isFull(),d=b.isLocked;b.$wrapper.toggleClass(\"rtl\",b.rtl),b.$control.toggleClass(\"focus\",b.isFocused).toggleClass(\"disabled\",b.isDisabled).toggleClass(\"required\",b.isRequired).toggleClass(\"invalid\",b.isInvalid).toggleClass(\"locked\",d).toggleClass(\"full\",c).toggleClass(\"not-full\",!c).toggleClass(\"input-active\",b.isFocused&&!b.isInputHidden).toggleClass(\"dropdown-active\",b.isOpen).toggleClass(\"has-options\",!a.isEmptyObject(b.options)).toggleClass(\"has-items\",b.items.length>0),b.$control_input.data(\"grow\",!c&&!d)},isFull:function(){\r\nreturn null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},1===f.tagType){for(d=[],b=0,c=f.items.length;b<c;b++)e=f.options[f.items[b]][f.settings.labelField]||\"\",d.push('<option value=\"'+l(f.items[b])+'\" selected=\"selected\">'+l(e)+\"</option>\");d.length||this.$input.attr(\"multiple\")||d.push('<option value=\"\" selected=\"selected\"></option>'),f.$input.html(d.join(\"\"))}else f.$input.val(f.getValue()),f.$input.attr(\"value\",f.$input.val());f.isSetup&&(a.silent||f.trigger(\"change\",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr(\"placeholder\"):a.attr(\"placeholder\",this.settings.placeholder),a.triggerHandler(\"update\",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||\"multi\"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:\"hidden\",display:\"block\"}),a.positionDropdown(),a.$dropdown.css({visibility:\"visible\"}),a.trigger(\"dropdown_open\",a.$dropdown))},close:function(){var a=this,b=a.isOpen;\"single\"===a.settings.mode&&a.items.length&&(a.hideInput(),a.isBlurring||a.$control_input.blur()),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger(\"dropdown_close\",a.$dropdown)},positionDropdown:function(){var a=this.$control,b=\"body\"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a[0].getBoundingClientRect().width,top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(\":not(input)\").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger(\"clear\"))},insertAtCaret:function(a){var b=Math.min(this.caretPos,this.items.length),c=a[0],d=this.buffer||this.$control[0];0===b?d.insertBefore(c,d.firstChild):d.insertBefore(c,d.childNodes[b]),this.setCaret(b+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&8===b.keyCode?-1:1,f=r(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr(\"data-value\")),g=[],l.$activeItems.length){for(k=l.$control.children(\".active:\"+(e>0?\"last\":\"first\")),h=l.$control.children(\":not(input)\").index(k),e>0&&h++,c=0,d=l.$activeItems.length;c<d;c++)g.push(a(l.$activeItems[c]).attr(\"data-value\"));b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||\"single\"===l.settings.mode)&&l.items.length&&(e<0&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||\"function\"==typeof l.settings.onDelete&&!1===l.settings.onDelete.apply(l,[g]))return!1;for(void 0!==h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h=this;0!==a&&(h.rtl&&(a*=-1),c=a>0?\"last\":\"first\",d=r(h.$control_input[0]),h.isFocused&&!h.isInputHidden?(f=h.$control_input.val().length,(a<0?0===d.start&&0===d.length:d.start===f)&&!f&&h.advanceCaret(a,b)):(g=h.$control.children(\".active:\"+c),g.length&&(e=h.$control.children(\":not(input)\").index(g),h.setActiveItem(null),h.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?\"next\":\"prev\",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b=\"single\"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(\":not(input)\"),d=0,e=f.length;d<e;d++)g=a(f[d]).detach(),d<b?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop(\"disabled\",!0),a.$control_input.prop(\"disabled\",!0).prop(\"tabindex\",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop(\"disabled\",!1),a.$control_input.prop(\"disabled\",!1).prop(\"tabindex\",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger(\"destroy\"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html(\"\").append(d.$children).removeAttr(\"tabindex\").removeClass(\"selectized\").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData(\"grow\"),b.$input.removeData(\"selectize\"),0==--w.count&&w.$testInput&&(w.$testInput.remove(),w.$testInput=void 0),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(b,c){var d,e,f=\"\",g=!1,h=this;return\"option\"!==b&&\"item\"!==b||(d=k(c[h.settings.valueField]),g=!!d),g&&(j(h.renderCache[b])||(h.renderCache[b]={}),h.renderCache[b].hasOwnProperty(d))?h.renderCache[b][d]:(f=a(h.settings.render[b].apply(this,[c,l])),\"option\"===b||\"option_create\"===b?c[h.settings.disabledField]||f.attr(\"data-selectable\",\"\"):\"optgroup\"===b&&(e=c[h.settings.optgroupValueField]||\"\",f.attr(\"data-group\",e),c[h.settings.disabledField]&&f.attr(\"data-disabled\",\"\")),\"option\"!==b&&\"item\"!==b||f.attr(\"data-value\",d||\"\"),g&&(h.renderCache[b][d]=f[0]),f[0])},clearCache:function(a){var b=this;void 0===a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return a.length&&(\"function\"!=typeof c||c.apply(b,[a]))&&(\"string\"!=typeof c||new RegExp(c).test(a))&&(!(c instanceof RegExp)||c.test(a))}}),w.count=0,w.defaults={options:[],optgroups:[],plugins:[],delimiter:\",\",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:\"loading\",dataAttr:\"data-data\",optgroupField:\"optgroup\",valueField:\"value\",labelField:\"text\",disabledField:\"disabled\",optgroupLabelField:\"label\",optgroupValueField:\"value\",lockOptgroupOrder:!1,sortField:\"$order\",searchField:[\"text\"],searchConjunction:\"and\",mode:null,wrapperClass:\"selectize-control\",inputClass:\"selectize-input\",dropdownClass:\"selectize-dropdown\",dropdownContentClass:\"selectize-dropdown-content\",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.disabledField,i=d.optgroupField,j=d.optgroupLabelField,l=d.optgroupValueField,m=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;h<i;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||\"\");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;h<i;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},n=function(b,c){var m,n,o,p,q=c.options,r={},s=function(a){var b=e&&a.attr(e);return\"string\"==typeof b&&b.length?JSON.parse(b):null},t=function(b,e){b=a(b);var j=k(b.val());if(j||d.allowEmptyOption)if(r.hasOwnProperty(j)){if(e){var l=r[j][i];l?a.isArray(l)?l.push(e):r[j][i]=[l,e]:r[j][i]=e}}else{var m=s(b)||{};m[f]=m[f]||b.text(),m[g]=m[g]||j,m[h]=m[h]||b.prop(\"disabled\"),m[i]=m[i]||e,r[j]=m,q.push(m),b.is(\":selected\")&&c.items.push(j)}};for(c.maxItems=b.attr(\"multiple\")?null:1,p=b.children(),m=0,n=p.length;m<n;m++)o=p[m].tagName.toLowerCase(),\"optgroup\"===o?function(b){var d,e,f,g,i;for(b=a(b),f=b.attr(\"label\"),f&&(g=s(b)||{},g[j]=f,g[l]=f,g[h]=b.prop(\"disabled\"),c.optgroups.push(g)),i=a(\"option\",b),d=0,e=i.length;d<e;d++)t(i[d],f)}(p[m]):\"option\"===o&&t(p[m])};return this.each(function(){if(!this.selectize){var e=a(this),f=this.tagName.toLowerCase(),g=e.attr(\"placeholder\")||e.attr(\"data-placeholder\");g||d.allowEmptyOption||(g=e.children('option[value=\"\"]').text());var h={placeholder:g,options:[],optgroups:[],items:[]};\"select\"===f?n(e,h):m(e,h),new w(e,a.extend(!0,{},c,h,b))}})},a.fn.selectize.defaults=w.defaults,a.fn.selectize.support={validity:i},w.define(\"drag_drop\",function(b){if(!a.fn.sortable)throw new Error('The \"drag_drop\" plugin requires jQuery UI \"sortable\".');if(\"multi\"===this.settings.mode){var c=this;c.lock=function(){var a=c.lock;return function(){var b=c.$control.data(\"sortable\");return b&&b.disable(),a.apply(c,arguments)}}(),c.unlock=function(){var a=c.unlock;return function(){var b=c.$control.data(\"sortable\");return b&&b.enable(),a.apply(c,arguments)}}(),c.setup=function(){var b=c.setup;return function(){b.apply(this,arguments);var d=c.$control.sortable({items:\"[data-value]\",forcePlaceholderSize:!0,disabled:c.isLocked,start:function(a,b){b.placeholder.css(\"width\",b.helper.css(\"width\")),d.css({overflow:\"visible\"})},stop:function(){d.css({overflow:\"hidden\"});var b=c.$activeItems?c.$activeItems.slice():null,e=[];d.children(\"[data-value]\").each(function(){e.push(a(this).attr(\"data-value\"))}),c.setValue(e),c.setActiveItem(b)}})}}()}}),w.define(\"dropdown_header\",function(b){var c=this;b=a.extend({title:\"Untitled\",headerClass:\"selectize-dropdown-header\",titleRowClass:\"selectize-dropdown-header-title\",labelClass:\"selectize-dropdown-header-label\",closeClass:\"selectize-dropdown-header-close\",html:function(a){return'<div class=\"'+a.headerClass+'\"><div class=\"'+a.titleRowClass+'\"><span class=\"'+a.labelClass+'\">'+a.title+'</span><a href=\"javascript:void(0)\" class=\"'+a.closeClass+'\">×</a></div></div>'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),w.define(\"optgroup_columns\",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest(\"[data-group]\").find(\"[data-selectable]\"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},this.onKeyDown=function(){var a=c.onKeyDown;return function(b){var d,e,f,g;return!this.isOpen||37!==b.keyCode&&39!==b.keyCode?a.apply(this,arguments):(c.ignoreHover=!0,g=this.$activeOption.closest(\"[data-group]\"),d=g.find(\"[data-selectable]\").index(this.$activeOption),g=37===b.keyCode?g.prev(\"[data-group]\"):g.next(\"[data-group]\"),f=g.find(\"[data-selectable]\"),e=f.eq(Math.min(f.length-1,d)),void(e.length&&this.setActiveOption(e)))}}();var d=function(){var a,b=d.width,c=document;return void 0===b&&(a=c.createElement(\"div\"),a.innerHTML='<div style=\"width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;\"><div style=\"width:1px;height:100px;\"></div></div>',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a(\"[data-group]\",c.$dropdown_content),(f=k.length)&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;e<f;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(m.after(this,\"positionDropdown\",e),m.after(this,\"refreshOptions\",e))}),w.define(\"remove_button\",function(b){b=a.extend({label:\"×\",title:\"Remove\",className:\"remove\",append:!0},b);if(\"single\"===this.settings.mode)return void function(b,c){c.className=\"remove-single\";var d=b,e='<a href=\"javascript:void(0)\" class=\"'+c.className+'\" tabindex=\"-1\" title=\"'+l(c.title)+'\">'+c.label+\"</a>\",f=function(b,c){return a(\"<span>\").append(b).append(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=a(d.$input.context).attr(\"id\"),i=(a(\"#\"+h),d.settings.render.item);d.settings.render.item=function(a){return f(i.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on(\"click\",\".\"+c.className,function(a){a.preventDefault(),d.isLocked||d.clear()})}}()}(this,b);!function(b,c){var d=b,e='<a href=\"javascript:void(0)\" class=\"'+c.className+'\" tabindex=\"-1\" title=\"'+l(c.title)+'\">'+c.label+\"</a>\",f=function(a,b){var c=a.search(/(<\\/[^>]+>\\s*)$/);return a.substring(0,c)+b+a.substring(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=d.settings.render.item;d.settings.render.item=function(a){return f(h.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on(\"click\",\".\"+c.className,function(b){if(b.preventDefault(),!d.isLocked){var c=a(b.currentTarget).parent();d.setActiveItem(c),d.deleteSelection()&&d.setCaret(d.items.length)}})}}()}(this,b)}),w.define(\"restore_on_backspace\",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return 8===b.keyCode&&\"\"===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1)>=0&&d<this.items.length?(e=this.options[this.items[d]],this.deleteSelection(b)&&(this.setTextboxValue(a.text.apply(this,[e])),this.refreshOptions(!0)),void b.preventDefault()):c.apply(this,arguments)}}()}),w});","/*!\r\n * Bootstrap v4.0.0 (https://getbootstrap.com)\r\n * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n */\r\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports,require(\"jquery\"),require(\"popper.js\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"jquery\",\"popper.js\"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,n){\"use strict\";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function r(){return(r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}e=e&&e.hasOwnProperty(\"default\")?e.default:e,n=n&&n.hasOwnProperty(\"default\")?n.default:n;var o,a,l,h,c,u,f,d,_,g,p,m,v,E,T,y,C,I,A,b,D,S,w,N,O,k,P=function(t){var e=!1;function n(e){var n=this,s=!1;return t(this).one(i.TRANSITION_END,function(){s=!0}),setTimeout(function(){s||i.triggerTransitionEnd(n)},e),this}var i={TRANSITION_END:\"bsTransitionEnd\",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(e){var n,i=e.getAttribute(\"data-target\");i&&\"#\"!==i||(i=e.getAttribute(\"href\")||\"\"),\"#\"===i.charAt(0)&&(n=i,i=n=\"function\"==typeof t.escapeSelector?t.escapeSelector(n).substr(1):n.replace(/(:|\\.|\\[|\\]|,|=|@)/g,\"\\\\$1\"));try{return t(document).find(i).length>0?i:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(n){t(n).trigger(e.end)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var s in n)if(Object.prototype.hasOwnProperty.call(n,s)){var r=n[s],o=e[s],a=o&&i.isElement(o)?\"element\":(l=o,{}.toString.call(l).match(/\\s([a-zA-Z]+)/)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option \"'+s+'\" provided type \"'+a+'\" but expected type \"'+r+'\".')}var l}};return e=(\"undefined\"==typeof window||!window.QUnit)&&{end:\"transitionend\"},t.fn.emulateTransitionEnd=n,i.supportsTransitionEnd()&&(t.event.special[i.TRANSITION_END]={bindType:e.end,delegateType:e.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}),i}(e),L=(a=\"alert\",h=\".\"+(l=\"bs.alert\"),c=(o=e).fn[a],u={CLOSE:\"close\"+h,CLOSED:\"closed\"+h,CLICK_DATA_API:\"click\"+h+\".data-api\"},f=\"alert\",d=\"fade\",_=\"show\",g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.removeData(this._element,l),this._element=null},e._getRootElement=function(t){var e=P.getSelectorFromElement(t),n=!1;return e&&(n=o(e)[0]),n||(n=o(t).closest(\".\"+f)[0]),n},e._triggerCloseEvent=function(t){var e=o.Event(u.CLOSE);return o(t).trigger(e),e},e._removeElement=function(t){var e=this;o(t).removeClass(_),P.supportsTransitionEnd()&&o(t).hasClass(d)?o(t).one(P.TRANSITION_END,function(n){return e._destroyElement(t,n)}).emulateTransitionEnd(150):this._destroyElement(t)},e._destroyElement=function(t){o(t).detach().trigger(u.CLOSED).remove()},t._jQueryInterface=function(e){return this.each(function(){var n=o(this),i=n.data(l);i||(i=new t(this),n.data(l,i)),\"close\"===e&&i[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(t,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}}]),t}(),o(document).on(u.CLICK_DATA_API,'[data-dismiss=\"alert\"]',g._handleDismiss(new g)),o.fn[a]=g._jQueryInterface,o.fn[a].Constructor=g,o.fn[a].noConflict=function(){return o.fn[a]=c,g._jQueryInterface},g),R=(m=\"button\",E=\".\"+(v=\"bs.button\"),T=\".data-api\",y=(p=e).fn[m],C=\"active\",I=\"btn\",A=\"focus\",b='[data-toggle^=\"button\"]',D='[data-toggle=\"buttons\"]',S=\"input\",w=\".active\",N=\".btn\",O={CLICK_DATA_API:\"click\"+E+T,FOCUS_BLUR_DATA_API:\"focus\"+E+T+\" blur\"+E+T},k=function(){function t(t){this._element=t}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=p(this._element).closest(D)[0];if(n){var i=p(this._element).find(S)[0];if(i){if(\"radio\"===i.type)if(i.checked&&p(this._element).hasClass(C))t=!1;else{var s=p(n).find(w)[0];s&&p(s).removeClass(C)}if(t){if(i.hasAttribute(\"disabled\")||n.hasAttribute(\"disabled\")||i.classList.contains(\"disabled\")||n.classList.contains(\"disabled\"))return;i.checked=!p(this._element).hasClass(C),p(i).trigger(\"change\")}i.focus(),e=!1}}e&&this._element.setAttribute(\"aria-pressed\",!p(this._element).hasClass(C)),t&&p(this._element).toggleClass(C)},e.dispose=function(){p.removeData(this._element,v),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=p(this).data(v);n||(n=new t(this),p(this).data(v,n)),\"toggle\"===e&&n[e]()})},s(t,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}}]),t}(),p(document).on(O.CLICK_DATA_API,b,function(t){t.preventDefault();var e=t.target;p(e).hasClass(I)||(e=p(e).closest(N)),k._jQueryInterface.call(p(e),\"toggle\")}).on(O.FOCUS_BLUR_DATA_API,b,function(t){var e=p(t.target).closest(N)[0];p(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),p.fn[m]=k._jQueryInterface,p.fn[m].Constructor=k,p.fn[m].noConflict=function(){return p.fn[m]=y,k._jQueryInterface},k),j=function(t){var e=\"carousel\",n=\"bs.carousel\",i=\".\"+n,o=t.fn[e],a={interval:5e3,keyboard:!0,slide:!1,pause:\"hover\",wrap:!0},l={interval:\"(number|boolean)\",keyboard:\"boolean\",slide:\"(boolean|string)\",pause:\"(string|boolean)\",wrap:\"boolean\"},h=\"next\",c=\"prev\",u=\"left\",f=\"right\",d={SLIDE:\"slide\"+i,SLID:\"slid\"+i,KEYDOWN:\"keydown\"+i,MOUSEENTER:\"mouseenter\"+i,MOUSELEAVE:\"mouseleave\"+i,TOUCHEND:\"touchend\"+i,LOAD_DATA_API:\"load\"+i+\".data-api\",CLICK_DATA_API:\"click\"+i+\".data-api\"},_=\"carousel\",g=\"active\",p=\"slide\",m=\"carousel-item-right\",v=\"carousel-item-left\",E=\"carousel-item-next\",T=\"carousel-item-prev\",y={ACTIVE:\".active\",ACTIVE_ITEM:\".active.carousel-item\",ITEM:\".carousel-item\",NEXT_PREV:\".carousel-item-next, .carousel-item-prev\",INDICATORS:\".carousel-indicators\",DATA_SLIDE:\"[data-slide], [data-slide-to]\",DATA_RIDE:'[data-ride=\"carousel\"]'},C=function(){function o(e,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(y.INDICATORS)[0],this._addEventListeners()}var C=o.prototype;return C.next=function(){this._isSliding||this._slide(h)},C.nextWhenVisible=function(){!document.hidden&&t(this._element).is(\":visible\")&&\"hidden\"!==t(this._element).css(\"visibility\")&&this.next()},C.prev=function(){this._isSliding||this._slide(c)},C.pause=function(e){e||(this._isPaused=!0),t(this._element).find(y.NEXT_PREV)[0]&&P.supportsTransitionEnd()&&(P.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},C.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},C.to=function(e){var n=this;this._activeElement=t(this._element).find(y.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)t(this._element).one(d.SLID,function(){return n.to(e)});else{if(i===e)return this.pause(),void this.cycle();var s=e>i?h:c;this._slide(s,this._items[e])}},C.dispose=function(){t(this._element).off(i),t.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},C._getConfig=function(t){return t=r({},a,t),P.typeCheckConfig(e,t,l),t},C._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(d.KEYDOWN,function(t){return e._keydown(t)}),\"hover\"===this._config.pause&&(t(this._element).on(d.MOUSEENTER,function(t){return e.pause(t)}).on(d.MOUSELEAVE,function(t){return e.cycle(t)}),\"ontouchstart\"in document.documentElement&&t(this._element).on(d.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},C._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},C._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(y.ITEM)),this._items.indexOf(e)},C._getItemByDirection=function(t,e){var n=t===h,i=t===c,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===c?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},C._triggerSlideEvent=function(e,n){var i=this._getItemIndex(e),s=this._getItemIndex(t(this._element).find(y.ACTIVE_ITEM)[0]),r=t.Event(d.SLIDE,{relatedTarget:e,direction:n,from:s,to:i});return t(this._element).trigger(r),r},C._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(y.ACTIVE).removeClass(g);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(g)}},C._slide=function(e,n){var i,s,r,o=this,a=t(this._element).find(y.ACTIVE_ITEM)[0],l=this._getItemIndex(a),c=n||a&&this._getItemByDirection(e,a),_=this._getItemIndex(c),C=Boolean(this._interval);if(e===h?(i=v,s=E,r=u):(i=m,s=T,r=f),c&&t(c).hasClass(g))this._isSliding=!1;else if(!this._triggerSlideEvent(c,r).isDefaultPrevented()&&a&&c){this._isSliding=!0,C&&this.pause(),this._setActiveIndicatorElement(c);var I=t.Event(d.SLID,{relatedTarget:c,direction:r,from:l,to:_});P.supportsTransitionEnd()&&t(this._element).hasClass(p)?(t(c).addClass(s),P.reflow(c),t(a).addClass(i),t(c).addClass(i),t(a).one(P.TRANSITION_END,function(){t(c).removeClass(i+\" \"+s).addClass(g),t(a).removeClass(g+\" \"+s+\" \"+i),o._isSliding=!1,setTimeout(function(){return t(o._element).trigger(I)},0)}).emulateTransitionEnd(600)):(t(a).removeClass(g),t(c).addClass(g),this._isSliding=!1,t(this._element).trigger(I)),C&&this.cycle()}},o._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s=r({},a,t(this).data());\"object\"==typeof e&&(s=r({},s,e));var l=\"string\"==typeof e?e:s.slide;if(i||(i=new o(this,s),t(this).data(n,i)),\"number\"==typeof e)i.to(e);else if(\"string\"==typeof l){if(\"undefined\"==typeof i[l])throw new TypeError('No method named \"'+l+'\"');i[l]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(e){var i=P.getSelectorFromElement(this);if(i){var s=t(i)[0];if(s&&t(s).hasClass(_)){var a=r({},t(s).data(),t(this).data()),l=this.getAttribute(\"data-slide-to\");l&&(a.interval=!1),o._jQueryInterface.call(t(s),a),l&&t(s).data(n).to(l),e.preventDefault()}}},s(o,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return a}}]),o}();return t(document).on(d.CLICK_DATA_API,y.DATA_SLIDE,C._dataApiClickHandler),t(window).on(d.LOAD_DATA_API,function(){t(y.DATA_RIDE).each(function(){var e=t(this);C._jQueryInterface.call(e,e.data())})}),t.fn[e]=C._jQueryInterface,t.fn[e].Constructor=C,t.fn[e].noConflict=function(){return t.fn[e]=o,C._jQueryInterface},C}(e),H=function(t){var e=\"collapse\",n=\"bs.collapse\",i=\".\"+n,o=t.fn[e],a={toggle:!0,parent:\"\"},l={toggle:\"boolean\",parent:\"(string|element)\"},h={SHOW:\"show\"+i,SHOWN:\"shown\"+i,HIDE:\"hide\"+i,HIDDEN:\"hidden\"+i,CLICK_DATA_API:\"click\"+i+\".data-api\"},c=\"show\",u=\"collapse\",f=\"collapsing\",d=\"collapsed\",_=\"width\",g=\"height\",p={ACTIVES:\".show, .collapsing\",DATA_TOGGLE:'[data-toggle=\"collapse\"]'},m=function(){function i(e,n){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(n),this._triggerArray=t.makeArray(t('[data-toggle=\"collapse\"][href=\"#'+e.id+'\"],[data-toggle=\"collapse\"][data-target=\"#'+e.id+'\"]'));for(var i=t(p.DATA_TOGGLE),s=0;s<i.length;s++){var r=i[s],o=P.getSelectorFromElement(r);null!==o&&t(o).filter(e).length>0&&(this._selector=o,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var o=i.prototype;return o.toggle=function(){t(this._element).hasClass(c)?this.hide():this.show()},o.show=function(){var e,s,r=this;if(!this._isTransitioning&&!t(this._element).hasClass(c)&&(this._parent&&0===(e=t.makeArray(t(this._parent).find(p.ACTIVES).filter('[data-parent=\"'+this._config.parent+'\"]'))).length&&(e=null),!(e&&(s=t(e).not(this._selector).data(n))&&s._isTransitioning))){var o=t.Event(h.SHOW);if(t(this._element).trigger(o),!o.isDefaultPrevented()){e&&(i._jQueryInterface.call(t(e).not(this._selector),\"hide\"),s||t(e).data(n,null));var a=this._getDimension();t(this._element).removeClass(u).addClass(f),this._element.style[a]=0,this._triggerArray.length>0&&t(this._triggerArray).removeClass(d).attr(\"aria-expanded\",!0),this.setTransitioning(!0);var l=function(){t(r._element).removeClass(f).addClass(u).addClass(c),r._element.style[a]=\"\",r.setTransitioning(!1),t(r._element).trigger(h.SHOWN)};if(P.supportsTransitionEnd()){var _=\"scroll\"+(a[0].toUpperCase()+a.slice(1));t(this._element).one(P.TRANSITION_END,l).emulateTransitionEnd(600),this._element.style[a]=this._element[_]+\"px\"}else l()}}},o.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(c)){var n=t.Event(h.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+\"px\",P.reflow(this._element),t(this._element).addClass(f).removeClass(u).removeClass(c),this._triggerArray.length>0)for(var s=0;s<this._triggerArray.length;s++){var r=this._triggerArray[s],o=P.getSelectorFromElement(r);if(null!==o)t(o).hasClass(c)||t(r).addClass(d).attr(\"aria-expanded\",!1)}this.setTransitioning(!0);var a=function(){e.setTransitioning(!1),t(e._element).removeClass(f).addClass(u).trigger(h.HIDDEN)};this._element.style[i]=\"\",P.supportsTransitionEnd()?t(this._element).one(P.TRANSITION_END,a).emulateTransitionEnd(600):a()}}},o.setTransitioning=function(t){this._isTransitioning=t},o.dispose=function(){t.removeData(this._element,n),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},o._getConfig=function(t){return(t=r({},a,t)).toggle=Boolean(t.toggle),P.typeCheckConfig(e,t,l),t},o._getDimension=function(){return t(this._element).hasClass(_)?_:g},o._getParent=function(){var e=this,n=null;P.isElement(this._config.parent)?(n=this._config.parent,\"undefined\"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=t(this._config.parent)[0];var s='[data-toggle=\"collapse\"][data-parent=\"'+this._config.parent+'\"]';return t(n).find(s).each(function(t,n){e._addAriaAndCollapsedClass(i._getTargetFromElement(n),[n])}),n},o._addAriaAndCollapsedClass=function(e,n){if(e){var i=t(e).hasClass(c);n.length>0&&t(n).toggleClass(d,!i).attr(\"aria-expanded\",i)}},i._getTargetFromElement=function(e){var n=P.getSelectorFromElement(e);return n?t(n)[0]:null},i._jQueryInterface=function(e){return this.each(function(){var s=t(this),o=s.data(n),l=r({},a,s.data(),\"object\"==typeof e&&e);if(!o&&l.toggle&&/show|hide/.test(e)&&(l.toggle=!1),o||(o=new i(this,l),s.data(n,o)),\"string\"==typeof e){if(\"undefined\"==typeof o[e])throw new TypeError('No method named \"'+e+'\"');o[e]()}})},s(i,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return a}}]),i}();return t(document).on(h.CLICK_DATA_API,p.DATA_TOGGLE,function(e){\"A\"===e.currentTarget.tagName&&e.preventDefault();var i=t(this),s=P.getSelectorFromElement(this);t(s).each(function(){var e=t(this),s=e.data(n)?\"toggle\":i.data();m._jQueryInterface.call(e,s)})}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=o,m._jQueryInterface},m}(e),W=function(t){var e=\"dropdown\",i=\"bs.dropdown\",o=\".\"+i,a=\".data-api\",l=t.fn[e],h=new RegExp(\"38|40|27\"),c={HIDE:\"hide\"+o,HIDDEN:\"hidden\"+o,SHOW:\"show\"+o,SHOWN:\"shown\"+o,CLICK:\"click\"+o,CLICK_DATA_API:\"click\"+o+a,KEYDOWN_DATA_API:\"keydown\"+o+a,KEYUP_DATA_API:\"keyup\"+o+a},u=\"disabled\",f=\"show\",d=\"dropup\",_=\"dropright\",g=\"dropleft\",p=\"dropdown-menu-right\",m=\"dropdown-menu-left\",v=\"position-static\",E='[data-toggle=\"dropdown\"]',T=\".dropdown form\",y=\".dropdown-menu\",C=\".navbar-nav\",I=\".dropdown-menu .dropdown-item:not(.disabled)\",A=\"top-start\",b=\"top-end\",D=\"bottom-start\",S=\"bottom-end\",w=\"right-start\",N=\"left-start\",O={offset:0,flip:!0,boundary:\"scrollParent\"},k={offset:\"(number|string|function)\",flip:\"boolean\",boundary:\"(string|element)\"},L=function(){function a(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var l=a.prototype;return l.toggle=function(){if(!this._element.disabled&&!t(this._element).hasClass(u)){var e=a._getParentFromElement(this._element),i=t(this._menu).hasClass(f);if(a._clearMenus(),!i){var s={relatedTarget:this._element},r=t.Event(c.SHOW,s);if(t(e).trigger(r),!r.isDefaultPrevented()){if(!this._inNavbar){if(\"undefined\"==typeof n)throw new TypeError(\"Bootstrap dropdown require Popper.js (https://popper.js.org)\");var o=this._element;t(e).hasClass(d)&&(t(this._menu).hasClass(m)||t(this._menu).hasClass(p))&&(o=e),\"scrollParent\"!==this._config.boundary&&t(e).addClass(v),this._popper=new n(o,this._menu,this._getPopperConfig())}\"ontouchstart\"in document.documentElement&&0===t(e).closest(C).length&&t(\"body\").children().on(\"mouseover\",null,t.noop),this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),t(this._menu).toggleClass(f),t(e).toggleClass(f).trigger(t.Event(c.SHOWN,s))}}}},l.dispose=function(){t.removeData(this._element,i),t(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},l.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},l._addEventListeners=function(){var e=this;t(this._element).on(c.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},l._getConfig=function(n){return n=r({},this.constructor.Default,t(this._element).data(),n),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},l._getMenuElement=function(){if(!this._menu){var e=a._getParentFromElement(this._element);this._menu=t(e).find(y)[0]}return this._menu},l._getPlacement=function(){var e=t(this._element).parent(),n=D;return e.hasClass(d)?(n=A,t(this._menu).hasClass(p)&&(n=b)):e.hasClass(_)?n=w:e.hasClass(g)?n=N:t(this._menu).hasClass(p)&&(n=S),n},l._detectNavbar=function(){return t(this._element).closest(\".navbar\").length>0},l._getPopperConfig=function(){var t=this,e={};return\"function\"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset,{placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}}},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i);if(n||(n=new a(this,\"object\"==typeof e?e:null),t(this).data(i,n)),\"string\"==typeof e){if(\"undefined\"==typeof n[e])throw new TypeError('No method named \"'+e+'\"');n[e]()}})},a._clearMenus=function(e){if(!e||3!==e.which&&(\"keyup\"!==e.type||9===e.which))for(var n=t.makeArray(t(E)),s=0;s<n.length;s++){var r=a._getParentFromElement(n[s]),o=t(n[s]).data(i),l={relatedTarget:n[s]};if(o){var h=o._menu;if(t(r).hasClass(f)&&!(e&&(\"click\"===e.type&&/input|textarea/i.test(e.target.tagName)||\"keyup\"===e.type&&9===e.which)&&t.contains(r,e.target))){var u=t.Event(c.HIDE,l);t(r).trigger(u),u.isDefaultPrevented()||(\"ontouchstart\"in document.documentElement&&t(\"body\").children().off(\"mouseover\",null,t.noop),n[s].setAttribute(\"aria-expanded\",\"false\"),t(h).removeClass(f),t(r).removeClass(f).trigger(t.Event(c.HIDDEN,l)))}}}},a._getParentFromElement=function(e){var n,i=P.getSelectorFromElement(e);return i&&(n=t(i)[0]),n||e.parentNode},a._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||t(e.target).closest(y).length)):h.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!t(this).hasClass(u))){var n=a._getParentFromElement(this),i=t(n).hasClass(f);if((i||27===e.which&&32===e.which)&&(!i||27!==e.which&&32!==e.which)){var s=t(n).find(I).get();if(0!==s.length){var r=s.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<s.length-1&&r++,r<0&&(r=0),s[r].focus()}}else{if(27===e.which){var o=t(n).find(E)[0];t(o).trigger(\"focus\")}t(this).trigger(\"click\")}}},s(a,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return O}},{key:\"DefaultType\",get:function(){return k}}]),a}();return t(document).on(c.KEYDOWN_DATA_API,E,L._dataApiKeydownHandler).on(c.KEYDOWN_DATA_API,y,L._dataApiKeydownHandler).on(c.CLICK_DATA_API+\" \"+c.KEYUP_DATA_API,L._clearMenus).on(c.CLICK_DATA_API,E,function(e){e.preventDefault(),e.stopPropagation(),L._jQueryInterface.call(t(this),\"toggle\")}).on(c.CLICK_DATA_API,T,function(t){t.stopPropagation()}),t.fn[e]=L._jQueryInterface,t.fn[e].Constructor=L,t.fn[e].noConflict=function(){return t.fn[e]=l,L._jQueryInterface},L}(e),M=function(t){var e=\"modal\",n=\"bs.modal\",i=\".\"+n,o=t.fn.modal,a={backdrop:!0,keyboard:!0,focus:!0,show:!0},l={backdrop:\"(boolean|string)\",keyboard:\"boolean\",focus:\"boolean\",show:\"boolean\"},h={HIDE:\"hide\"+i,HIDDEN:\"hidden\"+i,SHOW:\"show\"+i,SHOWN:\"shown\"+i,FOCUSIN:\"focusin\"+i,RESIZE:\"resize\"+i,CLICK_DISMISS:\"click.dismiss\"+i,KEYDOWN_DISMISS:\"keydown.dismiss\"+i,MOUSEUP_DISMISS:\"mouseup.dismiss\"+i,MOUSEDOWN_DISMISS:\"mousedown.dismiss\"+i,CLICK_DATA_API:\"click\"+i+\".data-api\"},c=\"modal-scrollbar-measure\",u=\"modal-backdrop\",f=\"modal-open\",d=\"fade\",_=\"show\",g={DIALOG:\".modal-dialog\",DATA_TOGGLE:'[data-toggle=\"modal\"]',DATA_DISMISS:'[data-dismiss=\"modal\"]',FIXED_CONTENT:\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",STICKY_CONTENT:\".sticky-top\",NAVBAR_TOGGLER:\".navbar-toggler\"},p=function(){function o(e,n){this._config=this._getConfig(n),this._element=e,this._dialog=t(e).find(g.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}var p=o.prototype;return p.toggle=function(t){return this._isShown?this.hide():this.show(t)},p.show=function(e){var n=this;if(!this._isTransitioning&&!this._isShown){P.supportsTransitionEnd()&&t(this._element).hasClass(d)&&(this._isTransitioning=!0);var i=t.Event(h.SHOW,{relatedTarget:e});t(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),t(document.body).addClass(f),this._setEscapeEvent(),this._setResizeEvent(),t(this._element).on(h.CLICK_DISMISS,g.DATA_DISMISS,function(t){return n.hide(t)}),t(this._dialog).on(h.MOUSEDOWN_DISMISS,function(){t(n._element).one(h.MOUSEUP_DISMISS,function(e){t(e.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(e)}))}},p.hide=function(e){var n=this;if(e&&e.preventDefault(),!this._isTransitioning&&this._isShown){var i=t.Event(h.HIDE);if(t(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var s=P.supportsTransitionEnd()&&t(this._element).hasClass(d);s&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),t(document).off(h.FOCUSIN),t(this._element).removeClass(_),t(this._element).off(h.CLICK_DISMISS),t(this._dialog).off(h.MOUSEDOWN_DISMISS),s?t(this._element).one(P.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(300):this._hideModal()}}},p.dispose=function(){t.removeData(this._element,n),t(window,document,this._element,this._backdrop).off(i),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},p.handleUpdate=function(){this._adjustDialog()},p._getConfig=function(t){return t=r({},a,t),P.typeCheckConfig(e,t,l),t},p._showElement=function(e){var n=this,i=P.supportsTransitionEnd()&&t(this._element).hasClass(d);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.scrollTop=0,i&&P.reflow(this._element),t(this._element).addClass(_),this._config.focus&&this._enforceFocus();var s=t.Event(h.SHOWN,{relatedTarget:e}),r=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,t(n._element).trigger(s)};i?t(this._dialog).one(P.TRANSITION_END,r).emulateTransitionEnd(300):r()},p._enforceFocus=function(){var e=this;t(document).off(h.FOCUSIN).on(h.FOCUSIN,function(n){document!==n.target&&e._element!==n.target&&0===t(e._element).has(n.target).length&&e._element.focus()})},p._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?t(this._element).on(h.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||t(this._element).off(h.KEYDOWN_DISMISS)},p._setResizeEvent=function(){var e=this;this._isShown?t(window).on(h.RESIZE,function(t){return e.handleUpdate(t)}):t(window).off(h.RESIZE)},p._hideModal=function(){var e=this;this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._isTransitioning=!1,this._showBackdrop(function(){t(document.body).removeClass(f),e._resetAdjustments(),e._resetScrollbar(),t(e._element).trigger(h.HIDDEN)})},p._removeBackdrop=function(){this._backdrop&&(t(this._backdrop).remove(),this._backdrop=null)},p._showBackdrop=function(e){var n=this,i=t(this._element).hasClass(d)?d:\"\";if(this._isShown&&this._config.backdrop){var s=P.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement(\"div\"),this._backdrop.className=u,i&&t(this._backdrop).addClass(i),t(this._backdrop).appendTo(document.body),t(this._element).on(h.CLICK_DISMISS,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&(\"static\"===n._config.backdrop?n._element.focus():n.hide())}),s&&P.reflow(this._backdrop),t(this._backdrop).addClass(_),!e)return;if(!s)return void e();t(this._backdrop).one(P.TRANSITION_END,e).emulateTransitionEnd(150)}else if(!this._isShown&&this._backdrop){t(this._backdrop).removeClass(_);var r=function(){n._removeBackdrop(),e&&e()};P.supportsTransitionEnd()&&t(this._element).hasClass(d)?t(this._backdrop).one(P.TRANSITION_END,r).emulateTransitionEnd(150):r()}else e&&e()},p._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+\"px\"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+\"px\")},p._resetAdjustments=function(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"},p._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},p._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){t(g.FIXED_CONTENT).each(function(n,i){var s=t(i)[0].style.paddingRight,r=t(i).css(\"padding-right\");t(i).data(\"padding-right\",s).css(\"padding-right\",parseFloat(r)+e._scrollbarWidth+\"px\")}),t(g.STICKY_CONTENT).each(function(n,i){var s=t(i)[0].style.marginRight,r=t(i).css(\"margin-right\");t(i).data(\"margin-right\",s).css(\"margin-right\",parseFloat(r)-e._scrollbarWidth+\"px\")}),t(g.NAVBAR_TOGGLER).each(function(n,i){var s=t(i)[0].style.marginRight,r=t(i).css(\"margin-right\");t(i).data(\"margin-right\",s).css(\"margin-right\",parseFloat(r)+e._scrollbarWidth+\"px\")});var n=document.body.style.paddingRight,i=t(\"body\").css(\"padding-right\");t(\"body\").data(\"padding-right\",n).css(\"padding-right\",parseFloat(i)+this._scrollbarWidth+\"px\")}},p._resetScrollbar=function(){t(g.FIXED_CONTENT).each(function(e,n){var i=t(n).data(\"padding-right\");\"undefined\"!=typeof i&&t(n).css(\"padding-right\",i).removeData(\"padding-right\")}),t(g.STICKY_CONTENT+\", \"+g.NAVBAR_TOGGLER).each(function(e,n){var i=t(n).data(\"margin-right\");\"undefined\"!=typeof i&&t(n).css(\"margin-right\",i).removeData(\"margin-right\")});var e=t(\"body\").data(\"padding-right\");\"undefined\"!=typeof e&&t(\"body\").css(\"padding-right\",e).removeData(\"padding-right\")},p._getScrollbarWidth=function(){var t=document.createElement(\"div\");t.className=c,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(e,i){return this.each(function(){var s=t(this).data(n),a=r({},o.Default,t(this).data(),\"object\"==typeof e&&e);if(s||(s=new o(this,a),t(this).data(n,s)),\"string\"==typeof e){if(\"undefined\"==typeof s[e])throw new TypeError('No method named \"'+e+'\"');s[e](i)}else a.show&&s.show(i)})},s(o,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return a}}]),o}();return t(document).on(h.CLICK_DATA_API,g.DATA_TOGGLE,function(e){var i,s=this,o=P.getSelectorFromElement(this);o&&(i=t(o)[0]);var a=t(i).data(n)?\"toggle\":r({},t(i).data(),t(this).data());\"A\"!==this.tagName&&\"AREA\"!==this.tagName||e.preventDefault();var l=t(i).one(h.SHOW,function(e){e.isDefaultPrevented()||l.one(h.HIDDEN,function(){t(s).is(\":visible\")&&s.focus()})});p._jQueryInterface.call(t(i),a,this)}),t.fn.modal=p._jQueryInterface,t.fn.modal.Constructor=p,t.fn.modal.noConflict=function(){return t.fn.modal=o,p._jQueryInterface},p}(e),U=function(t){var e=\"tooltip\",i=\"bs.tooltip\",o=\".\"+i,a=t.fn[e],l=new RegExp(\"(^|\\\\s)bs-tooltip\\\\S+\",\"g\"),h={animation:\"boolean\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\",delay:\"(number|object)\",html:\"boolean\",selector:\"(string|boolean)\",placement:\"(string|function)\",offset:\"(number|string)\",container:\"(string|element|boolean)\",fallbackPlacement:\"(string|array)\",boundary:\"(string|element)\"},c={AUTO:\"auto\",TOP:\"top\",RIGHT:\"right\",BOTTOM:\"bottom\",LEFT:\"left\"},u={animation:!0,template:'<div class=\"tooltip\" role=\"tooltip\"><div class=\"arrow\"></div><div class=\"tooltip-inner\"></div></div>',trigger:\"hover focus\",title:\"\",delay:0,html:!1,selector:!1,placement:\"top\",offset:0,container:!1,fallbackPlacement:\"flip\",boundary:\"scrollParent\"},f=\"show\",d=\"out\",_={HIDE:\"hide\"+o,HIDDEN:\"hidden\"+o,SHOW:\"show\"+o,SHOWN:\"shown\"+o,INSERTED:\"inserted\"+o,CLICK:\"click\"+o,FOCUSIN:\"focusin\"+o,FOCUSOUT:\"focusout\"+o,MOUSEENTER:\"mouseenter\"+o,MOUSELEAVE:\"mouseleave\"+o},g=\"fade\",p=\"show\",m=\".tooltip-inner\",v=\".arrow\",E=\"hover\",T=\"focus\",y=\"click\",C=\"manual\",I=function(){function a(t,e){if(\"undefined\"==typeof n)throw new TypeError(\"Bootstrap tooltips require Popper.js (https://popper.js.org)\");this._isEnabled=!0,this._timeout=0,this._hoverState=\"\",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var I=a.prototype;return I.enable=function(){this._isEnabled=!0},I.disable=function(){this._isEnabled=!1},I.toggleEnabled=function(){this._isEnabled=!this._isEnabled},I.toggle=function(e){if(this._isEnabled)if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(p))return void this._leave(null,this);this._enter(null,this)}},I.dispose=function(){clearTimeout(this._timeout),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(\".modal\").off(\"hide.bs.modal\"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},I.show=function(){var e=this;if(\"none\"===t(this.element).css(\"display\"))throw new Error(\"Please use show on visible elements\");var i=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(i);var s=t.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),o=P.getUID(this.constructor.NAME);r.setAttribute(\"id\",o),this.element.setAttribute(\"aria-describedby\",o),this.setContent(),this.config.animation&&t(r).addClass(g);var l=\"function\"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(l);this.addAttachmentClass(h);var c=!1===this.config.container?document.body:t(this.config.container);t(r).data(this.constructor.DATA_KEY,this),t.contains(this.element.ownerDocument.documentElement,this.tip)||t(r).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,{placement:h,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:v},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),t(r).addClass(p),\"ontouchstart\"in document.documentElement&&t(\"body\").children().on(\"mouseover\",null,t.noop);var u=function(){e.config.animation&&e._fixTransition();var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===d&&e._leave(null,e)};P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(this.tip).one(P.TRANSITION_END,u).emulateTransitionEnd(a._TRANSITION_DURATION):u()}},I.hide=function(e){var n=this,i=this.getTipElement(),s=t.Event(this.constructor.Event.HIDE),r=function(){n._hoverState!==f&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute(\"aria-describedby\"),t(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()};t(this.element).trigger(s),s.isDefaultPrevented()||(t(i).removeClass(p),\"ontouchstart\"in document.documentElement&&t(\"body\").children().off(\"mouseover\",null,t.noop),this._activeTrigger[y]=!1,this._activeTrigger[T]=!1,this._activeTrigger[E]=!1,P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(i).one(P.TRANSITION_END,r).emulateTransitionEnd(150):r(),this._hoverState=\"\")},I.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},I.isWithContent=function(){return Boolean(this.getTitle())},I.addAttachmentClass=function(e){t(this.getTipElement()).addClass(\"bs-tooltip-\"+e)},I.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},I.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(m),this.getTitle()),e.removeClass(g+\" \"+p)},I.setElementContent=function(e,n){var i=this.config.html;\"object\"==typeof n&&(n.nodeType||n.jquery)?i?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[i?\"html\":\"text\"](n)},I.getTitle=function(){var t=this.element.getAttribute(\"data-original-title\");return t||(t=\"function\"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},I._getAttachment=function(t){return c[t.toUpperCase()]},I._setListeners=function(){var e=this;this.config.trigger.split(\" \").forEach(function(n){if(\"click\"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==C){var i=n===E?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,s=n===E?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(s,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(\".modal\").on(\"hide.bs.modal\",function(){return e.hide()})}),this.config.selector?this.config=r({},this.config,{trigger:\"manual\",selector:\"\"}):this._fixTitle()},I._fixTitle=function(){var t=typeof this.element.getAttribute(\"data-original-title\");(this.element.getAttribute(\"title\")||\"string\"!==t)&&(this.element.setAttribute(\"data-original-title\",this.element.getAttribute(\"title\")||\"\"),this.element.setAttribute(\"title\",\"\"))},I._enter=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger[\"focusin\"===e.type?T:E]=!0),t(n.getTipElement()).hasClass(p)||n._hoverState===f?n._hoverState=f:(clearTimeout(n._timeout),n._hoverState=f,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===f&&n.show()},n.config.delay.show):n.show())},I._leave=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger[\"focusout\"===e.type?T:E]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=d,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===d&&n.hide()},n.config.delay.hide):n.hide())},I._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},I._getConfig=function(n){return\"number\"==typeof(n=r({},this.constructor.Default,t(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),\"number\"==typeof n.title&&(n.title=n.title.toString()),\"number\"==typeof n.content&&(n.content=n.content.toString()),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},I._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},I._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr(\"class\").match(l);null!==n&&n.length>0&&e.removeClass(n.join(\"\"))},I._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},I._fixTransition=function(){var e=this.getTipElement(),n=this.config.animation;null===e.getAttribute(\"x-placement\")&&(t(e).removeClass(g),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i),s=\"object\"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new a(this,s),t(this).data(i,n)),\"string\"==typeof e)){if(\"undefined\"==typeof n[e])throw new TypeError('No method named \"'+e+'\"');n[e]()}})},s(a,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return u}},{key:\"NAME\",get:function(){return e}},{key:\"DATA_KEY\",get:function(){return i}},{key:\"Event\",get:function(){return _}},{key:\"EVENT_KEY\",get:function(){return o}},{key:\"DefaultType\",get:function(){return h}}]),a}();return t.fn[e]=I._jQueryInterface,t.fn[e].Constructor=I,t.fn[e].noConflict=function(){return t.fn[e]=a,I._jQueryInterface},I}(e),x=function(t){var e=\"popover\",n=\"bs.popover\",i=\".\"+n,o=t.fn[e],a=new RegExp(\"(^|\\\\s)bs-popover\\\\S+\",\"g\"),l=r({},U.Default,{placement:\"right\",trigger:\"click\",content:\"\",template:'<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>'}),h=r({},U.DefaultType,{content:\"(string|element|function)\"}),c=\"fade\",u=\"show\",f=\".popover-header\",d=\".popover-body\",_={HIDE:\"hide\"+i,HIDDEN:\"hidden\"+i,SHOW:\"show\"+i,SHOWN:\"shown\"+i,INSERTED:\"inserted\"+i,CLICK:\"click\"+i,FOCUSIN:\"focusin\"+i,FOCUSOUT:\"focusout\"+i,MOUSEENTER:\"mouseenter\"+i,MOUSELEAVE:\"mouseleave\"+i},g=function(r){var o,g;function p(){return r.apply(this,arguments)||this}g=r,(o=p).prototype=Object.create(g.prototype),o.prototype.constructor=o,o.__proto__=g;var m=p.prototype;return m.isWithContent=function(){return this.getTitle()||this._getContent()},m.addAttachmentClass=function(e){t(this.getTipElement()).addClass(\"bs-popover-\"+e)},m.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},m.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(f),this.getTitle());var n=this._getContent();\"function\"==typeof n&&(n=n.call(this.element)),this.setElementContent(e.find(d),n),e.removeClass(c+\" \"+u)},m._getContent=function(){return this.element.getAttribute(\"data-content\")||this.config.content},m._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr(\"class\").match(a);null!==n&&n.length>0&&e.removeClass(n.join(\"\"))},p._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s=\"object\"==typeof e?e:null;if((i||!/destroy|hide/.test(e))&&(i||(i=new p(this,s),t(this).data(n,i)),\"string\"==typeof e)){if(\"undefined\"==typeof i[e])throw new TypeError('No method named \"'+e+'\"');i[e]()}})},s(p,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return l}},{key:\"NAME\",get:function(){return e}},{key:\"DATA_KEY\",get:function(){return n}},{key:\"Event\",get:function(){return _}},{key:\"EVENT_KEY\",get:function(){return i}},{key:\"DefaultType\",get:function(){return h}}]),p}(U);return t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=o,g._jQueryInterface},g}(e),K=function(t){var e=\"scrollspy\",n=\"bs.scrollspy\",i=\".\"+n,o=t.fn[e],a={offset:10,method:\"auto\",target:\"\"},l={offset:\"number\",method:\"string\",target:\"(string|element)\"},h={ACTIVATE:\"activate\"+i,SCROLL:\"scroll\"+i,LOAD_DATA_API:\"load\"+i+\".data-api\"},c=\"dropdown-item\",u=\"active\",f={DATA_SPY:'[data-spy=\"scroll\"]',ACTIVE:\".active\",NAV_LIST_GROUP:\".nav, .list-group\",NAV_LINKS:\".nav-link\",NAV_ITEMS:\".nav-item\",LIST_ITEMS:\".list-group-item\",DROPDOWN:\".dropdown\",DROPDOWN_ITEMS:\".dropdown-item\",DROPDOWN_TOGGLE:\".dropdown-toggle\"},d=\"offset\",_=\"position\",g=function(){function o(e,n){var i=this;this._element=e,this._scrollElement=\"BODY\"===e.tagName?window:e,this._config=this._getConfig(n),this._selector=this._config.target+\" \"+f.NAV_LINKS+\",\"+this._config.target+\" \"+f.LIST_ITEMS+\",\"+this._config.target+\" \"+f.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(h.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var g=o.prototype;return g.refresh=function(){var e=this,n=this._scrollElement===this._scrollElement.window?d:_,i=\"auto\"===this._config.method?n:this._config.method,s=i===_?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.makeArray(t(this._selector)).map(function(e){var n,r=P.getSelectorFromElement(e);if(r&&(n=t(r)[0]),n){var o=n.getBoundingClientRect();if(o.width||o.height)return[t(n)[i]().top+s,r]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},g.dispose=function(){t.removeData(this._element,n),t(this._scrollElement).off(i),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},g._getConfig=function(n){if(\"string\"!=typeof(n=r({},a,n)).target){var i=t(n.target).attr(\"id\");i||(i=P.getUID(e),t(n.target).attr(\"id\",i)),n.target=\"#\"+i}return P.typeCheckConfig(e,n,l),n},g._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},g._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},g._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},g._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;){this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&(\"undefined\"==typeof this._offsets[s+1]||t<this._offsets[s+1])&&this._activate(this._targets[s])}}},g._activate=function(e){this._activeTarget=e,this._clear();var n=this._selector.split(\",\");n=n.map(function(t){return t+'[data-target=\"'+e+'\"],'+t+'[href=\"'+e+'\"]'});var i=t(n.join(\",\"));i.hasClass(c)?(i.closest(f.DROPDOWN).find(f.DROPDOWN_TOGGLE).addClass(u),i.addClass(u)):(i.addClass(u),i.parents(f.NAV_LIST_GROUP).prev(f.NAV_LINKS+\", \"+f.LIST_ITEMS).addClass(u),i.parents(f.NAV_LIST_GROUP).prev(f.NAV_ITEMS).children(f.NAV_LINKS).addClass(u)),t(this._scrollElement).trigger(h.ACTIVATE,{relatedTarget:e})},g._clear=function(){t(this._selector).filter(f.ACTIVE).removeClass(u)},o._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n);if(i||(i=new o(this,\"object\"==typeof e&&e),t(this).data(n,i)),\"string\"==typeof e){if(\"undefined\"==typeof i[e])throw new TypeError('No method named \"'+e+'\"');i[e]()}})},s(o,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}},{key:\"Default\",get:function(){return a}}]),o}();return t(window).on(h.LOAD_DATA_API,function(){for(var e=t.makeArray(t(f.DATA_SPY)),n=e.length;n--;){var i=t(e[n]);g._jQueryInterface.call(i,i.data())}}),t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=o,g._jQueryInterface},g}(e),V=function(t){var e=\"bs.tab\",n=\".\"+e,i=t.fn.tab,r={HIDE:\"hide\"+n,HIDDEN:\"hidden\"+n,SHOW:\"show\"+n,SHOWN:\"shown\"+n,CLICK_DATA_API:\"click.bs.tab.data-api\"},o=\"dropdown-menu\",a=\"active\",l=\"disabled\",h=\"fade\",c=\"show\",u=\".dropdown\",f=\".nav, .list-group\",d=\".active\",_=\"> li > .active\",g='[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',p=\".dropdown-toggle\",m=\"> .dropdown-menu .active\",v=function(){function n(t){this._element=t}var i=n.prototype;return i.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&t(this._element).hasClass(a)||t(this._element).hasClass(l))){var n,i,s=t(this._element).closest(f)[0],o=P.getSelectorFromElement(this._element);if(s){var h=\"UL\"===s.nodeName?_:d;i=(i=t.makeArray(t(s).find(h)))[i.length-1]}var c=t.Event(r.HIDE,{relatedTarget:this._element}),u=t.Event(r.SHOW,{relatedTarget:i});if(i&&t(i).trigger(c),t(this._element).trigger(u),!u.isDefaultPrevented()&&!c.isDefaultPrevented()){o&&(n=t(o)[0]),this._activate(this._element,s);var g=function(){var n=t.Event(r.HIDDEN,{relatedTarget:e._element}),s=t.Event(r.SHOWN,{relatedTarget:i});t(i).trigger(n),t(e._element).trigger(s)};n?this._activate(n,n.parentNode,g):g()}}},i.dispose=function(){t.removeData(this._element,e),this._element=null},i._activate=function(e,n,i){var s=this,r=(\"UL\"===n.nodeName?t(n).find(_):t(n).children(d))[0],o=i&&P.supportsTransitionEnd()&&r&&t(r).hasClass(h),a=function(){return s._transitionComplete(e,r,i)};r&&o?t(r).one(P.TRANSITION_END,a).emulateTransitionEnd(150):a()},i._transitionComplete=function(e,n,i){if(n){t(n).removeClass(c+\" \"+a);var s=t(n.parentNode).find(m)[0];s&&t(s).removeClass(a),\"tab\"===n.getAttribute(\"role\")&&n.setAttribute(\"aria-selected\",!1)}if(t(e).addClass(a),\"tab\"===e.getAttribute(\"role\")&&e.setAttribute(\"aria-selected\",!0),P.reflow(e),t(e).addClass(c),e.parentNode&&t(e.parentNode).hasClass(o)){var r=t(e).closest(u)[0];r&&t(r).find(p).addClass(a),e.setAttribute(\"aria-expanded\",!0)}i&&i()},n._jQueryInterface=function(i){return this.each(function(){var s=t(this),r=s.data(e);if(r||(r=new n(this),s.data(e,r)),\"string\"==typeof i){if(\"undefined\"==typeof r[i])throw new TypeError('No method named \"'+i+'\"');r[i]()}})},s(n,null,[{key:\"VERSION\",get:function(){return\"4.0.0\"}}]),n}();return t(document).on(r.CLICK_DATA_API,g,function(e){e.preventDefault(),v._jQueryInterface.call(t(this),\"show\")}),t.fn.tab=v._jQueryInterface,t.fn.tab.Constructor=v,t.fn.tab.noConflict=function(){return t.fn.tab=i,v._jQueryInterface},v}(e);!function(t){if(\"undefined\"==typeof t)throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\");var e=t.fn.jquery.split(\" \")[0].split(\".\");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||e[0]>=4)throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\")}(e),t.Util=P,t.Alert=L,t.Button=R,t.Carousel=j,t.Collapse=H,t.Dropdown=W,t.Modal=M,t.Popover=x,t.Scrollspy=K,t.Tab=V,t.Tooltip=U,Object.defineProperty(t,\"__esModule\",{value:!0})});\r\n//# sourceMappingURL=bootstrap.min.js.map4","/*! WOW - v1.1.2 - 2015-08-19\r\n* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent(\"CustomEvent\"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():\"on\"+b in(null!=a)?a[\"on\"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent(\"on\"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent(\"on\"+b,c):delete a[b]},a.prototype.innerHeight=function(){return\"innerHeight\"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){\"undefined\"!=typeof console&&null!==console&&console.warn(\"MutationObserver is not supported by your browser.\"),\"undefined\"!=typeof console&&null!==console&&console.warn(\"WOW.js cannot detect dom mutations, please call .sync() after loading new content.\")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return\"float\"===b&&(b=\"styleFloat\"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:\"wow\",animateClass:\"animated\",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,\"interactive\"===(a=document.readyState)||\"complete\"===a?this.start():this.util().addEvent(document,\"DOMContentLoaded\",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll(\".\"+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,\"scroll\",this.scrollHandler),this.util().addEvent(window,\"resize\",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,\"scroll\",this.scrollHandler),this.util().removeEvent(window,\"resize\",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll(\".\"+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+\" \"+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,\"animationend\",this.resetAnimation),this.util().addEvent(a,\"oanimationend\",this.resetAnimation),this.util().addEvent(a,\"webkitAnimationEnd\",this.resetAnimation),this.util().addEvent(a,\"MSAnimationEnd\",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute(\"data-wow-duration\"),c=a.getAttribute(\"data-wow-delay\"),e=a.getAttribute(\"data-wow-iteration\"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return\"requestAnimationFrame\"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility=\"visible\");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf(\"animationend\")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,\"\").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?\"hidden\":\"visible\",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?\"none\":this.cachedAnimationName(a)}),a},e.prototype.vendors=[\"moz\",\"webkit\"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[\"\"+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[\"\"+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue(\"-\"+i+\"-\"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,\"animation-name\").cssText}catch(c){b=d(a).getPropertyValue(\"animation-name\")}return\"none\"===b?\"\":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute(\"data-wow-offset\")||this.config.offset,f=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);","/*!\r\n* jQuery meanMenu v2.0.8\r\n* @Copyright (C) 2012-2014 Chris Wharton @ MeanThemes (https://github.com/meanthemes/meanMenu)\r\n*\r\n*/\r\n/*\r\n* This program is free software: you can redistribute it and/or modify\r\n* it under the terms of the GNU General Public License as published by\r\n* the Free Software Foundation, either version 3 of the License, or\r\n* (at your option) any later version.\r\n*\r\n* THIS SOFTWARE AND DOCUMENTATION IS PROVIDED \"AS IS,\" AND COPYRIGHT\r\n* HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,\r\n* INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR\r\n* FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE\r\n* OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,\r\n* COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.COPYRIGHT HOLDERS WILL NOT\r\n* BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL\r\n* DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.\r\n*\r\n* You should have received a copy of the GNU General Public License\r\n* along with this program. If not, see <http://gnu.org/licenses/>.\r\n*\r\n* Find more information at http://www.meanthemes.com/plugins/meanmenu/\r\n*\r\n*/\r\n(function ($) {\r\n\t\"use strict\";\r\n\t\t$.fn.meanmenu = function (options) {\r\n\t\t\t\tvar defaults = {\r\n\t\t\t\t\t\tmeanMenuTarget: jQuery(this), // Target the current HTML markup you wish to replace\r\n\t\t\t\t\t\tmeanMenuContainer: '.mobile-menu-area .container', // Choose where meanmenu will be placed within the HTML\r\n\t\t\t\t\t\tmeanMenuClose: \"X\", // single character you want to represent the close menu button\r\n\t\t\t\t\t\tmeanMenuCloseSize: \"18px\", // set font size of close button\r\n\t\t\t\t\t\tmeanMenuOpen: \"<span /><span /><span />\", // text/markup you want when menu is closed\r\n\t\t\t\t\t\tmeanRevealPosition: \"right\", // left right or center positions\r\n\t\t\t\t\t\tmeanRevealPositionDistance: \"0\", // Tweak the position of the menu\r\n\t\t\t\t\t\tmeanRevealColour: \"\", // override CSS colours for the reveal background\r\n\t\t\t\t\t\tmeanScreenWidth: \"991\", // set the screen width you want meanmenu to kick in at\r\n\t\t\t\t\t\tmeanNavPush: \"\", // set a height here in px, em or % if you want to budge your layout now the navigation is missing.\r\n\t\t\t\t\t\tmeanShowChildren: true, // true to show children in the menu, false to hide them\r\n\t\t\t\t\t\tmeanExpandableChildren: true, // true to allow expand/collapse children\r\n\t\t\t\t\t\tmeanExpand: \"+\", // single character you want to represent the expand for ULs\r\n\t\t\t\t\t\tmeanContract: \"-\", // single character you want to represent the contract for ULs\r\n\t\t\t\t\t\tmeanRemoveAttrs: false, // true to remove classes and IDs, false to keep them\r\n\t\t\t\t\t\tonePage: false, // set to true for one page sites\r\n\t\t\t\t\t\tmeanDisplay: \"block\", // override display method for table cell based layouts e.g. table-cell\r\n\t\t\t\t\t\tremoveElements: \"\" // set to hide page elements\r\n\t\t\t\t};\r\n\t\t\t\toptions = $.extend(defaults, options);\r\n\r\n\t\t\t\t// get browser width\r\n\t\t\t\tvar currentWidth = window.innerWidth || document.documentElement.clientWidth;\r\n\r\n\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tvar meanMenu = options.meanMenuTarget;\r\n\t\t\t\t\t\tvar meanContainer = options.meanMenuContainer;\r\n\t\t\t\t\t\tvar meanMenuClose = options.meanMenuClose;\r\n\t\t\t\t\t\tvar meanMenuCloseSize = options.meanMenuCloseSize;\r\n\t\t\t\t\t\tvar meanMenuOpen = options.meanMenuOpen;\r\n\t\t\t\t\t\tvar meanRevealPosition = options.meanRevealPosition;\r\n\t\t\t\t\t\tvar meanRevealPositionDistance = options.meanRevealPositionDistance;\r\n\t\t\t\t\t\tvar meanRevealColour = options.meanRevealColour;\r\n\t\t\t\t\t\tvar meanScreenWidth = options.meanScreenWidth;\r\n\t\t\t\t\t\tvar meanNavPush = options.meanNavPush;\r\n\t\t\t\t\t\tvar meanRevealClass = \".meanmenu-reveal\";\r\n\t\t\t\t\t\tvar meanShowChildren = options.meanShowChildren;\r\n\t\t\t\t\t\tvar meanExpandableChildren = options.meanExpandableChildren;\r\n\t\t\t\t\t\tvar meanExpand = options.meanExpand;\r\n\t\t\t\t\t\tvar meanContract = options.meanContract;\r\n\t\t\t\t\t\tvar meanRemoveAttrs = options.meanRemoveAttrs;\r\n\t\t\t\t\t\tvar onePage = options.onePage;\r\n\t\t\t\t\t\tvar meanDisplay = options.meanDisplay;\r\n\t\t\t\t\t\tvar removeElements = options.removeElements;\r\n\r\n\t\t\t\t\t\t//detect known mobile/tablet usage\r\n\t\t\t\t\t\tvar isMobile = false;\r\n\t\t\t\t\t\tif ( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/Windows Phone/i)) ) {\r\n\t\t\t\t\t\t\t\tisMobile = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( (navigator.userAgent.match(/MSIE 8/i)) || (navigator.userAgent.match(/MSIE 7/i)) ) {\r\n\t\t\t\t\t\t\t// add scrollbar for IE7 & 8 to stop breaking resize function on small content sites\r\n\t\t\t\t\t\t\t\tjQuery('html').css(\"overflow-y\" , \"scroll\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar meanRevealPos = \"\";\r\n\t\t\t\t\t\tvar meanCentered = function() {\r\n\t\t\t\t\t\t\tif (meanRevealPosition === \"center\") {\r\n\t\t\t\t\t\t\t\tvar newWidth = window.innerWidth || document.documentElement.clientWidth;\r\n\t\t\t\t\t\t\t\tvar meanCenter = ( (newWidth/2)-22 )+\"px\";\r\n\t\t\t\t\t\t\t\tmeanRevealPos = \"left:\" + meanCenter + \";right:auto;\";\r\n\r\n\t\t\t\t\t\t\t\tif (!isMobile) {\r\n\t\t\t\t\t\t\t\t\tjQuery('.meanmenu-reveal').css(\"left\",meanCenter);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tjQuery('.meanmenu-reveal').animate({\r\n\t\t\t\t\t\t\t\t\t\t\tleft: meanCenter\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar menuOn = false;\r\n\t\t\t\t\t\tvar meanMenuExist = false;\r\n\r\n\r\n\t\t\t\t\t\tif (meanRevealPosition === \"right\") {\r\n\t\t\t\t\t\t\t\tmeanRevealPos = \"right:\" + meanRevealPositionDistance + \";left:auto;\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (meanRevealPosition === \"left\") {\r\n\t\t\t\t\t\t\t\tmeanRevealPos = \"left:\" + meanRevealPositionDistance + \";right:auto;\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// run center function\r\n\t\t\t\t\t\tmeanCentered();\r\n\r\n\t\t\t\t\t\t// set all styles for mean-reveal\r\n\t\t\t\t\t\tvar $navreveal = \"\";\r\n\r\n\t\t\t\t\t\tvar meanInner = function() {\r\n\t\t\t\t\t\t\t\t// get last class name\r\n\t\t\t\t\t\t\t\tif (jQuery($navreveal).is(\".meanmenu-reveal.meanclose\")) {\r\n\t\t\t\t\t\t\t\t\t\t$navreveal.html(meanMenuClose);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t$navreveal.html(meanMenuOpen);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// re-instate original nav (and call this on window.width functions)\r\n\t\t\t\t\t\tvar meanOriginal = function() {\r\n\t\t\t\t\t\t\tjQuery('.mean-bar,.mean-push').remove();\r\n\t\t\t\t\t\t\tjQuery(meanContainer).removeClass(\"mean-container\");\r\n\t\t\t\t\t\t\tjQuery(meanMenu).css('display', meanDisplay);\r\n\t\t\t\t\t\t\tmenuOn = false;\r\n\t\t\t\t\t\t\tmeanMenuExist = false;\r\n\t\t\t\t\t\t\tjQuery(removeElements).removeClass('mean-remove');\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// navigation reveal\r\n\t\t\t\t\t\tvar showMeanMenu = function() {\r\n\t\t\t\t\t\t\t\tvar meanStyles = \"background:\"+meanRevealColour+\";color:\"+meanRevealColour+\";\"+meanRevealPos;\r\n\t\t\t\t\t\t\t\tif (currentWidth <= meanScreenWidth) {\r\n\t\t\t\t\t\t\t\tjQuery(removeElements).addClass('mean-remove');\r\n\t\t\t\t\t\t\t\t\tmeanMenuExist = true;\r\n\t\t\t\t\t\t\t\t\t// add class to body so we don't need to worry about media queries here, all CSS is wrapped in '.mean-container'\r\n\t\t\t\t\t\t\t\t\tjQuery(meanContainer).addClass(\"mean-container\");\r\n\t\t\t\t\t\t\t\t\tjQuery('.mean-container').prepend('<div class=\"mean-bar\"><a href=\"#nav\" class=\"meanmenu-reveal\" style=\"'+meanStyles+'\">Show Navigation</a><nav class=\"mean-nav\"></nav></div>');\r\n\r\n\t\t\t\t\t\t\t\t\t//push meanMenu navigation into .mean-nav\r\n\t\t\t\t\t\t\t\t\tvar meanMenuContents = jQuery(meanMenu).html();\r\n\t\t\t\t\t\t\t\t\tjQuery('.mean-nav').html(meanMenuContents);\r\n\r\n\t\t\t\t\t\t\t\t\t// remove all classes from EVERYTHING inside meanmenu nav\r\n\t\t\t\t\t\t\t\t\tif(meanRemoveAttrs) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery('nav.mean-nav ul, nav.mean-nav ul *').each(function() {\r\n\t\t\t\t\t\t\t\t\t\t\t// First check if this has mean-remove class\r\n\t\t\t\t\t\t\t\t\t\t\tif (jQuery(this).is('.mean-remove')) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).attr('class', 'mean-remove');\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).removeAttr(\"class\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery(this).removeAttr(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// push in a holder div (this can be used if removal of nav is causing layout issues)\r\n\t\t\t\t\t\t\t\t\tjQuery(meanMenu).before('<div class=\"mean-push\" />');\r\n\t\t\t\t\t\t\t\t\tjQuery('.mean-push').css(\"margin-top\",meanNavPush);\r\n\r\n\t\t\t\t\t\t\t\t\t// hide current navigation and reveal mean nav link\r\n\t\t\t\t\t\t\t\t\tjQuery(meanMenu).hide();\r\n\t\t\t\t\t\t\t\t\tjQuery(\".meanmenu-reveal\").show();\r\n\r\n\t\t\t\t\t\t\t\t\t// turn 'X' on or off\r\n\t\t\t\t\t\t\t\t\tjQuery(meanRevealClass).html(meanMenuOpen);\r\n\t\t\t\t\t\t\t\t\t$navreveal = jQuery(meanRevealClass);\r\n\r\n\t\t\t\t\t\t\t\t\t//hide mean-nav ul\r\n\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul').hide();\r\n\r\n\t\t\t\t\t\t\t\t\t// hide sub nav\r\n\t\t\t\t\t\t\t\t\tif(meanShowChildren) {\r\n\t\t\t\t\t\t\t\t\t\t\t// allow expandable sub nav(s)\r\n\t\t\t\t\t\t\t\t\t\t\tif(meanExpandableChildren){\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul ul').each(function() {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(jQuery(this).children().length){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this,'li:first').parent().append('<a class=\"mean-expand\" href=\"#\" style=\"font-size: '+ meanMenuCloseSize +'\">'+ meanExpand +'</a>');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-expand').on(\"click\",function(e){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (jQuery(this).hasClass(\"mean-clicked\")) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).text(meanExpand);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).prev('ul').slideUp(300, function(){});\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).text(meanContract);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).prev('ul').slideDown(300, function(){});\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(this).toggleClass(\"mean-clicked\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul ul').show();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul ul').hide();\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// add last class to tidy up borders\r\n\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul li').last().addClass('mean-last');\r\n\t\t\t\t\t\t\t\t\t$navreveal.removeClass(\"meanclose\");\r\n\t\t\t\t\t\t\t\t\tjQuery($navreveal).click(function(e){\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tif( menuOn === false ) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$navreveal.css(\"text-align\", \"center\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t$navreveal.css(\"text-indent\", \"0\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t$navreveal.css(\"font-size\", meanMenuCloseSize);\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul:first').slideDown();\r\n\t\t\t\t\t\t\t\t\t\t\t\tmenuOn = true;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul:first').slideUp();\r\n\t\t\t\t\t\t\t\t\t\t\tmenuOn = false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t$navreveal.toggleClass(\"meanclose\");\r\n\t\t\t\t\t\t\t\t\t\t\tmeanInner();\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery(removeElements).addClass('mean-remove');\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t// for one page websites, reset all variables...\r\n\t\t\t\t\t\t\t\t\tif ( onePage ) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul > li > a:first-child').on( \"click\" , function () {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery('.mean-nav ul:first').slideUp();\r\n\t\t\t\t\t\t\t\t\t\t\tmenuOn = false;\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery($navreveal).toggleClass(\"meanclose\").html(meanMenuOpen);\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tmeanOriginal();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (!isMobile) {\r\n\t\t\t\t\t\t\t\t// reset menu on resize above meanScreenWidth\r\n\t\t\t\t\t\t\t\tjQuery(window).resize(function () {\r\n\t\t\t\t\t\t\t\t\t\tcurrentWidth = window.innerWidth || document.documentElement.clientWidth;\r\n\t\t\t\t\t\t\t\t\t\tif (currentWidth > meanScreenWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmeanOriginal();\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tmeanOriginal();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (currentWidth <= meanScreenWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tshowMeanMenu();\r\n\t\t\t\t\t\t\t\t\t\t\t\tmeanCentered();\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tmeanOriginal();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery(window).resize(function () {\r\n\t\t\t\t\t\t\t\t// get browser width\r\n\t\t\t\t\t\t\t\tcurrentWidth = window.innerWidth || document.documentElement.clientWidth;\r\n\r\n\t\t\t\t\t\t\t\tif (!isMobile) {\r\n\t\t\t\t\t\t\t\t\t\tmeanOriginal();\r\n\t\t\t\t\t\t\t\t\t\tif (currentWidth <= meanScreenWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tshowMeanMenu();\r\n\t\t\t\t\t\t\t\t\t\t\t\tmeanCentered();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tmeanCentered();\r\n\t\t\t\t\t\t\t\t\t\tif (currentWidth <= meanScreenWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (meanMenuExist === false) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tshowMeanMenu();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmeanOriginal();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// run main menuMenu function on load\r\n\t\t\t\t\tshowMeanMenu();\r\n\t\t\t\t});\r\n\t\t};\r\n})(jQuery);","/* jquery.sparkline 2.1.2 - http://omnipotent.net/jquery.sparkline/ \r\n** Licensed under the New BSD License - see above site for details */\r\n\r\n(function(a,b,c){(function(a){typeof define==\"function\"&&define.amd?define([\"jquery\"],a):jQuery&&!jQuery.fn.sparkline&&a(jQuery)})(function(d){\"use strict\";var e={},f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L=0;f=function(){return{common:{type:\"line\",lineColor:\"#00f\",fillColor:\"#cdf\",defaultPixelsPerValue:3,width:\"auto\",height:\"auto\",composite:!1,tagValuesAttribute:\"values\",tagOptionsPrefix:\"spark\",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:\"\",tooltipSuffix:\"\",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:\",\",numberDecimalMark:\".\",disableTooltips:!1,disableInteraction:!1},line:{spotColor:\"#f80\",highlightSpotColor:\"#5f5\",highlightLineColor:\"#f22\",spotRadius:1.5,minSpotColor:\"#f80\",maxSpotColor:\"#f80\",lineWidth:1,normalRangeMin:c,normalRangeMax:c,normalRangeColor:\"#ccc\",drawNormalOnTop:!1,chartRangeMin:c,chartRangeMax:c,chartRangeMinX:c,chartRangeMaxX:c,tooltipFormat:new h('<span style=\"color: {{color}}\">●</span> {{prefix}}{{y}}{{suffix}}')},bar:{barColor:\"#3366cc\",negBarColor:\"#f44\",stackedBarColor:[\"#3366cc\",\"#dc3912\",\"#ff9900\",\"#109618\",\"#66aa00\",\"#dd4477\",\"#0099c6\",\"#990099\"],zeroColor:c,nullColor:c,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,colorMap:c,tooltipFormat:new h('<span style=\"color: {{color}}\">●</span> {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:\"#6f6\",negBarColor:\"#f44\",zeroBarColor:\"#999\",colorMap:{},tooltipFormat:new h('<span style=\"color: {{color}}\">●</span> {{value:map}}'),tooltipValueLookups:{map:{\"-1\":\"Loss\",0:\"Draw\",1:\"Win\"}}},discrete:{lineHeight:\"auto\",thresholdColor:c,thresholdValue:0,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,tooltipFormat:new h(\"{{prefix}}{{value}}{{suffix}}\")},bullet:{targetColor:\"#f33\",targetWidth:3,performanceColor:\"#33f\",rangeColors:[\"#d3dafe\",\"#a8b6ff\",\"#7f94ff\"],base:c,tooltipFormat:new h(\"{{fieldkey:fields}} - {{value}}\"),tooltipValueLookups:{fields:{r:\"Range\",p:\"Performance\",t:\"Target\"}}},pie:{offset:0,sliceColors:[\"#3366cc\",\"#dc3912\",\"#ff9900\",\"#109618\",\"#66aa00\",\"#dd4477\",\"#0099c6\",\"#990099\"],borderWidth:0,borderColor:\"#000\",tooltipFormat:new h('<span style=\"color: {{color}}\">●</span> {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:\"#000\",boxFillColor:\"#cdf\",whiskerColor:\"#000\",outlierLineColor:\"#333\",outlierFillColor:\"#fff\",medianColor:\"#f00\",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:c,targetColor:\"#4a2\",chartRangeMax:c,chartRangeMin:c,tooltipFormat:new h(\"{{field:fields}}: {{value}}\"),tooltipFormatFieldlistKey:\"field\",tooltipValueLookups:{fields:{lq:\"Lower Quartile\",med:\"Median\",uq:\"Upper Quartile\",lo:\"Left Outlier\",ro:\"Right Outlier\",lw:\"Left Whisker\",rw:\"Right Whisker\"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)\";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',g=function(){var a,b;return a=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(a.prototype=d.extend(new arguments[0],arguments[arguments.length-1]),a._super=arguments[0].prototype):a.prototype=arguments[arguments.length-1],arguments.length>2&&(b=Array.prototype.slice.call(arguments,1,-1),b.unshift(a.prototype),d.extend.apply(d,b))):a.prototype=arguments[0],a.prototype.cls=a,a},d.SPFormatClass=h=g({fre:/\\{\\{([\\w.]+?)(:(.+?))?\\}\\}/g,precre:/(\\w+)\\.(\\d+)/,init:function(a,b){this.format=a,this.fclass=b},render:function(a,b,d){var e=this,f=a,g,h,i,j,k;return this.format.replace(this.fre,function(){var a;return h=arguments[1],i=arguments[3],g=e.precre.exec(h),g?(k=g[2],h=g[1]):k=!1,j=f[h],j===c?\"\":i&&b&&b[i]?(a=b[i],a.get?b[i].get(j)||j:b[i][j]||j):(n(j)&&(d.get(\"numberFormatter\")?j=d.get(\"numberFormatter\")(j):j=s(j,k,d.get(\"numberDigitGroupCount\"),d.get(\"numberDigitGroupSep\"),d.get(\"numberDecimalMark\"))),j)})}}),d.spformat=function(a,b){return new h(a,b)},i=function(a,b,c){return a<b?b:a>c?c:a},j=function(a,c){var d;return c===2?(d=b.floor(a.length/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a.length%2?(d=(a.length*c+c)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1]):(d=(a.length*c+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1])},k=function(a){var b;switch(a){case\"undefined\":a=c;break;case\"null\":a=null;break;case\"true\":a=!0;break;case\"false\":a=!1;break;default:b=parseFloat(a),a==b&&(a=b)}return a},l=function(a){var b,c=[];for(b=a.length;b--;)c[b]=k(a[b]);return c},m=function(a,b){var c,d,e=[];for(c=0,d=a.length;c<d;c++)a[c]!==b&&e.push(a[c]);return e},n=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},s=function(a,b,c,e,f){var g,h;a=(b===!1?parseFloat(a).toString():a.toFixed(b)).split(\"\"),g=(g=d.inArray(\".\",a))<0?a.length:g,g<a.length&&(a[g]=f);for(h=g-c;h>0;h-=c)a.splice(h,0,e);return a.join(\"\")},o=function(a,b,c){var d;for(d=b.length;d--;){if(c&&b[d]===null)continue;if(b[d]!==a)return!1}return!0},p=function(a){var b=0,c;for(c=a.length;c--;)b+=typeof a[c]==\"number\"?a[c]:0;return b},r=function(a){return d.isArray(a)?a:[a]},q=function(b){var c;a.createStyleSheet?a.createStyleSheet().cssText=b:(c=a.createElement(\"style\"),c.type=\"text/css\",a.getElementsByTagName(\"head\")[0].appendChild(c),c[typeof a.body.style.WebkitAppearance==\"string\"?\"innerText\":\"innerHTML\"]=b)},d.fn.simpledraw=function(b,e,f,g){var h,i;if(f&&(h=this.data(\"_jqs_vcanvas\")))return h;if(d.fn.sparkline.canvas===!1)return!1;if(d.fn.sparkline.canvas===c){var j=a.createElement(\"canvas\");if(!j.getContext||!j.getContext(\"2d\")){if(!a.namespaces||!!a.namespaces.v)return d.fn.sparkline.canvas=!1,!1;a.namespaces.add(\"v\",\"urn:schemas-microsoft-com:vml\",\"#default#VML\"),d.fn.sparkline.canvas=function(a,b,c,d){return new J(a,b,c)}}else d.fn.sparkline.canvas=function(a,b,c,d){return new I(a,b,c,d)}}return b===c&&(b=d(this).innerWidth()),e===c&&(e=d(this).innerHeight()),h=d.fn.sparkline.canvas(b,e,this,g),i=d(this).data(\"_jqs_mhandler\"),i&&i.registerCanvas(h),h},d.fn.cleardraw=function(){var a=this.data(\"_jqs_vcanvas\");a&&a.reset()},d.RangeMapClass=t=g({init:function(a){var b,c,d=[];for(b in a)a.hasOwnProperty(b)&&typeof b==\"string\"&&b.indexOf(\":\")>-1&&(c=b.split(\":\"),c[0]=c[0].length===0?-Infinity:parseFloat(c[0]),c[1]=c[1].length===0?Infinity:parseFloat(c[1]),c[2]=a[b],d.push(c));this.map=a,this.rangelist=d||!1},get:function(a){var b=this.rangelist,d,e,f;if((f=this.map[a])!==c)return f;if(b)for(d=b.length;d--;){e=b[d];if(e[0]<=a&&e[1]>=a)return e[2]}return c}}),d.range_map=function(a){return new t(a)},u=g({init:function(a,b){var c=d(a);this.$el=c,this.options=b,this.currentPageX=0,this.currentPageY=0,this.el=a,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!b.get(\"disableTooltips\"),this.highlightEnabled=!b.get(\"disableHighlight\")},registerSparkline:function(a){this.splist.push(a),this.over&&this.updateDisplay()},registerCanvas:function(a){var b=d(a.canvas);this.canvas=a,this.$canvas=b,b.mouseenter(d.proxy(this.mouseenter,this)),b.mouseleave(d.proxy(this.mouseleave,this)),b.click(d.proxy(this.mouseclick,this))},reset:function(a){this.splist=[],this.tooltip&&a&&(this.tooltip.remove(),this.tooltip=c)},mouseclick:function(a){var b=d.Event(\"sparklineClick\");b.originalEvent=a,b.sparklines=this.splist,this.$el.trigger(b)},mouseenter:function(b){d(a.body).unbind(\"mousemove.jqs\"),d(a.body).bind(\"mousemove.jqs\",d.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=b.pageX,this.currentPageY=b.pageY,this.currentEl=b.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new v(this.options),this.tooltip.updatePosition(b.pageX,b.pageY)),this.updateDisplay()},mouseleave:function(){d(a.body).unbind(\"mousemove.jqs\");var b=this.splist,c=b.length,e=!1,f,g;this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null);for(g=0;g<c;g++)f=b[g],f.clearRegionHighlight()&&(e=!0);e&&this.canvas.render()},mousemove:function(a){this.currentPageX=a.pageX,this.currentPageY=a.pageY,this.currentEl=a.target,this.tooltip&&this.tooltip.updatePosition(a.pageX,a.pageY),this.updateDisplay()},updateDisplay:function(){var a=this.splist,b=a.length,c=!1,e=this.$canvas.offset(),f=this.currentPageX-e.left,g=this.currentPageY-e.top,h,i,j,k,l;if(!this.over)return;for(j=0;j<b;j++)i=a[j],k=i.setRegionHighlight(this.currentEl,f,g),k&&(c=!0);if(c){l=d.Event(\"sparklineRegionChange\"),l.sparklines=this.splist,this.$el.trigger(l);if(this.tooltip){h=\"\";for(j=0;j<b;j++)i=a[j],h+=i.getCurrentRegionTooltip();this.tooltip.setContent(h)}this.disableHighlight||this.canvas.render()}k===null&&this.mouseleave()}}),v=g({sizeStyle:\"position: static !important;display: block !important;visibility: hidden !important;float: left !important;\",init:function(b){var c=b.get(\"tooltipClassname\",\"jqstooltip\"),e=this.sizeStyle,f;this.container=b.get(\"tooltipContainer\")||a.body,this.tooltipOffsetX=b.get(\"tooltipOffsetX\",10),this.tooltipOffsetY=b.get(\"tooltipOffsetY\",12),d(\"#jqssizetip\").remove(),d(\"#jqstooltip\").remove(),this.sizetip=d(\"<div/>\",{id:\"jqssizetip\",style:e,\"class\":c}),this.tooltip=d(\"<div/>\",{id:\"jqstooltip\",\"class\":c}).appendTo(this.container),f=this.tooltip.offset(),this.offsetLeft=f.left,this.offsetTop=f.top,this.hidden=!0,d(window).unbind(\"resize.jqs scroll.jqs\"),d(window).bind(\"resize.jqs scroll.jqs\",d.proxy(this.updateWindowDims,this)),this.updateWindowDims()},updateWindowDims:function(){this.scrollTop=d(window).scrollTop(),this.scrollLeft=d(window).scrollLeft(),this.scrollRight=this.scrollLeft+d(window).width(),this.updatePosition()},getSize:function(a){this.sizetip.html(a).appendTo(this.container),this.width=this.sizetip.width()+1,this.height=this.sizetip.height(),this.sizetip.remove()},setContent:function(a){if(!a){this.tooltip.css(\"visibility\",\"hidden\"),this.hidden=!0;return}this.getSize(a),this.tooltip.html(a).css({width:this.width,height:this.height,visibility:\"visible\"}),this.hidden&&(this.hidden=!1,this.updatePosition())},updatePosition:function(a,b){if(a===c){if(this.mousex===c)return;a=this.mousex-this.offsetLeft,b=this.mousey-this.offsetTop}else this.mousex=a-=this.offsetLeft,this.mousey=b-=this.offsetTop;if(!this.height||!this.width||this.hidden)return;b-=this.height+this.tooltipOffsetY,a+=this.tooltipOffsetX,b<this.scrollTop&&(b=this.scrollTop),a<this.scrollLeft?a=this.scrollLeft:a+this.width>this.scrollRight&&(a=this.scrollRight-this.width),this.tooltip.css({left:a,top:b})},remove:function(){this.tooltip.remove(),this.sizetip.remove(),this.sizetip=this.tooltip=c,d(window).unbind(\"resize.jqs scroll.jqs\")}}),F=function(){q(E)},d(F),K=[],d.fn.sparkline=function(b,e){return this.each(function(){var f=new d.fn.sparkline.options(this,e),g=d(this),h,i;h=function(){var e,h,i,j,k,l,m;if(b===\"html\"||b===c){m=this.getAttribute(f.get(\"tagValuesAttribute\"));if(m===c||m===null)m=g.html();e=m.replace(/(^\\s*<!--)|(-->\\s*$)|\\s+/g,\"\").split(\",\")}else e=b;h=f.get(\"width\")===\"auto\"?e.length*f.get(\"defaultPixelsPerValue\"):f.get(\"width\");if(f.get(\"height\")===\"auto\"){if(!f.get(\"composite\")||!d.data(this,\"_jqs_vcanvas\"))j=a.createElement(\"span\"),j.innerHTML=\"a\",g.html(j),i=d(j).innerHeight()||d(j).height(),d(j).remove(),j=null}else i=f.get(\"height\");f.get(\"disableInteraction\")?k=!1:(k=d.data(this,\"_jqs_mhandler\"),k?f.get(\"composite\")||k.reset():(k=new u(this,f),d.data(this,\"_jqs_mhandler\",k)));if(f.get(\"composite\")&&!d.data(this,\"_jqs_vcanvas\")){d.data(this,\"_jqs_errnotify\")||(alert(\"Attempted to attach a composite sparkline to an element with no existing sparkline\"),d.data(this,\"_jqs_errnotify\",!0));return}l=new(d.fn.sparkline[f.get(\"type\")])(this,e,f,h,i),l.render(),k&&k.registerSparkline(l)};if(d(this).html()&&!f.get(\"disableHiddenCheck\")&&d(this).is(\":hidden\")||!d(this).parents(\"body\").length){if(!f.get(\"composite\")&&d.data(this,\"_jqs_pending\"))for(i=K.length;i;i--)K[i-1][0]==this&&K.splice(i-1,1);K.push([this,h]),d.data(this,\"_jqs_pending\",!0)}else h.call(this)})},d.fn.sparkline.defaults=f(),d.sparkline_display_visible=function(){var a,b,c,e=[];for(b=0,c=K.length;b<c;b++)a=K[b][0],d(a).is(\":visible\")&&!d(a).parents().is(\":hidden\")?(K[b][1].call(a),d.data(K[b][0],\"_jqs_pending\",!1),e.push(b)):!d(a).closest(\"html\").length&&!d.data(a,\"_jqs_pending\")&&(d.data(K[b][0],\"_jqs_pending\",!1),e.push(b));for(b=e.length;b;b--)K.splice(e[b-1],1)},d.fn.sparkline.options=g({init:function(a,b){var c,f,g,h;this.userOptions=b=b||{},this.tag=a,this.tagValCache={},f=d.fn.sparkline.defaults,g=f.common,this.tagOptionsPrefix=b.enableTagOptions&&(b.tagOptionsPrefix||g.tagOptionsPrefix),h=this.getTagSetting(\"type\"),h===e?c=f[b.type||g.type]:c=f[h],this.mergedOptions=d.extend({},g,c,b)},getTagSetting:function(a){var b=this.tagOptionsPrefix,d,f,g,h;if(b===!1||b===c)return e;if(this.tagValCache.hasOwnProperty(a))d=this.tagValCache.key;else{d=this.tag.getAttribute(b+a);if(d===c||d===null)d=e;else if(d.substr(0,1)===\"[\"){d=d.substr(1,d.length-2).split(\",\");for(f=d.length;f--;)d[f]=k(d[f].replace(/(^\\s*)|(\\s*$)/g,\"\"))}else if(d.substr(0,1)===\"{\"){g=d.substr(1,d.length-2).split(\",\"),d={};for(f=g.length;f--;)h=g[f].split(\":\",2),d[h[0].replace(/(^\\s*)|(\\s*$)/g,\"\")]=k(h[1].replace(/(^\\s*)|(\\s*$)/g,\"\"))}else d=k(d);this.tagValCache.key=d}return d},get:function(a,b){var d=this.getTagSetting(a),f;return d!==e?d:(f=this.mergedOptions[a])===c?b:f}}),d.fn.sparkline._base=g({disabled:!1,init:function(a,b,e,f,g){this.el=a,this.$el=d(a),this.values=b,this.options=e,this.width=f,this.height=g,this.currentRegion=c},initTarget:function(){var a=!this.options.get(\"disableInteraction\");(this.target=this.$el.simpledraw(this.width,this.height,this.options.get(\"composite\"),a))?(this.canvasWidth=this.target.pixelWidth,this.canvasHeight=this.target.pixelHeight):this.disabled=!0},render:function(){return this.disabled?(this.el.innerHTML=\"\",!1):!0},getRegion:function(a,b){},setRegionHighlight:function(a,b,d){var e=this.currentRegion,f=!this.options.get(\"disableHighlight\"),g;return b>this.canvasWidth||d>this.canvasHeight||b<0||d<0?null:(g=this.getRegion(a,b,d),e!==g?(e!==c&&f&&this.removeHighlight(),this.currentRegion=g,g!==c&&f&&this.renderHighlight(),!0):!1)},clearRegionHighlight:function(){return this.currentRegion!==c?(this.removeHighlight(),this.currentRegion=c,!0):!1},renderHighlight:function(){this.changeHighlight(!0)},removeHighlight:function(){this.changeHighlight(!1)},changeHighlight:function(a){},getCurrentRegionTooltip:function(){var a=this.options,b=\"\",e=[],f,g,i,j,k,l,m,n,o,p,q,r,s,t;if(this.currentRegion===c)return\"\";f=this.getCurrentRegionFields(),q=a.get(\"tooltipFormatter\");if(q)return q(this,a,f);a.get(\"tooltipChartTitle\")&&(b+='<div class=\"jqs jqstitle\">'+a.get(\"tooltipChartTitle\")+\"</div>\\n\"),g=this.options.get(\"tooltipFormat\");if(!g)return\"\";d.isArray(g)||(g=[g]),d.isArray(f)||(f=[f]),m=this.options.get(\"tooltipFormatFieldlist\"),n=this.options.get(\"tooltipFormatFieldlistKey\");if(m&&n){o=[];for(l=f.length;l--;)p=f[l][n],(t=d.inArray(p,m))!=-1&&(o[t]=f[l]);f=o}i=g.length,s=f.length;for(l=0;l<i;l++){r=g[l],typeof r==\"string\"&&(r=new h(r)),j=r.fclass||\"jqsfield\";for(t=0;t<s;t++)if(!f[t].isNull||!a.get(\"tooltipSkipNull\"))d.extend(f[t],{prefix:a.get(\"tooltipPrefix\"),suffix:a.get(\"tooltipSuffix\")}),k=r.render(f[t],a.get(\"tooltipValueLookups\"),a),e.push('<div class=\"'+j+'\">'+k+\"</div>\")}return e.length?b+e.join(\"\\n\"):\"\"},getCurrentRegionFields:function(){},calcHighlightColor:function(a,c){var d=c.get(\"highlightColor\"),e=c.get(\"highlightLighten\"),f,g,h,j;if(d)return d;if(e){f=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(a)||/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(a);if(f){h=[],g=a.length===4?16:1;for(j=0;j<3;j++)h[j]=i(b.round(parseInt(f[j+1],16)*g*e),0,255);return\"rgb(\"+h.join(\",\")+\")\"}}return a}}),w={changeHighlight:function(a){var b=this.currentRegion,c=this.target,e=this.regionShapes[b],f;e&&(f=this.renderRegion(b,a),d.isArray(f)||d.isArray(e)?(c.replaceWithShapes(e,f),this.regionShapes[b]=d.map(f,function(a){return a.id})):(c.replaceWithShape(e,f),this.regionShapes[b]=f.id))},render:function(){var a=this.values,b=this.target,c=this.regionShapes,e,f,g,h;if(!this.cls._super.render.call(this))return;for(g=a.length;g--;){e=this.renderRegion(g);if(e)if(d.isArray(e)){f=[];for(h=e.length;h--;)e[h].append(),f.push(e[h].id);c[g]=f}else e.append(),c[g]=e.id;else c[g]=null}b.render()}},d.fn.sparkline.line=x=g(d.fn.sparkline._base,{type:\"line\",init:function(a,b,c,d,e){x._super.init.call(this,a,b,c,d,e),this.vertices=[],this.regionMap=[],this.xvalues=[],this.yvalues=[],this.yminmax=[],this.hightlightSpotId=null,this.lastShapeId=null,this.initTarget()},getRegion:function(a,b,d){var e,f=this.regionMap;for(e=f.length;e--;)if(f[e]!==null&&b>=f[e][0]&&b<=f[e][1])return f[e][2];return c},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.yvalues[a]===null,x:this.xvalues[a],y:this.yvalues[a],color:this.options.get(\"lineColor\"),fillColor:this.options.get(\"fillColor\"),offset:a}},renderHighlight:function(){var a=this.currentRegion,b=this.target,d=this.vertices[a],e=this.options,f=e.get(\"spotRadius\"),g=e.get(\"highlightSpotColor\"),h=e.get(\"highlightLineColor\"),i,j;if(!d)return;f&&g&&(i=b.drawCircle(d[0],d[1],f,c,g),this.highlightSpotId=i.id,b.insertAfterShape(this.lastShapeId,i)),h&&(j=b.drawLine(d[0],this.canvasTop,d[0],this.canvasTop+this.canvasHeight,h),this.highlightLineId=j.id,b.insertAfterShape(this.lastShapeId,j))},removeHighlight:function(){var a=this.target;this.highlightSpotId&&(a.removeShapeId(this.highlightSpotId),this.highlightSpotId=null),this.highlightLineId&&(a.removeShapeId(this.highlightLineId),this.highlightLineId=null)},scanValues:function(){var a=this.values,c=a.length,d=this.xvalues,e=this.yvalues,f=this.yminmax,g,h,i,j,k;for(g=0;g<c;g++)h=a[g],i=typeof a[g]==\"string\",j=typeof a[g]==\"object\"&&a[g]instanceof Array,k=i&&a[g].split(\":\"),i&&k.length===2?(d.push(Number(k[0])),e.push(Number(k[1])),f.push(Number(k[1]))):j?(d.push(h[0]),e.push(h[1]),f.push(h[1])):(d.push(g),a[g]===null||a[g]===\"null\"?e.push(null):(e.push(Number(h)),f.push(Number(h))));this.options.get(\"xvalues\")&&(d=this.options.get(\"xvalues\")),this.maxy=this.maxyorg=b.max.apply(b,f),this.miny=this.minyorg=b.min.apply(b,f),this.maxx=b.max.apply(b,d),this.minx=b.min.apply(b,d),this.xvalues=d,this.yvalues=e,this.yminmax=f},processRangeOptions:function(){var a=this.options,b=a.get(\"normalRangeMin\"),d=a.get(\"normalRangeMax\");b!==c&&(b<this.miny&&(this.miny=b),d>this.maxy&&(this.maxy=d)),a.get(\"chartRangeMin\")!==c&&(a.get(\"chartRangeClip\")||a.get(\"chartRangeMin\")<this.miny)&&(this.miny=a.get(\"chartRangeMin\")),a.get(\"chartRangeMax\")!==c&&(a.get(\"chartRangeClip\")||a.get(\"chartRangeMax\")>this.maxy)&&(this.maxy=a.get(\"chartRangeMax\")),a.get(\"chartRangeMinX\")!==c&&(a.get(\"chartRangeClipX\")||a.get(\"chartRangeMinX\")<this.minx)&&(this.minx=a.get(\"chartRangeMinX\")),a.get(\"chartRangeMaxX\")!==c&&(a.get(\"chartRangeClipX\")||a.get(\"chartRangeMaxX\")>this.maxx)&&(this.maxx=a.get(\"chartRangeMaxX\"))},drawNormalRange:function(a,d,e,f,g){var h=this.options.get(\"normalRangeMin\"),i=this.options.get(\"normalRangeMax\"),j=d+b.round(e-e*((i-this.miny)/g)),k=b.round(e*(i-h)/g);this.target.drawRect(a,j,f,k,c,this.options.get(\"normalRangeColor\")).append()},render:function(){var a=this.options,e=this.target,f=this.canvasWidth,g=this.canvasHeight,h=this.vertices,i=a.get(\"spotRadius\"),j=this.regionMap,k,l,m,n,o,p,q,r,s,u,v,w,y,z,A,B,C,D,E,F,G,H,I,J,K;if(!x._super.render.call(this))return;this.scanValues(),this.processRangeOptions(),I=this.xvalues,J=this.yvalues;if(!this.yminmax.length||this.yvalues.length<2)return;n=o=0,k=this.maxx-this.minx===0?1:this.maxx-this.minx,l=this.maxy-this.miny===0?1:this.maxy-this.miny,m=this.yvalues.length-1,i&&(f<i*4||g<i*4)&&(i=0);if(i){G=a.get(\"highlightSpotColor\")&&!a.get(\"disableInteraction\");if(G||a.get(\"minSpotColor\")||a.get(\"spotColor\")&&J[m]===this.miny)g-=b.ceil(i);if(G||a.get(\"maxSpotColor\")||a.get(\"spotColor\")&&J[m]===this.maxy)g-=b.ceil(i),n+=b.ceil(i);if(G||(a.get(\"minSpotColor\")||a.get(\"maxSpotColor\"))&&(J[0]===this.miny||J[0]===this.maxy))o+=b.ceil(i),f-=b.ceil(i);if(G||a.get(\"spotColor\")||a.get(\"minSpotColor\")||a.get(\"maxSpotColor\")&&(J[m]===this.miny||J[m]===this.maxy))f-=b.ceil(i)}g--,a.get(\"normalRangeMin\")!==c&&!a.get(\"drawNormalOnTop\")&&this.drawNormalRange(o,n,g,f,l),q=[],r=[q],z=A=null,B=J.length;for(K=0;K<B;K++)s=I[K],v=I[K+1],u=J[K],w=o+b.round((s-this.minx)*(f/k)),y=K<B-1?o+b.round((v-this.minx)*(f/k)):f,A=w+(y-w)/2,j[K]=[z||0,A,K],z=A,u===null?K&&(J[K-1]!==null&&(q=[],r.push(q)),h.push(null)):(u<this.miny&&(u=this.miny),u>this.maxy&&(u=this.maxy),q.length||q.push([w,n+g]),p=[w,n+b.round(g-g*((u-this.miny)/l))],q.push(p),h.push(p));C=[],D=[],E=r.length;for(K=0;K<E;K++)q=r[K],q.length&&(a.get(\"fillColor\")&&(q.push([q[q.length-1][0],n+g]),D.push(q.slice(0)),q.pop()),q.length>2&&(q[0]=[q[0][0],q[1][1]]),C.push(q));E=D.length;for(K=0;K<E;K++)e.drawShape(D[K],a.get(\"fillColor\"),a.get(\"fillColor\")).append();a.get(\"normalRangeMin\")!==c&&a.get(\"drawNormalOnTop\")&&this.drawNormalRange(o,n,g,f,l),E=C.length;for(K=0;K<E;K++)e.drawShape(C[K],a.get(\"lineColor\"),c,a.get(\"lineWidth\")).append();if(i&&a.get(\"valueSpots\")){F=a.get(\"valueSpots\"),F.get===c&&(F=new t(F));for(K=0;K<B;K++)H=F.get(J[K]),H&&e.drawCircle(o+b.round((I[K]-this.minx)*(f/k)),n+b.round(g-g*((J[K]-this.miny)/l)),i,c,H).append()}i&&a.get(\"spotColor\")&&J[m]!==null&&e.drawCircle(o+b.round((I[I.length-1]-this.minx)*(f/k)),n+b.round(g-g*((J[m]-this.miny)/l)),i,c,a.get(\"spotColor\")).append(),this.maxy!==this.minyorg&&(i&&a.get(\"minSpotColor\")&&(s=I[d.inArray(this.minyorg,J)],e.drawCircle(o+b.round((s-this.minx)*(f/k)),n+b.round(g-g*((this.minyorg-this.miny)/l)),i,c,a.get(\"minSpotColor\")).append()),i&&a.get(\"maxSpotColor\")&&(s=I[d.inArray(this.maxyorg,J)],e.drawCircle(o+b.round((s-this.minx)*(f/k)),n+b.round(g-g*((this.maxyorg-this.miny)/l)),i,c,a.get(\"maxSpotColor\")).append())),this.lastShapeId=e.getLastShapeId(),this.canvasTop=n,e.render()}}),d.fn.sparkline.bar=y=g(d.fn.sparkline._base,w,{type:\"bar\",init:function(a,e,f,g,h){var j=parseInt(f.get(\"barWidth\"),10),n=parseInt(f.get(\"barSpacing\"),10),o=f.get(\"chartRangeMin\"),p=f.get(\"chartRangeMax\"),q=f.get(\"chartRangeClip\"),r=Infinity,s=-Infinity,u,v,w,x,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R;y._super.init.call(this,a,e,f,g,h);for(A=0,B=e.length;A<B;A++){O=e[A],u=typeof O==\"string\"&&O.indexOf(\":\")>-1;if(u||d.isArray(O))J=!0,u&&(O=e[A]=l(O.split(\":\"))),O=m(O,null),v=b.min.apply(b,O),w=b.max.apply(b,O),v<r&&(r=v),w>s&&(s=w)}this.stacked=J,this.regionShapes={},this.barWidth=j,this.barSpacing=n,this.totalBarWidth=j+n,this.width=g=e.length*j+(e.length-1)*n,this.initTarget(),q&&(H=o===c?-Infinity:o,I=p===c?Infinity:p),z=[],x=J?[]:z;var S=[],T=[];for(A=0,B=e.length;A<B;A++)if(J){K=e[A],e[A]=N=[],S[A]=0,x[A]=T[A]=0;for(L=0,M=K.length;L<M;L++)O=N[L]=q?i(K[L],H,I):K[L],O!==null&&(O>0&&(S[A]+=O),r<0&&s>0?O<0?T[A]+=b.abs(O):x[A]+=O:x[A]+=b.abs(O-(O<0?s:r)),z.push(O))}else O=q?i(e[A],H,I):e[A],O=e[A]=k(O),O!==null&&z.push(O);this.max=G=b.max.apply(b,z),this.min=F=b.min.apply(b,z),this.stackMax=s=J?b.max.apply(b,S):G,this.stackMin=r=J?b.min.apply(b,z):F,f.get(\"chartRangeMin\")!==c&&(f.get(\"chartRangeClip\")||f.get(\"chartRangeMin\")<F)&&(F=f.get(\"chartRangeMin\")),f.get(\"chartRangeMax\")!==c&&(f.get(\"chartRangeClip\")||f.get(\"chartRangeMax\")>G)&&(G=f.get(\"chartRangeMax\")),this.zeroAxis=D=f.get(\"zeroAxis\",!0),F<=0&&G>=0&&D?E=0:D==0?E=F:F>0?E=F:E=G,this.xaxisOffset=E,C=J?b.max.apply(b,x)+b.max.apply(b,T):G-F,this.canvasHeightEf=D&&F<0?this.canvasHeight-2:this.canvasHeight-1,F<E?(Q=J&&G>=0?s:G,P=(Q-E)/C*this.canvasHeight,P!==b.ceil(P)&&(this.canvasHeightEf-=2,P=b.ceil(P))):P=this.canvasHeight,this.yoffset=P,d.isArray(f.get(\"colorMap\"))?(this.colorMapByIndex=f.get(\"colorMap\"),this.colorMapByValue=null):(this.colorMapByIndex=null,this.colorMapByValue=f.get(\"colorMap\"),this.colorMapByValue&&this.colorMapByValue.get===c&&(this.colorMapByValue=new t(this.colorMapByValue))),this.range=C},getRegion:function(a,d,e){var f=b.floor(d/this.totalBarWidth);return f<0||f>=this.values.length?c:f},getCurrentRegionFields:function(){var a=this.currentRegion,b=r(this.values[a]),c=[],d,e;for(e=b.length;e--;)d=b[e],c.push({isNull:d===null,value:d,color:this.calcColor(e,d,a),offset:a});return c},calcColor:function(a,b,e){var f=this.colorMapByIndex,g=this.colorMapByValue,h=this.options,i,j;return this.stacked?i=h.get(\"stackedBarColor\"):i=b<0?h.get(\"negBarColor\"):h.get(\"barColor\"),b===0&&h.get(\"zeroColor\")!==c&&(i=h.get(\"zeroColor\")),g&&(j=g.get(b))?i=j:f&&f.length>e&&(i=f[e]),d.isArray(i)?i[a%i.length]:i},renderRegion:function(a,e){var f=this.values[a],g=this.options,h=this.xaxisOffset,i=[],j=this.range,k=this.stacked,l=this.target,m=a*this.totalBarWidth,n=this.canvasHeightEf,p=this.yoffset,q,r,s,t,u,v,w,x,y,z;f=d.isArray(f)?f:[f],w=f.length,x=f[0],t=o(null,f),z=o(h,f,!0);if(t)return g.get(\"nullColor\")?(s=e?g.get(\"nullColor\"):this.calcHighlightColor(g.get(\"nullColor\"),g),q=p>0?p-1:p,l.drawRect(m,q,this.barWidth-1,0,s,s)):c;u=p;for(v=0;v<w;v++){x=f[v];if(k&&x===h){if(!z||y)continue;y=!0}j>0?r=b.floor(n*(b.abs(x-h)/j))+1:r=1,x<h||x===h&&p===0?(q=u,u+=r):(q=p-r,p-=r),s=this.calcColor(v,x,a),e&&(s=this.calcHighlightColor(s,g)),i.push(l.drawRect(m,q,this.barWidth-1,r-1,s,s))}return i.length===1?i[0]:i}}),d.fn.sparkline.tristate=z=g(d.fn.sparkline._base,w,{type:\"tristate\",init:function(a,b,e,f,g){var h=parseInt(e.get(\"barWidth\"),10),i=parseInt(e.get(\"barSpacing\"),10);z._super.init.call(this,a,b,e,f,g),this.regionShapes={},this.barWidth=h,this.barSpacing=i,this.totalBarWidth=h+i,this.values=d.map(b,Number),this.width=f=b.length*h+(b.length-1)*i,d.isArray(e.get(\"colorMap\"))?(this.colorMapByIndex=e.get(\"colorMap\"),this.colorMapByValue=null):(this.colorMapByIndex=null,this.colorMapByValue=e.get(\"colorMap\"),this.colorMapByValue&&this.colorMapByValue.get===c&&(this.colorMapByValue=new t(this.colorMapByValue))),this.initTarget()},getRegion:function(a,c,d){return b.floor(c/this.totalBarWidth)},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],color:this.calcColor(this.values[a],a),offset:a}},calcColor:function(a,b){var c=this.values,d=this.options,e=this.colorMapByIndex,f=this.colorMapByValue,g,h;return f&&(h=f.get(a))?g=h:e&&e.length>b?g=e[b]:c[b]<0?g=d.get(\"negBarColor\"):c[b]>0?g=d.get(\"posBarColor\"):g=d.get(\"zeroBarColor\"),g},renderRegion:function(a,c){var d=this.values,e=this.options,f=this.target,g,h,i,j,k,l;g=f.pixelHeight,i=b.round(g/2),j=a*this.totalBarWidth,d[a]<0?(k=i,h=i-1):d[a]>0?(k=0,h=i-1):(k=i-1,h=2),l=this.calcColor(d[a],a);if(l===null)return;return c&&(l=this.calcHighlightColor(l,e)),f.drawRect(j,k,this.barWidth-1,h-1,l,l)}}),d.fn.sparkline.discrete=A=g(d.fn.sparkline._base,w,{type:\"discrete\",init:function(a,e,f,g,h){A._super.init.call(this,a,e,f,g,h),this.regionShapes={},this.values=e=d.map(e,Number),this.min=b.min.apply(b,e),this.max=b.max.apply(b,e),this.range=this.max-this.min,this.width=g=f.get(\"width\")===\"auto\"?e.length*2:this.width,this.interval=b.floor(g/e.length),this.itemWidth=g/e.length,f.get(\"chartRangeMin\")!==c&&(f.get(\"chartRangeClip\")||f.get(\"chartRangeMin\")<this.min)&&(this.min=f.get(\"chartRangeMin\")),f.get(\"chartRangeMax\")!==c&&(f.get(\"chartRangeClip\")||f.get(\"chartRangeMax\")>this.max)&&(this.max=f.get(\"chartRangeMax\")),this.initTarget(),this.target&&(this.lineHeight=f.get(\"lineHeight\")===\"auto\"?b.round(this.canvasHeight*.3):f.get(\"lineHeight\"))},getRegion:function(a,c,d){return b.floor(c/this.itemWidth)},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],offset:a}},renderRegion:function(a,c){var d=this.values,e=this.options,f=this.min,g=this.max,h=this.range,j=this.interval,k=this.target,l=this.canvasHeight,m=this.lineHeight,n=l-m,o,p,q,r;return p=i(d[a],f,g),r=a*j,o=b.round(n-n*((p-f)/h)),q=e.get(\"thresholdColor\")&&p<e.get(\"thresholdValue\")?e.get(\"thresholdColor\"):e.get(\"lineColor\"),c&&(q=this.calcHighlightColor(q,e)),k.drawLine(r,o,r,o+m,q)}}),d.fn.sparkline.bullet=B=g(d.fn.sparkline._base,{type:\"bullet\",init:function(a,d,e,f,g){var h,i,j;B._super.init.call(this,a,d,e,f,g),this.values=d=l(d),j=d.slice(),j[0]=j[0]===null?j[2]:j[0],j[1]=d[1]===null?j[2]:j[1],h=b.min.apply(b,d),i=b.max.apply(b,d),e.get(\"base\")===c?h=h<0?h:0:h=e.get(\"base\"),this.min=h,this.max=i,this.range=i-h,this.shapes={},this.valueShapes={},this.regiondata={},this.width=f=e.get(\"width\")===\"auto\"?\"4.0em\":f,this.target=this.$el.simpledraw(f,g,e.get(\"composite\")),d.length||(this.disabled=!0),this.initTarget()},getRegion:function(a,b,d){var e=this.target.getShapeAt(a,b,d);return e!==c&&this.shapes[e]!==c?this.shapes[e]:c},getCurrentRegionFields:function(){var a=this.currentRegion;return{fieldkey:a.substr(0,1),value:this.values[a.substr(1)],region:a}},changeHighlight:function(a){var b=this.currentRegion,c=this.valueShapes[b],d;delete this.shapes[c];switch(b.substr(0,1)){case\"r\":d=this.renderRange(b.substr(1),a);break;case\"p\":d=this.renderPerformance(a);break;case\"t\":d=this.renderTarget(a)}this.valueShapes[b]=d.id,this.shapes[d.id]=b,this.target.replaceWithShape(c,d)},renderRange:function(a,c){var d=this.values[a],e=b.round(this.canvasWidth*((d-this.min)/this.range)),f=this.options.get(\"rangeColors\")[a-2];return c&&(f=this.calcHighlightColor(f,this.options)),this.target.drawRect(0,0,e-1,this.canvasHeight-1,f,f)},renderPerformance:function(a){var c=this.values[1],d=b.round(this.canvasWidth*((c-this.min)/this.range)),e=this.options.get(\"performanceColor\");return a&&(e=this.calcHighlightColor(e,this.options)),this.target.drawRect(0,b.round(this.canvasHeight*.3),d-1,b.round(this.canvasHeight*.4)-1,e,e)},renderTarget:function(a){var c=this.values[0],d=b.round(this.canvasWidth*((c-this.min)/this.range)-this.options.get(\"targetWidth\")/2),e=b.round(this.canvasHeight*.1),f=this.canvasHeight-e*2,g=this.options.get(\"targetColor\");return a&&(g=this.calcHighlightColor(g,this.options)),this.target.drawRect(d,e,this.options.get(\"targetWidth\")-1,f-1,g,g)},render:function(){var a=this.values.length,b=this.target,c,d;if(!B._super.render.call(this))return;for(c=2;c<a;c++)d=this.renderRange(c).append(),this.shapes[d.id]=\"r\"+c,this.valueShapes[\"r\"+c]=d.id;this.values[1]!==null&&(d=this.renderPerformance().append(),this.shapes[d.id]=\"p1\",this.valueShapes.p1=d.id),this.values[0]!==null&&(d=this.renderTarget().append(),this.shapes[d.id]=\"t0\",this.valueShapes.t0=d.id),b.render()}}),d.fn.sparkline.pie=C=g(d.fn.sparkline._base,{type:\"pie\",init:function(a,c,e,f,g){var h=0,i;C._super.init.call(this,a,c,e,f,g),this.shapes={},this.valueShapes={},this.values=c=d.map(c,Number),e.get(\"width\")===\"auto\"&&(this.width=this.height);if(c.length>0)for(i=c.length;i--;)h+=c[i];this.total=h,this.initTarget(),this.radius=b.floor(b.min(this.canvasWidth,this.canvasHeight)/2)},getRegion:function(a,b,d){var e=this.target.getShapeAt(a,b,d);return e!==c&&this.shapes[e]!==c?this.shapes[e]:c},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],percent:this.values[a]/this.total*100,color:this.options.get(\"sliceColors\")[a%this.options.get(\"sliceColors\").length],offset:a}},changeHighlight:function(a){var b=this.currentRegion,c=this.renderSlice(b,a),d=this.valueShapes[b];delete this.shapes[d],this.target.replaceWithShape(d,c),this.valueShapes[b]=c.id,this.shapes[c.id]=b},renderSlice:function(a,d){var e=this.target,f=this.options,g=this.radius,h=f.get(\"borderWidth\"),i=f.get(\"offset\"),j=2*b.PI,k=this.values,l=this.total,m=i?2*b.PI*(i/360):0,n,o,p,q,r;q=k.length;for(p=0;p<q;p++){n=m,o=m,l>0&&(o=m+j*(k[p]/l));if(a===p)return r=f.get(\"sliceColors\")[p%f.get(\"sliceColors\").length],d&&(r=this.calcHighlightColor(r,f)),e.drawPieSlice(g,g,g-h,n,o,c,r);m=o}},render:function(){var a=this.target,d=this.values,e=this.options,f=this.radius,g=e.get(\"borderWidth\"),h,i;if(!C._super.render.call(this))return;g&&a.drawCircle(f,f,b.floor(f-g/2),e.get(\"borderColor\"),c,g).append();for(i=d.length;i--;)d[i]&&(h=this.renderSlice(i).append(),this.valueShapes[i]=h.id,this.shapes[h.id]=i);a.render()}}),d.fn.sparkline.box=D=g(d.fn.sparkline._base,{type:\"box\",init:function(a,b,c,e,f){D._super.init.call(this,a,b,c,e,f),this.values=d.map(b,Number),this.width=c.get(\"width\")===\"auto\"?\"4.0em\":e,this.initTarget(),this.values.length||(this.disabled=1)},getRegion:function(){return 1},getCurrentRegionFields:function(){var a=[{field:\"lq\",value:this.quartiles[0]},{field:\"med\",value:this.quartiles\r\n[1]},{field:\"uq\",value:this.quartiles[2]}];return this.loutlier!==c&&a.push({field:\"lo\",value:this.loutlier}),this.routlier!==c&&a.push({field:\"ro\",value:this.routlier}),this.lwhisker!==c&&a.push({field:\"lw\",value:this.lwhisker}),this.rwhisker!==c&&a.push({field:\"rw\",value:this.rwhisker}),a},render:function(){var a=this.target,d=this.values,e=d.length,f=this.options,g=this.canvasWidth,h=this.canvasHeight,i=f.get(\"chartRangeMin\")===c?b.min.apply(b,d):f.get(\"chartRangeMin\"),k=f.get(\"chartRangeMax\")===c?b.max.apply(b,d):f.get(\"chartRangeMax\"),l=0,m,n,o,p,q,r,s,t,u,v,w;if(!D._super.render.call(this))return;if(f.get(\"raw\"))f.get(\"showOutliers\")&&d.length>5?(n=d[0],m=d[1],p=d[2],q=d[3],r=d[4],s=d[5],t=d[6]):(m=d[0],p=d[1],q=d[2],r=d[3],s=d[4]);else{d.sort(function(a,b){return a-b}),p=j(d,1),q=j(d,2),r=j(d,3),o=r-p;if(f.get(\"showOutliers\")){m=s=c;for(u=0;u<e;u++)m===c&&d[u]>p-o*f.get(\"outlierIQR\")&&(m=d[u]),d[u]<r+o*f.get(\"outlierIQR\")&&(s=d[u]);n=d[0],t=d[e-1]}else m=d[0],s=d[e-1]}this.quartiles=[p,q,r],this.lwhisker=m,this.rwhisker=s,this.loutlier=n,this.routlier=t,w=g/(k-i+1),f.get(\"showOutliers\")&&(l=b.ceil(f.get(\"spotRadius\")),g-=2*b.ceil(f.get(\"spotRadius\")),w=g/(k-i+1),n<m&&a.drawCircle((n-i)*w+l,h/2,f.get(\"spotRadius\"),f.get(\"outlierLineColor\"),f.get(\"outlierFillColor\")).append(),t>s&&a.drawCircle((t-i)*w+l,h/2,f.get(\"spotRadius\"),f.get(\"outlierLineColor\"),f.get(\"outlierFillColor\")).append()),a.drawRect(b.round((p-i)*w+l),b.round(h*.1),b.round((r-p)*w),b.round(h*.8),f.get(\"boxLineColor\"),f.get(\"boxFillColor\")).append(),a.drawLine(b.round((m-i)*w+l),b.round(h/2),b.round((p-i)*w+l),b.round(h/2),f.get(\"lineColor\")).append(),a.drawLine(b.round((m-i)*w+l),b.round(h/4),b.round((m-i)*w+l),b.round(h-h/4),f.get(\"whiskerColor\")).append(),a.drawLine(b.round((s-i)*w+l),b.round(h/2),b.round((r-i)*w+l),b.round(h/2),f.get(\"lineColor\")).append(),a.drawLine(b.round((s-i)*w+l),b.round(h/4),b.round((s-i)*w+l),b.round(h-h/4),f.get(\"whiskerColor\")).append(),a.drawLine(b.round((q-i)*w+l),b.round(h*.1),b.round((q-i)*w+l),b.round(h*.9),f.get(\"medianColor\")).append(),f.get(\"target\")&&(v=b.ceil(f.get(\"spotRadius\")),a.drawLine(b.round((f.get(\"target\")-i)*w+l),b.round(h/2-v),b.round((f.get(\"target\")-i)*w+l),b.round(h/2+v),f.get(\"targetColor\")).append(),a.drawLine(b.round((f.get(\"target\")-i)*w+l-v),b.round(h/2),b.round((f.get(\"target\")-i)*w+l+v),b.round(h/2),f.get(\"targetColor\")).append()),a.render()}}),G=g({init:function(a,b,c,d){this.target=a,this.id=b,this.type=c,this.args=d},append:function(){return this.target.appendShape(this),this}}),H=g({_pxregex:/(\\d+)(px)?\\s*$/i,init:function(a,b,c){if(!a)return;this.width=a,this.height=b,this.target=c,this.lastShapeId=null,c[0]&&(c=c[0]),d.data(c,\"_jqs_vcanvas\",this)},drawLine:function(a,b,c,d,e,f){return this.drawShape([[a,b],[c,d]],e,f)},drawShape:function(a,b,c,d){return this._genShape(\"Shape\",[a,b,c,d])},drawCircle:function(a,b,c,d,e,f){return this._genShape(\"Circle\",[a,b,c,d,e,f])},drawPieSlice:function(a,b,c,d,e,f,g){return this._genShape(\"PieSlice\",[a,b,c,d,e,f,g])},drawRect:function(a,b,c,d,e,f){return this._genShape(\"Rect\",[a,b,c,d,e,f])},getElement:function(){return this.canvas},getLastShapeId:function(){return this.lastShapeId},reset:function(){alert(\"reset not implemented\")},_insert:function(a,b){d(b).html(a)},_calculatePixelDims:function(a,b,c){var e;e=this._pxregex.exec(b),e?this.pixelHeight=e[1]:this.pixelHeight=d(c).height(),e=this._pxregex.exec(a),e?this.pixelWidth=e[1]:this.pixelWidth=d(c).width()},_genShape:function(a,b){var c=L++;return b.unshift(c),new G(this,c,a,b)},appendShape:function(a){alert(\"appendShape not implemented\")},replaceWithShape:function(a,b){alert(\"replaceWithShape not implemented\")},insertAfterShape:function(a,b){alert(\"insertAfterShape not implemented\")},removeShapeId:function(a){alert(\"removeShapeId not implemented\")},getShapeAt:function(a,b,c){alert(\"getShapeAt not implemented\")},render:function(){alert(\"render not implemented\")}}),I=g(H,{init:function(b,e,f,g){I._super.init.call(this,b,e,f),this.canvas=a.createElement(\"canvas\"),f[0]&&(f=f[0]),d.data(f,\"_jqs_vcanvas\",this),d(this.canvas).css({display:\"inline-block\",width:b,height:e,verticalAlign:\"top\"}),this._insert(this.canvas,f),this._calculatePixelDims(b,e,this.canvas),this.canvas.width=this.pixelWidth,this.canvas.height=this.pixelHeight,this.interact=g,this.shapes={},this.shapeseq=[],this.currentTargetShapeId=c,d(this.canvas).css({width:this.pixelWidth,height:this.pixelHeight})},_getContext:function(a,b,d){var e=this.canvas.getContext(\"2d\");return a!==c&&(e.strokeStyle=a),e.lineWidth=d===c?1:d,b!==c&&(e.fillStyle=b),e},reset:function(){var a=this._getContext();a.clearRect(0,0,this.pixelWidth,this.pixelHeight),this.shapes={},this.shapeseq=[],this.currentTargetShapeId=c},_drawShape:function(a,b,d,e,f){var g=this._getContext(d,e,f),h,i;g.beginPath(),g.moveTo(b[0][0]+.5,b[0][1]+.5);for(h=1,i=b.length;h<i;h++)g.lineTo(b[h][0]+.5,b[h][1]+.5);d!==c&&g.stroke(),e!==c&&g.fill(),this.targetX!==c&&this.targetY!==c&&g.isPointInPath(this.targetX,this.targetY)&&(this.currentTargetShapeId=a)},_drawCircle:function(a,d,e,f,g,h,i){var j=this._getContext(g,h,i);j.beginPath(),j.arc(d,e,f,0,2*b.PI,!1),this.targetX!==c&&this.targetY!==c&&j.isPointInPath(this.targetX,this.targetY)&&(this.currentTargetShapeId=a),g!==c&&j.stroke(),h!==c&&j.fill()},_drawPieSlice:function(a,b,d,e,f,g,h,i){var j=this._getContext(h,i);j.beginPath(),j.moveTo(b,d),j.arc(b,d,e,f,g,!1),j.lineTo(b,d),j.closePath(),h!==c&&j.stroke(),i&&j.fill(),this.targetX!==c&&this.targetY!==c&&j.isPointInPath(this.targetX,this.targetY)&&(this.currentTargetShapeId=a)},_drawRect:function(a,b,c,d,e,f,g){return this._drawShape(a,[[b,c],[b+d,c],[b+d,c+e],[b,c+e],[b,c]],f,g)},appendShape:function(a){return this.shapes[a.id]=a,this.shapeseq.push(a.id),this.lastShapeId=a.id,a.id},replaceWithShape:function(a,b){var c=this.shapeseq,d;this.shapes[b.id]=b;for(d=c.length;d--;)c[d]==a&&(c[d]=b.id);delete this.shapes[a]},replaceWithShapes:function(a,b){var c=this.shapeseq,d={},e,f,g;for(f=a.length;f--;)d[a[f]]=!0;for(f=c.length;f--;)e=c[f],d[e]&&(c.splice(f,1),delete this.shapes[e],g=f);for(f=b.length;f--;)c.splice(g,0,b[f].id),this.shapes[b[f].id]=b[f]},insertAfterShape:function(a,b){var c=this.shapeseq,d;for(d=c.length;d--;)if(c[d]===a){c.splice(d+1,0,b.id),this.shapes[b.id]=b;return}},removeShapeId:function(a){var b=this.shapeseq,c;for(c=b.length;c--;)if(b[c]===a){b.splice(c,1);break}delete this.shapes[a]},getShapeAt:function(a,b,c){return this.targetX=b,this.targetY=c,this.render(),this.currentTargetShapeId},render:function(){var a=this.shapeseq,b=this.shapes,c=a.length,d=this._getContext(),e,f,g;d.clearRect(0,0,this.pixelWidth,this.pixelHeight);for(g=0;g<c;g++)e=a[g],f=b[e],this[\"_draw\"+f.type].apply(this,f.args);this.interact||(this.shapes={},this.shapeseq=[])}}),J=g(H,{init:function(b,c,e){var f;J._super.init.call(this,b,c,e),e[0]&&(e=e[0]),d.data(e,\"_jqs_vcanvas\",this),this.canvas=a.createElement(\"span\"),d(this.canvas).css({display:\"inline-block\",position:\"relative\",overflow:\"hidden\",width:b,height:c,margin:\"0px\",padding:\"0px\",verticalAlign:\"top\"}),this._insert(this.canvas,e),this._calculatePixelDims(b,c,this.canvas),this.canvas.width=this.pixelWidth,this.canvas.height=this.pixelHeight,f='<v:group coordorigin=\"0 0\" coordsize=\"'+this.pixelWidth+\" \"+this.pixelHeight+'\"'+' style=\"position:absolute;top:0;left:0;width:'+this.pixelWidth+\"px;height=\"+this.pixelHeight+'px;\"></v:group>',this.canvas.insertAdjacentHTML(\"beforeEnd\",f),this.group=d(this.canvas).children()[0],this.rendered=!1,this.prerender=\"\"},_drawShape:function(a,b,d,e,f){var g=[],h,i,j,k,l,m,n;for(n=0,m=b.length;n<m;n++)g[n]=\"\"+b[n][0]+\",\"+b[n][1];return h=g.splice(0,1),f=f===c?1:f,i=d===c?' stroked=\"false\" ':' strokeWeight=\"'+f+'px\" strokeColor=\"'+d+'\" ',j=e===c?' filled=\"false\"':' fillColor=\"'+e+'\" filled=\"true\" ',k=g[0]===g[g.length-1]?\"x \":\"\",l='<v:shape coordorigin=\"0 0\" coordsize=\"'+this.pixelWidth+\" \"+this.pixelHeight+'\" '+' id=\"jqsshape'+a+'\" '+i+j+' style=\"position:absolute;left:0px;top:0px;height:'+this.pixelHeight+\"px;width:\"+this.pixelWidth+'px;padding:0px;margin:0px;\" '+' path=\"m '+h+\" l \"+g.join(\", \")+\" \"+k+'e\">'+\" </v:shape>\",l},_drawCircle:function(a,b,d,e,f,g,h){var i,j,k;return b-=e,d-=e,i=f===c?' stroked=\"false\" ':' strokeWeight=\"'+h+'px\" strokeColor=\"'+f+'\" ',j=g===c?' filled=\"false\"':' fillColor=\"'+g+'\" filled=\"true\" ',k='<v:oval id=\"jqsshape'+a+'\" '+i+j+' style=\"position:absolute;top:'+d+\"px; left:\"+b+\"px; width:\"+e*2+\"px; height:\"+e*2+'px\"></v:oval>',k},_drawPieSlice:function(a,d,e,f,g,h,i,j){var k,l,m,n,o,p,q,r;if(g===h)return\"\";h-g===2*b.PI&&(g=0,h=2*b.PI),l=d+b.round(b.cos(g)*f),m=e+b.round(b.sin(g)*f),n=d+b.round(b.cos(h)*f),o=e+b.round(b.sin(h)*f);if(l===n&&m===o){if(h-g<b.PI)return\"\";l=n=d+f,m=o=e}return l===n&&m===o&&h-g<b.PI?\"\":(k=[d-f,e-f,d+f,e+f,l,m,n,o],p=i===c?' stroked=\"false\" ':' strokeWeight=\"1px\" strokeColor=\"'+i+'\" ',q=j===c?' filled=\"false\"':' fillColor=\"'+j+'\" filled=\"true\" ',r='<v:shape coordorigin=\"0 0\" coordsize=\"'+this.pixelWidth+\" \"+this.pixelHeight+'\" '+' id=\"jqsshape'+a+'\" '+p+q+' style=\"position:absolute;left:0px;top:0px;height:'+this.pixelHeight+\"px;width:\"+this.pixelWidth+'px;padding:0px;margin:0px;\" '+' path=\"m '+d+\",\"+e+\" wa \"+k.join(\", \")+' x e\">'+\" </v:shape>\",r)},_drawRect:function(a,b,c,d,e,f,g){return this._drawShape(a,[[b,c],[b,c+e],[b+d,c+e],[b+d,c],[b,c]],f,g)},reset:function(){this.group.innerHTML=\"\"},appendShape:function(a){var b=this[\"_draw\"+a.type].apply(this,a.args);return this.rendered?this.group.insertAdjacentHTML(\"beforeEnd\",b):this.prerender+=b,this.lastShapeId=a.id,a.id},replaceWithShape:function(a,b){var c=d(\"#jqsshape\"+a),e=this[\"_draw\"+b.type].apply(this,b.args);c[0].outerHTML=e},replaceWithShapes:function(a,b){var c=d(\"#jqsshape\"+a[0]),e=\"\",f=b.length,g;for(g=0;g<f;g++)e+=this[\"_draw\"+b[g].type].apply(this,b[g].args);c[0].outerHTML=e;for(g=1;g<a.length;g++)d(\"#jqsshape\"+a[g]).remove()},insertAfterShape:function(a,b){var c=d(\"#jqsshape\"+a),e=this[\"_draw\"+b.type].apply(this,b.args);c[0].insertAdjacentHTML(\"afterEnd\",e)},removeShapeId:function(a){var b=d(\"#jqsshape\"+a);this.group.removeChild(b[0])},getShapeAt:function(a,b,c){var d=a.id.substr(8);return d},render:function(){this.rendered||(this.group.innerHTML=this.prerender,this.rendered=!0)}})})})(document,Math);","/*!\r\n * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)\r\n *\r\n * Copyright 2013-2016 bootstrap-select\r\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\r\n */\r\n\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module unless amdModuleId is set\r\n define([\"jquery\"], function (a0) {\r\n return (factory(a0));\r\n });\r\n } else if (typeof exports === 'object') {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory(require(\"jquery\"));\r\n } else {\r\n factory(jQuery);\r\n }\r\n}(this, function (jQuery) {\r\n\r\n(function ($) {\r\n 'use strict';\r\n\r\n //<editor-fold desc=\"Shims\">\r\n if (!String.prototype.includes) {\r\n (function () {\r\n 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\r\n var toString = {}.toString;\r\n var defineProperty = (function () {\r\n // IE 8 only supports `Object.defineProperty` on DOM elements\r\n try {\r\n var object = {};\r\n var $defineProperty = Object.defineProperty;\r\n var result = $defineProperty(object, object, object) && $defineProperty;\r\n } catch (error) {\r\n }\r\n return result;\r\n }());\r\n var indexOf = ''.indexOf;\r\n var includes = function (search) {\r\n if (this == null) {\r\n throw new TypeError();\r\n }\r\n var string = String(this);\r\n if (search && toString.call(search) == '[object RegExp]') {\r\n throw new TypeError();\r\n }\r\n var stringLength = string.length;\r\n var searchString = String(search);\r\n var searchLength = searchString.length;\r\n var position = arguments.length > 1 ? arguments[1] : undefined;\r\n // `ToInteger`\r\n var pos = position ? Number(position) : 0;\r\n if (pos != pos) { // better `isNaN`\r\n pos = 0;\r\n }\r\n var start = Math.min(Math.max(pos, 0), stringLength);\r\n // Avoid the `indexOf` call if no match is possible\r\n if (searchLength + start > stringLength) {\r\n return false;\r\n }\r\n return indexOf.call(string, searchString, pos) != -1;\r\n };\r\n if (defineProperty) {\r\n defineProperty(String.prototype, 'includes', {\r\n 'value': includes,\r\n 'configurable': true,\r\n 'writable': true\r\n });\r\n } else {\r\n String.prototype.includes = includes;\r\n }\r\n }());\r\n }\r\n\r\n if (!String.prototype.startsWith) {\r\n (function () {\r\n 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\r\n var defineProperty = (function () {\r\n // IE 8 only supports `Object.defineProperty` on DOM elements\r\n try {\r\n var object = {};\r\n var $defineProperty = Object.defineProperty;\r\n var result = $defineProperty(object, object, object) && $defineProperty;\r\n } catch (error) {\r\n }\r\n return result;\r\n }());\r\n var toString = {}.toString;\r\n var startsWith = function (search) {\r\n if (this == null) {\r\n throw new TypeError();\r\n }\r\n var string = String(this);\r\n if (search && toString.call(search) == '[object RegExp]') {\r\n throw new TypeError();\r\n }\r\n var stringLength = string.length;\r\n var searchString = String(search);\r\n var searchLength = searchString.length;\r\n var position = arguments.length > 1 ? arguments[1] : undefined;\r\n // `ToInteger`\r\n var pos = position ? Number(position) : 0;\r\n if (pos != pos) { // better `isNaN`\r\n pos = 0;\r\n }\r\n var start = Math.min(Math.max(pos, 0), stringLength);\r\n // Avoid the `indexOf` call if no match is possible\r\n if (searchLength + start > stringLength) {\r\n return false;\r\n }\r\n var index = -1;\r\n while (++index < searchLength) {\r\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n if (defineProperty) {\r\n defineProperty(String.prototype, 'startsWith', {\r\n 'value': startsWith,\r\n 'configurable': true,\r\n 'writable': true\r\n });\r\n } else {\r\n String.prototype.startsWith = startsWith;\r\n }\r\n }());\r\n }\r\n\r\n if (!Object.keys) {\r\n Object.keys = function (\r\n o, // object\r\n k, // key\r\n r // result array\r\n ){\r\n // initialize object and result\r\n r=[];\r\n // iterate over object keys\r\n for (k in o)\r\n // fill result array with non-prototypical keys\r\n r.hasOwnProperty.call(o, k) && r.push(k);\r\n // return result\r\n return r;\r\n };\r\n }\r\n\r\n // set data-selected on select element if the value has been programmatically selected\r\n // prior to initialization of bootstrap-select\r\n // * consider removing or replacing an alternative method *\r\n var valHooks = {\r\n useDefault: false,\r\n _set: $.valHooks.select.set\r\n };\r\n\r\n $.valHooks.select.set = function(elem, value) {\r\n if (value && !valHooks.useDefault) $(elem).data('selected', true);\r\n\r\n return valHooks._set.apply(this, arguments);\r\n };\r\n\r\n var changed_arguments = null;\r\n $.fn.triggerNative = function (eventName) {\r\n var el = this[0],\r\n event;\r\n\r\n if (el.dispatchEvent) { // for modern browsers & IE9+\r\n if (typeof Event === 'function') {\r\n // For modern browsers\r\n event = new Event(eventName, {\r\n bubbles: true\r\n });\r\n } else {\r\n // For IE since it doesn't support Event constructor\r\n event = document.createEvent('Event');\r\n event.initEvent(eventName, true, false);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n } else if (el.fireEvent) { // for IE8\r\n event = document.createEventObject();\r\n event.eventType = eventName;\r\n el.fireEvent('on' + eventName, event);\r\n } else {\r\n // fall back to jQuery.trigger\r\n this.trigger(eventName);\r\n }\r\n };\r\n //</editor-fold>\r\n\r\n // Case insensitive contains search\r\n $.expr.pseudos.icontains = function (obj, index, meta) {\r\n var $obj = $(obj);\r\n var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();\r\n return haystack.includes(meta[3].toUpperCase());\r\n };\r\n\r\n // Case insensitive begins search\r\n $.expr.pseudos.ibegins = function (obj, index, meta) {\r\n var $obj = $(obj);\r\n var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();\r\n return haystack.startsWith(meta[3].toUpperCase());\r\n };\r\n\r\n // Case and accent insensitive contains search\r\n $.expr.pseudos.aicontains = function (obj, index, meta) {\r\n var $obj = $(obj);\r\n var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();\r\n return haystack.includes(meta[3].toUpperCase());\r\n };\r\n\r\n // Case and accent insensitive begins search\r\n $.expr.pseudos.aibegins = function (obj, index, meta) {\r\n var $obj = $(obj);\r\n var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();\r\n return haystack.startsWith(meta[3].toUpperCase());\r\n };\r\n\r\n /**\r\n * Remove all diatrics from the given text.\r\n * @access private\r\n * @param {String} text\r\n * @returns {String}\r\n */\r\n function normalizeToBase(text) {\r\n var rExps = [\r\n {re: /[\\xC0-\\xC6]/g, ch: \"A\"},\r\n {re: /[\\xE0-\\xE6]/g, ch: \"a\"},\r\n {re: /[\\xC8-\\xCB]/g, ch: \"E\"},\r\n {re: /[\\xE8-\\xEB]/g, ch: \"e\"},\r\n {re: /[\\xCC-\\xCF]/g, ch: \"I\"},\r\n {re: /[\\xEC-\\xEF]/g, ch: \"i\"},\r\n {re: /[\\xD2-\\xD6]/g, ch: \"O\"},\r\n {re: /[\\xF2-\\xF6]/g, ch: \"o\"},\r\n {re: /[\\xD9-\\xDC]/g, ch: \"U\"},\r\n {re: /[\\xF9-\\xFC]/g, ch: \"u\"},\r\n {re: /[\\xC7-\\xE7]/g, ch: \"c\"},\r\n {re: /[\\xD1]/g, ch: \"N\"},\r\n {re: /[\\xF1]/g, ch: \"n\"}\r\n ];\r\n $.each(rExps, function () {\r\n text = text.replace(this.re, this.ch);\r\n });\r\n return text;\r\n }\r\n\r\n\r\n function htmlEscape(html) {\r\n var escapeMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n '`': '`'\r\n };\r\n var source = '(?:' + Object.keys(escapeMap).join('|') + ')',\r\n testRegexp = new RegExp(source),\r\n replaceRegexp = new RegExp(source, 'g'),\r\n string = html == null ? '' : '' + html;\r\n return testRegexp.test(string) ? string.replace(replaceRegexp, function (match) {\r\n return escapeMap[match];\r\n }) : string;\r\n }\r\n\r\n var Selectpicker = function (element, options, e) {\r\n // bootstrap-select has been initialized - revert valHooks.select.set back to its original function\r\n if (!valHooks.useDefault) {\r\n $.valHooks.select.set = valHooks._set;\r\n valHooks.useDefault = true;\r\n }\r\n\r\n if (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n this.$element = $(element);\r\n this.$newElement = null;\r\n this.$button = null;\r\n this.$menu = null;\r\n this.$lis = null;\r\n this.options = options;\r\n\r\n // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a\r\n // data-attribute)\r\n if (this.options.title === null) {\r\n this.options.title = this.$element.attr('title');\r\n }\r\n\r\n //Expose public methods\r\n this.val = Selectpicker.prototype.val;\r\n this.render = Selectpicker.prototype.render;\r\n this.refresh = Selectpicker.prototype.refresh;\r\n this.setStyle = Selectpicker.prototype.setStyle;\r\n this.selectAll = Selectpicker.prototype.selectAll;\r\n this.deselectAll = Selectpicker.prototype.deselectAll;\r\n this.destroy = Selectpicker.prototype.destroy;\r\n this.remove = Selectpicker.prototype.remove;\r\n this.show = Selectpicker.prototype.show;\r\n this.hide = Selectpicker.prototype.hide;\r\n\r\n this.init();\r\n };\r\n\r\n Selectpicker.VERSION = '1.11.2';\r\n\r\n // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\r\n Selectpicker.DEFAULTS = {\r\n noneSelectedText: 'Nothing selected',\r\n noneResultsText: 'No results matched {0}',\r\n countSelectedText: function (numSelected, numTotal) {\r\n return (numSelected == 1) ? \"{0} item selected\" : \"{0} items selected\";\r\n },\r\n maxOptionsText: function (numAll, numGroup) {\r\n return [\r\n (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\r\n (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\r\n ];\r\n },\r\n selectAllText: 'Select All',\r\n deselectAllText: 'Deselect All',\r\n doneButton: false,\r\n doneButtonText: 'Close',\r\n multipleSeparator: ', ',\r\n styleBase: 'btn',\r\n style: 'btn-default',\r\n size: 'auto',\r\n title: null,\r\n selectedTextFormat: 'values',\r\n width: false,\r\n container: false,\r\n hideDisabled: false,\r\n showSubtext: false,\r\n showIcon: true,\r\n showContent: true,\r\n dropupAuto: true,\r\n header: false,\r\n liveSearch: false,\r\n liveSearchPlaceholder: null,\r\n liveSearchNormalize: false,\r\n liveSearchStyle: 'contains',\r\n actionsBox: false,\r\n iconBase: 'notika-icon',\r\n tickIcon: 'notika-checked',\r\n showTick: false,\r\n template: {\r\n caret: '<span class=\"caret\"></span>'\r\n },\r\n maxOptions: false,\r\n mobile: false,\r\n selectOnTab: false,\r\n dropdownAlignRight: false\r\n };\r\n\r\n Selectpicker.prototype = {\r\n\r\n constructor: Selectpicker,\r\n\r\n init: function () {\r\n var that = this,\r\n id = this.$element.attr('id');\r\n\r\n this.$element.addClass('bs-select-hidden');\r\n\r\n // store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility\r\n // allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index=\"' + index + '\"]')\r\n this.liObj = {};\r\n this.multiple = this.$element.prop('multiple');\r\n this.autofocus = this.$element.prop('autofocus');\r\n this.$newElement = this.createView();\r\n this.$element\r\n .after(this.$newElement)\r\n .appendTo(this.$newElement);\r\n this.$button = this.$newElement.children('button');\r\n this.$menu = this.$newElement.children('.dropdown-menu');\r\n this.$menuInner = this.$menu.children('.inner');\r\n this.$searchbox = this.$menu.find('input');\r\n\r\n this.$element.removeClass('bs-select-hidden');\r\n\r\n if (this.options.dropdownAlignRight === true) this.$menu.addClass('dropdown-menu-right');\r\n\r\n if (typeof id !== 'undefined') {\r\n this.$button.attr('data-id', id);\r\n $('label[for=\"' + id + '\"]').click(function (e) {\r\n e.preventDefault();\r\n that.$button.focus();\r\n });\r\n }\r\n\r\n this.checkDisabled();\r\n this.clickListener();\r\n if (this.options.liveSearch) this.liveSearchListener();\r\n this.render();\r\n this.setStyle();\r\n this.setWidth();\r\n if (this.options.container) this.selectPosition();\r\n this.$menu.data('this', this);\r\n this.$newElement.data('this', this);\r\n if (this.options.mobile) this.mobile();\r\n\r\n this.$newElement.on({\r\n 'hide.bs.dropdown': function (e) {\r\n that.$menuInner.attr('aria-expanded', false);\r\n that.$element.trigger('hide.bs.select', e);\r\n },\r\n 'hidden.bs.dropdown': function (e) {\r\n that.$element.trigger('hidden.bs.select', e);\r\n },\r\n 'show.bs.dropdown': function (e) {\r\n that.$menuInner.attr('aria-expanded', true);\r\n that.$element.trigger('show.bs.select', e);\r\n },\r\n 'shown.bs.dropdown': function (e) {\r\n that.$element.trigger('shown.bs.select', e);\r\n }\r\n });\r\n\r\n if (that.$element[0].hasAttribute('required')) {\r\n this.$element.on('invalid', function () {\r\n that.$button\r\n .addClass('bs-invalid')\r\n .focus();\r\n\r\n that.$element.on({\r\n 'focus.bs.select': function () {\r\n that.$button.focus();\r\n that.$element.off('focus.bs.select');\r\n },\r\n 'shown.bs.select': function () {\r\n that.$element\r\n .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\r\n .off('shown.bs.select');\r\n },\r\n 'rendered.bs.select': function () {\r\n // if select is no longer invalid, remove the bs-invalid class\r\n if (this.validity.valid) that.$button.removeClass('bs-invalid');\r\n that.$element.off('rendered.bs.select');\r\n }\r\n });\r\n });\r\n }\r\n\r\n setTimeout(function () {\r\n that.$element.trigger('loaded.bs.select');\r\n });\r\n },\r\n\r\n createDropdown: function () {\r\n // Options\r\n // If we are multiple or showTick option is set, then add the show-tick class\r\n var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',\r\n inputGroup = this.$element.parent().hasClass('input-group') ? ' input-group-btn' : '',\r\n autofocus = this.autofocus ? ' autofocus' : '';\r\n // Elements\r\n var header = this.options.header ? '<div class=\"popover-title\"><button type=\"button\" class=\"close\" aria-hidden=\"true\">×</button>' + this.options.header + '</div>' : '';\r\n var searchbox = this.options.liveSearch ?\r\n '<div class=\"bs-searchbox\">' +\r\n '<input type=\"text\" class=\"form-control\" autocomplete=\"off\"' +\r\n (null === this.options.liveSearchPlaceholder ? '' : ' placeholder=\"' + htmlEscape(this.options.liveSearchPlaceholder) + '\"') + ' role=\"textbox\" aria-label=\"Search\">' +\r\n '</div>'\r\n : '';\r\n var actionsbox = this.multiple && this.options.actionsBox ?\r\n '<div class=\"bs-actionsbox\">' +\r\n '<div class=\"btn-group btn-group-sm btn-block\">' +\r\n '<button type=\"button\" class=\"actions-btn bs-select-all btn btn-default\">' +\r\n this.options.selectAllText +\r\n '</button>' +\r\n '<button type=\"button\" class=\"actions-btn bs-deselect-all btn btn-default\">' +\r\n this.options.deselectAllText +\r\n '</button>' +\r\n '</div>' +\r\n '</div>'\r\n : '';\r\n var donebutton = this.multiple && this.options.doneButton ?\r\n '<div class=\"bs-donebutton\">' +\r\n '<div class=\"btn-group btn-block\">' +\r\n '<button type=\"button\" class=\"btn btn-sm btn-default\">' +\r\n this.options.doneButtonText +\r\n '</button>' +\r\n '</div>' +\r\n '</div>'\r\n : '';\r\n var drop =\r\n '<div class=\"btn-group bootstrap-select' + showTick + inputGroup + '\">' +\r\n '<button type=\"button\" class=\"' + this.options.styleBase + ' dropdown-toggle\" data-toggle=\"dropdown\"' + autofocus + ' role=\"button\">' +\r\n '<span class=\"filter-option pull-left\"></span> ' +\r\n '<span class=\"bs-caret\">' +\r\n this.options.template.caret +\r\n '</span>' +\r\n '</button>' +\r\n '<div class=\"dropdown-menu open\" role=\"combobox\">' +\r\n header +\r\n searchbox +\r\n actionsbox +\r\n '<ul class=\"dropdown-menu inner\" role=\"listbox\" aria-expanded=\"false\">' +\r\n '</ul>' +\r\n donebutton +\r\n '</div>' +\r\n '</div>';\r\n\r\n return $(drop);\r\n },\r\n\r\n createView: function () {\r\n var $drop = this.createDropdown(),\r\n li = this.createLi();\r\n\r\n $drop.find('ul')[0].innerHTML = li;\r\n return $drop;\r\n },\r\n\r\n reloadLi: function () {\r\n //Remove all children.\r\n this.destroyLi();\r\n //Re build\r\n var li = this.createLi();\r\n this.$menuInner[0].innerHTML = li;\r\n },\r\n\r\n destroyLi: function () {\r\n this.$menu.find('li').remove();\r\n },\r\n\r\n createLi: function () {\r\n var that = this,\r\n _li = [],\r\n optID = 0,\r\n titleOption = document.createElement('option'),\r\n liIndex = -1; // increment liIndex whenever a new <li> element is created to ensure liObj is correct\r\n\r\n // Helper functions\r\n /**\r\n * @param content\r\n * @param [index]\r\n * @param [classes]\r\n * @param [optgroup]\r\n * @returns {string}\r\n */\r\n var generateLI = function (content, index, classes, optgroup) {\r\n return '<li' +\r\n ((typeof classes !== 'undefined' & '' !== classes) ? ' class=\"' + classes + '\"' : '') +\r\n ((typeof index !== 'undefined' & null !== index) ? ' data-original-index=\"' + index + '\"' : '') +\r\n ((typeof optgroup !== 'undefined' & null !== optgroup) ? 'data-optgroup=\"' + optgroup + '\"' : '') +\r\n '>' + content + '</li>';\r\n };\r\n\r\n /**\r\n * @param text\r\n * @param [classes]\r\n * @param [inline]\r\n * @param [tokens]\r\n * @returns {string}\r\n */\r\n var generateA = function (text, classes, inline, tokens) {\r\n return '<a tabindex=\"0\"' +\r\n (typeof classes !== 'undefined' ? ' class=\"' + classes + '\"' : '') +\r\n (typeof inline !== 'undefined' ? ' style=\"' + inline + '\"' : '') +\r\n (that.options.liveSearchNormalize ? ' data-normalized-text=\"' + normalizeToBase(htmlEscape(text)) + '\"' : '') +\r\n (typeof tokens !== 'undefined' || tokens !== null ? ' data-tokens=\"' + tokens + '\"' : '') +\r\n ' role=\"option\">' + text +\r\n '<span class=\"' + that.options.iconBase + ' ' + that.options.tickIcon + ' check-mark\"></span>' +\r\n '</a>';\r\n };\r\n\r\n if (this.options.title && !this.multiple) {\r\n // this option doesn't create a new <li> element, but does add a new option, so liIndex is decreased\r\n // since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended\r\n liIndex--;\r\n\r\n if (!this.$element.find('.bs-title-option').length) {\r\n // Use native JS to prepend option (faster)\r\n var element = this.$element[0];\r\n titleOption.className = 'bs-title-option';\r\n titleOption.appendChild(document.createTextNode(this.options.title));\r\n titleOption.value = '';\r\n element.insertBefore(titleOption, element.firstChild);\r\n // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\r\n // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\r\n // if so, the select will have the data-selected attribute\r\n var $opt = $(element.options[element.selectedIndex]);\r\n if ($opt.attr('selected') === undefined && this.$element.data('selected') === undefined) {\r\n titleOption.selected = true;\r\n }\r\n }\r\n }\r\n\r\n this.$element.find('option').each(function (index) {\r\n var $this = $(this);\r\n\r\n liIndex++;\r\n\r\n if ($this.hasClass('bs-title-option')) return;\r\n\r\n // Get the class and text for the option\r\n var optionClass = this.className || '',\r\n inline = this.style.cssText,\r\n text = $this.data('content') ? $this.data('content') : $this.html(),\r\n tokens = $this.data('tokens') ? $this.data('tokens') : null,\r\n subtext = typeof $this.data('subtext') !== 'undefined' ? '<small class=\"text-muted\">' + $this.data('subtext') + '</small>' : '',\r\n icon = typeof $this.data('icon') !== 'undefined' ? '<span class=\"' + that.options.iconBase + ' ' + $this.data('icon') + '\"></span> ' : '',\r\n $parent = $this.parent(),\r\n isOptgroup = $parent[0].tagName === 'OPTGROUP',\r\n isOptgroupDisabled = isOptgroup && $parent[0].disabled,\r\n isDisabled = this.disabled || isOptgroupDisabled;\r\n\r\n if (icon !== '' && isDisabled) {\r\n icon = '<span>' + icon + '</span>';\r\n }\r\n\r\n if (that.options.hideDisabled && (isDisabled && !isOptgroup || isOptgroupDisabled)) {\r\n liIndex--;\r\n return;\r\n }\r\n\r\n if (!$this.data('content')) {\r\n // Prepend any icon and append any subtext to the main text.\r\n text = icon + '<span class=\"text\">' + text + subtext + '</span>';\r\n }\r\n\r\n if (isOptgroup && $this.data('divider') !== true) {\r\n if (that.options.hideDisabled && isDisabled) {\r\n if ($parent.data('allOptionsDisabled') === undefined) {\r\n var $options = $parent.children();\r\n $parent.data('allOptionsDisabled', $options.filter(':disabled').length === $options.length);\r\n }\r\n\r\n if ($parent.data('allOptionsDisabled')) {\r\n liIndex--;\r\n return;\r\n }\r\n }\r\n\r\n var optGroupClass = ' ' + $parent[0].className || '';\r\n\r\n if ($this.index() === 0) { // Is it the first option of the optgroup?\r\n optID += 1;\r\n\r\n // Get the opt group label\r\n var label = $parent[0].label,\r\n labelSubtext = typeof $parent.data('subtext') !== 'undefined' ? '<small class=\"text-muted\">' + $parent.data('subtext') + '</small>' : '',\r\n labelIcon = $parent.data('icon') ? '<span class=\"' + that.options.iconBase + ' ' + $parent.data('icon') + '\"></span> ' : '';\r\n\r\n label = labelIcon + '<span class=\"text\">' + label + labelSubtext + '</span>';\r\n\r\n if (index !== 0 && _li.length > 0) { // Is it NOT the first option of the select && are there elements in the dropdown?\r\n liIndex++;\r\n _li.push(generateLI('', null, 'divider', optID + 'div'));\r\n }\r\n liIndex++;\r\n _li.push(generateLI(label, null, 'dropdown-header' + optGroupClass, optID));\r\n }\r\n\r\n if (that.options.hideDisabled && isDisabled) {\r\n liIndex--;\r\n return;\r\n }\r\n\r\n _li.push(generateLI(generateA(text, 'opt ' + optionClass + optGroupClass, inline, tokens), index, '', optID));\r\n } else if ($this.data('divider') === true) {\r\n _li.push(generateLI('', index, 'divider'));\r\n } else if ($this.data('hidden') === true) {\r\n _li.push(generateLI(generateA(text, optionClass, inline, tokens), index, 'hidden is-hidden'));\r\n } else {\r\n var showDivider = this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP';\r\n\r\n // if previous element is not an optgroup and hideDisabled is true\r\n if (!showDivider && that.options.hideDisabled) {\r\n // get previous elements\r\n var $prev = $(this).prevAll();\r\n\r\n for (var i = 0; i < $prev.length; i++) {\r\n // find the first element in the previous elements that is an optgroup\r\n if ($prev[i].tagName === 'OPTGROUP') {\r\n var optGroupDistance = 0;\r\n\r\n // loop through the options in between the current option and the optgroup\r\n // and check if they are hidden or disabled\r\n for (var d = 0; d < i; d++) {\r\n var prevOption = $prev[d];\r\n if (prevOption.disabled || $(prevOption).data('hidden') === true) optGroupDistance++;\r\n }\r\n\r\n // if all of the options between the current option and the optgroup are hidden or disabled, show the divider\r\n if (optGroupDistance === i) showDivider = true;\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (showDivider) {\r\n liIndex++;\r\n _li.push(generateLI('', null, 'divider', optID + 'div'));\r\n }\r\n _li.push(generateLI(generateA(text, optionClass, inline, tokens), index));\r\n }\r\n\r\n that.liObj[index] = liIndex;\r\n });\r\n\r\n //If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button\r\n if (!this.multiple && this.$element.find('option:selected').length === 0 && !this.options.title) {\r\n this.$element.find('option').eq(0).prop('selected', true).attr('selected', 'selected');\r\n }\r\n\r\n return _li.join('');\r\n },\r\n\r\n findLis: function () {\r\n if (this.$lis == null) this.$lis = this.$menu.find('li');\r\n return this.$lis;\r\n },\r\n\r\n /**\r\n * @param [updateLi] defaults to true\r\n */\r\n render: function (updateLi) {\r\n var that = this,\r\n notDisabled;\r\n\r\n //Update the LI to match the SELECT\r\n if (updateLi !== false) {\r\n this.$element.find('option').each(function (index) {\r\n var $lis = that.findLis().eq(that.liObj[index]);\r\n\r\n that.setDisabled(index, this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled, $lis);\r\n that.setSelected(index, this.selected, $lis);\r\n });\r\n }\r\n\r\n this.togglePlaceholder();\r\n\r\n this.tabIndex();\r\n\r\n var selectedItems = this.$element.find('option').map(function () {\r\n if (this.selected) {\r\n if (that.options.hideDisabled && (this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled)) return;\r\n\r\n var $this = $(this),\r\n icon = $this.data('icon') && that.options.showIcon ? '<i class=\"' + that.options.iconBase + ' ' + $this.data('icon') + '\"></i> ' : '',\r\n subtext;\r\n\r\n if (that.options.showSubtext && $this.data('subtext') && !that.multiple) {\r\n subtext = ' <small class=\"text-muted\">' + $this.data('subtext') + '</small>';\r\n } else {\r\n subtext = '';\r\n }\r\n if (typeof $this.attr('title') !== 'undefined') {\r\n return $this.attr('title');\r\n } else if ($this.data('content') && that.options.showContent) {\r\n return $this.data('content');\r\n } else {\r\n return icon + $this.html() + subtext;\r\n }\r\n }\r\n }).toArray();\r\n\r\n //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled\r\n //Convert all the values into a comma delimited string\r\n var title = !this.multiple ? selectedItems[0] : selectedItems.join(this.options.multipleSeparator);\r\n\r\n //If this is multi select, and the selectText type is count, the show 1 of 2 selected etc..\r\n if (this.multiple && this.options.selectedTextFormat.indexOf('count') > -1) {\r\n var max = this.options.selectedTextFormat.split('>');\r\n if ((max.length > 1 && selectedItems.length > max[1]) || (max.length == 1 && selectedItems.length >= 2)) {\r\n notDisabled = this.options.hideDisabled ? ', [disabled]' : '';\r\n var totalCount = this.$element.find('option').not('[data-divider=\"true\"], [data-hidden=\"true\"]' + notDisabled).length,\r\n tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText;\r\n title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString());\r\n }\r\n }\r\n\r\n if (this.options.title == undefined) {\r\n this.options.title = this.$element.attr('title');\r\n }\r\n\r\n if (this.options.selectedTextFormat == 'static') {\r\n title = this.options.title;\r\n }\r\n\r\n //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text\r\n if (!title) {\r\n title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText;\r\n }\r\n\r\n //strip all html-tags and trim the result\r\n this.$button.attr('title', $.trim(title.replace(/<[^>]*>?/g, '')));\r\n this.$button.children('.filter-option').html(title);\r\n\r\n this.$element.trigger('rendered.bs.select');\r\n },\r\n\r\n /**\r\n * @param [style]\r\n * @param [status]\r\n */\r\n setStyle: function (style, status) {\r\n if (this.$element.attr('class')) {\r\n this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, ''));\r\n }\r\n\r\n var buttonClass = style ? style : this.options.style;\r\n\r\n if (status == 'add') {\r\n this.$button.addClass(buttonClass);\r\n } else if (status == 'remove') {\r\n this.$button.removeClass(buttonClass);\r\n } else {\r\n this.$button.removeClass(this.options.style);\r\n this.$button.addClass(buttonClass);\r\n }\r\n },\r\n\r\n liHeight: function (refresh) {\r\n if (!refresh && (this.options.size === false || this.sizeInfo)) return;\r\n\r\n var newElement = document.createElement('div'),\r\n menu = document.createElement('div'),\r\n menuInner = document.createElement('ul'),\r\n divider = document.createElement('li'),\r\n li = document.createElement('li'),\r\n a = document.createElement('a'),\r\n text = document.createElement('span'),\r\n header = this.options.header && this.$menu.find('.popover-title').length > 0 ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,\r\n search = this.options.liveSearch ? document.createElement('div') : null,\r\n actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\r\n doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null;\r\n\r\n text.className = 'text';\r\n newElement.className = this.$menu[0].parentNode.className + ' open';\r\n menu.className = 'dropdown-menu open';\r\n menuInner.className = 'dropdown-menu inner';\r\n divider.className = 'divider';\r\n\r\n text.appendChild(document.createTextNode('Inner text'));\r\n a.appendChild(text);\r\n li.appendChild(a);\r\n menuInner.appendChild(li);\r\n menuInner.appendChild(divider);\r\n if (header) menu.appendChild(header);\r\n if (search) {\r\n // create a span instead of input as creating an input element is slower\r\n var input = document.createElement('span');\r\n search.className = 'bs-searchbox';\r\n input.className = 'form-control';\r\n search.appendChild(input);\r\n menu.appendChild(search);\r\n }\r\n if (actions) menu.appendChild(actions);\r\n menu.appendChild(menuInner);\r\n if (doneButton) menu.appendChild(doneButton);\r\n newElement.appendChild(menu);\r\n\r\n document.body.appendChild(newElement);\r\n\r\n var liHeight = a.offsetHeight,\r\n headerHeight = header ? header.offsetHeight : 0,\r\n searchHeight = search ? search.offsetHeight : 0,\r\n actionsHeight = actions ? actions.offsetHeight : 0,\r\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\r\n dividerHeight = $(divider).outerHeight(true),\r\n // fall back to jQuery if getComputedStyle is not supported\r\n menuStyle = typeof getComputedStyle === 'function' ? getComputedStyle(menu) : false,\r\n $menu = menuStyle ? null : $(menu),\r\n menuPadding = {\r\n vert: parseInt(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) +\r\n parseInt(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) +\r\n parseInt(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) +\r\n parseInt(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),\r\n horiz: parseInt(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) +\r\n parseInt(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) +\r\n parseInt(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) +\r\n parseInt(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))\r\n },\r\n menuExtras = {\r\n vert: menuPadding.vert +\r\n parseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +\r\n parseInt(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,\r\n horiz: menuPadding.horiz +\r\n parseInt(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) +\r\n parseInt(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2\r\n }\r\n\r\n document.body.removeChild(newElement);\r\n\r\n this.sizeInfo = {\r\n liHeight: liHeight,\r\n headerHeight: headerHeight,\r\n searchHeight: searchHeight,\r\n actionsHeight: actionsHeight,\r\n doneButtonHeight: doneButtonHeight,\r\n dividerHeight: dividerHeight,\r\n menuPadding: menuPadding,\r\n menuExtras: menuExtras\r\n };\r\n },\r\n\r\n setSize: function () {\r\n this.findLis();\r\n this.liHeight();\r\n\r\n if (this.options.header) this.$menu.css('padding-top', 0);\r\n if (this.options.size === false) return;\r\n\r\n var that = this,\r\n $menu = this.$menu,\r\n $menuInner = this.$menuInner,\r\n $window = $(window),\r\n selectHeight = this.$newElement[0].offsetHeight,\r\n selectWidth = this.$newElement[0].offsetWidth,\r\n liHeight = this.sizeInfo['liHeight'],\r\n headerHeight = this.sizeInfo['headerHeight'],\r\n searchHeight = this.sizeInfo['searchHeight'],\r\n actionsHeight = this.sizeInfo['actionsHeight'],\r\n doneButtonHeight = this.sizeInfo['doneButtonHeight'],\r\n divHeight = this.sizeInfo['dividerHeight'],\r\n menuPadding = this.sizeInfo['menuPadding'],\r\n menuExtras = this.sizeInfo['menuExtras'],\r\n notDisabled = this.options.hideDisabled ? '.disabled' : '',\r\n menuHeight,\r\n menuWidth,\r\n getHeight,\r\n getWidth,\r\n selectOffsetTop,\r\n selectOffsetBot,\r\n selectOffsetLeft,\r\n selectOffsetRight,\r\n getPos = function() {\r\n var pos = that.$newElement.offset(),\r\n $container = $(that.options.container),\r\n containerPos;\r\n\r\n if (that.options.container && !$container.is('body')) {\r\n containerPos = $container.offset();\r\n containerPos.top += parseInt($container.css('borderTopWidth'));\r\n containerPos.left += parseInt($container.css('borderLeftWidth'));\r\n } else {\r\n containerPos = { top: 0, left: 0 };\r\n }\r\n\r\n selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\r\n selectOffsetBot = $window.height() - selectOffsetTop - selectHeight - containerPos.top;\r\n selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();\r\n selectOffsetRight = $window.width() - selectOffsetLeft - selectWidth - containerPos.left;\r\n };\r\n\r\n getPos();\r\n\r\n if (this.options.size === 'auto') {\r\n var getSize = function () {\r\n var minHeight,\r\n hasClass = function (className, include) {\r\n return function (element) {\r\n if (include) {\r\n return (element.classList ? element.classList.contains(className) : $(element).hasClass(className));\r\n } else {\r\n return !(element.classList ? element.classList.contains(className) : $(element).hasClass(className));\r\n }\r\n };\r\n },\r\n lis = that.$menuInner[0].getElementsByTagName('li'),\r\n lisVisible = Array.prototype.filter ? Array.prototype.filter.call(lis, hasClass('hidden', false)) : that.$lis.not('.hidden'),\r\n optGroup = Array.prototype.filter ? Array.prototype.filter.call(lisVisible, hasClass('dropdown-header', true)) : lisVisible.filter('.dropdown-header');\r\n\r\n getPos();\r\n menuHeight = selectOffsetBot - menuExtras.vert;\r\n menuWidth = selectOffsetRight - menuExtras.horiz;\r\n\r\n if (that.options.container) {\r\n if (!$menu.data('height')) $menu.data('height', $menu.height());\r\n getHeight = $menu.data('height');\r\n\r\n if (!$menu.data('width')) $menu.data('width', $menu.width());\r\n getWidth = $menu.data('width');\r\n } else {\r\n getHeight = $menu.height();\r\n getWidth = $menu.width();\r\n }\r\n\r\n if (that.options.dropupAuto) {\r\n that.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras.vert) < getHeight);\r\n }\r\n\r\n if (that.$newElement.hasClass('dropup')) {\r\n menuHeight = selectOffsetTop - menuExtras.vert;\r\n }\r\n\r\n if (that.options.dropdownAlignRight === 'auto') {\r\n $menu.toggleClass('dropdown-menu-right', selectOffsetLeft > selectOffsetRight && (menuWidth - menuExtras.horiz) < (getWidth - selectWidth));\r\n }\r\n\r\n if ((lisVisible.length + optGroup.length) > 3) {\r\n minHeight = liHeight * 3 + menuExtras.vert - 2;\r\n } else {\r\n minHeight = 0;\r\n }\r\n\r\n $menu.css({\r\n 'max-height': menuHeight + 'px',\r\n 'overflow': 'hidden',\r\n 'min-height': minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px'\r\n });\r\n $menuInner.css({\r\n 'max-height': menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert + 'px',\r\n 'overflow-y': 'auto',\r\n 'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px'\r\n });\r\n };\r\n getSize();\r\n this.$searchbox.off('input.getSize propertychange.getSize').on('input.getSize propertychange.getSize', getSize);\r\n $window.off('resize.getSize scroll.getSize').on('resize.getSize scroll.getSize', getSize);\r\n } else if (this.options.size && this.options.size != 'auto' && this.$lis.not(notDisabled).length > this.options.size) {\r\n var optIndex = this.$lis.not('.divider').not(notDisabled).children().slice(0, this.options.size).last().parent().index(),\r\n divLength = this.$lis.slice(0, optIndex + 1).filter('.divider').length;\r\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\r\n\r\n if (that.options.container) {\r\n if (!$menu.data('height')) $menu.data('height', $menu.height());\r\n getHeight = $menu.data('height');\r\n } else {\r\n getHeight = $menu.height();\r\n }\r\n\r\n if (that.options.dropupAuto) {\r\n //noinspection JSUnusedAssignment\r\n this.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras.vert) < getHeight);\r\n }\r\n $menu.css({\r\n 'max-height': menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px',\r\n 'overflow': 'hidden',\r\n 'min-height': ''\r\n });\r\n $menuInner.css({\r\n 'max-height': menuHeight - menuPadding.vert + 'px',\r\n 'overflow-y': 'auto',\r\n 'min-height': ''\r\n });\r\n }\r\n },\r\n\r\n setWidth: function () {\r\n if (this.options.width === 'auto') {\r\n this.$menu.css('min-width', '0');\r\n\r\n // Get correct width if element is hidden\r\n var $selectClone = this.$menu.parent().clone().appendTo('body'),\r\n $selectClone2 = this.options.container ? this.$newElement.clone().appendTo('body') : $selectClone,\r\n ulWidth = $selectClone.children('.dropdown-menu').outerWidth(),\r\n btnWidth = $selectClone2.css('width', 'auto').children('button').outerWidth();\r\n\r\n $selectClone.remove();\r\n $selectClone2.remove();\r\n\r\n // Set width to whatever's larger, button title or longest option\r\n this.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px');\r\n } else if (this.options.width === 'fit') {\r\n // Remove inline min-width so width can be changed from 'auto'\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', '').addClass('fit-width');\r\n } else if (this.options.width) {\r\n // Remove inline min-width so width can be changed from 'auto'\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', this.options.width);\r\n } else {\r\n // Remove inline min-width/width so width can be changed\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', '');\r\n }\r\n // Remove fit-width class if width is changed programmatically\r\n if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {\r\n this.$newElement.removeClass('fit-width');\r\n }\r\n },\r\n\r\n selectPosition: function () {\r\n this.$bsContainer = $('<div class=\"bs-container\" />');\r\n\r\n var that = this,\r\n $container = $(this.options.container),\r\n pos,\r\n containerPos,\r\n actualHeight,\r\n getPlacement = function ($element) {\r\n that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup'));\r\n pos = $element.offset();\r\n\r\n if (!$container.is('body')) {\r\n containerPos = $container.offset();\r\n containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();\r\n containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();\r\n } else {\r\n containerPos = { top: 0, left: 0 };\r\n }\r\n\r\n actualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight;\r\n\r\n that.$bsContainer.css({\r\n 'top': pos.top - containerPos.top + actualHeight,\r\n 'left': pos.left - containerPos.left,\r\n 'width': $element[0].offsetWidth\r\n });\r\n };\r\n\r\n this.$button.on('click', function () {\r\n var $this = $(this);\r\n\r\n if (that.isDisabled()) {\r\n return;\r\n }\r\n\r\n getPlacement(that.$newElement);\r\n\r\n that.$bsContainer\r\n .appendTo(that.options.container)\r\n .toggleClass('open', !$this.hasClass('open'))\r\n .append(that.$menu);\r\n });\r\n\r\n $(window).on('resize scroll', function () {\r\n getPlacement(that.$newElement);\r\n });\r\n\r\n this.$element.on('hide.bs.select', function () {\r\n that.$menu.data('height', that.$menu.height());\r\n that.$bsContainer.detach();\r\n });\r\n },\r\n\r\n /**\r\n * @param {number} index - the index of the option that is being changed\r\n * @param {boolean} selected - true if the option is being selected, false if being deselected\r\n * @param {JQuery} $lis - the 'li' element that is being modified\r\n */\r\n setSelected: function (index, selected, $lis) {\r\n if (!$lis) {\r\n this.togglePlaceholder(); // check if setSelected is being called by changing the value of the select\r\n $lis = this.findLis().eq(this.liObj[index]);\r\n }\r\n\r\n $lis.toggleClass('selected', selected).find('a').attr('aria-selected', selected);\r\n },\r\n\r\n /**\r\n * @param {number} index - the index of the option that is being disabled\r\n * @param {boolean} disabled - true if the option is being disabled, false if being enabled\r\n * @param {JQuery} $lis - the 'li' element that is being modified\r\n */\r\n setDisabled: function (index, disabled, $lis) {\r\n if (!$lis) {\r\n $lis = this.findLis().eq(this.liObj[index]);\r\n }\r\n\r\n if (disabled) {\r\n $lis.addClass('disabled').children('a').attr('href', '#').attr('tabindex', -1).attr('aria-disabled', true);\r\n } else {\r\n $lis.removeClass('disabled').children('a').removeAttr('href').attr('tabindex', 0).attr('aria-disabled', false);\r\n }\r\n },\r\n\r\n isDisabled: function () {\r\n return this.$element[0].disabled;\r\n },\r\n\r\n checkDisabled: function () {\r\n var that = this;\r\n\r\n if (this.isDisabled()) {\r\n this.$newElement.addClass('disabled');\r\n this.$button.addClass('disabled').attr('tabindex', -1);\r\n } else {\r\n if (this.$button.hasClass('disabled')) {\r\n this.$newElement.removeClass('disabled');\r\n this.$button.removeClass('disabled');\r\n }\r\n\r\n if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) {\r\n this.$button.removeAttr('tabindex');\r\n }\r\n }\r\n\r\n this.$button.click(function () {\r\n return !that.isDisabled();\r\n });\r\n },\r\n\r\n togglePlaceholder: function () {\r\n var value = this.$element.val();\r\n this.$button.toggleClass('bs-placeholder', value === null || value === '');\r\n },\r\n\r\n tabIndex: function () {\r\n if (this.$element.data('tabindex') !== this.$element.attr('tabindex') && \r\n (this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98')) {\r\n this.$element.data('tabindex', this.$element.attr('tabindex'));\r\n this.$button.attr('tabindex', this.$element.data('tabindex'));\r\n }\r\n\r\n this.$element.attr('tabindex', -98);\r\n },\r\n\r\n clickListener: function () {\r\n var that = this,\r\n $document = $(document);\r\n\r\n this.$newElement.on('touchstart.dropdown', '.dropdown-menu', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n $document.data('spaceSelect', false);\r\n\r\n this.$button.on('keyup', function (e) {\r\n if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {\r\n e.preventDefault();\r\n $document.data('spaceSelect', false);\r\n }\r\n });\r\n\r\n this.$button.on('click', function () {\r\n that.setSize();\r\n });\r\n\r\n this.$element.on('shown.bs.select', function () {\r\n if (!that.options.liveSearch && !that.multiple) {\r\n that.$menuInner.find('.selected a').focus();\r\n } else if (!that.multiple) {\r\n var selectedIndex = that.liObj[that.$element[0].selectedIndex];\r\n\r\n if (typeof selectedIndex !== 'number' || that.options.size === false) return;\r\n\r\n // scroll to selected option\r\n var offset = that.$lis.eq(selectedIndex)[0].offsetTop - that.$menuInner[0].offsetTop;\r\n offset = offset - that.$menuInner[0].offsetHeight/2 + that.sizeInfo.liHeight/2;\r\n that.$menuInner[0].scrollTop = offset;\r\n }\r\n });\r\n\r\n this.$menuInner.on('click', 'li a', function (e) {\r\n var $this = $(this),\r\n clickedIndex = $this.parent().data('originalIndex'),\r\n prevValue = that.$element.val(),\r\n prevIndex = that.$element.prop('selectedIndex'),\r\n triggerChange = true;\r\n\r\n // Don't close on multi choice menu\r\n if (that.multiple && that.options.maxOptions !== 1) {\r\n e.stopPropagation();\r\n }\r\n\r\n e.preventDefault();\r\n\r\n //Don't run if we have been disabled\r\n if (!that.isDisabled() && !$this.parent().hasClass('disabled')) {\r\n var $options = that.$element.find('option'),\r\n $option = $options.eq(clickedIndex),\r\n state = $option.prop('selected'),\r\n $optgroup = $option.parent('optgroup'),\r\n maxOptions = that.options.maxOptions,\r\n maxOptionsGrp = $optgroup.data('maxOptions') || false;\r\n\r\n if (!that.multiple) { // Deselect all others if not multi select box\r\n $options.prop('selected', false);\r\n $option.prop('selected', true);\r\n that.$menuInner.find('.selected').removeClass('selected').find('a').attr('aria-selected', false);\r\n that.setSelected(clickedIndex, true);\r\n } else { // Toggle the one we have chosen if we are multi select.\r\n $option.prop('selected', !state);\r\n that.setSelected(clickedIndex, !state);\r\n $this.blur();\r\n\r\n if (maxOptions !== false || maxOptionsGrp !== false) {\r\n var maxReached = maxOptions < $options.filter(':selected').length,\r\n maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;\r\n\r\n if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {\r\n if (maxOptions && maxOptions == 1) {\r\n $options.prop('selected', false);\r\n $option.prop('selected', true);\r\n that.$menuInner.find('.selected').removeClass('selected');\r\n that.setSelected(clickedIndex, true);\r\n } else if (maxOptionsGrp && maxOptionsGrp == 1) {\r\n $optgroup.find('option:selected').prop('selected', false);\r\n $option.prop('selected', true);\r\n var optgroupID = $this.parent().data('optgroup');\r\n that.$menuInner.find('[data-optgroup=\"' + optgroupID + '\"]').removeClass('selected');\r\n that.setSelected(clickedIndex, true);\r\n } else {\r\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\r\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\r\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\r\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\r\n $notify = $('<div class=\"notify\"></div>');\r\n // If {var} is set in array, replace it\r\n /** @deprecated */\r\n if (maxOptionsArr[2]) {\r\n maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);\r\n maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);\r\n }\r\n\r\n $option.prop('selected', false);\r\n\r\n that.$menu.append($notify);\r\n\r\n if (maxOptions && maxReached) {\r\n $notify.append($('<div>' + maxTxt + '</div>'));\r\n triggerChange = false;\r\n that.$element.trigger('maxReached.bs.select');\r\n }\r\n\r\n if (maxOptionsGrp && maxReachedGrp) {\r\n $notify.append($('<div>' + maxTxtGrp + '</div>'));\r\n triggerChange = false;\r\n that.$element.trigger('maxReachedGrp.bs.select');\r\n }\r\n\r\n setTimeout(function () {\r\n that.setSelected(clickedIndex, false);\r\n }, 10);\r\n\r\n $notify.delay(750).fadeOut(300, function () {\r\n $(this).remove();\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {\r\n that.$button.focus();\r\n } else if (that.options.liveSearch) {\r\n that.$searchbox.focus();\r\n }\r\n\r\n // Trigger select 'change'\r\n if (triggerChange) {\r\n if ((prevValue != that.$element.val() && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) {\r\n // $option.prop('selected') is current option state (selected/unselected). state is previous option state.\r\n changed_arguments = [clickedIndex, $option.prop('selected'), state];\r\n that.$element\r\n .triggerNative('change');\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.$menu.on('click', 'li.disabled a, .popover-title, .popover-title :not(.close)', function (e) {\r\n if (e.currentTarget == this) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (that.options.liveSearch && !$(e.target).hasClass('close')) {\r\n that.$searchbox.focus();\r\n } else {\r\n that.$button.focus();\r\n }\r\n }\r\n });\r\n\r\n this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (that.options.liveSearch) {\r\n that.$searchbox.focus();\r\n } else {\r\n that.$button.focus();\r\n }\r\n });\r\n\r\n this.$menu.on('click', '.popover-title .close', function () {\r\n that.$button.click();\r\n });\r\n\r\n this.$searchbox.on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n this.$menu.on('click', '.actions-btn', function (e) {\r\n if (that.options.liveSearch) {\r\n that.$searchbox.focus();\r\n } else {\r\n that.$button.focus();\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if ($(this).hasClass('bs-select-all')) {\r\n that.selectAll();\r\n } else {\r\n that.deselectAll();\r\n }\r\n });\r\n\r\n this.$element.change(function () {\r\n that.render(false);\r\n that.$element.trigger('changed.bs.select', changed_arguments);\r\n changed_arguments = null;\r\n });\r\n },\r\n\r\n liveSearchListener: function () {\r\n var that = this,\r\n $no_results = $('<li class=\"no-results\"></li>');\r\n\r\n this.$button.on('click.dropdown.data-api touchstart.dropdown.data-api', function () {\r\n that.$menuInner.find('.active').removeClass('active');\r\n if (!!that.$searchbox.val()) {\r\n that.$searchbox.val('');\r\n that.$lis.not('.is-hidden').removeClass('hidden');\r\n if (!!$no_results.parent().length) $no_results.remove();\r\n }\r\n if (!that.multiple) that.$menuInner.find('.selected').addClass('active');\r\n setTimeout(function () {\r\n that.$searchbox.focus();\r\n }, 10);\r\n });\r\n\r\n this.$searchbox.on('click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n this.$searchbox.on('input propertychange', function () {\r\n if (that.$searchbox.val()) {\r\n var $searchBase = that.$lis.not('.is-hidden').removeClass('hidden').children('a');\r\n if (that.options.liveSearchNormalize) {\r\n $searchBase = $searchBase.not(':a' + that._searchStyle() + '(\"' + normalizeToBase(that.$searchbox.val()) + '\")');\r\n } else {\r\n $searchBase = $searchBase.not(':' + that._searchStyle() + '(\"' + that.$searchbox.val() + '\")');\r\n }\r\n $searchBase.parent().addClass('hidden');\r\n\r\n that.$lis.filter('.dropdown-header').each(function () {\r\n var $this = $(this),\r\n optgroup = $this.data('optgroup');\r\n\r\n if (that.$lis.filter('[data-optgroup=' + optgroup + ']').not($this).not('.hidden').length === 0) {\r\n $this.addClass('hidden');\r\n that.$lis.filter('[data-optgroup=' + optgroup + 'div]').addClass('hidden');\r\n }\r\n });\r\n\r\n var $lisVisible = that.$lis.not('.hidden');\r\n\r\n // hide divider if first or last visible, or if followed by another divider\r\n $lisVisible.each(function (index) {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('divider') && (\r\n $this.index() === $lisVisible.first().index() ||\r\n $this.index() === $lisVisible.last().index() ||\r\n $lisVisible.eq(index + 1).hasClass('divider'))) {\r\n $this.addClass('hidden');\r\n }\r\n });\r\n\r\n if (!that.$lis.not('.hidden, .no-results').length) {\r\n if (!!$no_results.parent().length) {\r\n $no_results.remove();\r\n }\r\n $no_results.html(that.options.noneResultsText.replace('{0}', '\"' + htmlEscape(that.$searchbox.val()) + '\"')).show();\r\n that.$menuInner.append($no_results);\r\n } else if (!!$no_results.parent().length) {\r\n $no_results.remove();\r\n }\r\n } else {\r\n that.$lis.not('.is-hidden').removeClass('hidden');\r\n if (!!$no_results.parent().length) {\r\n $no_results.remove();\r\n }\r\n }\r\n\r\n that.$lis.filter('.active').removeClass('active');\r\n if (that.$searchbox.val()) that.$lis.not('.hidden, .divider, .dropdown-header').eq(0).addClass('active').children('a').focus();\r\n $(this).focus();\r\n });\r\n },\r\n\r\n _searchStyle: function () {\r\n var styles = {\r\n begins: 'ibegins',\r\n startsWith: 'ibegins'\r\n };\r\n\r\n return styles[this.options.liveSearchStyle] || 'icontains';\r\n },\r\n\r\n val: function (value) {\r\n if (typeof value !== 'undefined') {\r\n this.$element.val(value);\r\n this.render();\r\n\r\n return this.$element;\r\n } else {\r\n return this.$element.val();\r\n }\r\n },\r\n\r\n changeAll: function (status) {\r\n if (!this.multiple) return;\r\n if (typeof status === 'undefined') status = true;\r\n\r\n this.findLis();\r\n\r\n var $options = this.$element.find('option'),\r\n $lisVisible = this.$lis.not('.divider, .dropdown-header, .disabled, .hidden'),\r\n lisVisLen = $lisVisible.length,\r\n selectedOptions = [];\r\n \r\n if (status) {\r\n if ($lisVisible.filter('.selected').length === $lisVisible.length) return;\r\n } else {\r\n if ($lisVisible.filter('.selected').length === 0) return;\r\n }\r\n \r\n $lisVisible.toggleClass('selected', status);\r\n\r\n for (var i = 0; i < lisVisLen; i++) {\r\n var origIndex = $lisVisible[i].getAttribute('data-original-index');\r\n selectedOptions[selectedOptions.length] = $options.eq(origIndex)[0];\r\n }\r\n\r\n $(selectedOptions).prop('selected', status);\r\n\r\n this.render(false);\r\n\r\n this.togglePlaceholder();\r\n\r\n this.$element\r\n .triggerNative('change');\r\n },\r\n\r\n selectAll: function () {\r\n return this.changeAll(true);\r\n },\r\n\r\n deselectAll: function () {\r\n return this.changeAll(false);\r\n },\r\n\r\n toggle: function (e) {\r\n e = e || window.event;\r\n\r\n if (e) e.stopPropagation();\r\n\r\n this.$button.trigger('click');\r\n },\r\n\r\n keydown: function (e) {\r\n var $this = $(this),\r\n $parent = $this.is('input') ? $this.parent().parent() : $this.parent(),\r\n $items,\r\n that = $parent.data('this'),\r\n index,\r\n next,\r\n first,\r\n last,\r\n prev,\r\n nextPrev,\r\n prevIndex,\r\n isActive,\r\n selector = ':not(.disabled, .hidden, .dropdown-header, .divider)',\r\n keyCodeMap = {\r\n 32: ' ',\r\n 48: '0',\r\n 49: '1',\r\n 50: '2',\r\n 51: '3',\r\n 52: '4',\r\n 53: '5',\r\n 54: '6',\r\n 55: '7',\r\n 56: '8',\r\n 57: '9',\r\n 59: ';',\r\n 65: 'a',\r\n 66: 'b',\r\n 67: 'c',\r\n 68: 'd',\r\n 69: 'e',\r\n 70: 'f',\r\n 71: 'g',\r\n 72: 'h',\r\n 73: 'i',\r\n 74: 'j',\r\n 75: 'k',\r\n 76: 'l',\r\n 77: 'm',\r\n 78: 'n',\r\n 79: 'o',\r\n 80: 'p',\r\n 81: 'q',\r\n 82: 'r',\r\n 83: 's',\r\n 84: 't',\r\n 85: 'u',\r\n 86: 'v',\r\n 87: 'w',\r\n 88: 'x',\r\n 89: 'y',\r\n 90: 'z',\r\n 96: '0',\r\n 97: '1',\r\n 98: '2',\r\n 99: '3',\r\n 100: '4',\r\n 101: '5',\r\n 102: '6',\r\n 103: '7',\r\n 104: '8',\r\n 105: '9'\r\n };\r\n\r\n if (that.options.liveSearch) $parent = $this.parent().parent();\r\n\r\n if (that.options.container) $parent = that.$menu;\r\n\r\n $items = $('[role=\"listbox\"] li', $parent);\r\n\r\n isActive = that.$newElement.hasClass('open');\r\n\r\n if (!isActive && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode >= 65 && e.keyCode <= 90)) {\r\n if (!that.options.container) {\r\n that.setSize();\r\n that.$menu.parent().addClass('open');\r\n isActive = true;\r\n } else {\r\n that.$button.trigger('click');\r\n }\r\n that.$searchbox.focus();\r\n return;\r\n }\r\n\r\n if (that.options.liveSearch) {\r\n if (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n that.$button.click().focus();\r\n }\r\n // $items contains li elements when liveSearch is enabled\r\n $items = $('[role=\"listbox\"] li' + selector, $parent);\r\n if (!$this.val() && !/(38|40)/.test(e.keyCode.toString(10))) {\r\n if ($items.filter('.active').length === 0) {\r\n $items = that.$menuInner.find('li');\r\n if (that.options.liveSearchNormalize) {\r\n $items = $items.filter(':a' + that._searchStyle() + '(' + normalizeToBase(keyCodeMap[e.keyCode]) + ')');\r\n } else {\r\n $items = $items.filter(':' + that._searchStyle() + '(' + keyCodeMap[e.keyCode] + ')');\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!$items.length) return;\r\n\r\n if (/(38|40)/.test(e.keyCode.toString(10))) {\r\n index = $items.index($items.find('a').filter(':focus').parent());\r\n first = $items.filter(selector).first().index();\r\n last = $items.filter(selector).last().index();\r\n next = $items.eq(index).nextAll(selector).eq(0).index();\r\n prev = $items.eq(index).prevAll(selector).eq(0).index();\r\n nextPrev = $items.eq(next).prevAll(selector).eq(0).index();\r\n\r\n if (that.options.liveSearch) {\r\n $items.each(function (i) {\r\n if (!$(this).hasClass('disabled')) {\r\n $(this).data('index', i);\r\n }\r\n });\r\n index = $items.index($items.filter('.active'));\r\n first = $items.first().data('index');\r\n last = $items.last().data('index');\r\n next = $items.eq(index).nextAll().eq(0).data('index');\r\n prev = $items.eq(index).prevAll().eq(0).data('index');\r\n nextPrev = $items.eq(next).prevAll().eq(0).data('index');\r\n }\r\n\r\n prevIndex = $this.data('prevIndex');\r\n\r\n if (e.keyCode == 38) {\r\n if (that.options.liveSearch) index--;\r\n if (index != nextPrev && index > prev) index = prev;\r\n if (index < first) index = first;\r\n if (index == prevIndex) index = last;\r\n } else if (e.keyCode == 40) {\r\n if (that.options.liveSearch) index++;\r\n if (index == -1) index = 0;\r\n if (index != nextPrev && index < next) index = next;\r\n if (index > last) index = last;\r\n if (index == prevIndex) index = first;\r\n }\r\n\r\n $this.data('prevIndex', index);\r\n\r\n if (!that.options.liveSearch) {\r\n $items.eq(index).children('a').focus();\r\n } else {\r\n e.preventDefault();\r\n if (!$this.hasClass('dropdown-toggle')) {\r\n $items.removeClass('active').eq(index).addClass('active').children('a').focus();\r\n $this.focus();\r\n }\r\n }\r\n\r\n } else if (!$this.is('input')) {\r\n var keyIndex = [],\r\n count,\r\n prevKey;\r\n\r\n $items.each(function () {\r\n if (!$(this).hasClass('disabled')) {\r\n if ($.trim($(this).children('a').text().toLowerCase()).substring(0, 1) == keyCodeMap[e.keyCode]) {\r\n keyIndex.push($(this).index());\r\n }\r\n }\r\n });\r\n\r\n count = $(document).data('keycount');\r\n count++;\r\n $(document).data('keycount', count);\r\n\r\n prevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1);\r\n\r\n if (prevKey != keyCodeMap[e.keyCode]) {\r\n count = 1;\r\n $(document).data('keycount', count);\r\n } else if (count >= keyIndex.length) {\r\n $(document).data('keycount', 0);\r\n if (count > keyIndex.length) count = 1;\r\n }\r\n\r\n $items.eq(keyIndex[count - 1]).children('a').focus();\r\n }\r\n\r\n // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\r\n if ((/(13|32)/.test(e.keyCode.toString(10)) || (/(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab)) && isActive) {\r\n if (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault();\r\n if (!that.options.liveSearch) {\r\n var elem = $(':focus');\r\n elem.click();\r\n // Bring back focus for multiselects\r\n elem.focus();\r\n // Prevent screen from scrolling if the user hit the spacebar\r\n e.preventDefault();\r\n // Fixes spacebar selection of dropdown items in FF & IE\r\n $(document).data('spaceSelect', true);\r\n } else if (!/(32)/.test(e.keyCode.toString(10))) {\r\n that.$menuInner.find('.active a').click();\r\n $this.focus();\r\n }\r\n $(document).data('keycount', 0);\r\n }\r\n\r\n if ((/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && (that.multiple || that.options.liveSearch)) || (/(27)/.test(e.keyCode.toString(10)) && !isActive)) {\r\n that.$menu.parent().removeClass('open');\r\n if (that.options.container) that.$newElement.removeClass('open');\r\n that.$button.focus();\r\n }\r\n },\r\n\r\n mobile: function () {\r\n this.$element.addClass('mobile-device');\r\n },\r\n\r\n refresh: function () {\r\n this.$lis = null;\r\n this.liObj = {};\r\n this.reloadLi();\r\n this.render();\r\n this.checkDisabled();\r\n this.liHeight(true);\r\n this.setStyle();\r\n this.setWidth();\r\n if (this.$lis) this.$searchbox.trigger('propertychange');\r\n\r\n this.$element.trigger('refreshed.bs.select');\r\n },\r\n\r\n hide: function () {\r\n this.$newElement.hide();\r\n },\r\n\r\n show: function () {\r\n this.$newElement.show();\r\n },\r\n\r\n remove: function () {\r\n this.$newElement.remove();\r\n this.$element.remove();\r\n },\r\n\r\n destroy: function () {\r\n this.$newElement.before(this.$element).remove();\r\n\r\n if (this.$bsContainer) {\r\n this.$bsContainer.remove();\r\n } else {\r\n this.$menu.remove();\r\n }\r\n\r\n this.$element\r\n .off('.bs.select')\r\n .removeData('selectpicker')\r\n .removeClass('bs-select-hidden selectpicker');\r\n }\r\n };\r\n\r\n // SELECTPICKER PLUGIN DEFINITION\r\n // ==============================\r\n function Plugin(option, event) {\r\n // get the args of the outer function..\r\n var args = arguments;\r\n // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\r\n // to get lost/corrupted in android 2.3 and IE9 #715 #775\r\n var _option = option,\r\n _event = event;\r\n [].shift.apply(args);\r\n\r\n var value;\r\n var chain = this.each(function () {\r\n var $this = $(this);\r\n if ($this.is('select')) {\r\n var data = $this.data('selectpicker'),\r\n options = typeof _option == 'object' && _option;\r\n\r\n if (!data) {\r\n var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options);\r\n config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), $this.data().template, options.template);\r\n $this.data('selectpicker', (data = new Selectpicker(this, config, _event)));\r\n } else if (options) {\r\n for (var i in options) {\r\n if (options.hasOwnProperty(i)) {\r\n data.options[i] = options[i];\r\n }\r\n }\r\n }\r\n\r\n if (typeof _option == 'string') {\r\n if (data[_option] instanceof Function) {\r\n value = data[_option].apply(data, args);\r\n } else {\r\n value = data.options[_option];\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (typeof value !== 'undefined') {\r\n //noinspection JSUnusedAssignment\r\n return value;\r\n } else {\r\n return chain;\r\n }\r\n }\r\n\r\n var old = $.fn.selectpicker;\r\n $.fn.selectpicker = Plugin;\r\n $.fn.selectpicker.Constructor = Selectpicker;\r\n\r\n // SELECTPICKER NO CONFLICT\r\n // ========================\r\n $.fn.selectpicker.noConflict = function () {\r\n $.fn.selectpicker = old;\r\n return this;\r\n };\r\n\r\n $(document)\r\n .data('keycount', 0)\r\n .on('keydown.bs.select', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input', Selectpicker.prototype.keydown)\r\n .on('focusin.modal', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n // SELECTPICKER DATA-API\r\n // =====================\r\n $(window).on('load.bs.select.data-api', function () {\r\n $('.selectpicker').each(function () {\r\n var $selectpicker = $(this);\r\n Plugin.call($selectpicker, $selectpicker.data());\r\n })\r\n });\r\n})(jQuery);\r\n\r\n\r\n}));\r\n","(function ($) {\r\n \"use strict\";\r\n\r\n\t/*----------------------------\r\n\t jQuery sparkline Chart\r\n\t------------------------------ */\r\n if($('.sparkline-bar-stats1')[0]) {\r\n $('.sparkline-bar-stats1').sparkline('html', {\r\n type: 'bar',\r\n height: 36,\r\n barWidth: 3,\r\n barColor: '#00c292',\r\n barSpacing: 2\r\n });\r\n }\r\n if($('.sparkline-bar-stats2')[0]) {\r\n $('.sparkline-bar-stats2').sparkline('html', {\r\n type: 'bar',\r\n height: 36,\r\n barWidth: 3,\r\n barColor: '#fb9678',\r\n barSpacing: 2\r\n });\r\n }\r\n if($('.sparkline-bar-stats3')[0]) {\r\n $('.sparkline-bar-stats3').sparkline('html', {\r\n type: 'bar',\r\n height: 36,\r\n barWidth: 3,\r\n barColor: '#01c0c8',\r\n barSpacing: 2\r\n });\r\n }\r\n if($('.sparkline-bar-stats4')[0]) {\r\n $('.sparkline-bar-stats4').sparkline('html', {\r\n type: 'bar',\r\n height: 36,\r\n barWidth: 3,\r\n barColor: '#ab8ce4',\r\n barSpacing: 2\r\n });\r\n }\r\n \r\n})(jQuery); ","/* Javascript plotting library for jQuery, version 0.8.3.\r\n\r\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\r\nLicensed under the MIT license.\r\n\r\n*/\r\n\r\n// first an inline dependency, jquery.colorhelpers.js, we inline it here\r\n// for convenience\r\n\r\n/* Plugin for jQuery for working with colors.\r\n *\r\n * Version 1.1.\r\n *\r\n * Inspiration from jQuery color animation plugin by John Resig.\r\n *\r\n * Released under the MIT license by Ole Laursen, October 2009.\r\n *\r\n * Examples:\r\n *\r\n * $.color.parse(\"#fff\").scale('rgb', 0.25).add('a', -0.5).toString()\r\n * var c = $.color.extract($(\"#mydiv\"), 'background-color');\r\n * console.log(c.r, c.g, c.b, c.a);\r\n * $.color.make(100, 50, 25, 0.4).toString() // returns \"rgba(100,50,25,0.4)\"\r\n *\r\n * Note that .scale() and .add() return the same modified object\r\n * instead of making a new one.\r\n *\r\n * V. 1.1: Fix error handling so e.g. parsing an empty string does\r\n * produce a color rather than just crashing.\r\n */\r\n(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i<c.length;++i)o[c.charAt(i)]+=d;return o.normalize()};o.scale=function(c,f){for(var i=0;i<c.length;++i)o[c.charAt(i)]*=f;return o.normalize()};o.toString=function(){if(o.a>=1){return\"rgb(\"+[o.r,o.g,o.b].join(\",\")+\")\"}else{return\"rgba(\"+[o.r,o.g,o.b,o.a].join(\",\")+\")\"}};o.normalize=function(){function clamp(min,value,max){return value<min?min:value>max?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=\"\"&&c!=\"transparent\")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),\"body\"));if(c==\"rgba(0, 0, 0, 0)\")c=\"transparent\";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name==\"transparent\")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);\r\n\r\n// the actual Flot code\r\n(function($) {\r\n\r\n\t// Cache the prototype hasOwnProperty for faster access\r\n\r\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\n // A shim to provide 'detach' to jQuery versions prior to 1.4. Using a DOM\r\n // operation produces the same effect as detach, i.e. removing the element\r\n // without touching its jQuery data.\r\n\r\n // Do not merge this into Flot 0.9, since it requires jQuery 1.4.4+.\r\n\r\n if (!$.fn.detach) {\r\n $.fn.detach = function() {\r\n return this.each(function() {\r\n if (this.parentNode) {\r\n this.parentNode.removeChild( this );\r\n }\r\n });\r\n };\r\n }\r\n\r\n\t///////////////////////////////////////////////////////////////////////////\r\n\t// The Canvas object is a wrapper around an HTML5 <canvas> tag.\r\n\t//\r\n\t// @constructor\r\n\t// @param {string} cls List of classes to apply to the canvas.\r\n\t// @param {element} container Element onto which to append the canvas.\r\n\t//\r\n\t// Requiring a container is a little iffy, but unfortunately canvas\r\n\t// operations don't work unless the canvas is attached to the DOM.\r\n\r\n\tfunction Canvas(cls, container) {\r\n\r\n\t\tvar element = container.children(\".\" + cls)[0];\r\n\r\n\t\tif (element == null) {\r\n\r\n\t\t\telement = document.createElement(\"canvas\");\r\n\t\t\telement.className = cls;\r\n\r\n\t\t\t$(element).css({ direction: \"ltr\", position: \"absolute\", left: 0, top: 0 })\r\n\t\t\t\t.appendTo(container);\r\n\r\n\t\t\t// If HTML5 Canvas isn't available, fall back to [Ex|Flash]canvas\r\n\r\n\t\t\tif (!element.getContext) {\r\n\t\t\t\tif (window.G_vmlCanvasManager) {\r\n\t\t\t\t\telement = window.G_vmlCanvasManager.initElement(element);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(\"Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.element = element;\r\n\r\n\t\tvar context = this.context = element.getContext(\"2d\");\r\n\r\n\t\t// Determine the screen's ratio of physical to device-independent\r\n\t\t// pixels. This is the ratio between the canvas width that the browser\r\n\t\t// advertises and the number of pixels actually present in that space.\r\n\r\n\t\t// The iPhone 4, for example, has a device-independent width of 320px,\r\n\t\t// but its screen is actually 640px wide. It therefore has a pixel\r\n\t\t// ratio of 2, while most normal devices have a ratio of 1.\r\n\r\n\t\tvar devicePixelRatio = window.devicePixelRatio || 1,\r\n\t\t\tbackingStoreRatio =\r\n\t\t\t\tcontext.webkitBackingStorePixelRatio ||\r\n\t\t\t\tcontext.mozBackingStorePixelRatio ||\r\n\t\t\t\tcontext.msBackingStorePixelRatio ||\r\n\t\t\t\tcontext.oBackingStorePixelRatio ||\r\n\t\t\t\tcontext.backingStorePixelRatio || 1;\r\n\r\n\t\tthis.pixelRatio = devicePixelRatio / backingStoreRatio;\r\n\r\n\t\t// Size the canvas to match the internal dimensions of its container\r\n\r\n\t\tthis.resize(container.width(), container.height());\r\n\r\n\t\t// Collection of HTML div layers for text overlaid onto the canvas\r\n\r\n\t\tthis.textContainer = null;\r\n\t\tthis.text = {};\r\n\r\n\t\t// Cache of text fragments and metrics, so we can avoid expensively\r\n\t\t// re-calculating them when the plot is re-rendered in a loop.\r\n\r\n\t\tthis._textCache = {};\r\n\t}\r\n\r\n\t// Resizes the canvas to the given dimensions.\r\n\t//\r\n\t// @param {number} width New width of the canvas, in pixels.\r\n\t// @param {number} width New height of the canvas, in pixels.\r\n\r\n\tCanvas.prototype.resize = function(width, height) {\r\n\r\n\t\tif (width <= 0 || height <= 0) {\r\n\t\t\tthrow new Error(\"Invalid dimensions for plot, width = \" + width + \", height = \" + height);\r\n\t\t}\r\n\r\n\t\tvar element = this.element,\r\n\t\t\tcontext = this.context,\r\n\t\t\tpixelRatio = this.pixelRatio;\r\n\r\n\t\t// Resize the canvas, increasing its density based on the display's\r\n\t\t// pixel ratio; basically giving it more pixels without increasing the\r\n\t\t// size of its element, to take advantage of the fact that retina\r\n\t\t// displays have that many more pixels in the same advertised space.\r\n\r\n\t\t// Resizing should reset the state (excanvas seems to be buggy though)\r\n\r\n\t\tif (this.width != width) {\r\n\t\t\telement.width = width * pixelRatio;\r\n\t\t\telement.style.width = width + \"px\";\r\n\t\t\tthis.width = width;\r\n\t\t}\r\n\r\n\t\tif (this.height != height) {\r\n\t\t\telement.height = height * pixelRatio;\r\n\t\t\telement.style.height = height + \"px\";\r\n\t\t\tthis.height = height;\r\n\t\t}\r\n\r\n\t\t// Save the context, so we can reset in case we get replotted. The\r\n\t\t// restore ensure that we're really back at the initial state, and\r\n\t\t// should be safe even if we haven't saved the initial state yet.\r\n\r\n\t\tcontext.restore();\r\n\t\tcontext.save();\r\n\r\n\t\t// Scale the coordinate space to match the display density; so even though we\r\n\t\t// may have twice as many pixels, we still want lines and other drawing to\r\n\t\t// appear at the same size; the extra pixels will just make them crisper.\r\n\r\n\t\tcontext.scale(pixelRatio, pixelRatio);\r\n\t};\r\n\r\n\t// Clears the entire canvas area, not including any overlaid HTML text\r\n\r\n\tCanvas.prototype.clear = function() {\r\n\t\tthis.context.clearRect(0, 0, this.width, this.height);\r\n\t};\r\n\r\n\t// Finishes rendering the canvas, including managing the text overlay.\r\n\r\n\tCanvas.prototype.render = function() {\r\n\r\n\t\tvar cache = this._textCache;\r\n\r\n\t\t// For each text layer, add elements marked as active that haven't\r\n\t\t// already been rendered, and remove those that are no longer active.\r\n\r\n\t\tfor (var layerKey in cache) {\r\n\t\t\tif (hasOwnProperty.call(cache, layerKey)) {\r\n\r\n\t\t\t\tvar layer = this.getTextLayer(layerKey),\r\n\t\t\t\t\tlayerCache = cache[layerKey];\r\n\r\n\t\t\t\tlayer.hide();\r\n\r\n\t\t\t\tfor (var styleKey in layerCache) {\r\n\t\t\t\t\tif (hasOwnProperty.call(layerCache, styleKey)) {\r\n\t\t\t\t\t\tvar styleCache = layerCache[styleKey];\r\n\t\t\t\t\t\tfor (var key in styleCache) {\r\n\t\t\t\t\t\t\tif (hasOwnProperty.call(styleCache, key)) {\r\n\r\n\t\t\t\t\t\t\t\tvar positions = styleCache[key].positions;\r\n\r\n\t\t\t\t\t\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\r\n\t\t\t\t\t\t\t\t\tif (position.active) {\r\n\t\t\t\t\t\t\t\t\t\tif (!position.rendered) {\r\n\t\t\t\t\t\t\t\t\t\t\tlayer.append(position.element);\r\n\t\t\t\t\t\t\t\t\t\t\tposition.rendered = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tpositions.splice(i--, 1);\r\n\t\t\t\t\t\t\t\t\t\tif (position.rendered) {\r\n\t\t\t\t\t\t\t\t\t\t\tposition.element.detach();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (positions.length == 0) {\r\n\t\t\t\t\t\t\t\t\tdelete styleCache[key];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlayer.show();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Creates (if necessary) and returns the text overlay container.\r\n\t//\r\n\t// @param {string} classes String of space-separated CSS classes used to\r\n\t// uniquely identify the text layer.\r\n\t// @return {object} The jQuery-wrapped text-layer div.\r\n\r\n\tCanvas.prototype.getTextLayer = function(classes) {\r\n\r\n\t\tvar layer = this.text[classes];\r\n\r\n\t\t// Create the text layer if it doesn't exist\r\n\r\n\t\tif (layer == null) {\r\n\r\n\t\t\t// Create the text layer container, if it doesn't exist\r\n\r\n\t\t\tif (this.textContainer == null) {\r\n\t\t\t\tthis.textContainer = $(\"<div class='flot-text'></div>\")\r\n\t\t\t\t\t.css({\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\tbottom: 0,\r\n\t\t\t\t\t\tright: 0,\r\n\t\t\t\t\t\t'font-size': \"smaller\",\r\n\t\t\t\t\t\tcolor: \"#545454\"\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.insertAfter(this.element);\r\n\t\t\t}\r\n\r\n\t\t\tlayer = this.text[classes] = $(\"<div></div>\")\r\n\t\t\t\t.addClass(classes)\r\n\t\t\t\t.css({\r\n\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbottom: 0,\r\n\t\t\t\t\tright: 0\r\n\t\t\t\t})\r\n\t\t\t\t.appendTo(this.textContainer);\r\n\t\t}\r\n\r\n\t\treturn layer;\r\n\t};\r\n\r\n\t// Creates (if necessary) and returns a text info object.\r\n\t//\r\n\t// The object looks like this:\r\n\t//\r\n\t// {\r\n\t// width: Width of the text's wrapper div.\r\n\t// height: Height of the text's wrapper div.\r\n\t// element: The jQuery-wrapped HTML div containing the text.\r\n\t// positions: Array of positions at which this text is drawn.\r\n\t// }\r\n\t//\r\n\t// The positions array contains objects that look like this:\r\n\t//\r\n\t// {\r\n\t// active: Flag indicating whether the text should be visible.\r\n\t// rendered: Flag indicating whether the text is currently visible.\r\n\t// element: The jQuery-wrapped HTML div containing the text.\r\n\t// x: X coordinate at which to draw the text.\r\n\t// y: Y coordinate at which to draw the text.\r\n\t// }\r\n\t//\r\n\t// Each position after the first receives a clone of the original element.\r\n\t//\r\n\t// The idea is that that the width, height, and general 'identity' of the\r\n\t// text is constant no matter where it is placed; the placements are a\r\n\t// secondary property.\r\n\t//\r\n\t// Canvas maintains a cache of recently-used text info objects; getTextInfo\r\n\t// either returns the cached element or creates a new entry.\r\n\t//\r\n\t// @param {string} layer A string of space-separated CSS classes uniquely\r\n\t// identifying the layer containing this text.\r\n\t// @param {string} text Text string to retrieve info for.\r\n\t// @param {(string|object)=} font Either a string of space-separated CSS\r\n\t// classes or a font-spec object, defining the text's font and style.\r\n\t// @param {number=} angle Angle at which to rotate the text, in degrees.\r\n\t// Angle is currently unused, it will be implemented in the future.\r\n\t// @param {number=} width Maximum width of the text before it wraps.\r\n\t// @return {object} a text info object.\r\n\r\n\tCanvas.prototype.getTextInfo = function(layer, text, font, angle, width) {\r\n\r\n\t\tvar textStyle, layerCache, styleCache, info;\r\n\r\n\t\t// Cast the value to a string, in case we were given a number or such\r\n\r\n\t\ttext = \"\" + text;\r\n\r\n\t\t// If the font is a font-spec object, generate a CSS font definition\r\n\r\n\t\tif (typeof font === \"object\") {\r\n\t\t\ttextStyle = font.style + \" \" + font.variant + \" \" + font.weight + \" \" + font.size + \"px/\" + font.lineHeight + \"px \" + font.family;\r\n\t\t} else {\r\n\t\t\ttextStyle = font;\r\n\t\t}\r\n\r\n\t\t// Retrieve (or create) the cache for the text's layer and styles\r\n\r\n\t\tlayerCache = this._textCache[layer];\r\n\r\n\t\tif (layerCache == null) {\r\n\t\t\tlayerCache = this._textCache[layer] = {};\r\n\t\t}\r\n\r\n\t\tstyleCache = layerCache[textStyle];\r\n\r\n\t\tif (styleCache == null) {\r\n\t\t\tstyleCache = layerCache[textStyle] = {};\r\n\t\t}\r\n\r\n\t\tinfo = styleCache[text];\r\n\r\n\t\t// If we can't find a matching element in our cache, create a new one\r\n\r\n\t\tif (info == null) {\r\n\r\n\t\t\tvar element = $(\"<div></div>\").html(text)\r\n\t\t\t\t.css({\r\n\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t'max-width': width,\r\n\t\t\t\t\ttop: -9999\r\n\t\t\t\t})\r\n\t\t\t\t.appendTo(this.getTextLayer(layer));\r\n\r\n\t\t\tif (typeof font === \"object\") {\r\n\t\t\t\telement.css({\r\n\t\t\t\t\tfont: textStyle,\r\n\t\t\t\t\tcolor: font.color\r\n\t\t\t\t});\r\n\t\t\t} else if (typeof font === \"string\") {\r\n\t\t\t\telement.addClass(font);\r\n\t\t\t}\r\n\r\n\t\t\tinfo = styleCache[text] = {\r\n\t\t\t\twidth: element.outerWidth(true),\r\n\t\t\t\theight: element.outerHeight(true),\r\n\t\t\t\telement: element,\r\n\t\t\t\tpositions: []\r\n\t\t\t};\r\n\r\n\t\t\telement.detach();\r\n\t\t}\r\n\r\n\t\treturn info;\r\n\t};\r\n\r\n\t// Adds a text string to the canvas text overlay.\r\n\t//\r\n\t// The text isn't drawn immediately; it is marked as rendering, which will\r\n\t// result in its addition to the canvas on the next render pass.\r\n\t//\r\n\t// @param {string} layer A string of space-separated CSS classes uniquely\r\n\t// identifying the layer containing this text.\r\n\t// @param {number} x X coordinate at which to draw the text.\r\n\t// @param {number} y Y coordinate at which to draw the text.\r\n\t// @param {string} text Text string to draw.\r\n\t// @param {(string|object)=} font Either a string of space-separated CSS\r\n\t// classes or a font-spec object, defining the text's font and style.\r\n\t// @param {number=} angle Angle at which to rotate the text, in degrees.\r\n\t// Angle is currently unused, it will be implemented in the future.\r\n\t// @param {number=} width Maximum width of the text before it wraps.\r\n\t// @param {string=} halign Horizontal alignment of the text; either \"left\",\r\n\t// \"center\" or \"right\".\r\n\t// @param {string=} valign Vertical alignment of the text; either \"top\",\r\n\t// \"middle\" or \"bottom\".\r\n\r\n\tCanvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) {\r\n\r\n\t\tvar info = this.getTextInfo(layer, text, font, angle, width),\r\n\t\t\tpositions = info.positions;\r\n\r\n\t\t// Tweak the div's position to match the text's alignment\r\n\r\n\t\tif (halign == \"center\") {\r\n\t\t\tx -= info.width / 2;\r\n\t\t} else if (halign == \"right\") {\r\n\t\t\tx -= info.width;\r\n\t\t}\r\n\r\n\t\tif (valign == \"middle\") {\r\n\t\t\ty -= info.height / 2;\r\n\t\t} else if (valign == \"bottom\") {\r\n\t\t\ty -= info.height;\r\n\t\t}\r\n\r\n\t\t// Determine whether this text already exists at this position.\r\n\t\t// If so, mark it for inclusion in the next render pass.\r\n\r\n\t\tfor (var i = 0, position; position = positions[i]; i++) {\r\n\t\t\tif (position.x == x && position.y == y) {\r\n\t\t\t\tposition.active = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If the text doesn't exist at this position, create a new entry\r\n\r\n\t\t// For the very first position we'll re-use the original element,\r\n\t\t// while for subsequent ones we'll clone it.\r\n\r\n\t\tposition = {\r\n\t\t\tactive: true,\r\n\t\t\trendered: false,\r\n\t\t\telement: positions.length ? info.element.clone() : info.element,\r\n\t\t\tx: x,\r\n\t\t\ty: y\r\n\t\t};\r\n\r\n\t\tpositions.push(position);\r\n\r\n\t\t// Move the element to its final position within the container\r\n\r\n\t\tposition.element.css({\r\n\t\t\ttop: Math.round(y),\r\n\t\t\tleft: Math.round(x),\r\n\t\t\t'text-align': halign\t// In case the text wraps\r\n\t\t});\r\n\t};\r\n\r\n\t// Removes one or more text strings from the canvas text overlay.\r\n\t//\r\n\t// If no parameters are given, all text within the layer is removed.\r\n\t//\r\n\t// Note that the text is not immediately removed; it is simply marked as\r\n\t// inactive, which will result in its removal on the next render pass.\r\n\t// This avoids the performance penalty for 'clear and redraw' behavior,\r\n\t// where we potentially get rid of all text on a layer, but will likely\r\n\t// add back most or all of it later, as when redrawing axes, for example.\r\n\t//\r\n\t// @param {string} layer A string of space-separated CSS classes uniquely\r\n\t// identifying the layer containing this text.\r\n\t// @param {number=} x X coordinate of the text.\r\n\t// @param {number=} y Y coordinate of the text.\r\n\t// @param {string=} text Text string to remove.\r\n\t// @param {(string|object)=} font Either a string of space-separated CSS\r\n\t// classes or a font-spec object, defining the text's font and style.\r\n\t// @param {number=} angle Angle at which the text is rotated, in degrees.\r\n\t// Angle is currently unused, it will be implemented in the future.\r\n\r\n\tCanvas.prototype.removeText = function(layer, x, y, text, font, angle) {\r\n\t\tif (text == null) {\r\n\t\t\tvar layerCache = this._textCache[layer];\r\n\t\t\tif (layerCache != null) {\r\n\t\t\t\tfor (var styleKey in layerCache) {\r\n\t\t\t\t\tif (hasOwnProperty.call(layerCache, styleKey)) {\r\n\t\t\t\t\t\tvar styleCache = layerCache[styleKey];\r\n\t\t\t\t\t\tfor (var key in styleCache) {\r\n\t\t\t\t\t\t\tif (hasOwnProperty.call(styleCache, key)) {\r\n\t\t\t\t\t\t\t\tvar positions = styleCache[key].positions;\r\n\t\t\t\t\t\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\r\n\t\t\t\t\t\t\t\t\tposition.active = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar positions = this.getTextInfo(layer, text, font, angle).positions;\r\n\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\r\n\t\t\t\tif (position.x == x && position.y == y) {\r\n\t\t\t\t\tposition.active = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t///////////////////////////////////////////////////////////////////////////\r\n\t// The top-level container for the entire plot.\r\n\r\n function Plot(placeholder, data_, options_, plugins) {\r\n // data is on the form:\r\n // [ series1, series2 ... ]\r\n // where series is either just the data as [ [x1, y1], [x2, y2], ... ]\r\n // or { data: [ [x1, y1], [x2, y2], ... ], label: \"some label\", ... }\r\n\r\n var series = [],\r\n options = {\r\n // the color theme used for graphs\r\n colors: [\"#edc240\", \"#afd8f8\", \"#cb4b4b\", \"#4da74d\", \"#9440ed\"],\r\n legend: {\r\n show: true,\r\n noColumns: 1, // number of colums in legend table\r\n labelFormatter: null, // fn: string -> string\r\n labelBoxBorderColor: \"#ccc\", // border color for the little label boxes\r\n container: null, // container (as jQuery object) to put legend in, null means default on top of graph\r\n position: \"ne\", // position of default legend container within plot\r\n margin: 5, // distance from grid edge to default legend container within plot\r\n backgroundColor: null, // null means auto-detect\r\n backgroundOpacity: 0.85, // set to 0 to avoid background\r\n sorted: null // default to no legend sorting\r\n },\r\n xaxis: {\r\n show: null, // null = auto-detect, true = always, false = never\r\n position: \"bottom\", // or \"top\"\r\n mode: null, // null or \"time\"\r\n font: null, // null (derived from CSS in placeholder) or object like { size: 11, lineHeight: 13, style: \"italic\", weight: \"bold\", family: \"sans-serif\", variant: \"small-caps\" }\r\n color: null, // base color, labels, ticks\r\n tickColor: null, // possibly different color of ticks, e.g. \"rgba(0,0,0,0.15)\"\r\n transform: null, // null or f: number -> number to transform axis\r\n inverseTransform: null, // if transform is set, this should be the inverse function\r\n min: null, // min. value to show, null means set automatically\r\n max: null, // max. value to show, null means set automatically\r\n autoscaleMargin: null, // margin in % to add if auto-setting min/max\r\n ticks: null, // either [1, 3] or [[1, \"a\"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks\r\n tickFormatter: null, // fn: number -> string\r\n labelWidth: null, // size of tick labels in pixels\r\n labelHeight: null,\r\n reserveSpace: null, // whether to reserve space even if axis isn't shown\r\n tickLength: null, // size in pixels of ticks, or \"full\" for whole line\r\n alignTicksWithAxis: null, // axis number or null for no sync\r\n tickDecimals: null, // no. of decimals, null means auto\r\n tickSize: null, // number or [number, \"unit\"]\r\n minTickSize: null // number or [number, \"unit\"]\r\n },\r\n yaxis: {\r\n autoscaleMargin: 0.02,\r\n position: \"left\" // or \"right\"\r\n },\r\n xaxes: [],\r\n yaxes: [],\r\n series: {\r\n points: {\r\n show: false,\r\n radius: 3,\r\n lineWidth: 2, // in pixels\r\n fill: true,\r\n fillColor: \"#ffffff\",\r\n symbol: \"circle\" // or callback\r\n },\r\n lines: {\r\n // we don't put in show: false so we can see\r\n // whether lines were actively disabled\r\n lineWidth: 2, // in pixels\r\n fill: false,\r\n fillColor: null,\r\n steps: false\r\n // Omit 'zero', so we can later default its value to\r\n // match that of the 'fill' option.\r\n },\r\n bars: {\r\n show: false,\r\n lineWidth: 2, // in pixels\r\n barWidth: 1, // in units of the x axis\r\n fill: true,\r\n fillColor: null,\r\n align: \"left\", // \"left\", \"right\", or \"center\"\r\n horizontal: false,\r\n zero: true\r\n },\r\n shadowSize: 3,\r\n highlightColor: null\r\n },\r\n grid: {\r\n show: true,\r\n aboveData: false,\r\n color: \"#545454\", // primary color used for outline and labels\r\n backgroundColor: null, // null for transparent, else color\r\n borderColor: null, // set if different from the grid color\r\n tickColor: null, // color for the ticks, e.g. \"rgba(0,0,0,0.15)\"\r\n margin: 0, // distance from the canvas edge to the grid\r\n labelMargin: 5, // in pixels\r\n axisMargin: 8, // in pixels\r\n borderWidth: 2, // in pixels\r\n minBorderMargin: null, // in pixels, null means taken from points radius\r\n markings: null, // array of ranges or fn: axes -> array of ranges\r\n markingsColor: \"#f4f4f4\",\r\n markingsLineWidth: 2,\r\n // interactive stuff\r\n clickable: false,\r\n hoverable: false,\r\n autoHighlight: true, // highlight in case mouse is near\r\n mouseActiveRadius: 10 // how far the mouse can be away to activate an item\r\n },\r\n interaction: {\r\n redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow\r\n },\r\n hooks: {}\r\n },\r\n surface = null, // the canvas for the plot itself\r\n overlay = null, // canvas for interactive stuff on top of plot\r\n eventHolder = null, // jQuery object that events should be bound to\r\n ctx = null, octx = null,\r\n xaxes = [], yaxes = [],\r\n plotOffset = { left: 0, right: 0, top: 0, bottom: 0},\r\n plotWidth = 0, plotHeight = 0,\r\n hooks = {\r\n processOptions: [],\r\n processRawData: [],\r\n processDatapoints: [],\r\n processOffset: [],\r\n drawBackground: [],\r\n drawSeries: [],\r\n draw: [],\r\n bindEvents: [],\r\n drawOverlay: [],\r\n shutdown: []\r\n },\r\n plot = this;\r\n\r\n // public functions\r\n plot.setData = setData;\r\n plot.setupGrid = setupGrid;\r\n plot.draw = draw;\r\n plot.getPlaceholder = function() { return placeholder; };\r\n plot.getCanvas = function() { return surface.element; };\r\n plot.getPlotOffset = function() { return plotOffset; };\r\n plot.width = function () { return plotWidth; };\r\n plot.height = function () { return plotHeight; };\r\n plot.offset = function () {\r\n var o = eventHolder.offset();\r\n o.left += plotOffset.left;\r\n o.top += plotOffset.top;\r\n return o;\r\n };\r\n plot.getData = function () { return series; };\r\n plot.getAxes = function () {\r\n var res = {}, i;\r\n $.each(xaxes.concat(yaxes), function (_, axis) {\r\n if (axis)\r\n res[axis.direction + (axis.n != 1 ? axis.n : \"\") + \"axis\"] = axis;\r\n });\r\n return res;\r\n };\r\n plot.getXAxes = function () { return xaxes; };\r\n plot.getYAxes = function () { return yaxes; };\r\n plot.c2p = canvasToAxisCoords;\r\n plot.p2c = axisToCanvasCoords;\r\n plot.getOptions = function () { return options; };\r\n plot.highlight = highlight;\r\n plot.unhighlight = unhighlight;\r\n plot.triggerRedrawOverlay = triggerRedrawOverlay;\r\n plot.pointOffset = function(point) {\r\n return {\r\n left: parseInt(xaxes[axisNumber(point, \"x\") - 1].p2c(+point.x) + plotOffset.left, 10),\r\n top: parseInt(yaxes[axisNumber(point, \"y\") - 1].p2c(+point.y) + plotOffset.top, 10)\r\n };\r\n };\r\n plot.shutdown = shutdown;\r\n plot.destroy = function () {\r\n shutdown();\r\n placeholder.removeData(\"plot\").empty();\r\n\r\n series = [];\r\n options = null;\r\n surface = null;\r\n overlay = null;\r\n eventHolder = null;\r\n ctx = null;\r\n octx = null;\r\n xaxes = [];\r\n yaxes = [];\r\n hooks = null;\r\n highlights = [];\r\n plot = null;\r\n };\r\n plot.resize = function () {\r\n \tvar width = placeholder.width(),\r\n \t\theight = placeholder.height();\r\n surface.resize(width, height);\r\n overlay.resize(width, height);\r\n };\r\n\r\n // public attributes\r\n plot.hooks = hooks;\r\n\r\n // initialize\r\n initPlugins(plot);\r\n parseOptions(options_);\r\n setupCanvases();\r\n setData(data_);\r\n setupGrid();\r\n draw();\r\n bindEvents();\r\n\r\n\r\n function executeHooks(hook, args) {\r\n args = [plot].concat(args);\r\n for (var i = 0; i < hook.length; ++i)\r\n hook[i].apply(this, args);\r\n }\r\n\r\n function initPlugins() {\r\n\r\n // References to key classes, allowing plugins to modify them\r\n\r\n var classes = {\r\n Canvas: Canvas\r\n };\r\n\r\n for (var i = 0; i < plugins.length; ++i) {\r\n var p = plugins[i];\r\n p.init(plot, classes);\r\n if (p.options)\r\n $.extend(true, options, p.options);\r\n }\r\n }\r\n\r\n function parseOptions(opts) {\r\n\r\n $.extend(true, options, opts);\r\n\r\n // $.extend merges arrays, rather than replacing them. When less\r\n // colors are provided than the size of the default palette, we\r\n // end up with those colors plus the remaining defaults, which is\r\n // not expected behavior; avoid it by replacing them here.\r\n\r\n if (opts && opts.colors) {\r\n \toptions.colors = opts.colors;\r\n }\r\n\r\n if (options.xaxis.color == null)\r\n options.xaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString();\r\n if (options.yaxis.color == null)\r\n options.yaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString();\r\n\r\n if (options.xaxis.tickColor == null) // grid.tickColor for back-compatibility\r\n options.xaxis.tickColor = options.grid.tickColor || options.xaxis.color;\r\n if (options.yaxis.tickColor == null) // grid.tickColor for back-compatibility\r\n options.yaxis.tickColor = options.grid.tickColor || options.yaxis.color;\r\n\r\n if (options.grid.borderColor == null)\r\n options.grid.borderColor = options.grid.color;\r\n if (options.grid.tickColor == null)\r\n options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString();\r\n\r\n // Fill in defaults for axis options, including any unspecified\r\n // font-spec fields, if a font-spec was provided.\r\n\r\n // If no x/y axis options were provided, create one of each anyway,\r\n // since the rest of the code assumes that they exist.\r\n\r\n var i, axisOptions, axisCount,\r\n fontSize = placeholder.css(\"font-size\"),\r\n fontSizeDefault = fontSize ? +fontSize.replace(\"px\", \"\") : 13,\r\n fontDefaults = {\r\n style: placeholder.css(\"font-style\"),\r\n size: Math.round(0.8 * fontSizeDefault),\r\n variant: placeholder.css(\"font-variant\"),\r\n weight: placeholder.css(\"font-weight\"),\r\n family: placeholder.css(\"font-family\")\r\n };\r\n\r\n axisCount = options.xaxes.length || 1;\r\n for (i = 0; i < axisCount; ++i) {\r\n\r\n axisOptions = options.xaxes[i];\r\n if (axisOptions && !axisOptions.tickColor) {\r\n axisOptions.tickColor = axisOptions.color;\r\n }\r\n\r\n axisOptions = $.extend(true, {}, options.xaxis, axisOptions);\r\n options.xaxes[i] = axisOptions;\r\n\r\n if (axisOptions.font) {\r\n axisOptions.font = $.extend({}, fontDefaults, axisOptions.font);\r\n if (!axisOptions.font.color) {\r\n axisOptions.font.color = axisOptions.color;\r\n }\r\n if (!axisOptions.font.lineHeight) {\r\n axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15);\r\n }\r\n }\r\n }\r\n\r\n axisCount = options.yaxes.length || 1;\r\n for (i = 0; i < axisCount; ++i) {\r\n\r\n axisOptions = options.yaxes[i];\r\n if (axisOptions && !axisOptions.tickColor) {\r\n axisOptions.tickColor = axisOptions.color;\r\n }\r\n\r\n axisOptions = $.extend(true, {}, options.yaxis, axisOptions);\r\n options.yaxes[i] = axisOptions;\r\n\r\n if (axisOptions.font) {\r\n axisOptions.font = $.extend({}, fontDefaults, axisOptions.font);\r\n if (!axisOptions.font.color) {\r\n axisOptions.font.color = axisOptions.color;\r\n }\r\n if (!axisOptions.font.lineHeight) {\r\n axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15);\r\n }\r\n }\r\n }\r\n\r\n // backwards compatibility, to be removed in future\r\n if (options.xaxis.noTicks && options.xaxis.ticks == null)\r\n options.xaxis.ticks = options.xaxis.noTicks;\r\n if (options.yaxis.noTicks && options.yaxis.ticks == null)\r\n options.yaxis.ticks = options.yaxis.noTicks;\r\n if (options.x2axis) {\r\n options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);\r\n options.xaxes[1].position = \"top\";\r\n // Override the inherit to allow the axis to auto-scale\r\n if (options.x2axis.min == null) {\r\n options.xaxes[1].min = null;\r\n }\r\n if (options.x2axis.max == null) {\r\n options.xaxes[1].max = null;\r\n }\r\n }\r\n if (options.y2axis) {\r\n options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);\r\n options.yaxes[1].position = \"right\";\r\n // Override the inherit to allow the axis to auto-scale\r\n if (options.y2axis.min == null) {\r\n options.yaxes[1].min = null;\r\n }\r\n if (options.y2axis.max == null) {\r\n options.yaxes[1].max = null;\r\n }\r\n }\r\n if (options.grid.coloredAreas)\r\n options.grid.markings = options.grid.coloredAreas;\r\n if (options.grid.coloredAreasColor)\r\n options.grid.markingsColor = options.grid.coloredAreasColor;\r\n if (options.lines)\r\n $.extend(true, options.series.lines, options.lines);\r\n if (options.points)\r\n $.extend(true, options.series.points, options.points);\r\n if (options.bars)\r\n $.extend(true, options.series.bars, options.bars);\r\n if (options.shadowSize != null)\r\n options.series.shadowSize = options.shadowSize;\r\n if (options.highlightColor != null)\r\n options.series.highlightColor = options.highlightColor;\r\n\r\n // save options on axes for future reference\r\n for (i = 0; i < options.xaxes.length; ++i)\r\n getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i];\r\n for (i = 0; i < options.yaxes.length; ++i)\r\n getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i];\r\n\r\n // add hooks from options\r\n for (var n in hooks)\r\n if (options.hooks[n] && options.hooks[n].length)\r\n hooks[n] = hooks[n].concat(options.hooks[n]);\r\n\r\n executeHooks(hooks.processOptions, [options]);\r\n }\r\n\r\n function setData(d) {\r\n series = parseData(d);\r\n fillInSeriesOptions();\r\n processData();\r\n }\r\n\r\n function parseData(d) {\r\n var res = [];\r\n for (var i = 0; i < d.length; ++i) {\r\n var s = $.extend(true, {}, options.series);\r\n\r\n if (d[i].data != null) {\r\n s.data = d[i].data; // move the data instead of deep-copy\r\n delete d[i].data;\r\n\r\n $.extend(true, s, d[i]);\r\n\r\n d[i].data = s.data;\r\n }\r\n else\r\n s.data = d[i];\r\n res.push(s);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n function axisNumber(obj, coord) {\r\n var a = obj[coord + \"axis\"];\r\n if (typeof a == \"object\") // if we got a real axis, extract number\r\n a = a.n;\r\n if (typeof a != \"number\")\r\n a = 1; // default to first axis\r\n return a;\r\n }\r\n\r\n function allAxes() {\r\n // return flat array without annoying null entries\r\n return $.grep(xaxes.concat(yaxes), function (a) { return a; });\r\n }\r\n\r\n function canvasToAxisCoords(pos) {\r\n // return an object with x/y corresponding to all used axes\r\n var res = {}, i, axis;\r\n for (i = 0; i < xaxes.length; ++i) {\r\n axis = xaxes[i];\r\n if (axis && axis.used)\r\n res[\"x\" + axis.n] = axis.c2p(pos.left);\r\n }\r\n\r\n for (i = 0; i < yaxes.length; ++i) {\r\n axis = yaxes[i];\r\n if (axis && axis.used)\r\n res[\"y\" + axis.n] = axis.c2p(pos.top);\r\n }\r\n\r\n if (res.x1 !== undefined)\r\n res.x = res.x1;\r\n if (res.y1 !== undefined)\r\n res.y = res.y1;\r\n\r\n return res;\r\n }\r\n\r\n function axisToCanvasCoords(pos) {\r\n // get canvas coords from the first pair of x/y found in pos\r\n var res = {}, i, axis, key;\r\n\r\n for (i = 0; i < xaxes.length; ++i) {\r\n axis = xaxes[i];\r\n if (axis && axis.used) {\r\n key = \"x\" + axis.n;\r\n if (pos[key] == null && axis.n == 1)\r\n key = \"x\";\r\n\r\n if (pos[key] != null) {\r\n res.left = axis.p2c(pos[key]);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (i = 0; i < yaxes.length; ++i) {\r\n axis = yaxes[i];\r\n if (axis && axis.used) {\r\n key = \"y\" + axis.n;\r\n if (pos[key] == null && axis.n == 1)\r\n key = \"y\";\r\n\r\n if (pos[key] != null) {\r\n res.top = axis.p2c(pos[key]);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n function getOrCreateAxis(axes, number) {\r\n if (!axes[number - 1])\r\n axes[number - 1] = {\r\n n: number, // save the number for future reference\r\n direction: axes == xaxes ? \"x\" : \"y\",\r\n options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis)\r\n };\r\n\r\n return axes[number - 1];\r\n }\r\n\r\n function fillInSeriesOptions() {\r\n\r\n var neededColors = series.length, maxIndex = -1, i;\r\n\r\n // Subtract the number of series that already have fixed colors or\r\n // color indexes from the number that we still need to generate.\r\n\r\n for (i = 0; i < series.length; ++i) {\r\n var sc = series[i].color;\r\n if (sc != null) {\r\n neededColors--;\r\n if (typeof sc == \"number\" && sc > maxIndex) {\r\n maxIndex = sc;\r\n }\r\n }\r\n }\r\n\r\n // If any of the series have fixed color indexes, then we need to\r\n // generate at least as many colors as the highest index.\r\n\r\n if (neededColors <= maxIndex) {\r\n neededColors = maxIndex + 1;\r\n }\r\n\r\n // Generate all the colors, using first the option colors and then\r\n // variations on those colors once they're exhausted.\r\n\r\n var c, colors = [], colorPool = options.colors,\r\n colorPoolSize = colorPool.length, variation = 0;\r\n\r\n for (i = 0; i < neededColors; i++) {\r\n\r\n c = $.color.parse(colorPool[i % colorPoolSize] || \"#666\");\r\n\r\n // Each time we exhaust the colors in the pool we adjust\r\n // a scaling factor used to produce more variations on\r\n // those colors. The factor alternates negative/positive\r\n // to produce lighter/darker colors.\r\n\r\n // Reset the variation after every few cycles, or else\r\n // it will end up producing only white or black colors.\r\n\r\n if (i % colorPoolSize == 0 && i) {\r\n if (variation >= 0) {\r\n if (variation < 0.5) {\r\n variation = -variation - 0.2;\r\n } else variation = 0;\r\n } else variation = -variation;\r\n }\r\n\r\n colors[i] = c.scale('rgb', 1 + variation);\r\n }\r\n\r\n // Finalize the series options, filling in their colors\r\n\r\n var colori = 0, s;\r\n for (i = 0; i < series.length; ++i) {\r\n s = series[i];\r\n\r\n // assign colors\r\n if (s.color == null) {\r\n s.color = colors[colori].toString();\r\n ++colori;\r\n }\r\n else if (typeof s.color == \"number\")\r\n s.color = colors[s.color].toString();\r\n\r\n // turn on lines automatically in case nothing is set\r\n if (s.lines.show == null) {\r\n var v, show = true;\r\n for (v in s)\r\n if (s[v] && s[v].show) {\r\n show = false;\r\n break;\r\n }\r\n if (show)\r\n s.lines.show = true;\r\n }\r\n\r\n // If nothing was provided for lines.zero, default it to match\r\n // lines.fill, since areas by default should extend to zero.\r\n\r\n if (s.lines.zero == null) {\r\n s.lines.zero = !!s.lines.fill;\r\n }\r\n\r\n // setup axes\r\n s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, \"x\"));\r\n s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, \"y\"));\r\n }\r\n }\r\n\r\n function processData() {\r\n var topSentry = Number.POSITIVE_INFINITY,\r\n bottomSentry = Number.NEGATIVE_INFINITY,\r\n fakeInfinity = Number.MAX_VALUE,\r\n i, j, k, m, length,\r\n s, points, ps, x, y, axis, val, f, p,\r\n data, format;\r\n\r\n function updateAxis(axis, min, max) {\r\n if (min < axis.datamin && min != -fakeInfinity)\r\n axis.datamin = min;\r\n if (max > axis.datamax && max != fakeInfinity)\r\n axis.datamax = max;\r\n }\r\n\r\n $.each(allAxes(), function (_, axis) {\r\n // init axis\r\n axis.datamin = topSentry;\r\n axis.datamax = bottomSentry;\r\n axis.used = false;\r\n });\r\n\r\n for (i = 0; i < series.length; ++i) {\r\n s = series[i];\r\n s.datapoints = { points: [] };\r\n\r\n executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);\r\n }\r\n\r\n // first pass: clean and copy data\r\n for (i = 0; i < series.length; ++i) {\r\n s = series[i];\r\n\r\n data = s.data;\r\n format = s.datapoints.format;\r\n\r\n if (!format) {\r\n format = [];\r\n // find out how to copy\r\n format.push({ x: true, number: true, required: true });\r\n format.push({ y: true, number: true, required: true });\r\n\r\n if (s.bars.show || (s.lines.show && s.lines.fill)) {\r\n var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero));\r\n format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale });\r\n if (s.bars.horizontal) {\r\n delete format[format.length - 1].y;\r\n format[format.length - 1].x = true;\r\n }\r\n }\r\n\r\n s.datapoints.format = format;\r\n }\r\n\r\n if (s.datapoints.pointsize != null)\r\n continue; // already filled in\r\n\r\n s.datapoints.pointsize = format.length;\r\n\r\n ps = s.datapoints.pointsize;\r\n points = s.datapoints.points;\r\n\r\n var insertSteps = s.lines.show && s.lines.steps;\r\n s.xaxis.used = s.yaxis.used = true;\r\n\r\n for (j = k = 0; j < data.length; ++j, k += ps) {\r\n p = data[j];\r\n\r\n var nullify = p == null;\r\n if (!nullify) {\r\n for (m = 0; m < ps; ++m) {\r\n val = p[m];\r\n f = format[m];\r\n\r\n if (f) {\r\n if (f.number && val != null) {\r\n val = +val; // convert to number\r\n if (isNaN(val))\r\n val = null;\r\n else if (val == Infinity)\r\n val = fakeInfinity;\r\n else if (val == -Infinity)\r\n val = -fakeInfinity;\r\n }\r\n\r\n if (val == null) {\r\n if (f.required)\r\n nullify = true;\r\n\r\n if (f.defaultValue != null)\r\n val = f.defaultValue;\r\n }\r\n }\r\n\r\n points[k + m] = val;\r\n }\r\n }\r\n\r\n if (nullify) {\r\n for (m = 0; m < ps; ++m) {\r\n val = points[k + m];\r\n if (val != null) {\r\n f = format[m];\r\n // extract min/max info\r\n if (f.autoscale !== false) {\r\n if (f.x) {\r\n updateAxis(s.xaxis, val, val);\r\n }\r\n if (f.y) {\r\n updateAxis(s.yaxis, val, val);\r\n }\r\n }\r\n }\r\n points[k + m] = null;\r\n }\r\n }\r\n else {\r\n // a little bit of line specific stuff that\r\n // perhaps shouldn't be here, but lacking\r\n // better means...\r\n if (insertSteps && k > 0\r\n && points[k - ps] != null\r\n && points[k - ps] != points[k]\r\n && points[k - ps + 1] != points[k + 1]) {\r\n // copy the point to make room for a middle point\r\n for (m = 0; m < ps; ++m)\r\n points[k + ps + m] = points[k + m];\r\n\r\n // middle point has same y\r\n points[k + 1] = points[k - ps + 1];\r\n\r\n // we've added a point, better reflect that\r\n k += ps;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // give the hooks a chance to run\r\n for (i = 0; i < series.length; ++i) {\r\n s = series[i];\r\n\r\n executeHooks(hooks.processDatapoints, [ s, s.datapoints]);\r\n }\r\n\r\n // second pass: find datamax/datamin for auto-scaling\r\n for (i = 0; i < series.length; ++i) {\r\n s = series[i];\r\n points = s.datapoints.points;\r\n ps = s.datapoints.pointsize;\r\n format = s.datapoints.format;\r\n\r\n var xmin = topSentry, ymin = topSentry,\r\n xmax = bottomSentry, ymax = bottomSentry;\r\n\r\n for (j = 0; j < points.length; j += ps) {\r\n if (points[j] == null)\r\n continue;\r\n\r\n for (m = 0; m < ps; ++m) {\r\n val = points[j + m];\r\n f = format[m];\r\n if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity)\r\n continue;\r\n\r\n if (f.x) {\r\n if (val < xmin)\r\n xmin = val;\r\n if (val > xmax)\r\n xmax = val;\r\n }\r\n if (f.y) {\r\n if (val < ymin)\r\n ymin = val;\r\n if (val > ymax)\r\n ymax = val;\r\n }\r\n }\r\n }\r\n\r\n if (s.bars.show) {\r\n // make sure we got room for the bar on the dancing floor\r\n var delta;\r\n\r\n switch (s.bars.align) {\r\n case \"left\":\r\n delta = 0;\r\n break;\r\n case \"right\":\r\n delta = -s.bars.barWidth;\r\n break;\r\n default:\r\n delta = -s.bars.barWidth / 2;\r\n }\r\n\r\n if (s.bars.horizontal) {\r\n ymin += delta;\r\n ymax += delta + s.bars.barWidth;\r\n }\r\n else {\r\n xmin += delta;\r\n xmax += delta + s.bars.barWidth;\r\n }\r\n }\r\n\r\n updateAxis(s.xaxis, xmin, xmax);\r\n updateAxis(s.yaxis, ymin, ymax);\r\n }\r\n\r\n $.each(allAxes(), function (_, axis) {\r\n if (axis.datamin == topSentry)\r\n axis.datamin = null;\r\n if (axis.datamax == bottomSentry)\r\n axis.datamax = null;\r\n });\r\n }\r\n\r\n function setupCanvases() {\r\n\r\n // Make sure the placeholder is clear of everything except canvases\r\n // from a previous plot in this container that we'll try to re-use.\r\n\r\n placeholder.css(\"padding\", 0) // padding messes up the positioning\r\n .children().filter(function(){\r\n return !$(this).hasClass(\"flot-overlay\") && !$(this).hasClass('flot-base');\r\n }).remove();\r\n\r\n if (placeholder.css(\"position\") == 'static')\r\n placeholder.css(\"position\", \"relative\"); // for positioning labels and overlay\r\n\r\n surface = new Canvas(\"flot-base\", placeholder);\r\n overlay = new Canvas(\"flot-overlay\", placeholder); // overlay canvas for interactive features\r\n\r\n ctx = surface.context;\r\n octx = overlay.context;\r\n\r\n // define which element we're listening for events on\r\n eventHolder = $(overlay.element).unbind();\r\n\r\n // If we're re-using a plot object, shut down the old one\r\n\r\n var existing = placeholder.data(\"plot\");\r\n\r\n if (existing) {\r\n existing.shutdown();\r\n overlay.clear();\r\n }\r\n\r\n // save in case we get replotted\r\n placeholder.data(\"plot\", plot);\r\n }\r\n\r\n function bindEvents() {\r\n // bind events\r\n if (options.grid.hoverable) {\r\n eventHolder.mousemove(onMouseMove);\r\n\r\n // Use bind, rather than .mouseleave, because we officially\r\n // still support jQuery 1.2.6, which doesn't define a shortcut\r\n // for mouseenter or mouseleave. This was a bug/oversight that\r\n // was fixed somewhere around 1.3.x. We can return to using\r\n // .mouseleave when we drop support for 1.2.6.\r\n\r\n eventHolder.bind(\"mouseleave\", onMouseLeave);\r\n }\r\n\r\n if (options.grid.clickable)\r\n eventHolder.click(onClick);\r\n\r\n executeHooks(hooks.bindEvents, [eventHolder]);\r\n }\r\n\r\n function shutdown() {\r\n if (redrawTimeout)\r\n clearTimeout(redrawTimeout);\r\n\r\n eventHolder.unbind(\"mousemove\", onMouseMove);\r\n eventHolder.unbind(\"mouseleave\", onMouseLeave);\r\n eventHolder.unbind(\"click\", onClick);\r\n\r\n executeHooks(hooks.shutdown, [eventHolder]);\r\n }\r\n\r\n function setTransformationHelpers(axis) {\r\n // set helper functions on the axis, assumes plot area\r\n // has been computed already\r\n\r\n function identity(x) { return x; }\r\n\r\n var s, m, t = axis.options.transform || identity,\r\n it = axis.options.inverseTransform;\r\n\r\n // precompute how much the axis is scaling a point\r\n // in canvas space\r\n if (axis.direction == \"x\") {\r\n s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min));\r\n m = Math.min(t(axis.max), t(axis.min));\r\n }\r\n else {\r\n s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min));\r\n s = -s;\r\n m = Math.max(t(axis.max), t(axis.min));\r\n }\r\n\r\n // data point to canvas coordinate\r\n if (t == identity) // slight optimization\r\n axis.p2c = function (p) { return (p - m) * s; };\r\n else\r\n axis.p2c = function (p) { return (t(p) - m) * s; };\r\n // canvas coordinate to data point\r\n if (!it)\r\n axis.c2p = function (c) { return m + c / s; };\r\n else\r\n axis.c2p = function (c) { return it(m + c / s); };\r\n }\r\n\r\n function measureTickLabels(axis) {\r\n\r\n var opts = axis.options,\r\n ticks = axis.ticks || [],\r\n labelWidth = opts.labelWidth || 0,\r\n labelHeight = opts.labelHeight || 0,\r\n maxWidth = labelWidth || (axis.direction == \"x\" ? Math.floor(surface.width / (ticks.length || 1)) : null),\r\n legacyStyles = axis.direction + \"Axis \" + axis.direction + axis.n + \"Axis\",\r\n layer = \"flot-\" + axis.direction + \"-axis flot-\" + axis.direction + axis.n + \"-axis \" + legacyStyles,\r\n font = opts.font || \"flot-tick-label tickLabel\";\r\n\r\n for (var i = 0; i < ticks.length; ++i) {\r\n\r\n var t = ticks[i];\r\n\r\n if (!t.label)\r\n continue;\r\n\r\n var info = surface.getTextInfo(layer, t.label, font, null, maxWidth);\r\n\r\n labelWidth = Math.max(labelWidth, info.width);\r\n labelHeight = Math.max(labelHeight, info.height);\r\n }\r\n\r\n axis.labelWidth = opts.labelWidth || labelWidth;\r\n axis.labelHeight = opts.labelHeight || labelHeight;\r\n }\r\n\r\n function allocateAxisBoxFirstPhase(axis) {\r\n // find the bounding box of the axis by looking at label\r\n // widths/heights and ticks, make room by diminishing the\r\n // plotOffset; this first phase only looks at one\r\n // dimension per axis, the other dimension depends on the\r\n // other axes so will have to wait\r\n\r\n var lw = axis.labelWidth,\r\n lh = axis.labelHeight,\r\n pos = axis.options.position,\r\n isXAxis = axis.direction === \"x\",\r\n tickLength = axis.options.tickLength,\r\n axisMargin = options.grid.axisMargin,\r\n padding = options.grid.labelMargin,\r\n innermost = true,\r\n outermost = true,\r\n first = true,\r\n found = false;\r\n\r\n // Determine the axis's position in its direction and on its side\r\n\r\n $.each(isXAxis ? xaxes : yaxes, function(i, a) {\r\n if (a && (a.show || a.reserveSpace)) {\r\n if (a === axis) {\r\n found = true;\r\n } else if (a.options.position === pos) {\r\n if (found) {\r\n outermost = false;\r\n } else {\r\n innermost = false;\r\n }\r\n }\r\n if (!found) {\r\n first = false;\r\n }\r\n }\r\n });\r\n\r\n // The outermost axis on each side has no margin\r\n\r\n if (outermost) {\r\n axisMargin = 0;\r\n }\r\n\r\n // The ticks for the first axis in each direction stretch across\r\n\r\n if (tickLength == null) {\r\n tickLength = first ? \"full\" : 5;\r\n }\r\n\r\n if (!isNaN(+tickLength))\r\n padding += +tickLength;\r\n\r\n if (isXAxis) {\r\n lh += padding;\r\n\r\n if (pos == \"bottom\") {\r\n plotOffset.bottom += lh + axisMargin;\r\n axis.box = { top: surface.height - plotOffset.bottom, height: lh };\r\n }\r\n else {\r\n axis.box = { top: plotOffset.top + axisMargin, height: lh };\r\n plotOffset.top += lh + axisMargin;\r\n }\r\n }\r\n else {\r\n lw += padding;\r\n\r\n if (pos == \"left\") {\r\n axis.box = { left: plotOffset.left + axisMargin, width: lw };\r\n plotOffset.left += lw + axisMargin;\r\n }\r\n else {\r\n plotOffset.right += lw + axisMargin;\r\n axis.box = { left: surface.width - plotOffset.right, width: lw };\r\n }\r\n }\r\n\r\n // save for future reference\r\n axis.position = pos;\r\n axis.tickLength = tickLength;\r\n axis.box.padding = padding;\r\n axis.innermost = innermost;\r\n }\r\n\r\n function allocateAxisBoxSecondPhase(axis) {\r\n // now that all axis boxes have been placed in one\r\n // dimension, we can set the remaining dimension coordinates\r\n if (axis.direction == \"x\") {\r\n axis.box.left = plotOffset.left - axis.labelWidth / 2;\r\n axis.box.width = surface.width - plotOffset.left - plotOffset.right + axis.labelWidth;\r\n }\r\n else {\r\n axis.box.top = plotOffset.top - axis.labelHeight / 2;\r\n axis.box.height = surface.height - plotOffset.bottom - plotOffset.top + axis.labelHeight;\r\n }\r\n }\r\n\r\n function adjustLayoutForThingsStickingOut() {\r\n // possibly adjust plot offset to ensure everything stays\r\n // inside the canvas and isn't clipped off\r\n\r\n var minMargin = options.grid.minBorderMargin,\r\n axis, i;\r\n\r\n // check stuff from the plot (FIXME: this should just read\r\n // a value from the series, otherwise it's impossible to\r\n // customize)\r\n if (minMargin == null) {\r\n minMargin = 0;\r\n for (i = 0; i < series.length; ++i)\r\n minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2));\r\n }\r\n\r\n var margins = {\r\n left: minMargin,\r\n right: minMargin,\r\n top: minMargin,\r\n bottom: minMargin\r\n };\r\n\r\n // check axis labels, note we don't check the actual\r\n // labels but instead use the overall width/height to not\r\n // jump as much around with replots\r\n $.each(allAxes(), function (_, axis) {\r\n if (axis.reserveSpace && axis.ticks && axis.ticks.length) {\r\n if (axis.direction === \"x\") {\r\n margins.left = Math.max(margins.left, axis.labelWidth / 2);\r\n margins.right = Math.max(margins.right, axis.labelWidth / 2);\r\n } else {\r\n margins.bottom = Math.max(margins.bottom, axis.labelHeight / 2);\r\n margins.top = Math.max(margins.top, axis.labelHeight / 2);\r\n }\r\n }\r\n });\r\n\r\n plotOffset.left = Math.ceil(Math.max(margins.left, plotOffset.left));\r\n plotOffset.right = Math.ceil(Math.max(margins.right, plotOffset.right));\r\n plotOffset.top = Math.ceil(Math.max(margins.top, plotOffset.top));\r\n plotOffset.bottom = Math.ceil(Math.max(margins.bottom, plotOffset.bottom));\r\n }\r\n\r\n function setupGrid() {\r\n var i, axes = allAxes(), showGrid = options.grid.show;\r\n\r\n // Initialize the plot's offset from the edge of the canvas\r\n\r\n for (var a in plotOffset) {\r\n var margin = options.grid.margin || 0;\r\n plotOffset[a] = typeof margin == \"number\" ? margin : margin[a] || 0;\r\n }\r\n\r\n executeHooks(hooks.processOffset, [plotOffset]);\r\n\r\n // If the grid is visible, add its border width to the offset\r\n\r\n for (var a in plotOffset) {\r\n if(typeof(options.grid.borderWidth) == \"object\") {\r\n plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0;\r\n }\r\n else {\r\n plotOffset[a] += showGrid ? options.grid.borderWidth : 0;\r\n }\r\n }\r\n\r\n $.each(axes, function (_, axis) {\r\n var axisOpts = axis.options;\r\n axis.show = axisOpts.show == null ? axis.used : axisOpts.show;\r\n axis.reserveSpace = axisOpts.reserveSpace == null ? axis.show : axisOpts.reserveSpace;\r\n setRange(axis);\r\n });\r\n\r\n if (showGrid) {\r\n\r\n var allocatedAxes = $.grep(axes, function (axis) {\r\n return axis.show || axis.reserveSpace;\r\n });\r\n\r\n $.each(allocatedAxes, function (_, axis) {\r\n // make the ticks\r\n setupTickGeneration(axis);\r\n setTicks(axis);\r\n snapRangeToTicks(axis, axis.ticks);\r\n // find labelWidth/Height for axis\r\n measureTickLabels(axis);\r\n });\r\n\r\n // with all dimensions calculated, we can compute the\r\n // axis bounding boxes, start from the outside\r\n // (reverse order)\r\n for (i = allocatedAxes.length - 1; i >= 0; --i)\r\n allocateAxisBoxFirstPhase(allocatedAxes[i]);\r\n\r\n // make sure we've got enough space for things that\r\n // might stick out\r\n adjustLayoutForThingsStickingOut();\r\n\r\n $.each(allocatedAxes, function (_, axis) {\r\n allocateAxisBoxSecondPhase(axis);\r\n });\r\n }\r\n\r\n plotWidth = surface.width - plotOffset.left - plotOffset.right;\r\n plotHeight = surface.height - plotOffset.bottom - plotOffset.top;\r\n\r\n // now we got the proper plot dimensions, we can compute the scaling\r\n $.each(axes, function (_, axis) {\r\n setTransformationHelpers(axis);\r\n });\r\n\r\n if (showGrid) {\r\n drawAxisLabels();\r\n }\r\n\r\n insertLegend();\r\n }\r\n\r\n function setRange(axis) {\r\n var opts = axis.options,\r\n min = +(opts.min != null ? opts.min : axis.datamin),\r\n max = +(opts.max != null ? opts.max : axis.datamax),\r\n delta = max - min;\r\n\r\n if (delta == 0.0) {\r\n // degenerate case\r\n var widen = max == 0 ? 1 : 0.01;\r\n\r\n if (opts.min == null)\r\n min -= widen;\r\n // always widen max if we couldn't widen min to ensure we\r\n // don't fall into min == max which doesn't work\r\n if (opts.max == null || opts.min != null)\r\n max += widen;\r\n }\r\n else {\r\n // consider autoscaling\r\n var margin = opts.autoscaleMargin;\r\n if (margin != null) {\r\n if (opts.min == null) {\r\n min -= delta * margin;\r\n // make sure we don't go below zero if all values\r\n // are positive\r\n if (min < 0 && axis.datamin != null && axis.datamin >= 0)\r\n min = 0;\r\n }\r\n if (opts.max == null) {\r\n max += delta * margin;\r\n if (max > 0 && axis.datamax != null && axis.datamax <= 0)\r\n max = 0;\r\n }\r\n }\r\n }\r\n axis.min = min;\r\n axis.max = max;\r\n }\r\n\r\n function setupTickGeneration(axis) {\r\n var opts = axis.options;\r\n\r\n // estimate number of ticks\r\n var noTicks;\r\n if (typeof opts.ticks == \"number\" && opts.ticks > 0)\r\n noTicks = opts.ticks;\r\n else\r\n // heuristic based on the model a*sqrt(x) fitted to\r\n // some data points that seemed reasonable\r\n noTicks = 0.3 * Math.sqrt(axis.direction == \"x\" ? surface.width : surface.height);\r\n\r\n var delta = (axis.max - axis.min) / noTicks,\r\n dec = -Math.floor(Math.log(delta) / Math.LN10),\r\n maxDec = opts.tickDecimals;\r\n\r\n if (maxDec != null && dec > maxDec) {\r\n dec = maxDec;\r\n }\r\n\r\n var magn = Math.pow(10, -dec),\r\n norm = delta / magn, // norm is between 1.0 and 10.0\r\n size;\r\n\r\n if (norm < 1.5) {\r\n size = 1;\r\n } else if (norm < 3) {\r\n size = 2;\r\n // special case for 2.5, requires an extra decimal\r\n if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) {\r\n size = 2.5;\r\n ++dec;\r\n }\r\n } else if (norm < 7.5) {\r\n size = 5;\r\n } else {\r\n size = 10;\r\n }\r\n\r\n size *= magn;\r\n\r\n if (opts.minTickSize != null && size < opts.minTickSize) {\r\n size = opts.minTickSize;\r\n }\r\n\r\n axis.delta = delta;\r\n axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec);\r\n axis.tickSize = opts.tickSize || size;\r\n\r\n // Time mode was moved to a plug-in in 0.8, and since so many people use it\r\n // we'll add an especially friendly reminder to make sure they included it.\r\n\r\n if (opts.mode == \"time\" && !axis.tickGenerator) {\r\n throw new Error(\"Time mode requires the flot.time plugin.\");\r\n }\r\n\r\n // Flot supports base-10 axes; any other mode else is handled by a plug-in,\r\n // like flot.time.js.\r\n\r\n if (!axis.tickGenerator) {\r\n\r\n axis.tickGenerator = function (axis) {\r\n\r\n var ticks = [],\r\n start = floorInBase(axis.min, axis.tickSize),\r\n i = 0,\r\n v = Number.NaN,\r\n prev;\r\n\r\n do {\r\n prev = v;\r\n v = start + i * axis.tickSize;\r\n ticks.push(v);\r\n ++i;\r\n } while (v < axis.max && v != prev);\r\n return ticks;\r\n };\r\n\r\n\t\t\t\taxis.tickFormatter = function (value, axis) {\r\n\r\n\t\t\t\t\tvar factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1;\r\n\t\t\t\t\tvar formatted = \"\" + Math.round(value * factor) / factor;\r\n\r\n\t\t\t\t\t// If tickDecimals was specified, ensure that we have exactly that\r\n\t\t\t\t\t// much precision; otherwise default to the value's own precision.\r\n\r\n\t\t\t\t\tif (axis.tickDecimals != null) {\r\n\t\t\t\t\t\tvar decimal = formatted.indexOf(\".\");\r\n\t\t\t\t\t\tvar precision = decimal == -1 ? 0 : formatted.length - decimal - 1;\r\n\t\t\t\t\t\tif (precision < axis.tickDecimals) {\r\n\t\t\t\t\t\t\treturn (precision ? formatted : formatted + \".\") + (\"\" + factor).substr(1, axis.tickDecimals - precision);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n return formatted;\r\n };\r\n }\r\n\r\n if ($.isFunction(opts.tickFormatter))\r\n axis.tickFormatter = function (v, axis) { return \"\" + opts.tickFormatter(v, axis); };\r\n\r\n if (opts.alignTicksWithAxis != null) {\r\n var otherAxis = (axis.direction == \"x\" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1];\r\n if (otherAxis && otherAxis.used && otherAxis != axis) {\r\n // consider snapping min/max to outermost nice ticks\r\n var niceTicks = axis.tickGenerator(axis);\r\n if (niceTicks.length > 0) {\r\n if (opts.min == null)\r\n axis.min = Math.min(axis.min, niceTicks[0]);\r\n if (opts.max == null && niceTicks.length > 1)\r\n axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]);\r\n }\r\n\r\n axis.tickGenerator = function (axis) {\r\n // copy ticks, scaled to this axis\r\n var ticks = [], v, i;\r\n for (i = 0; i < otherAxis.ticks.length; ++i) {\r\n v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min);\r\n v = axis.min + v * (axis.max - axis.min);\r\n ticks.push(v);\r\n }\r\n return ticks;\r\n };\r\n\r\n // we might need an extra decimal since forced\r\n // ticks don't necessarily fit naturally\r\n if (!axis.mode && opts.tickDecimals == null) {\r\n var extraDec = Math.max(0, -Math.floor(Math.log(axis.delta) / Math.LN10) + 1),\r\n ts = axis.tickGenerator(axis);\r\n\r\n // only proceed if the tick interval rounded\r\n // with an extra decimal doesn't give us a\r\n // zero at end\r\n if (!(ts.length > 1 && /\\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec))))\r\n axis.tickDecimals = extraDec;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setTicks(axis) {\r\n var oticks = axis.options.ticks, ticks = [];\r\n if (oticks == null || (typeof oticks == \"number\" && oticks > 0))\r\n ticks = axis.tickGenerator(axis);\r\n else if (oticks) {\r\n if ($.isFunction(oticks))\r\n // generate the ticks\r\n ticks = oticks(axis);\r\n else\r\n ticks = oticks;\r\n }\r\n\r\n // clean up/labelify the supplied ticks, copy them over\r\n var i, v;\r\n axis.ticks = [];\r\n for (i = 0; i < ticks.length; ++i) {\r\n var label = null;\r\n var t = ticks[i];\r\n if (typeof t == \"object\") {\r\n v = +t[0];\r\n if (t.length > 1)\r\n label = t[1];\r\n }\r\n else\r\n v = +t;\r\n if (label == null)\r\n label = axis.tickFormatter(v, axis);\r\n if (!isNaN(v))\r\n axis.ticks.push({ v: v, label: label });\r\n }\r\n }\r\n\r\n function snapRangeToTicks(axis, ticks) {\r\n if (axis.options.autoscaleMargin && ticks.length > 0) {\r\n // snap to ticks\r\n if (axis.options.min == null)\r\n axis.min = Math.min(axis.min, ticks[0].v);\r\n if (axis.options.max == null && ticks.length > 1)\r\n axis.max = Math.max(axis.max, ticks[ticks.length - 1].v);\r\n }\r\n }\r\n\r\n function draw() {\r\n\r\n surface.clear();\r\n\r\n executeHooks(hooks.drawBackground, [ctx]);\r\n\r\n var grid = options.grid;\r\n\r\n // draw background, if any\r\n if (grid.show && grid.backgroundColor)\r\n drawBackground();\r\n\r\n if (grid.show && !grid.aboveData) {\r\n drawGrid();\r\n }\r\n\r\n for (var i = 0; i < series.length; ++i) {\r\n executeHooks(hooks.drawSeries, [ctx, series[i]]);\r\n drawSeries(series[i]);\r\n }\r\n\r\n executeHooks(hooks.draw, [ctx]);\r\n\r\n if (grid.show && grid.aboveData) {\r\n drawGrid();\r\n }\r\n\r\n surface.render();\r\n\r\n // A draw implies that either the axes or data have changed, so we\r\n // should probably update the overlay highlights as well.\r\n\r\n triggerRedrawOverlay();\r\n }\r\n\r\n function extractRange(ranges, coord) {\r\n var axis, from, to, key, axes = allAxes();\r\n\r\n for (var i = 0; i < axes.length; ++i) {\r\n axis = axes[i];\r\n if (axis.direction == coord) {\r\n key = coord + axis.n + \"axis\";\r\n if (!ranges[key] && axis.n == 1)\r\n key = coord + \"axis\"; // support x1axis as xaxis\r\n if (ranges[key]) {\r\n from = ranges[key].from;\r\n to = ranges[key].to;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // backwards-compat stuff - to be removed in future\r\n if (!ranges[key]) {\r\n axis = coord == \"x\" ? xaxes[0] : yaxes[0];\r\n from = ranges[coord + \"1\"];\r\n to = ranges[coord + \"2\"];\r\n }\r\n\r\n // auto-reverse as an added bonus\r\n if (from != null && to != null && from > to) {\r\n var tmp = from;\r\n from = to;\r\n to = tmp;\r\n }\r\n\r\n return { from: from, to: to, axis: axis };\r\n }\r\n\r\n function drawBackground() {\r\n ctx.save();\r\n ctx.translate(plotOffset.left, plotOffset.top);\r\n\r\n ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, \"rgba(255, 255, 255, 0)\");\r\n ctx.fillRect(0, 0, plotWidth, plotHeight);\r\n ctx.restore();\r\n }\r\n\r\n function drawGrid() {\r\n var i, axes, bw, bc;\r\n\r\n ctx.save();\r\n ctx.translate(plotOffset.left, plotOffset.top);\r\n\r\n // draw markings\r\n var markings = options.grid.markings;\r\n if (markings) {\r\n if ($.isFunction(markings)) {\r\n axes = plot.getAxes();\r\n // xmin etc. is backwards compatibility, to be\r\n // removed in the future\r\n axes.xmin = axes.xaxis.min;\r\n axes.xmax = axes.xaxis.max;\r\n axes.ymin = axes.yaxis.min;\r\n axes.ymax = axes.yaxis.max;\r\n\r\n markings = markings(axes);\r\n }\r\n\r\n for (i = 0; i < markings.length; ++i) {\r\n var m = markings[i],\r\n xrange = extractRange(m, \"x\"),\r\n yrange = extractRange(m, \"y\");\r\n\r\n // fill in missing\r\n if (xrange.from == null)\r\n xrange.from = xrange.axis.min;\r\n if (xrange.to == null)\r\n xrange.to = xrange.axis.max;\r\n if (yrange.from == null)\r\n yrange.from = yrange.axis.min;\r\n if (yrange.to == null)\r\n yrange.to = yrange.axis.max;\r\n\r\n // clip\r\n if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max ||\r\n yrange.to < yrange.axis.min || yrange.from > yrange.axis.max)\r\n continue;\r\n\r\n xrange.from = Math.max(xrange.from, xrange.axis.min);\r\n xrange.to = Math.min(xrange.to, xrange.axis.max);\r\n yrange.from = Math.max(yrange.from, yrange.axis.min);\r\n yrange.to = Math.min(yrange.to, yrange.axis.max);\r\n\r\n var xequal = xrange.from === xrange.to,\r\n yequal = yrange.from === yrange.to;\r\n\r\n if (xequal && yequal) {\r\n continue;\r\n }\r\n\r\n // then draw\r\n xrange.from = Math.floor(xrange.axis.p2c(xrange.from));\r\n xrange.to = Math.floor(xrange.axis.p2c(xrange.to));\r\n yrange.from = Math.floor(yrange.axis.p2c(yrange.from));\r\n yrange.to = Math.floor(yrange.axis.p2c(yrange.to));\r\n\r\n if (xequal || yequal) {\r\n var lineWidth = m.lineWidth || options.grid.markingsLineWidth,\r\n subPixel = lineWidth % 2 ? 0.5 : 0;\r\n ctx.beginPath();\r\n ctx.strokeStyle = m.color || options.grid.markingsColor;\r\n ctx.lineWidth = lineWidth;\r\n if (xequal) {\r\n ctx.moveTo(xrange.to + subPixel, yrange.from);\r\n ctx.lineTo(xrange.to + subPixel, yrange.to);\r\n } else {\r\n ctx.moveTo(xrange.from, yrange.to + subPixel);\r\n ctx.lineTo(xrange.to, yrange.to + subPixel); \r\n }\r\n ctx.stroke();\r\n } else {\r\n ctx.fillStyle = m.color || options.grid.markingsColor;\r\n ctx.fillRect(xrange.from, yrange.to,\r\n xrange.to - xrange.from,\r\n yrange.from - yrange.to);\r\n }\r\n }\r\n }\r\n\r\n // draw the ticks\r\n axes = allAxes();\r\n bw = options.grid.borderWidth;\r\n\r\n for (var j = 0; j < axes.length; ++j) {\r\n var axis = axes[j], box = axis.box,\r\n t = axis.tickLength, x, y, xoff, yoff;\r\n if (!axis.show || axis.ticks.length == 0)\r\n continue;\r\n\r\n ctx.lineWidth = 1;\r\n\r\n // find the edges\r\n if (axis.direction == \"x\") {\r\n x = 0;\r\n if (t == \"full\")\r\n y = (axis.position == \"top\" ? 0 : plotHeight);\r\n else\r\n y = box.top - plotOffset.top + (axis.position == \"top\" ? box.height : 0);\r\n }\r\n else {\r\n y = 0;\r\n if (t == \"full\")\r\n x = (axis.position == \"left\" ? 0 : plotWidth);\r\n else\r\n x = box.left - plotOffset.left + (axis.position == \"left\" ? box.width : 0);\r\n }\r\n\r\n // draw tick bar\r\n if (!axis.innermost) {\r\n ctx.strokeStyle = axis.options.color;\r\n ctx.beginPath();\r\n xoff = yoff = 0;\r\n if (axis.direction == \"x\")\r\n xoff = plotWidth + 1;\r\n else\r\n yoff = plotHeight + 1;\r\n\r\n if (ctx.lineWidth == 1) {\r\n if (axis.direction == \"x\") {\r\n y = Math.floor(y) + 0.5;\r\n } else {\r\n x = Math.floor(x) + 0.5;\r\n }\r\n }\r\n\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + xoff, y + yoff);\r\n ctx.stroke();\r\n }\r\n\r\n // draw ticks\r\n\r\n ctx.strokeStyle = axis.options.tickColor;\r\n\r\n ctx.beginPath();\r\n for (i = 0; i < axis.ticks.length; ++i) {\r\n var v = axis.ticks[i].v;\r\n\r\n xoff = yoff = 0;\r\n\r\n if (isNaN(v) || v < axis.min || v > axis.max\r\n // skip those lying on the axes if we got a border\r\n || (t == \"full\"\r\n && ((typeof bw == \"object\" && bw[axis.position] > 0) || bw > 0)\r\n && (v == axis.min || v == axis.max)))\r\n continue;\r\n\r\n if (axis.direction == \"x\") {\r\n x = axis.p2c(v);\r\n yoff = t == \"full\" ? -plotHeight : t;\r\n\r\n if (axis.position == \"top\")\r\n yoff = -yoff;\r\n }\r\n else {\r\n y = axis.p2c(v);\r\n xoff = t == \"full\" ? -plotWidth : t;\r\n\r\n if (axis.position == \"left\")\r\n xoff = -xoff;\r\n }\r\n\r\n if (ctx.lineWidth == 1) {\r\n if (axis.direction == \"x\")\r\n x = Math.floor(x) + 0.5;\r\n else\r\n y = Math.floor(y) + 0.5;\r\n }\r\n\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + xoff, y + yoff);\r\n }\r\n\r\n ctx.stroke();\r\n }\r\n\r\n\r\n // draw border\r\n if (bw) {\r\n // If either borderWidth or borderColor is an object, then draw the border\r\n // line by line instead of as one rectangle\r\n bc = options.grid.borderColor;\r\n if(typeof bw == \"object\" || typeof bc == \"object\") {\r\n if (typeof bw !== \"object\") {\r\n bw = {top: bw, right: bw, bottom: bw, left: bw};\r\n }\r\n if (typeof bc !== \"object\") {\r\n bc = {top: bc, right: bc, bottom: bc, left: bc};\r\n }\r\n\r\n if (bw.top > 0) {\r\n ctx.strokeStyle = bc.top;\r\n ctx.lineWidth = bw.top;\r\n ctx.beginPath();\r\n ctx.moveTo(0 - bw.left, 0 - bw.top/2);\r\n ctx.lineTo(plotWidth, 0 - bw.top/2);\r\n ctx.stroke();\r\n }\r\n\r\n if (bw.right > 0) {\r\n ctx.strokeStyle = bc.right;\r\n ctx.lineWidth = bw.right;\r\n ctx.beginPath();\r\n ctx.moveTo(plotWidth + bw.right / 2, 0 - bw.top);\r\n ctx.lineTo(plotWidth + bw.right / 2, plotHeight);\r\n ctx.stroke();\r\n }\r\n\r\n if (bw.bottom > 0) {\r\n ctx.strokeStyle = bc.bottom;\r\n ctx.lineWidth = bw.bottom;\r\n ctx.beginPath();\r\n ctx.moveTo(plotWidth + bw.right, plotHeight + bw.bottom / 2);\r\n ctx.lineTo(0, plotHeight + bw.bottom / 2);\r\n ctx.stroke();\r\n }\r\n\r\n if (bw.left > 0) {\r\n ctx.strokeStyle = bc.left;\r\n ctx.lineWidth = bw.left;\r\n ctx.beginPath();\r\n ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom);\r\n ctx.lineTo(0- bw.left/2, 0);\r\n ctx.stroke();\r\n }\r\n }\r\n else {\r\n ctx.lineWidth = bw;\r\n ctx.strokeStyle = options.grid.borderColor;\r\n ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw);\r\n }\r\n }\r\n\r\n ctx.restore();\r\n }\r\n\r\n function drawAxisLabels() {\r\n\r\n $.each(allAxes(), function (_, axis) {\r\n var box = axis.box,\r\n legacyStyles = axis.direction + \"Axis \" + axis.direction + axis.n + \"Axis\",\r\n layer = \"flot-\" + axis.direction + \"-axis flot-\" + axis.direction + axis.n + \"-axis \" + legacyStyles,\r\n font = axis.options.font || \"flot-tick-label tickLabel\",\r\n tick, x, y, halign, valign;\r\n\r\n // Remove text before checking for axis.show and ticks.length;\r\n // otherwise plugins, like flot-tickrotor, that draw their own\r\n // tick labels will end up with both theirs and the defaults.\r\n\r\n surface.removeText(layer);\r\n\r\n if (!axis.show || axis.ticks.length == 0)\r\n return;\r\n\r\n for (var i = 0; i < axis.ticks.length; ++i) {\r\n\r\n tick = axis.ticks[i];\r\n if (!tick.label || tick.v < axis.min || tick.v > axis.max)\r\n continue;\r\n\r\n if (axis.direction == \"x\") {\r\n halign = \"center\";\r\n x = plotOffset.left + axis.p2c(tick.v);\r\n if (axis.position == \"bottom\") {\r\n y = box.top + box.padding;\r\n } else {\r\n y = box.top + box.height - box.padding;\r\n valign = \"bottom\";\r\n }\r\n } else {\r\n valign = \"middle\";\r\n y = plotOffset.top + axis.p2c(tick.v);\r\n if (axis.position == \"left\") {\r\n x = box.left + box.width - box.padding;\r\n halign = \"right\";\r\n } else {\r\n x = box.left + box.padding;\r\n }\r\n }\r\n\r\n surface.addText(layer, x, y, tick.label, font, null, null, halign, valign);\r\n }\r\n });\r\n }\r\n\r\n function drawSeries(series) {\r\n if (series.lines.show)\r\n drawSeriesLines(series);\r\n if (series.bars.show)\r\n drawSeriesBars(series);\r\n if (series.points.show)\r\n drawSeriesPoints(series);\r\n }\r\n\r\n function drawSeriesLines(series) {\r\n function plotLine(datapoints, xoffset, yoffset, axisx, axisy) {\r\n var points = datapoints.points,\r\n ps = datapoints.pointsize,\r\n prevx = null, prevy = null;\r\n\r\n ctx.beginPath();\r\n for (var i = ps; i < points.length; i += ps) {\r\n var x1 = points[i - ps], y1 = points[i - ps + 1],\r\n x2 = points[i], y2 = points[i + 1];\r\n\r\n if (x1 == null || x2 == null)\r\n continue;\r\n\r\n // clip with ymin\r\n if (y1 <= y2 && y1 < axisy.min) {\r\n if (y2 < axisy.min)\r\n continue; // line segment is outside\r\n // compute new intersection point\r\n x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y1 = axisy.min;\r\n }\r\n else if (y2 <= y1 && y2 < axisy.min) {\r\n if (y1 < axisy.min)\r\n continue;\r\n x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y2 = axisy.min;\r\n }\r\n\r\n // clip with ymax\r\n if (y1 >= y2 && y1 > axisy.max) {\r\n if (y2 > axisy.max)\r\n continue;\r\n x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y1 = axisy.max;\r\n }\r\n else if (y2 >= y1 && y2 > axisy.max) {\r\n if (y1 > axisy.max)\r\n continue;\r\n x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y2 = axisy.max;\r\n }\r\n\r\n // clip with xmin\r\n if (x1 <= x2 && x1 < axisx.min) {\r\n if (x2 < axisx.min)\r\n continue;\r\n y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x1 = axisx.min;\r\n }\r\n else if (x2 <= x1 && x2 < axisx.min) {\r\n if (x1 < axisx.min)\r\n continue;\r\n y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x2 = axisx.min;\r\n }\r\n\r\n // clip with xmax\r\n if (x1 >= x2 && x1 > axisx.max) {\r\n if (x2 > axisx.max)\r\n continue;\r\n y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x1 = axisx.max;\r\n }\r\n else if (x2 >= x1 && x2 > axisx.max) {\r\n if (x1 > axisx.max)\r\n continue;\r\n y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x2 = axisx.max;\r\n }\r\n\r\n if (x1 != prevx || y1 != prevy)\r\n ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);\r\n\r\n prevx = x2;\r\n prevy = y2;\r\n ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset);\r\n }\r\n ctx.stroke();\r\n }\r\n\r\n function plotLineArea(datapoints, axisx, axisy) {\r\n var points = datapoints.points,\r\n ps = datapoints.pointsize,\r\n bottom = Math.min(Math.max(0, axisy.min), axisy.max),\r\n i = 0, top, areaOpen = false,\r\n ypos = 1, segmentStart = 0, segmentEnd = 0;\r\n\r\n // we process each segment in two turns, first forward\r\n // direction to sketch out top, then once we hit the\r\n // end we go backwards to sketch the bottom\r\n while (true) {\r\n if (ps > 0 && i > points.length + ps)\r\n break;\r\n\r\n i += ps; // ps is negative if going backwards\r\n\r\n var x1 = points[i - ps],\r\n y1 = points[i - ps + ypos],\r\n x2 = points[i], y2 = points[i + ypos];\r\n\r\n if (areaOpen) {\r\n if (ps > 0 && x1 != null && x2 == null) {\r\n // at turning point\r\n segmentEnd = i;\r\n ps = -ps;\r\n ypos = 2;\r\n continue;\r\n }\r\n\r\n if (ps < 0 && i == segmentStart + ps) {\r\n // done with the reverse sweep\r\n ctx.fill();\r\n areaOpen = false;\r\n ps = -ps;\r\n ypos = 1;\r\n i = segmentStart = segmentEnd + ps;\r\n continue;\r\n }\r\n }\r\n\r\n if (x1 == null || x2 == null)\r\n continue;\r\n\r\n // clip x values\r\n\r\n // clip with xmin\r\n if (x1 <= x2 && x1 < axisx.min) {\r\n if (x2 < axisx.min)\r\n continue;\r\n y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x1 = axisx.min;\r\n }\r\n else if (x2 <= x1 && x2 < axisx.min) {\r\n if (x1 < axisx.min)\r\n continue;\r\n y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x2 = axisx.min;\r\n }\r\n\r\n // clip with xmax\r\n if (x1 >= x2 && x1 > axisx.max) {\r\n if (x2 > axisx.max)\r\n continue;\r\n y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x1 = axisx.max;\r\n }\r\n else if (x2 >= x1 && x2 > axisx.max) {\r\n if (x1 > axisx.max)\r\n continue;\r\n y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\r\n x2 = axisx.max;\r\n }\r\n\r\n if (!areaOpen) {\r\n // open area\r\n ctx.beginPath();\r\n ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom));\r\n areaOpen = true;\r\n }\r\n\r\n // now first check the case where both is outside\r\n if (y1 >= axisy.max && y2 >= axisy.max) {\r\n ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));\r\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));\r\n continue;\r\n }\r\n else if (y1 <= axisy.min && y2 <= axisy.min) {\r\n ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));\r\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));\r\n continue;\r\n }\r\n\r\n // else it's a bit more complicated, there might\r\n // be a flat maxed out rectangle first, then a\r\n // triangular cutout or reverse; to find these\r\n // keep track of the current x values\r\n var x1old = x1, x2old = x2;\r\n\r\n // clip the y values, without shortcutting, we\r\n // go through all cases in turn\r\n\r\n // clip with ymin\r\n if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) {\r\n x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y1 = axisy.min;\r\n }\r\n else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) {\r\n x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y2 = axisy.min;\r\n }\r\n\r\n // clip with ymax\r\n if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) {\r\n x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y1 = axisy.max;\r\n }\r\n else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) {\r\n x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\r\n y2 = axisy.max;\r\n }\r\n\r\n // if the x value was changed we got a rectangle\r\n // to fill\r\n if (x1 != x1old) {\r\n ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1));\r\n // it goes to (x1, y1), but we fill that below\r\n }\r\n\r\n // fill triangular section, this sometimes result\r\n // in redundant points if (x1, y1) hasn't changed\r\n // from previous line to, but we just ignore that\r\n ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1));\r\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));\r\n\r\n // fill the other rectangle if it's there\r\n if (x2 != x2old) {\r\n ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));\r\n ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2));\r\n }\r\n }\r\n }\r\n\r\n ctx.save();\r\n ctx.translate(plotOffset.left, plotOffset.top);\r\n ctx.lineJoin = \"round\";\r\n\r\n var lw = series.lines.lineWidth,\r\n sw = series.shadowSize;\r\n // FIXME: consider another form of shadow when filling is turned on\r\n if (lw > 0 && sw > 0) {\r\n // draw shadow as a thick and thin line with transparency\r\n ctx.lineWidth = sw;\r\n ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\r\n // position shadow at angle from the mid of line\r\n var angle = Math.PI/18;\r\n plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis);\r\n ctx.lineWidth = sw/2;\r\n plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis);\r\n }\r\n\r\n ctx.lineWidth = lw;\r\n ctx.strokeStyle = series.color;\r\n var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight);\r\n if (fillStyle) {\r\n ctx.fillStyle = fillStyle;\r\n plotLineArea(series.datapoints, series.xaxis, series.yaxis);\r\n }\r\n\r\n if (lw > 0)\r\n plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis);\r\n ctx.restore();\r\n }\r\n\r\n function drawSeriesPoints(series) {\r\n function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) {\r\n var points = datapoints.points, ps = datapoints.pointsize;\r\n\r\n for (var i = 0; i < points.length; i += ps) {\r\n var x = points[i], y = points[i + 1];\r\n if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)\r\n continue;\r\n\r\n ctx.beginPath();\r\n x = axisx.p2c(x);\r\n y = axisy.p2c(y) + offset;\r\n if (symbol == \"circle\")\r\n ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false);\r\n else\r\n symbol(ctx, x, y, radius, shadow);\r\n ctx.closePath();\r\n\r\n if (fillStyle) {\r\n ctx.fillStyle = fillStyle;\r\n ctx.fill();\r\n }\r\n ctx.stroke();\r\n }\r\n }\r\n\r\n ctx.save();\r\n ctx.translate(plotOffset.left, plotOffset.top);\r\n\r\n var lw = series.points.lineWidth,\r\n sw = series.shadowSize,\r\n radius = series.points.radius,\r\n symbol = series.points.symbol;\r\n\r\n // If the user sets the line width to 0, we change it to a very \r\n // small value. A line width of 0 seems to force the default of 1.\r\n // Doing the conditional here allows the shadow setting to still be \r\n // optional even with a lineWidth of 0.\r\n\r\n if( lw == 0 )\r\n lw = 0.0001;\r\n\r\n if (lw > 0 && sw > 0) {\r\n // draw shadow in two steps\r\n var w = sw / 2;\r\n ctx.lineWidth = w;\r\n ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\r\n plotPoints(series.datapoints, radius, null, w + w/2, true,\r\n series.xaxis, series.yaxis, symbol);\r\n\r\n ctx.strokeStyle = \"rgba(0,0,0,0.2)\";\r\n plotPoints(series.datapoints, radius, null, w/2, true,\r\n series.xaxis, series.yaxis, symbol);\r\n }\r\n\r\n ctx.lineWidth = lw;\r\n ctx.strokeStyle = series.color;\r\n plotPoints(series.datapoints, radius,\r\n getFillStyle(series.points, series.color), 0, false,\r\n series.xaxis, series.yaxis, symbol);\r\n ctx.restore();\r\n }\r\n\r\n function drawBar(x, y, b, barLeft, barRight, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) {\r\n var left, right, bottom, top,\r\n drawLeft, drawRight, drawTop, drawBottom,\r\n tmp;\r\n\r\n // in horizontal mode, we start the bar from the left\r\n // instead of from the bottom so it appears to be\r\n // horizontal rather than vertical\r\n if (horizontal) {\r\n drawBottom = drawRight = drawTop = true;\r\n drawLeft = false;\r\n left = b;\r\n right = x;\r\n top = y + barLeft;\r\n bottom = y + barRight;\r\n\r\n // account for negative bars\r\n if (right < left) {\r\n tmp = right;\r\n right = left;\r\n left = tmp;\r\n drawLeft = true;\r\n drawRight = false;\r\n }\r\n }\r\n else {\r\n drawLeft = drawRight = drawTop = true;\r\n drawBottom = false;\r\n left = x + barLeft;\r\n right = x + barRight;\r\n bottom = b;\r\n top = y;\r\n\r\n // account for negative bars\r\n if (top < bottom) {\r\n tmp = top;\r\n top = bottom;\r\n bottom = tmp;\r\n drawBottom = true;\r\n drawTop = false;\r\n }\r\n }\r\n\r\n // clip\r\n if (right < axisx.min || left > axisx.max ||\r\n top < axisy.min || bottom > axisy.max)\r\n return;\r\n\r\n if (left < axisx.min) {\r\n left = axisx.min;\r\n drawLeft = false;\r\n }\r\n\r\n if (right > axisx.max) {\r\n right = axisx.max;\r\n drawRight = false;\r\n }\r\n\r\n if (bottom < axisy.min) {\r\n bottom = axisy.min;\r\n drawBottom = false;\r\n }\r\n\r\n if (top > axisy.max) {\r\n top = axisy.max;\r\n drawTop = false;\r\n }\r\n\r\n left = axisx.p2c(left);\r\n bottom = axisy.p2c(bottom);\r\n right = axisx.p2c(right);\r\n top = axisy.p2c(top);\r\n\r\n // fill the bar\r\n if (fillStyleCallback) {\r\n c.fillStyle = fillStyleCallback(bottom, top);\r\n c.fillRect(left, top, right - left, bottom - top)\r\n }\r\n\r\n // draw outline\r\n if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) {\r\n c.beginPath();\r\n\r\n // FIXME: inline moveTo is buggy with excanvas\r\n c.moveTo(left, bottom);\r\n if (drawLeft)\r\n c.lineTo(left, top);\r\n else\r\n c.moveTo(left, top);\r\n if (drawTop)\r\n c.lineTo(right, top);\r\n else\r\n c.moveTo(right, top);\r\n if (drawRight)\r\n c.lineTo(right, bottom);\r\n else\r\n c.moveTo(right, bottom);\r\n if (drawBottom)\r\n c.lineTo(left, bottom);\r\n else\r\n c.moveTo(left, bottom);\r\n c.stroke();\r\n }\r\n }\r\n\r\n function drawSeriesBars(series) {\r\n function plotBars(datapoints, barLeft, barRight, fillStyleCallback, axisx, axisy) {\r\n var points = datapoints.points, ps = datapoints.pointsize;\r\n\r\n for (var i = 0; i < points.length; i += ps) {\r\n if (points[i] == null)\r\n continue;\r\n drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth);\r\n }\r\n }\r\n\r\n ctx.save();\r\n ctx.translate(plotOffset.left, plotOffset.top);\r\n\r\n // FIXME: figure out a way to add shadows (for instance along the right edge)\r\n ctx.lineWidth = series.bars.lineWidth;\r\n ctx.strokeStyle = series.color;\r\n\r\n var barLeft;\r\n\r\n switch (series.bars.align) {\r\n case \"left\":\r\n barLeft = 0;\r\n break;\r\n case \"right\":\r\n barLeft = -series.bars.barWidth;\r\n break;\r\n default:\r\n barLeft = -series.bars.barWidth / 2;\r\n }\r\n\r\n var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;\r\n plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, fillStyleCallback, series.xaxis, series.yaxis);\r\n ctx.restore();\r\n }\r\n\r\n function getFillStyle(filloptions, seriesColor, bottom, top) {\r\n var fill = filloptions.fill;\r\n if (!fill)\r\n return null;\r\n\r\n if (filloptions.fillColor)\r\n return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor);\r\n\r\n var c = $.color.parse(seriesColor);\r\n c.a = typeof fill == \"number\" ? fill : 0.4;\r\n c.normalize();\r\n return c.toString();\r\n }\r\n\r\n function insertLegend() {\r\n\r\n if (options.legend.container != null) {\r\n $(options.legend.container).html(\"\");\r\n } else {\r\n placeholder.find(\".legend\").remove();\r\n }\r\n\r\n if (!options.legend.show) {\r\n return;\r\n }\r\n\r\n var fragments = [], entries = [], rowStarted = false,\r\n lf = options.legend.labelFormatter, s, label;\r\n\r\n // Build a list of legend entries, with each having a label and a color\r\n\r\n for (var i = 0; i < series.length; ++i) {\r\n s = series[i];\r\n if (s.label) {\r\n label = lf ? lf(s.label, s) : s.label;\r\n if (label) {\r\n entries.push({\r\n label: label,\r\n color: s.color\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Sort the legend using either the default or a custom comparator\r\n\r\n if (options.legend.sorted) {\r\n if ($.isFunction(options.legend.sorted)) {\r\n entries.sort(options.legend.sorted);\r\n } else if (options.legend.sorted == \"reverse\") {\r\n \tentries.reverse();\r\n } else {\r\n var ascending = options.legend.sorted != \"descending\";\r\n entries.sort(function(a, b) {\r\n return a.label == b.label ? 0 : (\r\n (a.label < b.label) != ascending ? 1 : -1 // Logical XOR\r\n );\r\n });\r\n }\r\n }\r\n\r\n // Generate markup for the list of entries, in their final order\r\n\r\n for (var i = 0; i < entries.length; ++i) {\r\n\r\n var entry = entries[i];\r\n\r\n if (i % options.legend.noColumns == 0) {\r\n if (rowStarted)\r\n fragments.push('</tr>');\r\n fragments.push('<tr>');\r\n rowStarted = true;\r\n }\r\n\r\n fragments.push(\r\n '<td class=\"legendColorBox\"><div style=\"border:1px solid ' + options.legend.labelBoxBorderColor + ';padding:1px\"><div style=\"width:4px;height:0;border:5px solid ' + entry.color + ';overflow:hidden\"></div></div></td>' +\r\n '<td class=\"legendLabel\">' + entry.label + '</td>'\r\n );\r\n }\r\n\r\n if (rowStarted)\r\n fragments.push('</tr>');\r\n\r\n if (fragments.length == 0)\r\n return;\r\n\r\n var table = '<table style=\"font-size:smaller;color:' + options.grid.color + '\">' + fragments.join(\"\") + '</table>';\r\n if (options.legend.container != null)\r\n $(options.legend.container).html(table);\r\n else {\r\n var pos = \"\",\r\n p = options.legend.position,\r\n m = options.legend.margin;\r\n if (m[0] == null)\r\n m = [m, m];\r\n if (p.charAt(0) == \"n\")\r\n pos += 'top:' + (m[1] + plotOffset.top) + 'px;';\r\n else if (p.charAt(0) == \"s\")\r\n pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;';\r\n if (p.charAt(1) == \"e\")\r\n pos += 'right:' + (m[0] + plotOffset.right) + 'px;';\r\n else if (p.charAt(1) == \"w\")\r\n pos += 'left:' + (m[0] + plotOffset.left) + 'px;';\r\n var legend = $('<div class=\"legend\">' + table.replace('style=\"', 'style=\"position:absolute;' + pos +';') + '</div>').appendTo(placeholder);\r\n if (options.legend.backgroundOpacity != 0.0) {\r\n // put in the transparent background\r\n // separately to avoid blended labels and\r\n // label boxes\r\n var c = options.legend.backgroundColor;\r\n if (c == null) {\r\n c = options.grid.backgroundColor;\r\n if (c && typeof c == \"string\")\r\n c = $.color.parse(c);\r\n else\r\n c = $.color.extract(legend, 'background-color');\r\n c.a = 1;\r\n c = c.toString();\r\n }\r\n var div = legend.children();\r\n $('<div style=\"position:absolute;width:' + div.width() + 'px;height:' + div.height() + 'px;' + pos +'background-color:' + c + ';\"> </div>').prependTo(legend).css('opacity', options.legend.backgroundOpacity);\r\n }\r\n }\r\n }\r\n\r\n\r\n // interactive features\r\n\r\n var highlights = [],\r\n redrawTimeout = null;\r\n\r\n // returns the data item the mouse is over, or null if none is found\r\n function findNearbyItem(mouseX, mouseY, seriesFilter) {\r\n var maxDistance = options.grid.mouseActiveRadius,\r\n smallestDistance = maxDistance * maxDistance + 1,\r\n item = null, foundPoint = false, i, j, ps;\r\n\r\n for (i = series.length - 1; i >= 0; --i) {\r\n if (!seriesFilter(series[i]))\r\n continue;\r\n\r\n var s = series[i],\r\n axisx = s.xaxis,\r\n axisy = s.yaxis,\r\n points = s.datapoints.points,\r\n mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster\r\n my = axisy.c2p(mouseY),\r\n maxx = maxDistance / axisx.scale,\r\n maxy = maxDistance / axisy.scale;\r\n\r\n ps = s.datapoints.pointsize;\r\n // with inverse transforms, we can't use the maxx/maxy\r\n // optimization, sadly\r\n if (axisx.options.inverseTransform)\r\n maxx = Number.MAX_VALUE;\r\n if (axisy.options.inverseTransform)\r\n maxy = Number.MAX_VALUE;\r\n\r\n if (s.lines.show || s.points.show) {\r\n for (j = 0; j < points.length; j += ps) {\r\n var x = points[j], y = points[j + 1];\r\n if (x == null)\r\n continue;\r\n\r\n // For points and lines, the cursor must be within a\r\n // certain distance to the data point\r\n if (x - mx > maxx || x - mx < -maxx ||\r\n y - my > maxy || y - my < -maxy)\r\n continue;\r\n\r\n // We have to calculate distances in pixels, not in\r\n // data units, because the scales of the axes may be different\r\n var dx = Math.abs(axisx.p2c(x) - mouseX),\r\n dy = Math.abs(axisy.p2c(y) - mouseY),\r\n dist = dx * dx + dy * dy; // we save the sqrt\r\n\r\n // use <= to ensure last point takes precedence\r\n // (last generally means on top of)\r\n if (dist < smallestDistance) {\r\n smallestDistance = dist;\r\n item = [i, j / ps];\r\n }\r\n }\r\n }\r\n\r\n if (s.bars.show && !item) { // no other point can be nearby\r\n\r\n var barLeft, barRight;\r\n\r\n switch (s.bars.align) {\r\n case \"left\":\r\n barLeft = 0;\r\n break;\r\n case \"right\":\r\n barLeft = -s.bars.barWidth;\r\n break;\r\n default:\r\n barLeft = -s.bars.barWidth / 2;\r\n }\r\n\r\n barRight = barLeft + s.bars.barWidth;\r\n\r\n for (j = 0; j < points.length; j += ps) {\r\n var x = points[j], y = points[j + 1], b = points[j + 2];\r\n if (x == null)\r\n continue;\r\n\r\n // for a bar graph, the cursor must be inside the bar\r\n if (series[i].bars.horizontal ?\r\n (mx <= Math.max(b, x) && mx >= Math.min(b, x) &&\r\n my >= y + barLeft && my <= y + barRight) :\r\n (mx >= x + barLeft && mx <= x + barRight &&\r\n my >= Math.min(b, y) && my <= Math.max(b, y)))\r\n item = [i, j / ps];\r\n }\r\n }\r\n }\r\n\r\n if (item) {\r\n i = item[0];\r\n j = item[1];\r\n ps = series[i].datapoints.pointsize;\r\n\r\n return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),\r\n dataIndex: j,\r\n series: series[i],\r\n seriesIndex: i };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function onMouseMove(e) {\r\n if (options.grid.hoverable)\r\n triggerClickHoverEvent(\"plothover\", e,\r\n function (s) { return s[\"hoverable\"] != false; });\r\n }\r\n\r\n function onMouseLeave(e) {\r\n if (options.grid.hoverable)\r\n triggerClickHoverEvent(\"plothover\", e,\r\n function (s) { return false; });\r\n }\r\n\r\n function onClick(e) {\r\n triggerClickHoverEvent(\"plotclick\", e,\r\n function (s) { return s[\"clickable\"] != false; });\r\n }\r\n\r\n // trigger click or hover event (they send the same parameters\r\n // so we share their code)\r\n function triggerClickHoverEvent(eventname, event, seriesFilter) {\r\n var offset = eventHolder.offset(),\r\n canvasX = event.pageX - offset.left - plotOffset.left,\r\n canvasY = event.pageY - offset.top - plotOffset.top,\r\n pos = canvasToAxisCoords({ left: canvasX, top: canvasY });\r\n\r\n pos.pageX = event.pageX;\r\n pos.pageY = event.pageY;\r\n\r\n var item = findNearbyItem(canvasX, canvasY, seriesFilter);\r\n\r\n if (item) {\r\n // fill in mouse pos for any listeners out there\r\n item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left, 10);\r\n item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top, 10);\r\n }\r\n\r\n if (options.grid.autoHighlight) {\r\n // clear auto-highlights\r\n for (var i = 0; i < highlights.length; ++i) {\r\n var h = highlights[i];\r\n if (h.auto == eventname &&\r\n !(item && h.series == item.series &&\r\n h.point[0] == item.datapoint[0] &&\r\n h.point[1] == item.datapoint[1]))\r\n unhighlight(h.series, h.point);\r\n }\r\n\r\n if (item)\r\n highlight(item.series, item.datapoint, eventname);\r\n }\r\n\r\n placeholder.trigger(eventname, [ pos, item ]);\r\n }\r\n\r\n function triggerRedrawOverlay() {\r\n var t = options.interaction.redrawOverlayInterval;\r\n if (t == -1) { // skip event queue\r\n drawOverlay();\r\n return;\r\n }\r\n\r\n if (!redrawTimeout)\r\n redrawTimeout = setTimeout(drawOverlay, t);\r\n }\r\n\r\n function drawOverlay() {\r\n redrawTimeout = null;\r\n\r\n // draw highlights\r\n octx.save();\r\n overlay.clear();\r\n octx.translate(plotOffset.left, plotOffset.top);\r\n\r\n var i, hi;\r\n for (i = 0; i < highlights.length; ++i) {\r\n hi = highlights[i];\r\n\r\n if (hi.series.bars.show)\r\n drawBarHighlight(hi.series, hi.point);\r\n else\r\n drawPointHighlight(hi.series, hi.point);\r\n }\r\n octx.restore();\r\n\r\n executeHooks(hooks.drawOverlay, [octx]);\r\n }\r\n\r\n function highlight(s, point, auto) {\r\n if (typeof s == \"number\")\r\n s = series[s];\r\n\r\n if (typeof point == \"number\") {\r\n var ps = s.datapoints.pointsize;\r\n point = s.datapoints.points.slice(ps * point, ps * (point + 1));\r\n }\r\n\r\n var i = indexOfHighlight(s, point);\r\n if (i == -1) {\r\n highlights.push({ series: s, point: point, auto: auto });\r\n\r\n triggerRedrawOverlay();\r\n }\r\n else if (!auto)\r\n highlights[i].auto = false;\r\n }\r\n\r\n function unhighlight(s, point) {\r\n if (s == null && point == null) {\r\n highlights = [];\r\n triggerRedrawOverlay();\r\n return;\r\n }\r\n\r\n if (typeof s == \"number\")\r\n s = series[s];\r\n\r\n if (typeof point == \"number\") {\r\n var ps = s.datapoints.pointsize;\r\n point = s.datapoints.points.slice(ps * point, ps * (point + 1));\r\n }\r\n\r\n var i = indexOfHighlight(s, point);\r\n if (i != -1) {\r\n highlights.splice(i, 1);\r\n\r\n triggerRedrawOverlay();\r\n }\r\n }\r\n\r\n function indexOfHighlight(s, p) {\r\n for (var i = 0; i < highlights.length; ++i) {\r\n var h = highlights[i];\r\n if (h.series == s && h.point[0] == p[0]\r\n && h.point[1] == p[1])\r\n return i;\r\n }\r\n return -1;\r\n }\r\n\r\n function drawPointHighlight(series, point) {\r\n var x = point[0], y = point[1],\r\n axisx = series.xaxis, axisy = series.yaxis,\r\n highlightColor = (typeof series.highlightColor === \"string\") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString();\r\n\r\n if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)\r\n return;\r\n\r\n var pointRadius = series.points.radius + series.points.lineWidth / 2;\r\n octx.lineWidth = pointRadius;\r\n octx.strokeStyle = highlightColor;\r\n var radius = 1.5 * pointRadius;\r\n x = axisx.p2c(x);\r\n y = axisy.p2c(y);\r\n\r\n octx.beginPath();\r\n if (series.points.symbol == \"circle\")\r\n octx.arc(x, y, radius, 0, 2 * Math.PI, false);\r\n else\r\n series.points.symbol(octx, x, y, radius, false);\r\n octx.closePath();\r\n octx.stroke();\r\n }\r\n\r\n function drawBarHighlight(series, point) {\r\n var highlightColor = (typeof series.highlightColor === \"string\") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(),\r\n fillStyle = highlightColor,\r\n barLeft;\r\n\r\n switch (series.bars.align) {\r\n case \"left\":\r\n barLeft = 0;\r\n break;\r\n case \"right\":\r\n barLeft = -series.bars.barWidth;\r\n break;\r\n default:\r\n barLeft = -series.bars.barWidth / 2;\r\n }\r\n\r\n octx.lineWidth = series.bars.lineWidth;\r\n octx.strokeStyle = highlightColor;\r\n\r\n drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth,\r\n function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);\r\n }\r\n\r\n function getColorOrGradient(spec, bottom, top, defaultColor) {\r\n if (typeof spec == \"string\")\r\n return spec;\r\n else {\r\n // assume this is a gradient spec; IE currently only\r\n // supports a simple vertical gradient properly, so that's\r\n // what we support too\r\n var gradient = ctx.createLinearGradient(0, top, 0, bottom);\r\n\r\n for (var i = 0, l = spec.colors.length; i < l; ++i) {\r\n var c = spec.colors[i];\r\n if (typeof c != \"string\") {\r\n var co = $.color.parse(defaultColor);\r\n if (c.brightness != null)\r\n co = co.scale('rgb', c.brightness);\r\n if (c.opacity != null)\r\n co.a *= c.opacity;\r\n c = co.toString();\r\n }\r\n gradient.addColorStop(i / (l - 1), c);\r\n }\r\n\r\n return gradient;\r\n }\r\n }\r\n }\r\n\r\n // Add the plot function to the top level of the jQuery object\r\n\r\n $.plot = function(placeholder, data, options) {\r\n //var t0 = new Date();\r\n var plot = new Plot($(placeholder), data, options, $.plot.plugins);\r\n //(window.console ? console.log : alert)(\"time used (msecs): \" + ((new Date()).getTime() - t0.getTime()));\r\n return plot;\r\n };\r\n\r\n $.plot.version = \"0.8.3\";\r\n\r\n $.plot.plugins = [];\r\n\r\n // Also add the plot function as a chainable property\r\n\r\n $.fn.plot = function(data, options) {\r\n return this.each(function() {\r\n $.plot(this, data, options);\r\n });\r\n };\r\n\r\n // round to nearby lower multiple of base\r\n function floorInBase(n, base) {\r\n return base * Math.floor(n / base);\r\n }\r\n\r\n})(jQuery);\r\n","/* Flot plugin for automatically redrawing plots as the placeholder resizes.\r\n\r\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\r\nLicensed under the MIT license.\r\n\r\nIt works by listening for changes on the placeholder div (through the jQuery\r\nresize event plugin) - if the size changes, it will redraw the plot.\r\n\r\nThere are no options. If you need to disable the plugin for some plots, you\r\ncan just fix the size of their placeholders.\r\n\r\n*/\r\n\r\n/* Inline dependency:\r\n * jQuery resize event - v1.1 - 3/14/2010\r\n * http://benalman.com/projects/jquery-resize-plugin/\r\n *\r\n * Copyright (c) 2010 \"Cowboy\" Ben Alman\r\n * Dual licensed under the MIT and GPL licenses.\r\n * http://benalman.com/about/license/\r\n */\r\n(function($,e,t){\"$:nomunge\";var i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s=\"setTimeout\",u=\"resize\",m=u+\"-special-event\",o=\"pendingDelay\",l=\"activeDelay\",f=\"throttleWindow\";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return false}var e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return false}var e=$(this);for(var t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(\":visible\")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);\r\n\r\n(function ($) {\r\n var options = { }; // no options\r\n\r\n function init(plot) {\r\n function onResize() {\r\n var placeholder = plot.getPlaceholder();\r\n\r\n // somebody might have hidden us and we can't plot\r\n // when we don't have the dimensions\r\n if (placeholder.width() == 0 || placeholder.height() == 0)\r\n return;\r\n\r\n plot.resize();\r\n plot.setupGrid();\r\n plot.draw();\r\n }\r\n \r\n function bindEvents(plot, eventHolder) {\r\n plot.getPlaceholder().resize(onResize);\r\n }\r\n\r\n function shutdown(plot, eventHolder) {\r\n plot.getPlaceholder().unbind(\"resize\", onResize);\r\n }\r\n \r\n plot.hooks.bindEvents.push(bindEvents);\r\n plot.hooks.shutdown.push(shutdown);\r\n }\r\n \r\n $.plot.plugins.push({\r\n init: init,\r\n options: options,\r\n name: 'resize',\r\n version: '1.0'\r\n });\r\n})(jQuery);\r\n","(function ($) {\r\n \"use strict\";\r\n \r\n function getRandomData() {\r\n\t\t\tfor (data.length > 0 && (data = data.slice(1)); data.length < totalPoints;) {\r\n\t\t\t\tvar prev = data.length > 0 ? data[data.length - 1] : 50,\r\n\t\t\t\t\ty = prev + 10 * Math.random() - 5;\r\n\t\t\t\t0 > y ? y = 0 : y > 90 && (y = 90), data.push(y)\r\n\t\t\t}\r\n\t\t\tfor (var res = [], i = 0; i < data.length; ++i) res.push([i, data[i]]);\r\n\t\t\treturn res\r\n\t\t}\r\n\t\tfor (var data = [], totalPoints = 100, d1 = [], i = 0; 10 >= i; i += 1) d1.push([i, parseInt(30 * Math.random())]);\r\n\t\tfor (var d2 = [], i = 0; 20 >= i; i += 1) d2.push([i, parseInt(30 * Math.random())]);\r\n\t\tfor (var d3 = [], i = 0; 10 >= i; i += 1) d3.push([i, parseInt(30 * Math.random())]);\r\n\t\tvar options = {\r\n\t\t\tseries: {\r\n\t\t\t\tshadowSize: 0,\r\n\t\t\t\tlines: {\r\n\t\t\t\t\tshow: !1,\r\n\t\t\t\t\tlineWidth: 0\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tgrid: {\r\n\t\t\t\tborderWidth: 0,\r\n\t\t\t\tlabelMargin: 10,\r\n\t\t\t\thoverable: !0,\r\n\t\t\t\tclickable: !0,\r\n\t\t\t\tmouseActiveRadius: 6\r\n\t\t\t},\r\n\t\t\txaxis: {\r\n\t\t\t\ttickDecimals: 0,\r\n\t\t\t\tticks: !1\r\n\t\t\t},\r\n\t\t\tyaxis: {\r\n\t\t\t\ttickDecimals: 0,\r\n\t\t\t\tticks: !1\r\n\t\t\t},\r\n\t\t\tlegend: {\r\n\t\t\t\tshow: !1\r\n\t\t\t}\r\n\t\t};\r\n\t\t$(\"#line-chart\")[0] && $.plot($(\"#line-chart\"), [{\r\n\t\t\tdata: d1,\r\n\t\t\tlines: {\r\n\t\t\t\tshow: !0,\r\n\t\t\t\tfill: .98\r\n\t\t\t},\r\n\t\t\tlabel: \"Product 1\",\r\n\t\t\tstack: !0,\r\n\t\t\tcolor: \"#e3e3e3\"\r\n\t\t}, {\r\n\t\t\tdata: d3,\r\n\t\t\tlines: {\r\n\t\t\t\tshow: !0,\r\n\t\t\t\tfill: .98\r\n\t\t\t},\r\n\t\t\tlabel: \"Product 2\",\r\n\t\t\tstack: !0,\r\n\t\t\tcolor: \"#00c292\"\r\n\t\t}], options), $(\"#recent-items-chart\")[0] && $.plot($(\"#recent-items-chart\"), [{\r\n\t\t\tdata: getRandomData(),\r\n\t\t\tlines: {\r\n\t\t\t\tshow: !0,\r\n\t\t\t\tfill: .99\r\n\t\t\t},\r\n\t\t\tlabel: \"Items\",\r\n\t\t\tstack: !0,\r\n\t\t\tcolor: \"#00c292\"\r\n\t\t}], options), $(\".flot-chart\")[0] && ($(\".flot-chart\").bind(\"plothover\", function(event, pos, item) {\r\n\t\t\tif (item) {\r\n\t\t\t\tvar x = item.datapoint[0].toFixed(2),\r\n\t\t\t\t\ty = item.datapoint[1].toFixed(2);\r\n\t\t\t\t$(\".flot-tooltip\").html(item.series.label + \" of \" + x + \" = \" + y).css({\r\n\t\t\t\t\ttop: item.pageY + 5,\r\n\t\t\t\t\tleft: item.pageX + 5\r\n\t\t\t\t}).show()\r\n\t\t\t} else $(\".flot-tooltip\").hide()\r\n\t\t}), $(\"<div class='flot-tooltip' class='chart-tooltip'></div>\").appendTo(\"body\"));\r\n \r\n /*----------------------------\r\n jQuery curvedLines\r\n------------------------------ */\r\n\r\n for (var d1 = [], i = 0; 10 >= i; i += 1) d1.push([i, parseInt(30 * Math.random())]);\r\n for (var d2 = [], i = 0; 20 >= i; i += 1) d2.push([i, parseInt(30 * Math.random())]);\r\n for (var d3 = [], i = 0; 10 >= i; i += 1) d3.push([i, parseInt(30 * Math.random())]);\r\n var options = {\r\n series: {\r\n shadowSize: 0,\r\n curvedLines: {\r\n apply: !0,\r\n active: !0,\r\n monotonicFit: !0\r\n },\r\n lines: {\r\n show: !1,\r\n lineWidth: 0,\r\n fill: 1\r\n }\r\n },\r\n grid: {\r\n borderWidth: 0,\r\n labelMargin: 10,\r\n hoverable: !0,\r\n clickable: !0,\r\n mouseActiveRadius: 6\r\n },\r\n xaxis: {\r\n tickDecimals: 0,\r\n ticks: !1\r\n },\r\n yaxis: {\r\n tickDecimals: 0,\r\n ticks: !1\r\n },\r\n legend: {\r\n show: !1\r\n }\r\n };\r\n $(\"#curved-line-chart\")[0] && $.plot($(\"#curved-line-chart\"), [{\r\n data: d1,\r\n lines: {\r\n show: !0,\r\n fill: .98\r\n },\r\n label: \"Product 1\",\r\n stack: !0,\r\n color: \"#e3e3e3\"\r\n }, {\r\n data: d3,\r\n lines: {\r\n show: !0,\r\n fill: .98\r\n },\r\n label: \"Product 2\",\r\n stack: !0,\r\n color: \"#00c292\"\r\n }], options), $(\".flot-chart\")[0] && ($(\".flot-chart\").bind(\"plothover\", function(event, pos, item) {\r\n if (item) {\r\n var x = item.datapoint[0].toFixed(2),\r\n y = item.datapoint[1].toFixed(2);\r\n $(\".flot-tooltip\").html(item.series.label + \" of \" + x + \" = \" + y).css({\r\n top: item.pageY + 5,\r\n left: item.pageX + 5\r\n }).show()\r\n } else $(\".flot-tooltip\").hide()\r\n }), $(\"<div class='flot-tooltip' class='chart-tooltip'></div>\").appendTo(\"body\"));\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\tfunction sparklineBar(id, values, height, barWidth, barColor, barSpacing) {\r\n\t\t\t$(\".\" + id).sparkline(values, {\r\n\t\t\t\ttype: \"bar\",\r\n\t\t\t\theight: height,\r\n\t\t\t\tbarWidth: barWidth,\r\n\t\t\t\tbarColor: barColor,\r\n\t\t\t\tbarSpacing: barSpacing\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tfunction sparklineLine(id, values, width, height, lineColor, fillColor, lineWidth, maxSpotColor, minSpotColor, spotColor, spotRadius, hSpotColor, hLineColor) {\r\n\t\t\t$(\".\" + id).sparkline(values, {\r\n\t\t\t\ttype: \"line\",\r\n\t\t\t\twidth: width,\r\n\t\t\t\theight: height,\r\n\t\t\t\tlineColor: lineColor,\r\n\t\t\t\tfillColor: fillColor,\r\n\t\t\t\tlineWidth: lineWidth,\r\n\t\t\t\tmaxSpotColor: maxSpotColor,\r\n\t\t\t\tminSpotColor: minSpotColor,\r\n\t\t\t\tspotColor: spotColor,\r\n\t\t\t\tspotRadius: spotRadius,\r\n\t\t\t\thighlightSpotColor: hSpotColor,\r\n\t\t\t\thighlightLineColor: hLineColor\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tfunction sparklinePie(id, values, width, height, sliceColors) {\r\n\t\t\t$(\".\" + id).sparkline(values, {\r\n\t\t\t\ttype: \"pie\",\r\n\t\t\t\twidth: width,\r\n\t\t\t\theight: height,\r\n\t\t\t\tsliceColors: sliceColors,\r\n\t\t\t\toffset: 0,\r\n\t\t\t\tborderWidth: 0\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tfunction easyPieChart(id, trackColor, scaleColor, barColor, lineWidth, lineCap, size) {\r\n\t\t\t$(\".\" + id).easyPieChart({\r\n\t\t\t\ttrackColor: trackColor,\r\n\t\t\t\tscaleColor: scaleColor,\r\n\t\t\t\tbarColor: barColor,\r\n\t\t\t\tlineWidth: lineWidth,\r\n\t\t\t\tlineCap: lineCap,\r\n\t\t\t\tsize: size\r\n\t\t\t})\r\n\t\t}\r\n\t\t$(\".stats-bar\")[0] && sparklineBar(\"stats-bar\", [6, 4, 8, 6, 5, 6, 7, 8, 3, 5, 9, 5, 8, 4], \"35px\", 3, \"#00c292\", 2), $(\".stats-bar-2\")[0] && sparklineBar(\"stats-bar-2\", [4, 7, 6, 2, 5, 3, 8, 6, 6, 4, 8, 6, 5, 8], \"35px\", 3, \"#01c0c8\", 2), $(\".stats-line\")[0] && sparklineLine(\"stats-line\", [9, 4, 6, 5, 6, 4, 5, 7, 9, 3, 6, 5], 68, 35, \"#fb9678\", \"#fb9678\", 1.25, \"#fb9678\", \"#fb9678\", \"#fb9678\", 3, \"#fb9678\", \"#fb9678\"), $(\".stats-line-2\")[0] && sparklineLine(\"stats-line-2\", [5, 6, 3, 9, 7, 5, 4, 6, 5, 6, 4, 9], 68, 35, \"#00c292\", \"#00c292\", 1.25, \"#00c292\", \"#00c292\", \"#00c292\", 3, \"#00c292\", \"#00c292\"), $(\".stats-pie\")[0] && sparklinePie(\"stats-pie\", [20, 35, 30, 5], 45, 45, [\"#fff\", \"rgba(255,255,255,0.7)\", \"rgba(255,255,255,0.4)\", \"rgba(255,255,255,0.2)\"]), $(\".dash-widget-visits\")[0] && sparklineLine(\"dash-widget-visits\", [9, 4, 6, 5, 6, 4, 5, 7, 9, 3, 6, 5], \"100%\", \"70px\", \"#00c292\", \"#00c292\", 2, \"#00c292\", \"#00c292\", \"#00c292\", 5, \"#00c292\", \"#00c292\"), $(\".main-pie\")[0] && easyPieChart(\"main-pie\", \"rgba(255,255,255,0.2)\", \"rgba(255,255,255,0)\", \"rgba(255,255,255,0.7)\", 2, \"butt\", 148), $(\".sub-pie-1\")[0] && easyPieChart(\"sub-pie-1\", \"rgba(255,255,255,0.2)\", \"rgba(255,255,255,0)\", \"rgba(255,255,255,0.7)\", 2, \"butt\", 90), $(\".sub-pie-2\")[0] && easyPieChart(\"sub-pie-2\", \"rgba(255,255,255,0.2)\", \"rgba(255,255,255,0)\", \"rgba(255,255,255,0.7)\", 2, \"butt\", 90)\r\n\t\r\n\r\n\t\r\n\t\t/*--------------------------\r\n\t\t Bar chart Active Class\r\n\t\t---------------------------- */\t\r\n var data1 = [\r\n [1, 60],\r\n [2, 30],\r\n [3, 50],\r\n [4, 100],\r\n [5, 10],\r\n [6, 90],\r\n [7, 85]\r\n ],\r\n data2 = [\r\n [1, 20],\r\n [2, 90],\r\n [3, 60],\r\n [4, 40],\r\n [5, 100],\r\n [6, 25],\r\n [7, 65]\r\n ],\r\n data3 = [\r\n [1, 100],\r\n [2, 20],\r\n [3, 60],\r\n [4, 90],\r\n [5, 80],\r\n [6, 10],\r\n [7, 5]\r\n ],\r\n barData = [{\r\n label: \"Product\",\r\n data: data1,\r\n color: \"#00c292\"\r\n }, {\r\n label: \"Product\",\r\n data: data2,\r\n color: \"#fb9678\"\r\n }, {\r\n label: \"Product\",\r\n data: data3,\r\n color: \"#01c0c8\"\r\n }];\r\n $(\"#bar-chart\")[0] && $.plot($(\"#bar-chart\"), barData, {\r\n series: {\r\n bars: {\r\n show: !0,\r\n barWidth: .05,\r\n order: 1,\r\n fill: 1\r\n }\r\n },\r\n grid: {\r\n borderWidth: 1,\r\n borderColor: \"#eee\",\r\n show: !0,\r\n hoverable: !0,\r\n clickable: !0\r\n },\r\n yaxis: {\r\n tickColor: \"#eee\",\r\n tickDecimals: 0,\r\n font: {\r\n lineHeight: 14,\r\n style: \"normal\",\r\n color: \"#00c292\"\r\n },\r\n shadowSize: 0\r\n },\r\n xaxis: {\r\n tickColor: \"#fff\",\r\n tickDecimals: 0,\r\n font: {\r\n lineHeight: 14,\r\n style: \"normal\",\r\n color: \"#00c292\"\r\n },\r\n shadowSize: 0\r\n },\r\n legend: {\r\n container: \".flc-bar\",\r\n backgroundOpacity: .5,\r\n noColumns: 0,\r\n backgroundColor: \"white\",\r\n lineWidth: 0\r\n }\r\n }), $(\".flot-chart\")[0] && ($(\".flot-chart\").bind(\"plothover\", function(event, pos, item) {\r\n if (item) {\r\n var x = item.datapoint[0].toFixed(2),\r\n y = item.datapoint[1].toFixed(2);\r\n $(\".flot-tooltip\").html(item.series.label + \" of \" + x + \" = \" + y).css({\r\n top: item.pageY + 5,\r\n left: item.pageX + 5\r\n }).show()\r\n } else $(\".flot-tooltip\").hide()\r\n }), $(\"<div class='flot-tooltip' class='chart-tooltip'></div>\").appendTo(\"body\"))\r\n\r\n\t\t\r\n\t\t/*--------------------------\r\n\t\t Dynamic chart Active Class\r\n\t\t---------------------------- */\t\r\n\t\t\r\n\t\t\r\n function getRandomData() {\r\n for (data.length > 0 && (data = data.slice(1)); data.length < totalPoints;) {\r\n var prev = data.length > 0 ? data[data.length - 1] : 50,\r\n y = prev + 10 * Math.random() - 5;\r\n 0 > y ? y = 0 : y > 90 && (y = 90), data.push(y)\r\n }\r\n for (var res = [], i = 0; i < data.length; ++i) res.push([i, data[i]]);\r\n return res\r\n }\r\n\r\n function update() {\r\n plot.setData([getRandomData()]), plot.draw(), setTimeout(update, updateInterval)\r\n }\r\n var data = [],\r\n totalPoints = 300,\r\n updateInterval = 30;\r\n if ($(\"#dynamic-chart\")[0]) {\r\n var plot = $.plot(\"#dynamic-chart\", [getRandomData()], {\r\n series: {\r\n label: \"Product\",\r\n lines: {\r\n show: !0,\r\n lineWidth: .2,\r\n fill: .99\r\n },\r\n color: \"#00c292\",\r\n shadowSize: 0\r\n },\r\n yaxis: {\r\n min: 0,\r\n max: 100,\r\n tickColor: \"#eee\",\r\n font: {\r\n lineHeight: 14,\r\n style: \"normal\",\r\n color: \"#00c292\"\r\n },\r\n shadowSize: 0\r\n },\r\n xaxis: {\r\n tickColor: \"#eee\",\r\n show: !0,\r\n font: {\r\n lineHeight: 14,\r\n style: \"normal\",\r\n color: \"#00c292\"\r\n },\r\n shadowSize: 0,\r\n min: 0,\r\n max: 250\r\n },\r\n grid: {\r\n borderWidth: 1,\r\n borderColor: \"#eee\",\r\n labelMargin: 10,\r\n hoverable: !0,\r\n clickable: !0,\r\n mouseActiveRadius: 6\r\n },\r\n legend: {\r\n show: !1\r\n }\r\n });\r\n update()\r\n }\r\n\r\n\t\r\n \r\n})(jQuery); ","/*!jQuery Knob*/\r\n/**\r\n * Downward compatible, touchable dial\r\n *\r\n * Version: 1.2.10\r\n * Requires: jQuery v1.7+\r\n *\r\n * Copyright (c) 2012 Anthony Terrien\r\n * Under MIT License (http://www.opensource.org/licenses/mit-license.php)\r\n *\r\n * Thanks to vor, eskimoblood, spiffistan, FabrizioC\r\n */\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['jquery'], factory);\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function ($) {\r\n\r\n /**\r\n * Kontrol library\r\n */\r\n \"use strict\";\r\n\r\n /**\r\n * Definition of globals and core\r\n */\r\n var k = {}, // kontrol\r\n max = Math.max,\r\n min = Math.min;\r\n\r\n k.c = {};\r\n k.c.d = $(document);\r\n k.c.t = function (e) {\r\n return e.originalEvent.touches.length - 1;\r\n };\r\n\r\n /**\r\n * Kontrol Object\r\n *\r\n * Definition of an abstract UI control\r\n *\r\n * Each concrete component must call this one.\r\n * <code>\r\n * k.o.call(this);\r\n * </code>\r\n */\r\n k.o = function () {\r\n var s = this;\r\n\r\n this.o = null; // array of options\r\n this.$ = null; // jQuery wrapped element\r\n this.i = null; // mixed HTMLInputElement or array of HTMLInputElement\r\n this.g = null; // deprecated 2D graphics context for 'pre-rendering'\r\n this.v = null; // value ; mixed array or integer\r\n this.cv = null; // change value ; not commited value\r\n this.x = 0; // canvas x position\r\n this.y = 0; // canvas y position\r\n this.w = 0; // canvas width\r\n this.h = 0; // canvas height\r\n this.$c = null; // jQuery canvas element\r\n this.c = null; // rendered canvas context\r\n this.t = 0; // touches index\r\n this.isInit = false;\r\n this.fgColor = null; // main color\r\n this.pColor = null; // previous color\r\n this.dH = null; // draw hook\r\n this.cH = null; // change hook\r\n this.eH = null; // cancel hook\r\n this.rH = null; // release hook\r\n this.scale = 1; // scale factor\r\n this.relative = false;\r\n this.relativeWidth = false;\r\n this.relativeHeight = false;\r\n this.$div = null; // component div\r\n\r\n this.run = function () {\r\n var cf = function (e, conf) {\r\n var k;\r\n for (k in conf) {\r\n s.o[k] = conf[k];\r\n }\r\n s._carve().init();\r\n s._configure()\r\n ._draw();\r\n };\r\n\r\n if (this.$.data('kontroled')) return;\r\n this.$.data('kontroled', true);\r\n\r\n this.extend();\r\n this.o = $.extend({\r\n // Config\r\n min: this.$.data('min') !== undefined ? this.$.data('min') : 0,\r\n max: this.$.data('max') !== undefined ? this.$.data('max') : 100,\r\n stopper: true,\r\n readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'),\r\n\r\n // UI\r\n cursor: this.$.data('cursor') === true && 30\r\n || this.$.data('cursor') || 0,\r\n thickness: this.$.data('thickness')\r\n && Math.max(Math.min(this.$.data('thickness'), 1), 0.01)\r\n || 0.35,\r\n lineCap: this.$.data('linecap') || 'butt',\r\n width: this.$.data('width') || 200,\r\n height: this.$.data('height') || 200,\r\n displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'),\r\n displayPrevious: this.$.data('displayprevious'),\r\n fgColor: this.$.data('fgcolor') || '#87CEEB',\r\n inputColor: this.$.data('inputcolor'),\r\n font: this.$.data('font') || 'Arial',\r\n fontWeight: this.$.data('font-weight') || 'bold',\r\n inline: false,\r\n step: this.$.data('step') || 1,\r\n rotation: this.$.data('rotation'),\r\n\r\n // Hooks\r\n draw: null, // function () {}\r\n change: null, // function (value) {}\r\n cancel: null, // function () {}\r\n release: null, // function (value) {}\r\n\r\n // Output formatting, allows to add unit: %, ms ...\r\n format: function(v) {\r\n return v;\r\n },\r\n parse: function (v) {\r\n return parseFloat(v);\r\n }\r\n }, this.o\r\n );\r\n\r\n // finalize options\r\n this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw';\r\n if (!this.o.inputColor) {\r\n this.o.inputColor = this.o.fgColor;\r\n }\r\n\r\n // routing value\r\n if (this.$.is('fieldset')) {\r\n\r\n // fieldset = array of integer\r\n this.v = {};\r\n this.i = this.$.find('input');\r\n this.i.each(function(k) {\r\n var $this = $(this);\r\n s.i[k] = $this;\r\n s.v[k] = s.o.parse($this.val());\r\n\r\n $this.bind(\r\n 'change blur',\r\n function () {\r\n var val = {};\r\n val[k] = $this.val();\r\n s.val(val);\r\n }\r\n );\r\n });\r\n this.$.find('legend').remove();\r\n } else {\r\n\r\n // input = integer\r\n this.i = this.$;\r\n this.v = this.o.parse(this.$.val());\r\n this.v === '' && (this.v = this.o.min);\r\n this.$.bind(\r\n 'change blur',\r\n function () {\r\n s.val(s._validate(s.o.parse(s.$.val())));\r\n }\r\n );\r\n\r\n }\r\n\r\n !this.o.displayInput && this.$.hide();\r\n\r\n // adds needed DOM elements (canvas, div)\r\n this.$c = $(document.createElement('canvas')).attr({\r\n width: this.o.width,\r\n height: this.o.height\r\n });\r\n\r\n // wraps all elements in a div\r\n // add to DOM before Canvas init is triggered\r\n this.$div = $('<div style=\"'\r\n + (this.o.inline ? 'display:inline;' : '')\r\n + 'width:' + this.o.width + 'px;height:' + this.o.height + 'px;'\r\n + '\"></div>');\r\n\r\n this.$.wrap(this.$div).before(this.$c);\r\n this.$div = this.$.parent();\r\n\r\n if (typeof G_vmlCanvasManager !== 'undefined') {\r\n G_vmlCanvasManager.initElement(this.$c[0]);\r\n }\r\n\r\n this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null;\r\n\r\n if (!this.c) {\r\n throw {\r\n name: \"CanvasNotSupportedException\",\r\n message: \"Canvas not supported. Please use excanvas on IE8.0.\",\r\n toString: function(){return this.name + \": \" + this.message}\r\n }\r\n }\r\n\r\n // hdpi support\r\n this.scale = (window.devicePixelRatio || 1) / (\r\n this.c.webkitBackingStorePixelRatio ||\r\n this.c.mozBackingStorePixelRatio ||\r\n this.c.msBackingStorePixelRatio ||\r\n this.c.oBackingStorePixelRatio ||\r\n this.c.backingStorePixelRatio || 1\r\n );\r\n\r\n // detects relative width / height\r\n this.relativeWidth = this.o.width % 1 !== 0\r\n && this.o.width.indexOf('%');\r\n this.relativeHeight = this.o.height % 1 !== 0\r\n && this.o.height.indexOf('%');\r\n this.relative = this.relativeWidth || this.relativeHeight;\r\n\r\n // computes size and carves the component\r\n this._carve();\r\n\r\n // prepares props for transaction\r\n if (this.v instanceof Object) {\r\n this.cv = {};\r\n this.copy(this.v, this.cv);\r\n } else {\r\n this.cv = this.v;\r\n }\r\n\r\n // binds configure event\r\n this.$\r\n .bind(\"configure\", cf)\r\n .parent()\r\n .bind(\"configure\", cf);\r\n\r\n // finalize init\r\n this._listen()\r\n ._configure()\r\n ._xy()\r\n .init();\r\n\r\n this.isInit = true;\r\n\r\n this.$.val(this.o.format(this.v));\r\n this._draw();\r\n\r\n return this;\r\n };\r\n\r\n this._carve = function() {\r\n if (this.relative) {\r\n var w = this.relativeWidth ?\r\n this.$div.parent().width() *\r\n parseInt(this.o.width) / 100\r\n : this.$div.parent().width(),\r\n h = this.relativeHeight ?\r\n this.$div.parent().height() *\r\n parseInt(this.o.height) / 100\r\n : this.$div.parent().height();\r\n\r\n // apply relative\r\n this.w = this.h = Math.min(w, h);\r\n } else {\r\n this.w = this.o.width;\r\n this.h = this.o.height;\r\n }\r\n\r\n // finalize div\r\n this.$div.css({\r\n 'width': this.w + 'px',\r\n 'height': this.h + 'px'\r\n });\r\n\r\n // finalize canvas with computed width\r\n this.$c.attr({\r\n width: this.w,\r\n height: this.h\r\n });\r\n\r\n // scaling\r\n if (this.scale !== 1) {\r\n this.$c[0].width = this.$c[0].width * this.scale;\r\n this.$c[0].height = this.$c[0].height * this.scale;\r\n this.$c.width(this.w);\r\n this.$c.height(this.h);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n this._draw = function () {\r\n\r\n // canvas pre-rendering\r\n var d = true;\r\n\r\n s.g = s.c;\r\n\r\n s.clear();\r\n\r\n s.dH && (d = s.dH());\r\n\r\n d !== false && s.draw();\r\n };\r\n\r\n this._touch = function (e) {\r\n var touchMove = function (e) {\r\n var v = s.xy2val(\r\n e.originalEvent.touches[s.t].pageX,\r\n e.originalEvent.touches[s.t].pageY\r\n );\r\n\r\n if (v == s.cv) return;\r\n\r\n if (s.cH && s.cH(v) === false) return;\r\n\r\n s.change(s._validate(v));\r\n s._draw();\r\n };\r\n\r\n // get touches index\r\n this.t = k.c.t(e);\r\n\r\n // First touch\r\n touchMove(e);\r\n\r\n // Touch events listeners\r\n k.c.d\r\n .bind(\"touchmove.k\", touchMove)\r\n .bind(\r\n \"touchend.k\",\r\n function () {\r\n k.c.d.unbind('touchmove.k touchend.k');\r\n s.val(s.cv);\r\n }\r\n );\r\n\r\n return this;\r\n };\r\n\r\n this._mouse = function (e) {\r\n var mouseMove = function (e) {\r\n var v = s.xy2val(e.pageX, e.pageY);\r\n\r\n if (v == s.cv) return;\r\n\r\n if (s.cH && (s.cH(v) === false)) return;\r\n\r\n s.change(s._validate(v));\r\n s._draw();\r\n };\r\n\r\n // First click\r\n mouseMove(e);\r\n\r\n // Mouse events listeners\r\n k.c.d\r\n .bind(\"mousemove.k\", mouseMove)\r\n .bind(\r\n // Escape key cancel current change\r\n \"keyup.k\",\r\n function (e) {\r\n if (e.keyCode === 27) {\r\n k.c.d.unbind(\"mouseup.k mousemove.k keyup.k\");\r\n\r\n if (s.eH && s.eH() === false)\r\n return;\r\n\r\n s.cancel();\r\n }\r\n }\r\n )\r\n .bind(\r\n \"mouseup.k\",\r\n function (e) {\r\n k.c.d.unbind('mousemove.k mouseup.k keyup.k');\r\n s.val(s.cv);\r\n }\r\n );\r\n\r\n return this;\r\n };\r\n\r\n this._xy = function () {\r\n var o = this.$c.offset();\r\n this.x = o.left;\r\n this.y = o.top;\r\n\r\n return this;\r\n };\r\n\r\n this._listen = function () {\r\n if (!this.o.readOnly) {\r\n this.$c\r\n .bind(\r\n \"mousedown\",\r\n function (e) {\r\n e.preventDefault();\r\n s._xy()._mouse(e);\r\n }\r\n )\r\n .bind(\r\n \"touchstart\",\r\n function (e) {\r\n e.preventDefault();\r\n s._xy()._touch(e);\r\n }\r\n );\r\n\r\n this.listen();\r\n } else {\r\n this.$.attr('readonly', 'readonly');\r\n }\r\n\r\n if (this.relative) {\r\n $(window).resize(function() {\r\n s._carve().init();\r\n s._draw();\r\n });\r\n }\r\n\r\n return this;\r\n };\r\n\r\n this._configure = function () {\r\n\r\n // Hooks\r\n if (this.o.draw) this.dH = this.o.draw;\r\n if (this.o.change) this.cH = this.o.change;\r\n if (this.o.cancel) this.eH = this.o.cancel;\r\n if (this.o.release) this.rH = this.o.release;\r\n\r\n if (this.o.displayPrevious) {\r\n this.pColor = this.h2rgba(this.o.fgColor, \"0.4\");\r\n this.fgColor = this.h2rgba(this.o.fgColor, \"0.6\");\r\n } else {\r\n this.fgColor = this.o.fgColor;\r\n }\r\n\r\n return this;\r\n };\r\n\r\n this._clear = function () {\r\n this.$c[0].width = this.$c[0].width;\r\n };\r\n\r\n this._validate = function (v) {\r\n return (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step;\r\n };\r\n\r\n // Abstract methods\r\n this.listen = function () {}; // on start, one time\r\n this.extend = function () {}; // each time configure triggered\r\n this.init = function () {}; // each time configure triggered\r\n this.change = function (v) {}; // on change\r\n this.val = function (v) {}; // on release\r\n this.xy2val = function (x, y) {}; //\r\n this.draw = function () {}; // on change / on release\r\n this.clear = function () { this._clear(); };\r\n\r\n // Utils\r\n this.h2rgba = function (h, a) {\r\n var rgb;\r\n h = h.substring(1,7)\r\n rgb = [\r\n parseInt(h.substring(0,2), 16),\r\n parseInt(h.substring(2,4), 16),\r\n parseInt(h.substring(4,6), 16)\r\n ];\r\n\r\n return \"rgba(\" + rgb[0] + \",\" + rgb[1] + \",\" + rgb[2] + \",\" + a + \")\";\r\n };\r\n\r\n this.copy = function (f, t) {\r\n for (var i in f) {\r\n t[i] = f[i];\r\n }\r\n };\r\n };\r\n\r\n\r\n /**\r\n * k.Dial\r\n */\r\n k.Dial = function () {\r\n k.o.call(this);\r\n\r\n this.startAngle = null;\r\n this.xy = null;\r\n this.radius = null;\r\n this.lineWidth = null;\r\n this.cursorExt = null;\r\n this.w2 = null;\r\n this.PI2 = 2*Math.PI;\r\n\r\n this.extend = function () {\r\n this.o = $.extend({\r\n bgColor: this.$.data('bgcolor') || '#EEEEEE',\r\n angleOffset: this.$.data('angleoffset') || 0,\r\n angleArc: this.$.data('anglearc') || 360,\r\n inline: true\r\n }, this.o);\r\n };\r\n\r\n this.val = function (v, triggerRelease) {\r\n if (null != v) {\r\n\r\n // reverse format\r\n v = this.o.parse(v);\r\n\r\n if (triggerRelease !== false\r\n && v != this.v\r\n && this.rH\r\n && this.rH(v) === false) { return; }\r\n\r\n this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v;\r\n this.v = this.cv;\r\n this.$.val(this.o.format(this.v));\r\n this._draw();\r\n } else {\r\n return this.v;\r\n }\r\n };\r\n\r\n this.xy2val = function (x, y) {\r\n var a, ret;\r\n\r\n a = Math.atan2(\r\n x - (this.x + this.w2),\r\n - (y - this.y - this.w2)\r\n ) - this.angleOffset;\r\n\r\n if (this.o.flip) {\r\n a = this.angleArc - a - this.PI2;\r\n }\r\n\r\n if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) {\r\n\r\n // if isset angleArc option, set to min if .5 under min\r\n a = 0;\r\n } else if (a < 0) {\r\n a += this.PI2;\r\n }\r\n\r\n ret = ~~ (0.5 + (a * (this.o.max - this.o.min) / this.angleArc)) + this.o.min;\r\n\r\n this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min));\r\n\r\n return ret;\r\n };\r\n\r\n this.listen = function () {\r\n\r\n // bind MouseWheel\r\n var s = this, mwTimerStop,\r\n mwTimerRelease,\r\n mw = function (e) {\r\n e.preventDefault();\r\n\r\n var ori = e.originalEvent,\r\n deltaX = ori.detail || ori.wheelDeltaX,\r\n deltaY = ori.detail || ori.wheelDeltaY,\r\n v = s._validate(s.o.parse(s.$.val()))\r\n + (\r\n deltaX > 0 || deltaY > 0\r\n ? s.o.step\r\n : deltaX < 0 || deltaY < 0 ? -s.o.step : 0\r\n );\r\n\r\n v = max(min(v, s.o.max), s.o.min);\r\n\r\n s.val(v, false);\r\n\r\n if (s.rH) {\r\n // Handle mousewheel stop\r\n clearTimeout(mwTimerStop);\r\n mwTimerStop = setTimeout(function () {\r\n s.rH(v);\r\n mwTimerStop = null;\r\n }, 100);\r\n\r\n // Handle mousewheel releases\r\n if (!mwTimerRelease) {\r\n mwTimerRelease = setTimeout(function () {\r\n if (mwTimerStop)\r\n s.rH(v);\r\n mwTimerRelease = null;\r\n }, 200);\r\n }\r\n }\r\n },\r\n kval,\r\n to,\r\n m = 1,\r\n kv = {\r\n 37: -s.o.step,\r\n 38: s.o.step,\r\n 39: s.o.step,\r\n 40: -s.o.step\r\n };\r\n\r\n this.$\r\n .bind(\r\n \"keydown\",\r\n function (e) {\r\n var kc = e.keyCode;\r\n\r\n // numpad support\r\n if (kc >= 96 && kc <= 105) {\r\n kc = e.keyCode = kc - 48;\r\n }\r\n\r\n kval = parseInt(String.fromCharCode(kc));\r\n\r\n if (isNaN(kval)) {\r\n (kc !== 13) // enter\r\n && kc !== 8 // bs\r\n && kc !== 9 // tab\r\n && kc !== 189 // -\r\n && (kc !== 190\r\n || s.$.val().match(/\\./)) // . allowed once\r\n && e.preventDefault();\r\n\r\n // arrows\r\n if ($.inArray(kc,[37,38,39,40]) > -1) {\r\n e.preventDefault();\r\n\r\n var v = s.o.parse(s.$.val()) + kv[kc] * m;\r\n s.o.stopper && (v = max(min(v, s.o.max), s.o.min));\r\n\r\n s.change(v);\r\n s._draw();\r\n\r\n // long time keydown speed-up\r\n to = window.setTimeout(function () {\r\n m *= 2;\r\n }, 30);\r\n }\r\n }\r\n }\r\n )\r\n .bind(\r\n \"keyup\",\r\n function (e) {\r\n if (isNaN(kval)) {\r\n if (to) {\r\n window.clearTimeout(to);\r\n to = null;\r\n m = 1;\r\n s.val(s.$.val());\r\n }\r\n } else {\r\n // kval postcond\r\n (s.$.val() > s.o.max && s.$.val(s.o.max))\r\n || (s.$.val() < s.o.min && s.$.val(s.o.min));\r\n }\r\n }\r\n );\r\n\r\n this.$c.bind(\"mousewheel DOMMouseScroll\", mw);\r\n this.$.bind(\"mousewheel DOMMouseScroll\", mw)\r\n };\r\n\r\n this.init = function () {\r\n if (this.v < this.o.min\r\n || this.v > this.o.max) { this.v = this.o.min; }\r\n\r\n this.$.val(this.v);\r\n this.w2 = this.w / 2;\r\n this.cursorExt = this.o.cursor / 100;\r\n this.xy = this.w2 * this.scale;\r\n this.lineWidth = this.xy * this.o.thickness;\r\n this.lineCap = this.o.lineCap;\r\n this.radius = this.xy - this.lineWidth / 2;\r\n\r\n this.o.angleOffset\r\n && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset);\r\n\r\n this.o.angleArc\r\n && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc);\r\n\r\n // deg to rad\r\n this.angleOffset = this.o.angleOffset * Math.PI / 180;\r\n this.angleArc = this.o.angleArc * Math.PI / 180;\r\n\r\n // compute start and end angles\r\n this.startAngle = 1.5 * Math.PI + this.angleOffset;\r\n this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;\r\n\r\n var s = max(\r\n String(Math.abs(this.o.max)).length,\r\n String(Math.abs(this.o.min)).length,\r\n 2\r\n ) + 2;\r\n\r\n this.o.displayInput\r\n && this.i.css({\r\n 'width' : ((this.w / 2 + 4) >> 0) + 'px',\r\n 'height' : ((this.w / 3) >> 0) + 'px',\r\n 'position' : 'absolute',\r\n 'vertical-align' : 'middle',\r\n 'margin-top' : ((this.w / 3) >> 0) + 'px',\r\n 'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px',\r\n 'border' : 0,\r\n 'background' : 'none',\r\n 'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font,\r\n 'text-align' : 'center',\r\n 'color' : this.o.inputColor || this.o.fgColor,\r\n 'padding' : '0px',\r\n '-webkit-appearance': 'none'\r\n }) || this.i.css({\r\n 'width': '0px',\r\n 'visibility': 'hidden'\r\n });\r\n };\r\n\r\n this.change = function (v) {\r\n this.cv = v;\r\n this.$.val(this.o.format(v));\r\n };\r\n\r\n this.angle = function (v) {\r\n return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min);\r\n };\r\n\r\n this.arc = function (v) {\r\n var sa, ea;\r\n v = this.angle(v);\r\n if (this.o.flip) {\r\n sa = this.endAngle + 0.00001;\r\n ea = sa - v - 0.00001;\r\n } else {\r\n sa = this.startAngle - 0.00001;\r\n ea = sa + v + 0.00001;\r\n }\r\n this.o.cursor\r\n && (sa = ea - this.cursorExt)\r\n && (ea = ea + this.cursorExt);\r\n\r\n return {\r\n s: sa,\r\n e: ea,\r\n d: this.o.flip && !this.o.cursor\r\n };\r\n };\r\n\r\n this.draw = function () {\r\n var c = this.g, // context\r\n a = this.arc(this.cv), // Arc\r\n pa, // Previous arc\r\n r = 1;\r\n\r\n c.lineWidth = this.lineWidth;\r\n c.lineCap = this.lineCap;\r\n\r\n if (this.o.bgColor !== \"none\") {\r\n c.beginPath();\r\n c.strokeStyle = this.o.bgColor;\r\n c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true);\r\n c.stroke();\r\n }\r\n\r\n if (this.o.displayPrevious) {\r\n pa = this.arc(this.v);\r\n c.beginPath();\r\n c.strokeStyle = this.pColor;\r\n c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d);\r\n c.stroke();\r\n r = this.cv == this.v;\r\n }\r\n\r\n c.beginPath();\r\n c.strokeStyle = r ? this.o.fgColor : this.fgColor ;\r\n c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d);\r\n c.stroke();\r\n };\r\n\r\n this.cancel = function () {\r\n this.val(this.v);\r\n };\r\n };\r\n\r\n $.fn.dial = $.fn.knob = function (o) {\r\n return this.each(\r\n function () {\r\n var d = new k.Dial();\r\n d.o = o;\r\n d.$ = $(this);\r\n d.run();\r\n }\r\n ).parent();\r\n };\r\n\r\n}));","/*\r\n * jQuery.appear\r\n * https://github.com/bas2k/jquery.appear/\r\n * http://code.google.com/p/jquery-appear/\r\n *\r\n * Copyright (c) 2009 Michael Hixson\r\n * Copyright (c) 2012 Alexander Brovikov\r\n * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\r\n */\r\n(function($) {\r\n\t$.fn.appear = function(fn, options) {\r\n\r\n\t\tvar settings = $.extend({\r\n\r\n\t\t\t//arbitrary data to pass to fn\r\n\t\t\tdata: undefined,\r\n\r\n\t\t\t//call fn only on the first appear?\r\n\t\t\tone: true,\r\n\r\n\t\t\t// X & Y accuracy\r\n\t\t\taccX: 0,\r\n\t\t\taccY: 0\r\n\r\n\t\t}, options);\r\n\r\n\t\treturn this.each(function() {\r\n\r\n\t\t\tvar t = $(this);\r\n\r\n\t\t\t//whether the element is currently visible\r\n\t\t\tt.appeared = false;\r\n\r\n\t\t\tif (!fn) {\r\n\r\n\t\t\t\t//trigger the custom event\r\n\t\t\t\tt.trigger('appear', settings.data);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar w = $(window);\r\n\r\n\t\t\t//fires the appear event when appropriate\r\n\t\t\tvar check = function() {\r\n\r\n\t\t\t\t//is the element hidden?\r\n\t\t\t\tif (!t.is(':visible')) {\r\n\r\n\t\t\t\t\t//it became hidden\r\n\t\t\t\t\tt.appeared = false;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//is the element inside the visible window?\r\n\t\t\t\tvar a = w.scrollLeft();\r\n\t\t\t\tvar b = w.scrollTop();\r\n\t\t\t\tvar o = t.offset();\r\n\t\t\t\tvar x = o.left;\r\n\t\t\t\tvar y = o.top;\r\n\r\n\t\t\t\tvar ax = settings.accX;\r\n\t\t\t\tvar ay = settings.accY;\r\n\t\t\t\tvar th = t.height();\r\n\t\t\t\tvar wh = w.height();\r\n\t\t\t\tvar tw = t.width();\r\n\t\t\t\tvar ww = w.width();\r\n\r\n\t\t\t\tif (y + th + ay >= b &&\r\n\t\t\t\t\ty <= b + wh + ay &&\r\n\t\t\t\t\tx + tw + ax >= a &&\r\n\t\t\t\t\tx <= a + ww + ax) {\r\n\r\n\t\t\t\t\t//trigger the custom event\r\n\t\t\t\t\tif (!t.appeared) t.trigger('appear', settings.data);\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t//it scrolled out of view\r\n\t\t\t\t\tt.appeared = false;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t//create a modified fn with some additional logic\r\n\t\t\tvar modifiedFn = function() {\r\n\r\n\t\t\t\t//mark the element as visible\r\n\t\t\t\tt.appeared = true;\r\n\r\n\t\t\t\t//is this supposed to happen only once?\r\n\t\t\t\tif (settings.one) {\r\n\r\n\t\t\t\t\t//remove the check\r\n\t\t\t\t\tw.unbind('scroll', check);\r\n\t\t\t\t\tvar i = $.inArray(check, $.fn.appear.checks);\r\n\t\t\t\t\tif (i >= 0) $.fn.appear.checks.splice(i, 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//trigger the original fn\r\n\t\t\t\tfn.apply(this, arguments);\r\n\t\t\t};\r\n\r\n\t\t\t//bind the modified fn to the element\r\n\t\t\tif (settings.one) t.one('appear', settings.data, modifiedFn);\r\n\t\t\telse t.bind('appear', settings.data, modifiedFn);\r\n\r\n\t\t\t//check whenever the window scrolls\r\n\t\t\tw.scroll(check);\r\n\r\n\t\t\t//check whenever the dom changes\r\n\t\t\t$.fn.appear.checks.push(check);\r\n\r\n\t\t\t//check now\r\n\t\t\t(check)();\r\n\t\t});\r\n\t};\r\n\r\n\t//keep a queue of appearance checks\r\n\t$.extend($.fn.appear, {\r\n\r\n\t\tchecks: [],\r\n\t\ttimeout: null,\r\n\r\n\t\t//process the queue\r\n\t\tcheckAll: function() {\r\n\t\t\tvar length = $.fn.appear.checks.length;\r\n\t\t\tif (length > 0) while (length--) ($.fn.appear.checks[length])();\r\n\t\t},\r\n\r\n\t\t//check the queue asynchronously\r\n\t\trun: function() {\r\n\t\t\tif ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);\r\n\t\t\t$.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20);\r\n\t\t}\r\n\t});\r\n\r\n\t//run checks when these methods are called\r\n\t$.each(['append', 'prepend', 'after', 'before', 'attr',\r\n\t\t'removeAttr', 'addClass', 'removeClass', 'toggleClass',\r\n\t\t'remove', 'css', 'show', 'hide'], function(i, n) {\r\n\t\tvar old = $.fn[n];\r\n\t\tif (old) {\r\n\t\t\t$.fn[n] = function() {\r\n\t\t\t\tvar r = old.apply(this, arguments);\r\n\t\t\t\t$.fn.appear.run();\r\n\t\t\t\treturn r;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n})(jQuery);","(function ($) {\r\n \"use strict\";\r\n /*---------------------\r\n Circular Bars - Knob\r\n --------------------- */\t\r\n\t if(typeof($.fn.knob) != 'undefined') {\r\n\t\t$('.knob').each(function () {\r\n\t\t var $this = $(this),\r\n\t\t\t knobVal = $this.attr('data-rel');\r\n\t\r\n\t\t $this.knob({\r\n\t\t\t'draw' : function () { \r\n\t\t\t $(this.i).val(this.cv + '%')\r\n\t\t\t}\r\n\t\t });\r\n\t\t \r\n\t\t $this.appear(function() {\r\n\t\t\t$({\r\n\t\t\t value: 0\r\n\t\t\t}).animate({\r\n\t\t\t value: knobVal\r\n\t\t\t}, {\r\n\t\t\t duration : 2000,\r\n\t\t\t easing : 'swing',\r\n\t\t\t step : function () {\r\n\t\t\t\t$this.val(Math.ceil(this.value)).trigger('change');\r\n\t\t\t }\r\n\t\t\t});\r\n\t\t }, {accX: 0, accY: -150});\r\n\t\t});\r\n }\t\r\n\r\n})(jQuery);","!function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define([],function(){return t.Waves=e.call(t),t.Waves}):\"object\"==typeof exports?module.exports=e.call(t):t.Waves=e.call(t)}(\"object\"==typeof global?global:this,function(){\"use strict\";function t(t){return null!==t&&t===t.window}function e(e){return t(e)?e:9===e.nodeType&&e.defaultView}function n(t){var e=typeof t;return\"function\"===e||\"object\"===e&&!!t}function o(t){return n(t)&&t.nodeType>0}function a(t){var e=f.call(t);return\"[object String]\"===e?d(t):n(t)&&/^\\[object (Array|HTMLCollection|NodeList|Object)\\]$/.test(e)&&t.hasOwnProperty(\"length\")?t:o(t)?[t]:[]}function i(t){var n,o,a={top:0,left:0},i=t&&t.ownerDocument;return n=i.documentElement,void 0!==t.getBoundingClientRect&&(a=t.getBoundingClientRect()),o=e(i),{top:a.top+o.pageYOffset-n.clientTop,left:a.left+o.pageXOffset-n.clientLeft}}function r(t){var e=\"\";for(var n in t)t.hasOwnProperty(n)&&(e+=n+\":\"+t[n]+\";\");return e}function s(t,e,n){if(n){n.classList.remove(\"waves-rippling\");var o=n.getAttribute(\"data-x\"),a=n.getAttribute(\"data-y\"),i=n.getAttribute(\"data-scale\"),s=n.getAttribute(\"data-translate\"),u=350-(Date.now()-Number(n.getAttribute(\"data-hold\")));u<0&&(u=0),\"mousemove\"===t.type&&(u=150);var c=\"mousemove\"===t.type?2500:v.duration;setTimeout(function(){var t={top:a+\"px\",left:o+\"px\",opacity:\"0\",\"-webkit-transition-duration\":c+\"ms\",\"-moz-transition-duration\":c+\"ms\",\"-o-transition-duration\":c+\"ms\",\"transition-duration\":c+\"ms\",\"-webkit-transform\":i+\" \"+s,\"-moz-transform\":i+\" \"+s,\"-ms-transform\":i+\" \"+s,\"-o-transform\":i+\" \"+s,transform:i+\" \"+s};n.setAttribute(\"style\",r(t)),setTimeout(function(){try{e.removeChild(n)}catch(t){return!1}},c)},u)}}function u(t){if(!1===h.allowEvent(t))return null;for(var e=null,n=t.target||t.srcElement;n.parentElement;){if(!(n instanceof SVGElement)&&n.classList.contains(\"waves-effect\")){e=n;break}n=n.parentElement}return e}function c(t){var e=u(t);if(null!==e){if(e.disabled||e.getAttribute(\"disabled\")||e.classList.contains(\"disabled\"))return;if(h.registerEvent(t),\"touchstart\"===t.type&&v.delay){var n=!1,o=setTimeout(function(){o=null,v.show(t,e)},v.delay),a=function(a){o&&(clearTimeout(o),o=null,v.show(t,e)),n||(n=!0,v.hide(a,e)),r()},i=function(t){o&&(clearTimeout(o),o=null),a(t),r()};e.addEventListener(\"touchmove\",i,!1),e.addEventListener(\"touchend\",a,!1),e.addEventListener(\"touchcancel\",a,!1);var r=function(){e.removeEventListener(\"touchmove\",i),e.removeEventListener(\"touchend\",a),e.removeEventListener(\"touchcancel\",a)}}else v.show(t,e),m&&(e.addEventListener(\"touchend\",v.hide,!1),e.addEventListener(\"touchcancel\",v.hide,!1)),e.addEventListener(\"mouseup\",v.hide,!1),e.addEventListener(\"mouseleave\",v.hide,!1)}}var l=l||{},d=document.querySelectorAll.bind(document),f=Object.prototype.toString,m=\"ontouchstart\"in window,v={duration:750,delay:200,show:function(t,e,n){if(2===t.button)return!1;e=e||this;var o=document.createElement(\"div\");o.className=\"waves-ripple waves-rippling\",e.appendChild(o);var a=i(e),s=0,u=0;\"touches\"in t&&t.touches.length?(s=t.touches[0].pageY-a.top,u=t.touches[0].pageX-a.left):(s=t.pageY-a.top,u=t.pageX-a.left),u=u>=0?u:0,s=s>=0?s:0;var c=\"scale(\"+e.clientWidth/100*3+\")\",l=\"translate(0,0)\";n&&(l=\"translate(\"+n.x+\"px, \"+n.y+\"px)\"),o.setAttribute(\"data-hold\",Date.now()),o.setAttribute(\"data-x\",u),o.setAttribute(\"data-y\",s),o.setAttribute(\"data-scale\",c),o.setAttribute(\"data-translate\",l);var d={top:s+\"px\",left:u+\"px\"};o.classList.add(\"waves-notransition\"),o.setAttribute(\"style\",r(d)),o.classList.remove(\"waves-notransition\"),d[\"-webkit-transform\"]=c+\" \"+l,d[\"-moz-transform\"]=c+\" \"+l,d[\"-ms-transform\"]=c+\" \"+l,d[\"-o-transform\"]=c+\" \"+l,d.transform=c+\" \"+l,d.opacity=\"1\";var f=\"mousemove\"===t.type?2500:v.duration;d[\"-webkit-transition-duration\"]=f+\"ms\",d[\"-moz-transition-duration\"]=f+\"ms\",d[\"-o-transition-duration\"]=f+\"ms\",d[\"transition-duration\"]=f+\"ms\",o.setAttribute(\"style\",r(d))},hide:function(t,e){for(var n=(e=e||this).getElementsByClassName(\"waves-rippling\"),o=0,a=n.length;o<a;o++)s(t,e,n[o]);m&&(e.removeEventListener(\"touchend\",v.hide),e.removeEventListener(\"touchcancel\",v.hide)),e.removeEventListener(\"mouseup\",v.hide),e.removeEventListener(\"mouseleave\",v.hide)}},p={input:function(t){var e=t.parentNode;if(\"i\"!==e.tagName.toLowerCase()||!e.classList.contains(\"waves-effect\")){var n=document.createElement(\"i\");n.className=t.className+\" waves-input-wrapper\",t.className=\"waves-button-input\",e.replaceChild(n,t),n.appendChild(t);var o=window.getComputedStyle(t,null),a=o.color,i=o.backgroundColor;n.setAttribute(\"style\",\"color:\"+a+\";background:\"+i),t.setAttribute(\"style\",\"background-color:rgba(0,0,0,0);\")}},img:function(t){var e=t.parentNode;if(\"i\"!==e.tagName.toLowerCase()||!e.classList.contains(\"waves-effect\")){var n=document.createElement(\"i\");e.replaceChild(n,t),n.appendChild(t)}}},h={touches:0,allowEvent:function(t){var e=!0;return/^(mousedown|mousemove)$/.test(t.type)&&h.touches&&(e=!1),e},registerEvent:function(t){var e=t.type;\"touchstart\"===e?h.touches+=1:/^(touchend|touchcancel)$/.test(e)&&setTimeout(function(){h.touches&&(h.touches-=1)},500)}};return l.init=function(t){var e=document.body;\"duration\"in(t=t||{})&&(v.duration=t.duration),\"delay\"in t&&(v.delay=t.delay),m&&(e.addEventListener(\"touchstart\",c,!1),e.addEventListener(\"touchcancel\",h.registerEvent,!1),e.addEventListener(\"touchend\",h.registerEvent,!1)),e.addEventListener(\"mousedown\",c,!1)},l.attach=function(t,e){t=a(t),\"[object Array]\"===f.call(e)&&(e=e.join(\" \")),e=e?\" \"+e:\"\";for(var n,o,i=0,r=t.length;i<r;i++)o=(n=t[i]).tagName.toLowerCase(),-1!==[\"input\",\"img\"].indexOf(o)&&(p[o](n),n=n.parentElement),-1===n.className.indexOf(\"waves-effect\")&&(n.className+=\" waves-effect\"+e)},l.ripple=function(t,e){var n=(t=a(t)).length;if(e=e||{},e.wait=e.wait||0,e.position=e.position||null,n)for(var o,r,s,u={},c=0,l={type:\"mousedown\",button:1};c<n;c++)if(o=t[c],r=e.position||{x:o.clientWidth/2,y:o.clientHeight/2},s=i(o),u.x=s.left+r.x,u.y=s.top+r.y,l.pageX=u.x,l.pageY=u.y,v.show(l,o),e.wait>=0&&null!==e.wait){var d={type:\"mouseup\",button:1};setTimeout(function(t,e){return function(){v.hide(t,e)}}(d,o),e.wait)}},l.calm=function(t){for(var e={type:\"mouseup\",button:1},n=0,o=(t=a(t)).length;n<o;n++)v.hide(e,t[n])},l.displayEffect=function(t){l.init(t)},l});\r\n//# sourceMappingURL=waves.min.js.map","(function ($) {\r\n \"use strict\";\r\n \r\n\tWaves.attach(\".btn:not(.btn-icon):not(.btn-float)\"), Waves.attach(\".btn-icon, .btn-float\", [\"waves-circle\", \"waves-float\"]), Waves.init();\r\n \r\n})(jQuery); ","(function ($) {\r\n \"use strict\";\r\n \r\n\t/*----------------------\r\n\t\tAnimation active js\r\n\t -----------------------*/\r\n\t$(\"button.btn.ant-nk-st.bounce-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-one\").addClass(\"animated bounce\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounce\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.flash-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-one\").addClass(\"animated flash\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flash\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.pulse-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-one\").addClass(\"animated pulse\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated pulse\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rubberBand-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-one\").addClass(\"animated rubberBand\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rubberBand\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.bounceIn-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-two\").addClass(\"animated bounceIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.bounceInDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-two\").addClass(\"animated bounceInDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceInDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.bounceInLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-two\").addClass(\"animated bounceInLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceInLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.bounceInUp-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-two\").addClass(\"animated bounceInUp\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceInUp\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.bounceOut-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-three\").addClass(\"animated bounceOut\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceOut\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.bounceOutDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-three\").addClass(\"animated bounceOutDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceOutDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.bounceOutLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-three\").addClass(\"animated bounceOutLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceOutLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.bounceOutRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-three\").addClass(\"animated bounceOutRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceOutRight\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.fadeIn-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-four\").addClass(\"animated fadeIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.fadeInDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-four\").addClass(\"animated fadeInDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeInDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.fadeInDownBig-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-four\").addClass(\"animated fadeInDownBig\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeInDownBig\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.fadeInLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-four\").addClass(\"animated fadeInLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeInLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.fadeOut-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-five\").addClass(\"animated fadeOut\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeOut\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.fadeOutDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-five\").addClass(\"animated fadeOutDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeOutDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.fadeOutDownBig-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-five\").addClass(\"animated fadeOutDownBig\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeOutDownBig\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.fadeOutLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-five\").addClass(\"animated fadeOutLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeOutLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.flip-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-six\").addClass(\"animated flip\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flip\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.flipInX-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-six\").addClass(\"animated flipInX\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flipInX\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.flipInY-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-six\").addClass(\"animated flipInY\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flipInY\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.flipOutX-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-six\").addClass(\"animated flipOutX\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flipOutX\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.slideInUp-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-seven\").addClass(\"animated slideInUp\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideInUp\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.slideInDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-seven\").addClass(\"animated slideInDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideInDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.slideInLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-seven\").addClass(\"animated slideInLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideInLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.slideInRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-seven\").addClass(\"animated slideInRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideInRight\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rotateIn-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eight\").addClass(\"animated rotateIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rotateInDownLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eight\").addClass(\"animated rotateInDownLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateInDownLeft\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.rotateInDownRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eight\").addClass(\"animated rotateInDownRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateInDownRight\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rotateInUpLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eight\").addClass(\"animated rotateInUpLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateInUpLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rotateOut-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-nine\").addClass(\"animated rotateOut\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateOut\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rotateOutDownLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-nine\").addClass(\"animated rotateOutDownLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateOutDownLeft\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.rotateOutDownRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-nine\").addClass(\"animated rotateOutDownRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateOutDownRight\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.rotateOutUpLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-nine\").addClass(\"animated rotateOutUpLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateOutUpLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.slideOutUp-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-ten\").addClass(\"animated slideOutUp\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideOutUp\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.slideOutDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-ten\").addClass(\"animated slideOutDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideOutDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.slideOutLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-ten\").addClass(\"animated slideOutLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideOutLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.slideOutRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-ten\").addClass(\"animated slideOutRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated slideOutRight\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.zoomIn-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eleven\").addClass(\"animated zoomIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.zoomInDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eleven\").addClass(\"animated zoomInDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomInDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.zoomInLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eleven\").addClass(\"animated zoomInLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomInLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.zoomInRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-eleven\").addClass(\"animated zoomInRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomInRight\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.zoomOut-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-twelve\").addClass(\"animated zoomOut\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomOut\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.zoomOutDown-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-twelve\").addClass(\"animated zoomOutDown\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomOutDown\");\r\n\t\t});\r\n\t});\r\n\r\n\t$(\"button.btn.ant-nk-st.zoomOutLeft-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-twelve\").addClass(\"animated zoomOutLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomOutLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.btn.ant-nk-st.zoomOutRight-ac\").on('click', function(){\r\n\t\t$(\".animation-img .animate-twelve\").addClass(\"animated zoomOutRight\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomOutRight\");\r\n\t\t});\r\n\t});\r\n\t/*----------------------\r\n\tAnimation dropdown active js\r\n\t-----------------------*/\r\n\t$(\"button.triger-fadeIn\").on('click', function(){\r\n\t\t$(\".triger-fadeIn-dp\").addClass(\"animated fadeIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-fadeInUp\").on('click', function(){\r\n\t\t$(\".triger-fadeInUp-dp\").addClass(\"animated fadeInUp\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeInUp\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-fadeInLeft\").on('click', function(){\r\n\t\t$(\".triger-fadeInLeft-dp\").addClass(\"animated fadeInLeft\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated fadeInLeft\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-shake\").on('click', function(){\r\n\t\t$(\".triger-shake-dp\").addClass(\"animated shake\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated shake\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-swing\").on('click', function(){\r\n\t\t$(\".triger-swing-dp\").addClass(\"animated swing\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated swing\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-jello\").on('click', function(){\r\n\t\t$(\".triger-jello-dp\").addClass(\"animated jello\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated jello\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-bounceIn\").on('click', function(){\r\n\t\t$(\".triger-bounceIn-dp\").addClass(\"animated bounceIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-bounceInUp\").on('click', function(){\r\n\t\t$(\".triger-bounceInUp-dp\").addClass(\"animated bounceInUp\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated bounceInUp\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-flip\").on('click', function(){\r\n\t\t$(\".triger-flip-dp\").addClass(\"animated flip\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flip\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-flipInX\").on('click', function(){\r\n\t\t$(\".triger-flipInX-dp\").addClass(\"animated flipInX\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flipInX\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-flipInY\").on('click', function(){\r\n\t\t$(\".triger-flipInY-dp\").addClass(\"animated flipInY\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated flipInY\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-rotateIn\").on('click', function(){\r\n\t\t$(\".triger-rotateIn-dp\").addClass(\"animated rotateIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated rotateIn\");\r\n\t\t});\r\n\t});\r\n\t$(\"button.triger-zoomIn\").on('click', function(){\r\n\t\t$(\".triger-zoomIn-dp\").addClass(\"animated zoomIn\").one(\"webkitAnimationEnd mozAnimationEnd oAnimationEnd animationend\", function(){\r\n\t\t\t$(this).removeClass(\"animated zoomIn\");\r\n\t\t});\r\n\t});\r\n \r\n})(jQuery); ","/**\r\n* Theme: Notika Template\r\n* Author: Kalam\r\n* Chat application \r\n*/\r\n\r\n!function($) {\r\n \"use strict\";\r\n\r\n var ChatApp = function() {\r\n this.$body = $(\"body\"),\r\n this.$chatInput = $('.chat-input'),\r\n this.$chatList = $('.conversation-list'),\r\n this.$chatSendBtn = $('.chat-send .btn')\r\n };\r\n\r\n //saves chat entry - You should send ajax call to server in order to save chat enrty\r\n ChatApp.prototype.save = function() {\r\n var chatText = this.$chatInput.val();\r\n var chatTime = moment().format(\"h:mm\");\r\n if (chatText == \"\") {\r\n sweetAlert(\"Oops...\", \"You forgot to enter your chat message\", \"error\");\r\n this.$chatInput.focus();\r\n } else {\r\n $('<li class=\"clearfix\"><div class=\"chat-avatar\"><img src=\"img/post/1.jpg\" alt=\"male\"><i>' + chatTime + '</i></div><div class=\"conversation-text\"><div class=\"ctext-wrap\"><i>John Deo</i><p>' + chatText + '</p></div></div></li>').appendTo('ul.conversation-list');\r\n this.$chatInput.val('');\r\n this.$chatInput.focus();\r\n this.$chatList.scrollTo('100%', '100%', {\r\n easing: 'swing'\r\n });\r\n }\r\n },\r\n ChatApp.prototype.init = function () {\r\n var $this = this;\r\n //binding keypress event on chat input box - on enter we are adding the chat into chat list - \r\n $this.$chatInput.keypress(function (ev) {\r\n var p = ev.which;\r\n if (p == 13) {\r\n $this.save();\r\n return false;\r\n }\r\n });\r\n\r\n\r\n //binding send button click\r\n $this.$chatSendBtn.click(function (ev) {\r\n $this.save();\r\n return false;\r\n });\r\n },\r\n //init ChatApp\r\n $.ChatApp = new ChatApp, $.ChatApp.Constructor = ChatApp\r\n \r\n}(window.jQuery),\r\n\r\n//initializing main application module\r\nfunction($) {\r\n \"use strict\";\r\n $.ChatApp.init();\r\n}(window.jQuery);","/**\r\n* Theme: Minton Admin Template\r\n* Author: Coderthemes\r\n* Todo - Application\r\n*/\r\n\r\n!function($) {\r\n \"use strict\";\r\n\r\n var TodoApp = function() {\r\n this.$body = $(\"body\"),\r\n this.$todoContainer = $('#todo-container'),\r\n this.$todoMessage = $(\"#todo-message\"),\r\n this.$todoRemaining = $(\"#todo-remaining\"),\r\n this.$todoTotal = $(\"#todo-total\"),\r\n this.$archiveBtn = $(\"#btn-archive\"),\r\n this.$todoList = $(\"#todo-list\"),\r\n this.$todoDonechk = \".todo-done\",\r\n this.$todoForm = $(\"#todo-form\"),\r\n this.$todoInput = $(\"#todo-input-text\"),\r\n this.$todoBtn = $(\"#todo-btn-submit\"),\r\n\r\n this.$todoData = [\r\n {\r\n 'id': '1',\r\n 'text': 'Fivamus sagittis lacus vel',\r\n 'done': false\r\n },\r\n {\r\n 'id': '2',\r\n 'text': 'Nullam dolor nibh ultricies',\r\n 'done': true\r\n },\r\n {\r\n 'id': '3',\r\n 'text': 'Cras mattis consectetur purus',\r\n 'done': true\r\n },\r\n {\r\n 'id': '4',\r\n 'text': 'Integer posuere erat ante',\r\n 'done': true\r\n },\r\n {\r\n 'id': '5',\r\n 'text': 'Praesent commodo cursus magnavel',\r\n 'done': false\r\n },\r\n {\r\n 'id': '6',\r\n 'text': 'Cras mattis consectetur',\r\n 'done': true\r\n },\r\n {\r\n 'id': '7',\r\n 'text': 'Fivamus sagittis lacus vel',\r\n 'done': true\r\n },\r\n {\r\n 'id': '8',\r\n 'text': 'Nullam dolor nibh ultricies',\r\n 'done': true\r\n },\r\n {\r\n 'id': '9',\r\n 'text': 'Nullam dolor nibh ultricies',\r\n 'done': true\r\n }];\r\n\r\n this.$todoCompletedData = [];\r\n this.$todoUnCompletedData = [];\r\n };\r\n\r\n //mark/unmark - you can use ajax to save data on server side\r\n TodoApp.prototype.markTodo = function(todoId, complete) {\r\n for(var count=0; count<this.$todoData.length;count++) {\r\n if(this.$todoData[count].id == todoId) {\r\n this.$todoData[count].done = complete;\r\n }\r\n }\r\n },\r\n //adds new todo\r\n TodoApp.prototype.addTodo = function(todoText) {\r\n this.$todoData.push({'id': this.$todoData.length, 'text': todoText, 'done': false});\r\n //regenerate list\r\n this.generate();\r\n },\r\n //Archives the completed todos\r\n TodoApp.prototype.archives = function() {\r\n \tthis.$todoUnCompletedData = [];\r\n for(var count=0; count<this.$todoData.length;count++) {\r\n //geretaing html\r\n var todoItem = this.$todoData[count];\r\n if(todoItem.done == true) {\r\n this.$todoCompletedData.push(todoItem);\r\n } else {\r\n this.$todoUnCompletedData.push(todoItem);\r\n }\r\n }\r\n this.$todoData = [];\r\n this.$todoData = [].concat(this.$todoUnCompletedData);\r\n //regenerate todo list\r\n this.generate();\r\n },\r\n //Generates todos\r\n TodoApp.prototype.generate = function() {\r\n //clear list\r\n this.$todoList.html(\"\");\r\n var remaining = 0;\r\n for(var count=0; count<this.$todoData.length;count++) {\r\n //geretaing html\r\n var todoItem = this.$todoData[count];\r\n if(todoItem.done == true)\r\n this.$todoList.prepend('<li class=\"list-group-item\"><div class=\"checkbox checkbox-primary\"><input class=\"todo-done\" id=\"' + todoItem.id + '\" type=\"checkbox\" checked><label for=\"' + todoItem.id + '\">' + todoItem.text + '</label></div></li>');\r\n else {\r\n remaining = remaining + 1;\r\n this.$todoList.prepend('<li class=\"list-group-item\"><div class=\"checkbox checkbox-primary\"><input class=\"todo-done\" id=\"' + todoItem.id + '\" type=\"checkbox\"><label for=\"' + todoItem.id + '\">' + todoItem.text + '</label></div></li>');\r\n }\r\n }\r\n\r\n //set total in ui\r\n this.$todoTotal.text(this.$todoData.length);\r\n //set remaining\r\n this.$todoRemaining.text(remaining);\r\n },\r\n //init todo app\r\n TodoApp.prototype.init = function () {\r\n var $this = this;\r\n //generating todo list\r\n this.generate();\r\n\r\n //binding archive\r\n this.$archiveBtn.on(\"click\", function(e) {\r\n \te.preventDefault();\r\n $this.archives();\r\n return false;\r\n });\r\n\r\n //binding todo done chk\r\n $(document).on(\"change\", this.$todoDonechk, function() {\r\n if(this.checked) \r\n $this.markTodo($(this).attr('id'), true);\r\n else\r\n $this.markTodo($(this).attr('id'), false);\r\n //regenerate list\r\n $this.generate();\r\n });\r\n\r\n //binding the new todo button\r\n this.$todoBtn.on(\"click\", function() {\r\n if ($this.$todoInput.val() == \"\" || typeof($this.$todoInput.val()) == 'undefined' || $this.$todoInput.val() == null) {\r\n sweetAlert(\"Oops...\", \"You forgot to enter todo text\", \"error\");\r\n $this.$todoInput.focus();\r\n } else {\r\n $this.addTodo($this.$todoInput.val());\r\n }\r\n });\r\n },\r\n //init TodoApp\r\n $.TodoApp = new TodoApp, $.TodoApp.Constructor = TodoApp\r\n \r\n}(window.jQuery),\r\n\r\n//initializing todo app\r\nfunction($) {\r\n \"use strict\";\r\n $.TodoApp.init()\r\n}(window.jQuery);","// Avoid `console` errors in browsers that lack a console.\r\n(function() {\r\n var method;\r\n var noop = function () {};\r\n var methods = [\r\n 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',\r\n 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',\r\n 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',\r\n 'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn'\r\n ];\r\n var length = methods.length;\r\n var console = (window.console = window.console || {});\r\n\r\n while (length--) {\r\n method = methods[length];\r\n\r\n // Only stub undefined methods.\r\n if (!console[method]) {\r\n console[method] = noop;\r\n }\r\n }\r\n}());\r\n\r\n// Place any jQuery/helper plugins in here.\r\n","(function ($) {\r\n \"use strict\";\r\n\r\n \r\n jQuery('nav#dropdown').meanmenu();\r\n\r\n $(\".chosen\")[0] && $(\".chosen\").chosen({\r\n width: \"100%\",\r\n allow_single_deselect: !0\r\n });\r\n /*--------------------------\r\n\t\t\tauto-size Active Class\r\n\t\t ---------------------------- */\r\n $(\".auto-size\")[0] && autosize($(\".auto-size\"));\r\n /*--------------------------\r\n\t\t\tCollapse Accordion Active Class\r\n ---------------------------- */\r\n \r\n $(\".notika-accrodion-cus .panel-heading\").click(function(){\r\n $(\".notika-accrodion-cus .panel-heading\").removeClass(\"active\");\r\n $(this).addClass(\"active\");\r\n });\r\n $(\".collapse\")[0] && ($(\".collapse\").on(\"show.bs.collapse\", function (e) {\r\n $(this).closest(\".panel\").find(\".panel-heading\").addClass(\"active\")\r\n }), $(\".collapse\").on(\"hide.bs.collapse\", function (e) {\r\n $(this).closest(\".panel\").find(\".panel-heading\").removeClass(\"active\")\r\n }), $(\".collapse.in\").each(function () {\r\n $(this).closest(\".panel\").find(\".panel-heading\").addClass(\"active\")\r\n }));\r\n /*----------------------------\r\n\t\t\tjQuery tooltip\r\n\t\t ------------------------------ */\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n /*--------------------------\r\n\t\t\tpopover\r\n\t\t ---------------------------- */\r\n $('[data-toggle=\"popover\"]')[0] && $('[data-toggle=\"popover\"]').popover();\r\n /*--------------------------\r\n\t\t\tFile Download\r\n\t\t ---------------------------- */\r\n $('.btn.dw-al-ft').on('click', function (e) {\r\n e.preventDefault();\r\n });\r\n /*--------------------------\r\n\t\t\tSidebar Left\r\n\t\t ---------------------------- */\r\n $('#sidebarCollapse').on('click', function () {\r\n $('#sidebar').toggleClass('active');\r\n\r\n });\r\n $('#sidebarCollapse').on('click', function () {\r\n $(\"body\").toggleClass(\"mini-navbar\");\r\n SmoothlyMenu();\r\n });\r\n $('.menu-switcher-pro').on('click', function () {\r\n var button = $(this).find('i.nk-indicator');\r\n button.toggleClass('notika-menu-befores').toggleClass('notika-menu-after');\r\n\r\n });\r\n $('.menu-switcher-pro.fullscreenbtn').on('click', function () {\r\n var button = $(this).find('i.nk-indicator');\r\n button.toggleClass('notika-back').toggleClass('notika-next-pro');\r\n });\r\n /*--------------------------\r\n\t\t\tButton BTN Left\r\n\t\t ---------------------------- */\r\n\r\n $(\".nk-int-st\")[0] && ($(\"body\").on(\"focus\", \".nk-int-st .form-control\", function () {\r\n $(this).closest(\".nk-int-st\").addClass(\"nk-toggled\")\r\n }), $(\"body\").on(\"blur\", \".form-control\", function () {\r\n var p = $(this).closest(\".form-group, .input-group\"),\r\n i = p.find(\".form-control\").val();\r\n p.hasClass(\"fg-float\") ? 0 == i.length && $(this).closest(\".nk-int-st\").removeClass(\"nk-toggled\") : $(this).closest(\".nk-int-st\").removeClass(\"nk-toggled\")\r\n })), $(\".fg-float\")[0] && $(\".fg-float .form-control\").each(function () {\r\n var i = $(this).val();\r\n 0 == !i.length && $(this).closest(\".nk-int-st\").addClass(\"nk-toggled\")\r\n });\r\n\r\n /*----------------------------\r\n\t\tjQuery MeanMenu\r\n\t ------------------------------ */\r\n\r\n\r\n /*----------------------------\r\n\t\twow js active\r\n\t ------------------------------ */\r\n new WOW().init();\r\n\r\n\r\n\r\n})(jQuery);\r\n","/**\n * Swiper 4.5.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2019 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 22, 2019\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Swiper = factory());\n}(this, function () { 'use strict';\n\n /**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\n var doc = (typeof document === 'undefined') ? {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n } : document; // eslint-disable-line\n\n var win = (typeof window === 'undefined') ? {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n } : window; // eslint-disable-line\n\n /**\n * Dom7 2.1.3\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2019, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: February 11, 2019\n */\n\n var Dom7 = function Dom7(arr) {\n var self = this;\n // Create array-like object\n for (var i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n };\n\n function $(selector, context) {\n var arr = [];\n var i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n var els;\n var tempParent;\n var html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf('<li') === 0) { toCreate = 'ul'; }\n if (html.indexOf('<tr') === 0) { toCreate = 'tbody'; }\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) { toCreate = 'tr'; }\n if (html.indexOf('<tbody') === 0) { toCreate = 'table'; }\n if (html.indexOf('<option') === 0) { toCreate = 'select'; }\n tempParent = doc.createElement(toCreate);\n tempParent.innerHTML = html;\n for (i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\n // Pure ID selector\n els = [doc.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || doc).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) { arr.push(els[i]); }\n }\n }\n } else if (selector.nodeType || selector === win || selector === doc) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n }\n\n $.fn = Dom7.prototype;\n $.Class = Dom7;\n $.Dom7 = Dom7;\n\n function unique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); }\n }\n return uniqueArray;\n }\n\n // Classes and attributes\n function addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.add(classes[i]); }\n }\n }\n return this;\n }\n function removeClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.remove(classes[i]); }\n }\n }\n return this;\n }\n function hasClass(className) {\n if (!this[0]) { return false; }\n return this[0].classList.contains(className);\n }\n function toggleClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.toggle(classes[i]); }\n }\n }\n return this;\n }\n function attr(attrs, value) {\n var arguments$1 = arguments;\n\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) { return this[0].getAttribute(attrs); }\n return undefined;\n }\n\n // Set attrs\n for (var i = 0; i < this.length; i += 1) {\n if (arguments$1.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n }\n // eslint-disable-next-line\n function removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n }\n function data(key, value) {\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute((\"data-\" + key));\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; }\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n }\n // Transforms\n // eslint-disable-next-line\n function transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n }\n function transition(duration) {\n if (typeof duration !== 'string') {\n duration = duration + \"ms\"; // eslint-disable-line\n }\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n }\n // Events\n function on() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) { return; }\n var eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) { listener.apply(target, eventData); }\n else {\n var parents = $(target).parents(); // eslint-disable-line\n for (var k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); }\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) { el.dom7Listeners = {}; }\n if (!el.dom7Listeners[event]) { el.dom7Listeners[event] = []; }\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var event$1 = events[j];\n if (!el.dom7LiveListeners) { el.dom7LiveListeners = {}; }\n if (!el.dom7LiveListeners[event$1]) { el.dom7LiveListeners[event$1] = []; }\n el.dom7LiveListeners[event$1].push({\n listener: listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event$1, handleLiveEvent, capture);\n }\n }\n }\n return this;\n }\n function off() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = (void 0);\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n }\n function trigger() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var evt = (void 0);\n try {\n evt = new win.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = doc.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n }\n function transitionEnd(callback) {\n var events = ['webkitTransitionEnd', 'transitionend'];\n var dom = this;\n var i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) { return; }\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n }\n function outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n }\n function outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n }\n function offset() {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = doc.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === win ? win.scrollY : el.scrollTop;\n var scrollLeft = el === win ? win.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n }\n function styles() {\n if (this[0]) { return win.getComputedStyle(this[0], null); }\n return {};\n }\n function css(props, value) {\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); }\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (var prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n }\n // Iterate over the collection passing elements to `callback`\n function each(callback) {\n // Don't bother continuing without a callback\n if (!callback) { return this; }\n // Iterate over the current collection\n for (var i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n }\n // eslint-disable-next-line\n function html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n }\n // eslint-disable-next-line\n function text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n }\n function is(selector) {\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') { return false; }\n if (typeof selector === 'string') {\n if (el.matches) { return el.matches(selector); }\n else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); }\n else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); }\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n } else if (selector === doc) { return el === doc; }\n else if (selector === win) { return el === win; }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n }\n return false;\n }\n function index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) { i += 1; }\n }\n return i;\n }\n return undefined;\n }\n // eslint-disable-next-line\n function eq(index) {\n if (typeof index === 'undefined') { return this; }\n var length = this.length;\n var returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) { return new Dom7([]); }\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n }\n function append() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var newChild;\n\n for (var k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n }\n function prepend(newChild) {\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n }\n function next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n }\n function nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.nextElementSibling) {\n var next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) { nextEls.push(next); }\n } else { nextEls.push(next); }\n el = next;\n }\n return new Dom7(nextEls);\n }\n function prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n }\n function prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.previousElementSibling) {\n var prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) { prevEls.push(prev); }\n } else { prevEls.push(prev); }\n el = prev;\n }\n return new Dom7(prevEls);\n }\n function parent(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); }\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n }\n function parents(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) { parents.push(parent); }\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n }\n function closest(selector) {\n var closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n }\n function find(selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n }\n function children(selector) {\n var children = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].childNodes;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); }\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n }\n function remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); }\n }\n return this;\n }\n function add() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dom = this;\n var i;\n var j;\n for (i = 0; i < args.length; i += 1) {\n var toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n }\n\n var Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n data: data,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n remove: remove,\n add: add,\n styles: styles,\n };\n\n Object.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n });\n\n var Utils = {\n deleteProps: function deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick: function nextTick(callback, delay) {\n if ( delay === void 0 ) delay = 0;\n\n return setTimeout(callback, delay);\n },\n now: function now() {\n return Date.now();\n },\n getTranslate: function getTranslate(el, axis) {\n if ( axis === void 0 ) axis = 'x';\n\n var matrix;\n var curTransform;\n var transformMatrix;\n\n var curStyle = win.getComputedStyle(el, null);\n\n if (win.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[4]); }\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[5]); }\n }\n return curTransform || 0;\n },\n parseUrlQuery: function parseUrlQuery(url) {\n var query = {};\n var urlToParse = url || win.location.href;\n var i;\n var params;\n var param;\n var length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; });\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject: function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend: function extend() {\n var args = [], len$1 = arguments.length;\n while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ];\n\n var to = Object(args[0]);\n for (var i = 1; i < args.length; i += 1) {\n var nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n };\n\n var Support = (function Support() {\n var testDiv = doc.createElement('div');\n return {\n touch: (win.Modernizr && win.Modernizr.touch === true) || (function checkTouch() {\n return !!((win.navigator.maxTouchPoints > 0) || ('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch));\n }()),\n\n pointerEvents: !!(win.navigator.pointerEnabled || win.PointerEvent || ('maxTouchPoints' in win.navigator && win.navigator.maxTouchPoints > 0)),\n prefixedPointerEvents: !!win.navigator.msPointerEnabled,\n\n transition: (function checkTransition() {\n var style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (win.Modernizr && win.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n var style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n\n flexbox: (function checkFlexbox() {\n var style = testDiv.style;\n var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (var i = 0; i < styles.length; i += 1) {\n if (styles[i] in style) { return true; }\n }\n return false;\n }()),\n\n observer: (function checkObserver() {\n return ('MutationObserver' in win || 'WebkitMutationObserver' in win);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n },\n });\n win.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in win;\n }()),\n };\n }());\n\n var Browser = (function Browser() {\n function isSafari() {\n var ua = win.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!win.navigator.userAgent.match(/Trident/g) || !!win.navigator.userAgent.match(/MSIE/g),\n isEdge: !!win.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),\n };\n }());\n\n var SwiperClass = function SwiperClass(params) {\n if ( params === void 0 ) params = {};\n\n var self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(function (eventName) {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n };\n\n var staticAccessors = { components: { configurable: true } };\n\n SwiperClass.prototype.on = function on (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; }\n self.eventsListeners[event][method](handler);\n });\n return self;\n };\n\n SwiperClass.prototype.once = function once (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n function onceHandler() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n handler.apply(self, args);\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n };\n\n SwiperClass.prototype.off = function off (events, handler) {\n var self = this;\n if (!self.eventsListeners) { return self; }\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n };\n\n SwiperClass.prototype.emit = function emit () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var self = this;\n if (!self.eventsListeners) { return self; }\n var events;\n var data;\n var context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n };\n\n SwiperClass.prototype.useModulesParams = function useModulesParams (instanceParams) {\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n };\n\n SwiperClass.prototype.useModules = function useModules (modulesParams) {\n if ( modulesParams === void 0 ) modulesParams = {};\n\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n };\n\n staticAccessors.components.set = function (components) {\n var Class = this;\n if (!Class.use) { return; }\n Class.use(components);\n };\n\n SwiperClass.installModule = function installModule (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (!Class.prototype.modules) { Class.prototype.modules = {}; }\n var name = module.name || (((Object.keys(Class.prototype.modules).length) + \"_\" + (Utils.now())));\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n };\n\n SwiperClass.use = function use (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (Array.isArray(module)) {\n module.forEach(function (m) { return Class.installModule(m); });\n return Class;\n }\n return Class.installModule.apply(Class, [ module ].concat( params ));\n };\n\n Object.defineProperties( SwiperClass, staticAccessors );\n\n function updateSize () {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height,\n });\n }\n\n function updateSlides () {\n var swiper = this;\n var params = swiper.params;\n\n var $wrapperEl = swiper.$wrapperEl;\n var swiperSize = swiper.size;\n var rtl = swiper.rtlTranslate;\n var wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children((\".\" + (swiper.params.slideClass)));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); }\n else { slides.css({ marginRight: '', marginBottom: '' }); }\n\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = (void 0);\n var column = (void 0);\n var row = (void 0);\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide\n .css(\n (\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left')),\n (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + \"px\"))\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') { continue; } // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = win.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width'));\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height'));\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n var boxSizing$1 = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing$1 && boxSizing$1 === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; }\n if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }\n if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }\n if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {\n var slidesGridItem = snapGrid[i$1];\n if (params.roundLengths) { slidesGridItem = Math.floor(slidesGridItem); }\n if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(slidesGridItem); }\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {\n var slidesGridItem$1 = snapGrid[i$2];\n if (params.roundLengths) { slidesGridItem$1 = Math.floor(slidesGridItem$1); }\n if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem$1);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) { snapGrid = [0]; }\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) { slides.css({ marginLeft: (spaceBetween + \"px\") }); }\n else { slides.css({ marginRight: (spaceBetween + \"px\") }); }\n } else { slides.css({ marginBottom: (spaceBetween + \"px\") }); }\n }\n\n if (params.centerInsufficientSlides) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) { swiper.checkOverflow(); }\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n }\n\n function updateAutoHeight (speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) { break; }\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + \"px\")); }\n }\n\n function updateSlidesOffset () {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n }\n\n function updateSlidesProgress (translate) {\n if ( translate === void 0 ) translate = (this && this.translate) || 0;\n\n var swiper = this;\n var params = swiper.params;\n\n var slides = swiper.slides;\n var rtl = swiper.rtlTranslate;\n\n if (slides.length === 0) { return; }\n if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); }\n\n var offsetCenter = -translate;\n if (rtl) { offsetCenter = translate; }\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = (slideBefore >= 0 && slideBefore < swiper.size)\n || (slideAfter > 0 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n }\n\n function updateProgress (translate) {\n if ( translate === void 0 ) translate = (this && this.translate) || 0;\n\n var swiper = this;\n var params = swiper.params;\n\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress;\n var isBeginning = swiper.isBeginning;\n var isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) { swiper.updateSlidesProgress(translate); }\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n }\n\n function updateSlidesClasses () {\n var swiper = this;\n\n var slides = swiper.slides;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n var realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(((params.slideActiveClass) + \" \" + (params.slideNextClass) + \" \" + (params.slidePrevClass) + \" \" + (params.slideDuplicateActiveClass) + \" \" + (params.slideDuplicateNextClass) + \" \" + (params.slideDuplicatePrevClass)));\n\n var activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\"));\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.nextAll((\".\" + (params.slideClass))).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prevAll((\".\" + (params.slideClass))).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n }\n\n function updateActiveIndex (newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n var previousIndex = swiper.activeIndex;\n var previousRealIndex = swiper.realIndex;\n var previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; }\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n\n function updateClickedSlide (e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest((\".\" + (params.slideClass)))[0];\n var slideFound = false;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) { slideFound = true; }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n }\n\n var update = {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide,\n };\n\n function getTranslate (axis) {\n if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y';\n\n var swiper = this;\n\n var params = swiper.params;\n var rtl = swiper.rtlTranslate;\n var translate = swiper.translate;\n var $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) { currentTranslate = -currentTranslate; }\n\n return currentTranslate || 0;\n }\n\n function setTranslate (translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (!params.virtualTranslate) {\n if (Support.transforms3d) { $wrapperEl.transform((\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\")); }\n else { $wrapperEl.transform((\"translate(\" + x + \"px, \" + y + \"px)\")); }\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n }\n\n function minTranslate () {\n return (-this.snapGrid[0]);\n }\n\n function maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n }\n\n var translate = {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n };\n\n function setTransition (duration, byController) {\n var swiper = this;\n\n swiper.$wrapperEl.transition(duration);\n\n swiper.emit('setTransition', duration, byController);\n }\n\n function transitionStart (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var params = swiper.params;\n var previousIndex = swiper.previousIndex;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n }\n\n function transitionEnd$1 (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var previousIndex = swiper.previousIndex;\n swiper.animating = false;\n swiper.setTransition(0);\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n }\n\n var transition$1 = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd$1,\n };\n\n function slideTo (index, speed, runCallbacks, internal) {\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) { slideIndex = 0; }\n\n var params = swiper.params;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var previousIndex = swiper.previousIndex;\n var activeIndex = swiper.activeIndex;\n var rtl = swiper.rtlTranslate;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) { return false; }\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) { direction = 'next'; }\n else if (slideIndex < activeIndex) { direction = 'prev'; }\n else { direction = 'reset'; }\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n\n if (speed === 0 || !Support.transition) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n }\n\n function slideToLoop (index, speed, runCallbacks, internal) {\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideNext (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slidePrev (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) { return -Math.floor(Math.abs(val)); }\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); });\n var normalizedSlidesGrid = slidesGrid.map(function (val) { return normalize(val); });\n\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) { prevIndex = swiper.activeIndex - 1; }\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideReset (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideToClosest (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var index = swiper.activeIndex;\n var snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n\n if (snapIndex < swiper.snapGrid.length - 1) {\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {\n index = swiper.params.slidesPerGroup;\n }\n }\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n }\n\n function slideToClickedSlide () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) { return; }\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n\n var slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide,\n };\n\n function loopCreate () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n // Remove duplicated slides\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\n\n var slides = $wrapperEl.children((\".\" + (params.slideClass)));\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(doc.createElement('div')).addClass(((params.slideClass) + \" \" + (params.slideBlankClass)));\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; }\n\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (index, el) {\n var slide = $(el);\n if (index < swiper.loopedSlides) { appendSlides.push(el); }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {\n $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {\n $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n }\n\n function loopFix () {\n var swiper = this;\n var params = swiper.params;\n var activeIndex = swiper.activeIndex;\n var slides = swiper.slides;\n var loopedSlides = swiper.loopedSlides;\n var allowSlidePrev = swiper.allowSlidePrev;\n var allowSlideNext = swiper.allowSlideNext;\n var snapGrid = swiper.snapGrid;\n var rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate();\n\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged$1 && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n }\n\n function loopDestroy () {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var slides = swiper.slides;\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \",.\" + (params.slideClass) + \".\" + (params.slideBlankClass))).remove();\n slides.removeAttr('data-swiper-slide-index');\n }\n\n var loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy,\n };\n\n function setGrabCursor (moving) {\n var swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) { return; }\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n }\n\n function unsetGrabCursor () {\n var swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) { return; }\n swiper.el.style.cursor = '';\n }\n\n var grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor,\n };\n\n function appendSlide (slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.append(slides[i]); }\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n }\n\n function prependSlide (slides) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.prepend(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n }\n\n function addSlide (index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n var slidesBuffer = [];\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (slides[i$1]) { $wrapperEl.append(slides[i$1]); }\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {\n $wrapperEl.append(slidesBuffer[i$2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n }\n\n function removeSlide (slidesIndexes) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n }\n\n function removeAllSlides () {\n var swiper = this;\n\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n }\n\n var manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n };\n\n var Device = (function Device() {\n var ua = win.navigator.userAgent;\n\n var device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: win.cordova || win.phonegap,\n phonegap: win.cordova || win.phonegap,\n };\n\n var windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\n // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n // Minimal UI\n if (device.os && device.os === 'ios') {\n var osVersionArr = device.osVersion.split('.');\n var metaViewport = doc.querySelector('meta[name=\"viewport\"]');\n device.minimalUi = !device.webView\n && (ipod || iphone)\n && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)\n && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n\n // Pixel Ratio\n device.pixelRatio = win.devicePixelRatio || 1;\n\n // Export object\n return device;\n }());\n\n function onTouchStart (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; }\n if (!data.isTouchEvent && 'button' in e && e.button > 0) { return; }\n if (data.isTouched && data.isMoved) { return; }\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : (\".\" + (params.noSwipingClass)))[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$(e).closest(params.swipeHandler)[0]) { return; }\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= win.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) { data.allowThresholdMove = false; }\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($(e.target).is(data.formElements)) { preventDefault = false; }\n if (\n doc.activeElement\n && $(doc.activeElement).is(data.formElements)\n && doc.activeElement !== e.target\n ) {\n doc.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n }\n\n function onTouchMove (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type === 'mousemove') { return; }\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && doc.activeElement) {\n if (e.target === doc.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) { return; }\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((Math.pow( diffX, 2 )) + (Math.pow( diffY, 2 ))) < swiper.params.threshold) { return; }\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) { diff = -diff; }\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); }\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); }\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) { return; }\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n }\n\n function onTouchEnd (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtlTranslate;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n var touchEndTime = Utils.now();\n var timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {\n if (data.clickTimeout) { clearTimeout(data.clickTimeout); }\n data.clickTimeout = Utils.nextTick(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n if (data.clickTimeout) { clearTimeout(data.clickTimeout); }\n swiper.emit('doubleTap', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(function () {\n if (!swiper.destroyed) { swiper.allowClick = true; }\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) { newPosition = -newPosition; }\n\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) { needsLoopFix = true; }\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) { needsLoopFix = true; }\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; }\n swiper.emit('momentumBounce');\n\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + params.slidesPerGroup); }\n else { swiper.slideTo(stopIndex); }\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + params.slidesPerGroup); }\n else { swiper.slideTo(stopIndex); }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n }\n\n function onResize () {\n var swiper = this;\n\n var params = swiper.params;\n var el = swiper.el;\n\n if (el && el.offsetWidth === 0) { return; }\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n var allowSlideNext = swiper.allowSlideNext;\n var allowSlidePrev = swiper.allowSlidePrev;\n var snapGrid = swiper.snapGrid;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n if (params.freeMode) {\n var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n }\n\n function onClick (e) {\n var swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) { e.preventDefault(); }\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n }\n\n function attachEvents() {\n var swiper = this;\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n doc.addEventListener('mousemove', swiper.onTouchMove, capture);\n doc.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n }\n\n function detachEvents() {\n var swiper = this;\n\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n doc.removeEventListener('mousemove', swiper.onTouchMove, capture);\n doc.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n }\n\n var events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents,\n };\n\n function setBreakpoint () {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var initialized = swiper.initialized;\n var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0;\n var params = swiper.params;\n var breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; }\n\n // Set breakpoint for window width and update parameters\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') { return; }\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n }\n\n function getBreakpoint (breakpoints) {\n var swiper = this;\n // Get breakpoint for window width\n if (!breakpoints) { return undefined; }\n var breakpoint = false;\n var points = [];\n Object.keys(breakpoints).forEach(function (point) {\n points.push(point);\n });\n points.sort(function (a, b) { return parseInt(a, 10) - parseInt(b, 10); });\n for (var i = 0; i < points.length; i += 1) {\n var point = points[i];\n if (swiper.params.breakpointsInverse) {\n if (point <= win.innerWidth) {\n breakpoint = point;\n }\n } else if (point >= win.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n }\n\n var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint };\n\n function addClasses () {\n var swiper = this;\n var classNames = swiper.classNames;\n var params = swiper.params;\n var rtl = swiper.rtl;\n var $el = swiper.$el;\n var suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push((\"wp8-\" + (params.direction)));\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n }\n\n function removeClasses () {\n var swiper = this;\n var $el = swiper.$el;\n var classNames = swiper.classNames;\n\n $el.removeClass(classNames.join(' '));\n }\n\n var classes = { addClasses: addClasses, removeClasses: removeClasses };\n\n function loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady() {\n if (callback) { callback(); }\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new win.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n }\n\n function preloadImages () {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; }\n if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; }\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) { swiper.update(); }\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n }\n\n var images = {\n loadImage: loadImage,\n preloadImages: preloadImages,\n };\n\n function checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked;\n\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) { swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n }\n\n var checkOverflow$1 = { checkOverflow: checkOverflow };\n\n var defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsInverse: false,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n };\n\n /* eslint no-param-reassign: \"off\" */\n\n var prototypes = {\n update: update,\n translate: translate,\n transition: transition$1,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images,\n };\n\n var extendedDefaults = {};\n\n var Swiper = /*@__PURE__*/(function (SwiperClass) {\n function Swiper() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var el;\n var params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n (assign = args, el = assign[0], params = assign[1]);\n }\n if (!params) { params = {}; }\n\n params = Utils.extend({}, params);\n if (el && !params.el) { params.el = el; }\n\n SwiperClass.call(this, params);\n\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n var swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) { return; }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) { return; }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) { params[moduleParamName] = { enabled: false }; }\n }\n });\n\n // Extend defaults with modules params\n var swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (index, containerEl) {\n var newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n var $wrapperEl = $el.children((\".\" + (swiper.params.wrapperClass)));\n\n // Extend Swiper\n Utils.extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n if ( SwiperClass ) Swiper.__proto__ = SwiperClass;\n Swiper.prototype = Object.create( SwiperClass && SwiperClass.prototype );\n Swiper.prototype.constructor = Swiper;\n\n var staticAccessors = { extendedDefaults: { configurable: true },defaults: { configurable: true },Class: { configurable: true },$: { configurable: true } };\n\n Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic () {\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides;\n var slidesGrid = swiper.slidesGrid;\n var swiperSize = swiper.size;\n var activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {\n if (slides[i$1] && !breakLoop) {\n slideSize += slides[i$1].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n } else {\n for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) {\n if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n\n Swiper.prototype.update = function update () {\n var swiper = this;\n if (!swiper || swiper.destroyed) { return; }\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n\n Swiper.prototype.changeDirection = function changeDirection (newDirection, needUpdate) {\n if ( needUpdate === void 0 ) needUpdate = true;\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n if (currentDirection === 'vertical') {\n swiper.$el\n .removeClass(((swiper.params.containerModifierClass) + \"vertical wp8-vertical\"))\n .addClass((\"\" + (swiper.params.containerModifierClass) + newDirection));\n\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n swiper.$el.addClass(((swiper.params.containerModifierClass) + \"wp8-\" + newDirection));\n }\n }\n if (currentDirection === 'horizontal') {\n swiper.$el\n .removeClass(((swiper.params.containerModifierClass) + \"horizontal wp8-horizontal\"))\n .addClass((\"\" + (swiper.params.containerModifierClass) + newDirection));\n\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n swiper.$el.addClass(((swiper.params.containerModifierClass) + \"wp8-\" + newDirection));\n }\n }\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each(function (slideIndex, slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) { swiper.update(); }\n\n return swiper;\n };\n\n Swiper.prototype.init = function init () {\n var swiper = this;\n if (swiper.initialized) { return; }\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n };\n\n Swiper.prototype.destroy = function destroy (deleteInstance, cleanStyles) {\n if ( deleteInstance === void 0 ) deleteInstance = true;\n if ( cleanStyles === void 0 ) cleanStyles = true;\n\n var swiper = this;\n var params = swiper.params;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults (newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n };\n\n staticAccessors.extendedDefaults.get = function () {\n return extendedDefaults;\n };\n\n staticAccessors.defaults.get = function () {\n return defaults;\n };\n\n staticAccessors.Class.get = function () {\n return SwiperClass;\n };\n\n staticAccessors.$.get = function () {\n return $;\n };\n\n Object.defineProperties( Swiper, staticAccessors );\n\n return Swiper;\n }(SwiperClass));\n\n var Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n };\n\n var Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n };\n\n var Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n };\n\n var Resize = {\n name: 'resize',\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n // Emit resize\n win.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy() {\n var swiper = this;\n win.removeEventListener('resize', swiper.resize.resizeHandler);\n win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n };\n\n var Observer = {\n func: win.MutationObserver || win.WebkitMutationObserver,\n attach: function attach(target, options) {\n if ( options === void 0 ) options = {};\n\n var swiper = this;\n\n var ObserverFunc = Observer.func;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(observerUpdate);\n } else {\n win.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!Support.observer || !swiper.params.observer) { return; }\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n };\n\n var Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.observer.init();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.destroy();\n },\n },\n };\n\n var Virtual = {\n update: function update(force) {\n var swiper = this;\n var ref = swiper.params;\n var slidesPerView = ref.slidesPerView;\n var slidesPerGroup = ref.slidesPerGroup;\n var centeredSlides = ref.centeredSlides;\n var ref$1 = swiper.params.virtual;\n var addSlidesBefore = ref$1.addSlidesBefore;\n var addSlidesAfter = ref$1.addSlidesAfter;\n var ref$2 = swiper.virtual;\n var previousFrom = ref$2.from;\n var previousTo = ref$2.to;\n var slides = ref$2.slides;\n var previousSlidesGrid = ref$2.slidesGrid;\n var renderSlide = ref$2.renderSlide;\n var previousOffset = ref$2.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n\n var offsetProp;\n if (swiper.rtlTranslate) { offsetProp = 'right'; }\n else { offsetProp = swiper.isHorizontal() ? 'left' : 'top'; }\n\n var slidesAfter;\n var slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, (offset + \"px\"));\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: (function getSlides() {\n var slidesToRender = [];\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n var prependIndexes = [];\n var appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass))).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\")).remove();\n }\n }\n }\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (i$1 >= from && i$1 <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i$1);\n } else {\n if (i$1 > previousTo) { appendIndexes.push(i$1); }\n if (i$1 < previousFrom) { prependIndexes.push(i$1); }\n }\n }\n }\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) { return b - a; }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + \"px\"));\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n var $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $((\"<div class=\\\"\" + (swiper.params.slideClass) + \"\\\" data-swiper-slide-index=\\\"\" + index + \"\\\">\" + slide + \"</div>\"));\n if (!$slideEl.attr('data-swiper-slide-index')) { $slideEl.attr('data-swiper-slide-index', index); }\n if (params.cache) { swiper.virtual.cache[index] = $slideEl; }\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { swiper.virtual.slides.push(slides[i]); }\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { swiper.virtual.slides.unshift(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) { return; }\n var activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) { activeIndex -= 1; }\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) { activeIndex -= 1; }\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n };\n\n var Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"virtual\"));\n var overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.virtual.update();\n },\n },\n };\n\n var Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var kc = e.keyCode || e.charCode;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n var inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents((\".\" + (swiper.params.slideClass))).length > 0 && swiper.$el.parents((\".\" + (swiper.params.slideActiveClass))).length === 0) {\n return undefined;\n }\n var windowWidth = win.innerWidth;\n var windowHeight = win.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) { swiperOffset.left -= swiper.$el[0].scrollLeft; }\n var swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height] ];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) { return undefined; }\n }\n if (swiper.isHorizontal()) {\n if (kc === 37 || kc === 39) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if ((kc === 39 && !rtl) || (kc === 37 && rtl)) { swiper.slideNext(); }\n if ((kc === 37 && !rtl) || (kc === 39 && rtl)) { swiper.slidePrev(); }\n } else {\n if (kc === 38 || kc === 40) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if (kc === 40) { swiper.slideNext(); }\n if (kc === 38) { swiper.slidePrev(); }\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n if (swiper.keyboard.enabled) { return; }\n $(doc).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n if (!swiper.keyboard.enabled) { return; }\n $(doc).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n };\n\n var Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n };\n\n function isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = eventName in doc;\n\n if (!isSupported) {\n var element = doc.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && doc.implementation\n && doc.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && doc.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = doc.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n }\n var Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (win.navigator.userAgent.indexOf('firefox') > -1) { return 'DOMMouseScroll'; }\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n\n var sX = 0;\n var sY = 0; // spinX, spinY\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (!swiper.mouseEntered && !params.releaseOnEdges) { return true; }\n\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) { delta = data.pixelX * rtlFactor; }\n else { return true; }\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) { delta = data.pixelY; }\n else { return true; }\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) { return true; }\n\n if (params.invert) { delta = -delta; }\n\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) { return true; }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) { return true; }\n }\n swiper.mousewheel.lastScrollTime = (new win.Date()).getTime();\n } else {\n // Freemode or scrollContainer:\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n var position = swiper.getTranslate() + (delta * params.sensitivity);\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) { position = swiper.minTranslate(); }\n if (position <= swiper.maxTranslate()) { position = swiper.maxTranslate(); }\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n swiper.slideToClosest();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) { swiper.autoplay.stop(); }\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) { return true; }\n }\n\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n return false;\n },\n enable: function enable() {\n var swiper = this;\n if (!Mousewheel.event) { return false; }\n if (swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n if (!Mousewheel.event) { return false; }\n if (!swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n };\n\n var Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n lastScrollTime: Utils.now(),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.mousewheel.enabled) { swiper.mousewheel.enable(); }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.mousewheel.enabled) { swiper.mousewheel.disable(); }\n },\n },\n };\n\n var Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n\n if (swiper.params.loop) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) { return; }\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) { return; }\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) { return; }\n\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n };\n\n var Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.navigation.destroy();\n },\n click: function click(e) {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n var isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n };\n\n var Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n // Current/Total\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) { current -= total; }\n if (current < 0 && swiper.params.paginationType !== 'bullets') { current = total + current; }\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + \"px\"));\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(((params.bulletActiveClass) + \" \" + (params.bulletActiveClass) + \"-next \" + (params.bulletActiveClass) + \"-next-next \" + (params.bulletActiveClass) + \"-prev \" + (params.bulletActiveClass) + \"-prev-prev \" + (params.bulletActiveClass) + \"-main\"));\n if ($el.length > 1) {\n bullets.each(function (index, bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(((params.bulletActiveClass) + \"-main\"));\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(((params.bulletActiveClass) + \"-main\"));\n }\n $firstDisplayedBullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n $lastDisplayedBullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + \"px\"));\n }\n }\n if (params.type === 'fraction') {\n $el.find((\".\" + (params.currentClass))).text(params.formatFractionCurrent(current + 1));\n $el.find((\".\" + (params.totalClass))).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n var progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find((\".\" + (params.progressbarFillClass))).transform((\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\")).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + (params.bulletElement) + \" class=\\\"\" + (params.bulletClass) + \"\\\"></\" + (params.bulletElement) + \">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find((\".\" + (params.bulletClass)));\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"<span class=\\\"\" + (params.currentClass) + \"\\\"></span>\"\n + ' / '\n + \"<span class=\\\"\" + (params.totalClass) + \"\\\"></span>\";\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"<span class=\\\"\" + (params.progressbarFillClass) + \"\\\"></span>\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) { return; }\n\n var $el = $(params.el);\n if ($el.length === 0) { return; }\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n && swiper.$el.find(params.el).length === 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass((\"\" + (params.modifierClass) + (params.type) + \"-dynamic\"));\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', (\".\" + (params.bulletClass)), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) { index += swiper.loopedSlides; }\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el: $el,\n el: $el[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) { swiper.pagination.bullets.removeClass(params.bulletActiveClass); }\n if (params.clickable) {\n $el.off('click', (\".\" + (params.bulletClass)));\n }\n },\n };\n\n var Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function (number) { return number; },\n formatFractionTotal: function (number) { return number; },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.pagination.destroy();\n },\n click: function click(e) {\n var swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n };\n\n var Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtlTranslate;\n var progress = swiper.progress;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform((\"translate3d(\" + newPos + \"px, 0, 0)\"));\n } else {\n $dragEl.transform((\"translateX(\" + newPos + \"px)\"));\n }\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n if (Support.transforms3d) {\n $dragEl.transform((\"translate3d(0px, \" + newPos + \"px, 0)\"));\n } else {\n $dragEl.transform((\"translateY(\" + newPos + \"px)\"));\n }\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n\n var pointerPosition;\n if (swiper.isHorizontal()) {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n } else {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n }\n var positionRatio;\n positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n\n if (!swiper.scrollbar.isTouched) { return; }\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $el = scrollbar.$el;\n\n if (!swiper.scrollbar.isTouched) { return; }\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEventsTouch = swiper.touchEventsTouch;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEventsTouch = swiper.touchEventsTouch;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n\n var $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find((\".\" + (swiper.params.scrollbar.dragClass)));\n if ($dragEl.length === 0) {\n $dragEl = $((\"<div class=\\\"\" + (swiper.params.scrollbar.dragClass) + \"\\\"></div>\"));\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n };\n\n var Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize: function resize() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n };\n\n var Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = (parseInt(x, 10) * progress * rtlFactor) + \"%\";\n } else {\n x = (x * progress * rtlFactor) + \"px\";\n }\n if ((y).indexOf('%') >= 0) {\n y = (parseInt(y, 10) * progress) + \"%\";\n } else {\n y = (y * progress) + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px)\"));\n } else {\n var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\"));\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n var progress = swiper.progress;\n var snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideIndex, slideEl) {\n var slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if ( duration === void 0 ) duration = this.params.speed;\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each(function (index, parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) { parallaxDuration = 0; }\n $parallaxEl.transition(parallaxDuration);\n });\n },\n };\n\n var Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTransition(duration);\n },\n },\n };\n\n var Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) { return 1; }\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt((Math.pow( (x2 - x1), 2 )) + (Math.pow( (y2 - y1), 2 )));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) { gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (Math.pow( ((zoom.scale - gesture.maxRatio) + 1), 0.5 ));\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (Math.pow( ((params.minRatio - zoom.scale) + 1), 0.5 ));\n }\n gesture.$imageEl.transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) { gesture.$slideEl = undefined; }\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (image.isTouched) { return; }\n if (Device.android) { e.preventDefault(); }\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) { return; }\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) { return; }\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (Math.pow( ((image.minX - image.currentX) + 1), 0.8 ));\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (Math.pow( ((image.currentX - image.maxX) + 1), 0.8 ));\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (Math.pow( ((image.minY - image.currentY) + 1), 0.8 ));\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (Math.pow( ((image.currentY - image.maxY) + 1), 0.8 ));\n }\n\n // Velocity\n if (!velocity.prevPositionX) { velocity.prevPositionX = image.touchesCurrent.x; }\n if (!velocity.prevPositionY) { velocity.prevPositionY = image.touchesCurrent.y; }\n if (!velocity.prevTime) { velocity.prevTime = Date.now(); }\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) { velocity.x = 0; }\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) { velocity.y = 0; }\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) { momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); }\n if (velocity.y !== 0) { momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); }\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function in$1(e) {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n gesture.$slideEl.addClass((\"\" + (params.zoomedSlideClass)));\n\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform((\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\"));\n gesture.$imageEl.transition(300).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n out: function out() {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass((\"\" + (params.zoomedSlideClass)));\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.enabled) { return; }\n zoom.enabled = true;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) { return; }\n\n swiper.zoom.enabled = false;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove);\n },\n };\n\n var Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create: function create() {\n var swiper = this;\n var zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom: zoom,\n });\n\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.zoom.disable();\n },\n touchStart: function touchStart(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(e) {\n var swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n };\n\n var Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if ( loadInDuplicate === void 0 ) loadInDuplicate = true;\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') { return; }\n if (swiper.slides.length === 0) { return; }\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n var $slideEl = isVirtual\n ? swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\"))\n : swiper.slides.eq(index);\n\n var $images = $slideEl.find((\".\" + (params.elementClass) + \":not(.\" + (params.loadedClass) + \"):not(.\" + (params.loadingClass) + \")\"));\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) { return; }\n\n $images.each(function (imageIndex, imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) { return; }\n if (background) {\n $imageEl.css('background-image', (\"url(\\\"\" + background + \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find((\".\" + (params.preloaderClass))).remove();\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + (swiper.params.slideDuplicateClass) + \")\"));\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children((\".\" + (swiper.params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\"));\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var swiperParams = swiper.params;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n\n var slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children((\".\" + (swiperParams.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) { return true; }\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) { swiper.lazy.initialImageLoaded = true; }\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children((\".\" + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) { swiper.lazy.loadInSlide(i); }\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) {\n if (slideExist(i$1)) { swiper.lazy.loadInSlide(i$1); }\n }\n // Prev Slides\n for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {\n if (slideExist(i$2)) { swiper.lazy.loadInSlide(i$2); }\n }\n } else {\n var nextSlide = $wrapperEl.children((\".\" + (swiperParams.slideNextClass)));\n if (nextSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(nextSlide)); }\n\n var prevSlide = $wrapperEl.children((\".\" + (swiperParams.slidePrevClass)));\n if (prevSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(prevSlide)); }\n }\n }\n },\n };\n\n var Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll: function scroll() {\n var swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize: function resize() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n },\n };\n\n /* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n var Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = (function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) { return 0; }\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(setTranslate$1, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(function () {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) { return; }\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n };\n var Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update: function update() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(translate, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTransition(duration, byController);\n },\n },\n };\n\n var a11y = {\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) { return; }\n var $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is((\".\" + (swiper.params.pagination.bulletClass)))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) { return; }\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n\n if (swiper.params.loop) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletIndex, bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init: function init() {\n var swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n var params = swiper.params.a11y;\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) { swiper.a11y.liveRegion.remove(); }\n\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n };\n var A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $((\"<span class=\\\"\" + (swiper.params.a11y.notificationClass) + \"\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"></span>\")),\n },\n });\n Object.keys(a11y).forEach(function (methodName) {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updatePagination();\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.destroy();\n },\n },\n };\n\n var History = {\n init: function init() {\n var swiper = this;\n if (!swiper.params.history) { return; }\n if (!win.history || !win.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) { return; }\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n win.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.history.replaceState) {\n win.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues() {\n var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) { return part !== ''; });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return { key: key, value: value };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) { return; }\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n if (!win.location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n var currentState = win.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n win.history.replaceState({ value: value }, null, value);\n } else {\n win.history.pushState({ value: value }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n };\n\n var History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n };\n\n var HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var newHash = doc.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-hash=\\\"\" + newHash + \"\\\"]\")).index();\n if (typeof newIndex === 'undefined') { return; }\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) { return; }\n if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) {\n win.history.replaceState(null, null, ((\"#\" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || ''));\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n doc.location.hash = hash || '';\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) { return; }\n swiper.hashNavigation.initialized = true;\n var hash = doc.location.hash.replace('#', '');\n if (hash) {\n var speed = 0;\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(win).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(win).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n };\n var HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n };\n\n /* eslint no-underscore-dangle: \"off\" */\n\n var Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n swiper.autoplay.timeout = Utils.nextTick(function () {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') { return false; }\n if (swiper.autoplay.running) { return false; }\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) { return false; }\n if (typeof swiper.autoplay.timeout === 'undefined') { return false; }\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) { return; }\n if (swiper.autoplay.paused) { return; }\n if (swiper.autoplay.timeout) { clearTimeout(swiper.autoplay.timeout); }\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n };\n\n var Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onTransitionEnd: function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(speed, internal) {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove() {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n };\n\n var Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) { tx -= swiper.translate; }\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n };\n\n var EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"fade\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTransition(duration);\n },\n },\n };\n\n var Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var rtl = swiper.rtlTranslate;\n var swiperSize = swiper.size;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: (swiperWidth + \"px\") });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) { wrapperRotate = (-slideIndex * 90) - (progress * 90); }\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $((\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'left' : 'top') + \"\\\"></div>\"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $((\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'right' : 'bottom') + \"\\\"></div>\"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-moz-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-ms-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n 'transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform((\"translate3d(0px, \" + ((swiperWidth / 2) + params.shadowOffset) + \"px, \" + (-swiperWidth / 2) + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + (params.shadowScale) + \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n var multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform((\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + ((swiperHeight / 2) + offset) + \"px, \" + (-swiperHeight / 2 / scale2) + \"px) rotateX(-90deg)\"));\n }\n }\n var zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform((\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\"));\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n };\n\n var EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"cube\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTransition(duration);\n },\n },\n };\n\n var Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n var rtl = swiper.rtlTranslate;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $((\"<div class=\\\"swiper-slide-shadow-\" + (swiper.isHorizontal() ? 'left' : 'top') + \"\\\"></div>\"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $((\"<div class=\\\"swiper-slide-shadow-\" + (swiper.isHorizontal() ? 'right' : 'bottom') + \"\\\"></div>\"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n $slideEl\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var $wrapperEl = swiper.$wrapperEl;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n };\n\n var EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"flip\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTransition(duration);\n },\n },\n };\n\n var Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth;\n // Each slide offset from center\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n var translateZ = -translate * Math.abs(offsetMultiplier);\n\n var translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\n var translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) { translateX = 0; }\n if (Math.abs(translateY) < 0.001) { translateY = 0; }\n if (Math.abs(translateZ) < 0.001) { translateZ = 0; }\n if (Math.abs(rotateY) < 0.001) { rotateY = 0; }\n if (Math.abs(rotateX) < 0.001) { rotateX = 0; }\n\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\";\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $((\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'left' : 'top') + \"\\\"></div>\"));\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $((\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'right' : 'bottom') + \"\\\"></div>\"));\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) { $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; }\n if ($shadowAfterEl.length) { $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; }\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n var ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = center + \"px 50%\";\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n };\n\n var EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"coverflow\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n };\n\n var Thumbs = {\n init: function init() {\n var swiper = this;\n var ref = swiper.params;\n var thumbsParams = ref.thumbs;\n var SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) { return; }\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) { return; }\n var slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n var prevIndex = swiper.slides.eq(currentIndex).prevAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\n if (typeof prevIndex === 'undefined') { slideToIndex = nextIndex; }\n else if (typeof nextIndex === 'undefined') { slideToIndex = prevIndex; }\n else if (nextIndex - currentIndex < currentIndex - prevIndex) { slideToIndex = nextIndex; }\n else { slideToIndex = prevIndex; }\n }\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') { newThumbsIndex = nextThumbsIndex; }\n else if (typeof nextThumbsIndex === 'undefined') { newThumbsIndex = prevThumbsIndex; }\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = currentThumbsIndex; }\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = nextThumbsIndex; }\n else { newThumbsIndex = prevThumbsIndex; }\n } else {\n newThumbsIndex = swiper.realIndex;\n }\n if (thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\")).addClass(thumbActiveClass);\n }\n } else {\n for (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i$1).addClass(thumbActiveClass);\n }\n }\n },\n };\n var Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n var ref = swiper.params;\n var thumbs = ref.thumbs;\n if (!thumbs || !thumbs.swiper) { return; }\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n update: function update() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n };\n\n // Swiper Class\n\n var components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n ];\n\n if (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n }\n\n Swiper.use(components);\n\n return Swiper;\n\n}));\n","(function() {\r\n var $, AbstractChosen, Chosen, SelectParser, _ref,\r\n __hasProp = {}.hasOwnProperty,\r\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\r\n\r\n SelectParser = (function() {\r\n function SelectParser() {\r\n this.options_index = 0;\r\n this.parsed = [];\r\n }\r\n\r\n SelectParser.prototype.add_node = function(child) {\r\n if (child.nodeName.toUpperCase() === \"OPTGROUP\") {\r\n return this.add_group(child);\r\n } else {\r\n return this.add_option(child);\r\n }\r\n };\r\n\r\n SelectParser.prototype.add_group = function(group) {\r\n var group_position, option, _i, _len, _ref, _results;\r\n group_position = this.parsed.length;\r\n this.parsed.push({\r\n array_index: group_position,\r\n group: true,\r\n label: this.escapeExpression(group.label),\r\n title: group.title ? group.title : void 0,\r\n children: 0,\r\n disabled: group.disabled,\r\n classes: group.className\r\n });\r\n _ref = group.childNodes;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n option = _ref[_i];\r\n _results.push(this.add_option(option, group_position, group.disabled));\r\n }\r\n return _results;\r\n };\r\n\r\n SelectParser.prototype.add_option = function(option, group_position, group_disabled) {\r\n if (option.nodeName.toUpperCase() === \"OPTION\") {\r\n if (option.text !== \"\") {\r\n if (group_position != null) {\r\n this.parsed[group_position].children += 1;\r\n }\r\n this.parsed.push({\r\n array_index: this.parsed.length,\r\n options_index: this.options_index,\r\n value: option.value,\r\n text: option.text,\r\n html: option.innerHTML,\r\n title: option.title ? option.title : void 0,\r\n selected: option.selected,\r\n disabled: group_disabled === true ? group_disabled : option.disabled,\r\n group_array_index: group_position,\r\n group_label: group_position != null ? this.parsed[group_position].label : null,\r\n classes: option.className,\r\n style: option.style.cssText\r\n });\r\n } else {\r\n this.parsed.push({\r\n array_index: this.parsed.length,\r\n options_index: this.options_index,\r\n empty: true\r\n });\r\n }\r\n return this.options_index += 1;\r\n }\r\n };\r\n\r\n SelectParser.prototype.escapeExpression = function(text) {\r\n var map, unsafe_chars;\r\n if ((text == null) || text === false) {\r\n return \"\";\r\n }\r\n if (!/[\\&\\<\\>\\\"\\'\\`]/.test(text)) {\r\n return text;\r\n }\r\n map = {\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"`\": \"`\"\r\n };\r\n unsafe_chars = /&(?!\\w+;)|[\\<\\>\\\"\\'\\`]/g;\r\n return text.replace(unsafe_chars, function(chr) {\r\n return map[chr] || \"&\";\r\n });\r\n };\r\n\r\n return SelectParser;\r\n\r\n })();\r\n\r\n SelectParser.select_to_array = function(select) {\r\n var child, parser, _i, _len, _ref;\r\n parser = new SelectParser();\r\n _ref = select.childNodes;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n child = _ref[_i];\r\n parser.add_node(child);\r\n }\r\n return parser.parsed;\r\n };\r\n\r\n AbstractChosen = (function() {\r\n function AbstractChosen(form_field, options) {\r\n this.form_field = form_field;\r\n this.options = options != null ? options : {};\r\n if (!AbstractChosen.browser_is_supported()) {\r\n return;\r\n }\r\n this.is_multiple = this.form_field.multiple;\r\n this.set_default_text();\r\n this.set_default_values();\r\n this.setup();\r\n this.set_up_html();\r\n this.register_observers();\r\n this.on_ready();\r\n }\r\n\r\n AbstractChosen.prototype.set_default_values = function() {\r\n var _this = this;\r\n this.click_test_action = function(evt) {\r\n return _this.test_active_click(evt);\r\n };\r\n this.activate_action = function(evt) {\r\n return _this.activate_field(evt);\r\n };\r\n this.active_field = false;\r\n this.mouse_on_container = false;\r\n this.results_showing = false;\r\n this.result_highlighted = null;\r\n this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === \"\" ? this.options.allow_single_deselect : false;\r\n this.disable_search_threshold = this.options.disable_search_threshold || 0;\r\n this.disable_search = this.options.disable_search || false;\r\n this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;\r\n this.group_search = this.options.group_search != null ? this.options.group_search : true;\r\n this.search_contains = this.options.search_contains || false;\r\n this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;\r\n this.max_selected_options = this.options.max_selected_options || Infinity;\r\n this.inherit_select_classes = this.options.inherit_select_classes || false;\r\n this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;\r\n this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;\r\n this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;\r\n this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;\r\n return this.case_sensitive_search = this.options.case_sensitive_search || false;\r\n };\r\n\r\n AbstractChosen.prototype.set_default_text = function() {\r\n if (this.form_field.getAttribute(\"data-placeholder\")) {\r\n this.default_text = this.form_field.getAttribute(\"data-placeholder\");\r\n } else if (this.is_multiple) {\r\n this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;\r\n } else {\r\n this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;\r\n }\r\n return this.results_none_found = this.form_field.getAttribute(\"data-no_results_text\") || this.options.no_results_text || AbstractChosen.default_no_result_text;\r\n };\r\n\r\n AbstractChosen.prototype.choice_label = function(item) {\r\n if (this.include_group_label_in_selected && (item.group_label != null)) {\r\n return \"<b class='group-name'>\" + item.group_label + \"</b>\" + item.html;\r\n } else {\r\n return item.html;\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.mouse_enter = function() {\r\n return this.mouse_on_container = true;\r\n };\r\n\r\n AbstractChosen.prototype.mouse_leave = function() {\r\n return this.mouse_on_container = false;\r\n };\r\n\r\n AbstractChosen.prototype.input_focus = function(evt) {\r\n var _this = this;\r\n if (this.is_multiple) {\r\n if (!this.active_field) {\r\n return setTimeout((function() {\r\n return _this.container_mousedown();\r\n }), 50);\r\n }\r\n } else {\r\n if (!this.active_field) {\r\n return this.activate_field();\r\n }\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.input_blur = function(evt) {\r\n var _this = this;\r\n if (!this.mouse_on_container) {\r\n this.active_field = false;\r\n return setTimeout((function() {\r\n return _this.blur_test();\r\n }), 100);\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.results_option_build = function(options) {\r\n var content, data, data_content, shown_results, _i, _len, _ref;\r\n content = '';\r\n shown_results = 0;\r\n _ref = this.results_data;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n data = _ref[_i];\r\n data_content = '';\r\n if (data.group) {\r\n data_content = this.result_add_group(data);\r\n } else {\r\n data_content = this.result_add_option(data);\r\n }\r\n if (data_content !== '') {\r\n shown_results++;\r\n content += data_content;\r\n }\r\n if (options != null ? options.first : void 0) {\r\n if (data.selected && this.is_multiple) {\r\n this.choice_build(data);\r\n } else if (data.selected && !this.is_multiple) {\r\n this.single_set_selected_text(this.choice_label(data));\r\n }\r\n }\r\n if (shown_results >= this.max_shown_results) {\r\n break;\r\n }\r\n }\r\n return content;\r\n };\r\n\r\n AbstractChosen.prototype.result_add_option = function(option) {\r\n var classes, option_el;\r\n if (!option.search_match) {\r\n return '';\r\n }\r\n if (!this.include_option_in_results(option)) {\r\n return '';\r\n }\r\n classes = [];\r\n if (!option.disabled && !(option.selected && this.is_multiple)) {\r\n classes.push(\"active-result\");\r\n }\r\n if (option.disabled && !(option.selected && this.is_multiple)) {\r\n classes.push(\"disabled-result\");\r\n }\r\n if (option.selected) {\r\n classes.push(\"result-selected\");\r\n }\r\n if (option.group_array_index != null) {\r\n classes.push(\"group-option\");\r\n }\r\n if (option.classes !== \"\") {\r\n classes.push(option.classes);\r\n }\r\n option_el = document.createElement(\"li\");\r\n option_el.className = classes.join(\" \");\r\n option_el.style.cssText = option.style;\r\n option_el.setAttribute(\"data-option-array-index\", option.array_index);\r\n option_el.innerHTML = option.search_text;\r\n if (option.title) {\r\n option_el.title = option.title;\r\n }\r\n return this.outerHTML(option_el);\r\n };\r\n\r\n AbstractChosen.prototype.result_add_group = function(group) {\r\n var classes, group_el;\r\n if (!(group.search_match || group.group_match)) {\r\n return '';\r\n }\r\n if (!(group.active_options > 0)) {\r\n return '';\r\n }\r\n classes = [];\r\n classes.push(\"group-result\");\r\n if (group.classes) {\r\n classes.push(group.classes);\r\n }\r\n group_el = document.createElement(\"li\");\r\n group_el.className = classes.join(\" \");\r\n group_el.innerHTML = group.search_text;\r\n if (group.title) {\r\n group_el.title = group.title;\r\n }\r\n return this.outerHTML(group_el);\r\n };\r\n\r\n AbstractChosen.prototype.results_update_field = function() {\r\n this.set_default_text();\r\n if (!this.is_multiple) {\r\n this.results_reset_cleanup();\r\n }\r\n this.result_clear_highlight();\r\n this.results_build();\r\n if (this.results_showing) {\r\n return this.winnow_results();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.reset_single_select_options = function() {\r\n var result, _i, _len, _ref, _results;\r\n _ref = this.results_data;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n result = _ref[_i];\r\n if (result.selected) {\r\n _results.push(result.selected = false);\r\n } else {\r\n _results.push(void 0);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n AbstractChosen.prototype.results_toggle = function() {\r\n if (this.results_showing) {\r\n return this.results_hide();\r\n } else {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.results_search = function(evt) {\r\n if (this.results_showing) {\r\n return this.winnow_results();\r\n } else {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.winnow_results = function() {\r\n var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;\r\n this.no_results_clear();\r\n results = 0;\r\n searchText = this.get_search_text();\r\n escapedSearchText = searchText.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\r\n zregex = new RegExp(escapedSearchText, 'i');\r\n regex = this.get_search_regex(escapedSearchText);\r\n _ref = this.results_data;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n option = _ref[_i];\r\n option.search_match = false;\r\n results_group = null;\r\n if (this.include_option_in_results(option)) {\r\n if (option.group) {\r\n option.group_match = false;\r\n option.active_options = 0;\r\n }\r\n if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {\r\n results_group = this.results_data[option.group_array_index];\r\n if (results_group.active_options === 0 && results_group.search_match) {\r\n results += 1;\r\n }\r\n results_group.active_options += 1;\r\n }\r\n option.search_text = option.group ? option.label : option.html;\r\n if (!(option.group && !this.group_search)) {\r\n option.search_match = this.search_string_match(option.search_text, regex);\r\n if (option.search_match && !option.group) {\r\n results += 1;\r\n }\r\n if (option.search_match) {\r\n if (searchText.length) {\r\n startpos = option.search_text.search(zregex);\r\n text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);\r\n option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);\r\n }\r\n if (results_group != null) {\r\n results_group.group_match = true;\r\n }\r\n } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {\r\n option.search_match = true;\r\n }\r\n }\r\n }\r\n }\r\n this.result_clear_highlight();\r\n if (results < 1 && searchText.length) {\r\n this.update_results_content(\"\");\r\n return this.no_results(searchText);\r\n } else {\r\n this.update_results_content(this.results_option_build());\r\n return this.winnow_results_set_highlight();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {\r\n var regex_anchor, regex_flag;\r\n regex_anchor = this.search_contains ? \"\" : \"^\";\r\n regex_flag = this.case_sensitive_search ? \"\" : \"i\";\r\n return new RegExp(regex_anchor + escaped_search_string, regex_flag);\r\n };\r\n\r\n AbstractChosen.prototype.search_string_match = function(search_string, regex) {\r\n var part, parts, _i, _len;\r\n if (regex.test(search_string)) {\r\n return true;\r\n } else if (this.enable_split_word_search && (search_string.indexOf(\" \") >= 0 || search_string.indexOf(\"[\") === 0)) {\r\n parts = search_string.replace(/\\[|\\]/g, \"\").split(\" \");\r\n if (parts.length) {\r\n for (_i = 0, _len = parts.length; _i < _len; _i++) {\r\n part = parts[_i];\r\n if (regex.test(part)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.choices_count = function() {\r\n var option, _i, _len, _ref;\r\n if (this.selected_option_count != null) {\r\n return this.selected_option_count;\r\n }\r\n this.selected_option_count = 0;\r\n _ref = this.form_field.options;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n option = _ref[_i];\r\n if (option.selected) {\r\n this.selected_option_count += 1;\r\n }\r\n }\r\n return this.selected_option_count;\r\n };\r\n\r\n AbstractChosen.prototype.choices_click = function(evt) {\r\n evt.preventDefault();\r\n if (!(this.results_showing || this.is_disabled)) {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.keyup_checker = function(evt) {\r\n var stroke, _ref;\r\n stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;\r\n this.search_field_scale();\r\n switch (stroke) {\r\n case 8:\r\n if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {\r\n return this.keydown_backstroke();\r\n } else if (!this.pending_backstroke) {\r\n this.result_clear_highlight();\r\n return this.results_search();\r\n }\r\n break;\r\n case 13:\r\n evt.preventDefault();\r\n if (this.results_showing) {\r\n return this.result_select(evt);\r\n }\r\n break;\r\n case 27:\r\n if (this.results_showing) {\r\n this.results_hide();\r\n }\r\n return true;\r\n case 9:\r\n case 38:\r\n case 40:\r\n case 16:\r\n case 91:\r\n case 17:\r\n case 18:\r\n break;\r\n default:\r\n return this.results_search();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.clipboard_event_checker = function(evt) {\r\n var _this = this;\r\n return setTimeout((function() {\r\n return _this.results_search();\r\n }), 50);\r\n };\r\n\r\n AbstractChosen.prototype.container_width = function() {\r\n if (this.options.width != null) {\r\n return this.options.width;\r\n } else {\r\n return \"\" + this.form_field.offsetWidth + \"px\";\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.include_option_in_results = function(option) {\r\n if (this.is_multiple && (!this.display_selected_options && option.selected)) {\r\n return false;\r\n }\r\n if (!this.display_disabled_options && option.disabled) {\r\n return false;\r\n }\r\n if (option.empty) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n AbstractChosen.prototype.search_results_touchstart = function(evt) {\r\n this.touch_started = true;\r\n return this.search_results_mouseover(evt);\r\n };\r\n\r\n AbstractChosen.prototype.search_results_touchmove = function(evt) {\r\n this.touch_started = false;\r\n return this.search_results_mouseout(evt);\r\n };\r\n\r\n AbstractChosen.prototype.search_results_touchend = function(evt) {\r\n if (this.touch_started) {\r\n return this.search_results_mouseup(evt);\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.outerHTML = function(element) {\r\n var tmp;\r\n if (element.outerHTML) {\r\n return element.outerHTML;\r\n }\r\n tmp = document.createElement(\"div\");\r\n tmp.appendChild(element);\r\n return tmp.innerHTML;\r\n };\r\n\r\n AbstractChosen.browser_is_supported = function() {\r\n if (\"Microsoft Internet Explorer\" === window.navigator.appName) {\r\n return document.documentMode >= 8;\r\n }\r\n if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n AbstractChosen.default_multiple_text = \"Select Some Options\";\r\n\r\n AbstractChosen.default_single_text = \"Select an Option\";\r\n\r\n AbstractChosen.default_no_result_text = \"No results match\";\r\n\r\n return AbstractChosen;\r\n\r\n })();\r\n\r\n $ = jQuery;\r\n\r\n $.fn.extend({\r\n chosen: function(options) {\r\n if (!AbstractChosen.browser_is_supported()) {\r\n return this;\r\n }\r\n return this.each(function(input_field) {\r\n var $this, chosen;\r\n $this = $(this);\r\n chosen = $this.data('chosen');\r\n if (options === 'destroy') {\r\n if (chosen instanceof Chosen) {\r\n chosen.destroy();\r\n }\r\n return;\r\n }\r\n if (!(chosen instanceof Chosen)) {\r\n $this.data('chosen', new Chosen(this, options));\r\n }\r\n });\r\n }\r\n });\r\n\r\n Chosen = (function(_super) {\r\n __extends(Chosen, _super);\r\n\r\n function Chosen() {\r\n _ref = Chosen.__super__.constructor.apply(this, arguments);\r\n return _ref;\r\n }\r\n\r\n Chosen.prototype.setup = function() {\r\n this.form_field_jq = $(this.form_field);\r\n this.current_selectedIndex = this.form_field.selectedIndex;\r\n return this.is_rtl = this.form_field_jq.hasClass(\"chosen-rtl\");\r\n };\r\n\r\n Chosen.prototype.set_up_html = function() {\r\n var container_classes, container_props;\r\n container_classes = [\"chosen-container\"];\r\n container_classes.push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\"));\r\n if (this.inherit_select_classes && this.form_field.className) {\r\n container_classes.push(this.form_field.className);\r\n }\r\n if (this.is_rtl) {\r\n container_classes.push(\"chosen-rtl\");\r\n }\r\n container_props = {\r\n 'class': container_classes.join(' '),\r\n 'style': \"width: \" + (this.container_width()) + \";\",\r\n 'title': this.form_field.title\r\n };\r\n if (this.form_field.id.length) {\r\n container_props.id = this.form_field.id.replace(/[^\\w]/g, '_') + \"_chosen\";\r\n }\r\n this.container = $(\"<div />\", container_props);\r\n if (this.is_multiple) {\r\n this.container.html('<ul class=\"chosen-choices\"><li class=\"search-field\"><input type=\"text\" value=\"' + this.default_text + '\" class=\"default\" autocomplete=\"off\" style=\"width:25px;\" /></li></ul><div class=\"chosen-drop\"><ul class=\"chosen-results\"></ul></div>');\r\n } else {\r\n this.container.html('<a class=\"chosen-single chosen-default\"><span>' + this.default_text + '</span><div><b></b></div></a><div class=\"chosen-drop\"><div class=\"chosen-search\"><input type=\"text\" autocomplete=\"off\" /></div><ul class=\"chosen-results\"></ul></div>');\r\n }\r\n this.form_field_jq.hide().after(this.container);\r\n this.dropdown = this.container.find('div.chosen-drop').first();\r\n this.search_field = this.container.find('input').first();\r\n this.search_results = this.container.find('ul.chosen-results').first();\r\n this.search_field_scale();\r\n this.search_no_results = this.container.find('li.no-results').first();\r\n if (this.is_multiple) {\r\n this.search_choices = this.container.find('ul.chosen-choices').first();\r\n this.search_container = this.container.find('li.search-field').first();\r\n } else {\r\n this.search_container = this.container.find('div.chosen-search').first();\r\n this.selected_item = this.container.find('.chosen-single').first();\r\n }\r\n this.results_build();\r\n this.set_tab_index();\r\n return this.set_label_behavior();\r\n };\r\n\r\n Chosen.prototype.on_ready = function() {\r\n return this.form_field_jq.trigger(\"chosen:ready\", {\r\n chosen: this\r\n });\r\n };\r\n\r\n Chosen.prototype.register_observers = function() {\r\n var _this = this;\r\n this.container.bind('touchstart.chosen', function(evt) {\r\n _this.container_mousedown(evt);\r\n return evt.preventDefault();\r\n });\r\n this.container.bind('touchend.chosen', function(evt) {\r\n _this.container_mouseup(evt);\r\n return evt.preventDefault();\r\n });\r\n this.container.bind('mousedown.chosen', function(evt) {\r\n _this.container_mousedown(evt);\r\n });\r\n this.container.bind('mouseup.chosen', function(evt) {\r\n _this.container_mouseup(evt);\r\n });\r\n this.container.bind('mouseenter.chosen', function(evt) {\r\n _this.mouse_enter(evt);\r\n });\r\n this.container.bind('mouseleave.chosen', function(evt) {\r\n _this.mouse_leave(evt);\r\n });\r\n this.search_results.bind('mouseup.chosen', function(evt) {\r\n _this.search_results_mouseup(evt);\r\n });\r\n this.search_results.bind('mouseover.chosen', function(evt) {\r\n _this.search_results_mouseover(evt);\r\n });\r\n this.search_results.bind('mouseout.chosen', function(evt) {\r\n _this.search_results_mouseout(evt);\r\n });\r\n this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {\r\n _this.search_results_mousewheel(evt);\r\n });\r\n this.search_results.bind('touchstart.chosen', function(evt) {\r\n _this.search_results_touchstart(evt);\r\n });\r\n this.search_results.bind('touchmove.chosen', function(evt) {\r\n _this.search_results_touchmove(evt);\r\n });\r\n this.search_results.bind('touchend.chosen', function(evt) {\r\n _this.search_results_touchend(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:updated.chosen\", function(evt) {\r\n _this.results_update_field(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:activate.chosen\", function(evt) {\r\n _this.activate_field(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:open.chosen\", function(evt) {\r\n _this.container_mousedown(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:close.chosen\", function(evt) {\r\n _this.input_blur(evt);\r\n });\r\n this.search_field.bind('blur.chosen', function(evt) {\r\n _this.input_blur(evt);\r\n });\r\n this.search_field.bind('keyup.chosen', function(evt) {\r\n _this.keyup_checker(evt);\r\n });\r\n this.search_field.bind('keydown.chosen', function(evt) {\r\n _this.keydown_checker(evt);\r\n });\r\n this.search_field.bind('focus.chosen', function(evt) {\r\n _this.input_focus(evt);\r\n });\r\n this.search_field.bind('cut.chosen', function(evt) {\r\n _this.clipboard_event_checker(evt);\r\n });\r\n this.search_field.bind('paste.chosen', function(evt) {\r\n _this.clipboard_event_checker(evt);\r\n });\r\n if (this.is_multiple) {\r\n return this.search_choices.bind('click.chosen', function(evt) {\r\n _this.choices_click(evt);\r\n });\r\n } else {\r\n return this.container.bind('click.chosen', function(evt) {\r\n evt.preventDefault();\r\n });\r\n }\r\n };\r\n\r\n Chosen.prototype.destroy = function() {\r\n $(this.container[0].ownerDocument).unbind(\"click.chosen\", this.click_test_action);\r\n if (this.search_field[0].tabIndex) {\r\n this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;\r\n }\r\n this.container.remove();\r\n this.form_field_jq.removeData('chosen');\r\n return this.form_field_jq.show();\r\n };\r\n\r\n Chosen.prototype.search_field_disabled = function() {\r\n this.is_disabled = this.form_field_jq[0].disabled;\r\n if (this.is_disabled) {\r\n this.container.addClass('chosen-disabled');\r\n this.search_field[0].disabled = true;\r\n if (!this.is_multiple) {\r\n this.selected_item.unbind(\"focus.chosen\", this.activate_action);\r\n }\r\n return this.close_field();\r\n } else {\r\n this.container.removeClass('chosen-disabled');\r\n this.search_field[0].disabled = false;\r\n if (!this.is_multiple) {\r\n return this.selected_item.bind(\"focus.chosen\", this.activate_action);\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.container_mousedown = function(evt) {\r\n if (!this.is_disabled) {\r\n if (evt && evt.type === \"mousedown\" && !this.results_showing) {\r\n evt.preventDefault();\r\n }\r\n if (!((evt != null) && ($(evt.target)).hasClass(\"search-choice-close\"))) {\r\n if (!this.active_field) {\r\n if (this.is_multiple) {\r\n this.search_field.val(\"\");\r\n }\r\n $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);\r\n this.results_show();\r\n } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents(\"a.chosen-single\").length)) {\r\n evt.preventDefault();\r\n this.results_toggle();\r\n }\r\n return this.activate_field();\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.container_mouseup = function(evt) {\r\n if (evt.target.nodeName === \"ABBR\" && !this.is_disabled) {\r\n return this.results_reset(evt);\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mousewheel = function(evt) {\r\n var delta;\r\n if (evt.originalEvent) {\r\n delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;\r\n }\r\n if (delta != null) {\r\n evt.preventDefault();\r\n if (evt.type === 'DOMMouseScroll') {\r\n delta = delta * 40;\r\n }\r\n return this.search_results.scrollTop(delta + this.search_results.scrollTop());\r\n }\r\n };\r\n\r\n Chosen.prototype.blur_test = function(evt) {\r\n if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) {\r\n return this.close_field();\r\n }\r\n };\r\n\r\n Chosen.prototype.close_field = function() {\r\n $(this.container[0].ownerDocument).unbind(\"click.chosen\", this.click_test_action);\r\n this.active_field = false;\r\n this.results_hide();\r\n this.container.removeClass(\"chosen-container-active\");\r\n this.clear_backstroke();\r\n this.show_search_field_default();\r\n return this.search_field_scale();\r\n };\r\n\r\n Chosen.prototype.activate_field = function() {\r\n this.container.addClass(\"chosen-container-active\");\r\n this.active_field = true;\r\n this.search_field.val(this.search_field.val());\r\n return this.search_field.focus();\r\n };\r\n\r\n Chosen.prototype.test_active_click = function(evt) {\r\n var active_container;\r\n active_container = $(evt.target).closest('.chosen-container');\r\n if (active_container.length && this.container[0] === active_container[0]) {\r\n return this.active_field = true;\r\n } else {\r\n return this.close_field();\r\n }\r\n };\r\n\r\n Chosen.prototype.results_build = function() {\r\n this.parsing = true;\r\n this.selected_option_count = null;\r\n this.results_data = SelectParser.select_to_array(this.form_field);\r\n if (this.is_multiple) {\r\n this.search_choices.find(\"li.search-choice\").remove();\r\n } else if (!this.is_multiple) {\r\n this.single_set_selected_text();\r\n if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {\r\n this.search_field[0].readOnly = true;\r\n this.container.addClass(\"chosen-container-single-nosearch\");\r\n } else {\r\n this.search_field[0].readOnly = false;\r\n this.container.removeClass(\"chosen-container-single-nosearch\");\r\n }\r\n }\r\n this.update_results_content(this.results_option_build({\r\n first: true\r\n }));\r\n this.search_field_disabled();\r\n this.show_search_field_default();\r\n this.search_field_scale();\r\n return this.parsing = false;\r\n };\r\n\r\n Chosen.prototype.result_do_highlight = function(el) {\r\n var high_bottom, high_top, maxHeight, visible_bottom, visible_top;\r\n if (el.length) {\r\n this.result_clear_highlight();\r\n this.result_highlight = el;\r\n this.result_highlight.addClass(\"highlighted\");\r\n maxHeight = parseInt(this.search_results.css(\"maxHeight\"), 10);\r\n visible_top = this.search_results.scrollTop();\r\n visible_bottom = maxHeight + visible_top;\r\n high_top = this.result_highlight.position().top + this.search_results.scrollTop();\r\n high_bottom = high_top + this.result_highlight.outerHeight();\r\n if (high_bottom >= visible_bottom) {\r\n return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);\r\n } else if (high_top < visible_top) {\r\n return this.search_results.scrollTop(high_top);\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.result_clear_highlight = function() {\r\n if (this.result_highlight) {\r\n this.result_highlight.removeClass(\"highlighted\");\r\n }\r\n return this.result_highlight = null;\r\n };\r\n\r\n Chosen.prototype.results_show = function() {\r\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\r\n this.form_field_jq.trigger(\"chosen:maxselected\", {\r\n chosen: this\r\n });\r\n return false;\r\n }\r\n this.container.addClass(\"chosen-with-drop\");\r\n this.results_showing = true;\r\n this.search_field.focus();\r\n this.search_field.val(this.search_field.val());\r\n this.winnow_results();\r\n return this.form_field_jq.trigger(\"chosen:showing_dropdown\", {\r\n chosen: this\r\n });\r\n };\r\n\r\n Chosen.prototype.update_results_content = function(content) {\r\n return this.search_results.html(content);\r\n };\r\n\r\n Chosen.prototype.results_hide = function() {\r\n if (this.results_showing) {\r\n this.result_clear_highlight();\r\n this.container.removeClass(\"chosen-with-drop\");\r\n this.form_field_jq.trigger(\"chosen:hiding_dropdown\", {\r\n chosen: this\r\n });\r\n }\r\n return this.results_showing = false;\r\n };\r\n\r\n Chosen.prototype.set_tab_index = function(el) {\r\n var ti;\r\n if (this.form_field.tabIndex) {\r\n ti = this.form_field.tabIndex;\r\n this.form_field.tabIndex = -1;\r\n return this.search_field[0].tabIndex = ti;\r\n }\r\n };\r\n\r\n Chosen.prototype.set_label_behavior = function() {\r\n var _this = this;\r\n this.form_field_label = this.form_field_jq.parents(\"label\");\r\n if (!this.form_field_label.length && this.form_field.id.length) {\r\n this.form_field_label = $(\"label[for='\" + this.form_field.id + \"']\");\r\n }\r\n if (this.form_field_label.length > 0) {\r\n return this.form_field_label.bind('click.chosen', function(evt) {\r\n if (_this.is_multiple) {\r\n return _this.container_mousedown(evt);\r\n } else {\r\n return _this.activate_field();\r\n }\r\n });\r\n }\r\n };\r\n\r\n Chosen.prototype.show_search_field_default = function() {\r\n if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {\r\n this.search_field.val(this.default_text);\r\n return this.search_field.addClass(\"default\");\r\n } else {\r\n this.search_field.val(\"\");\r\n return this.search_field.removeClass(\"default\");\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mouseup = function(evt) {\r\n var target;\r\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\r\n if (target.length) {\r\n this.result_highlight = target;\r\n this.result_select(evt);\r\n return this.search_field.focus();\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mouseover = function(evt) {\r\n var target;\r\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\r\n if (target) {\r\n return this.result_do_highlight(target);\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mouseout = function(evt) {\r\n if ($(evt.target).hasClass(\"active-result\" || $(evt.target).parents('.active-result').first())) {\r\n return this.result_clear_highlight();\r\n }\r\n };\r\n\r\n Chosen.prototype.choice_build = function(item) {\r\n var choice, close_link,\r\n _this = this;\r\n choice = $('<li />', {\r\n \"class\": \"search-choice\"\r\n }).html(\"<span>\" + (this.choice_label(item)) + \"</span>\");\r\n if (item.disabled) {\r\n choice.addClass('search-choice-disabled');\r\n } else {\r\n close_link = $('<a />', {\r\n \"class\": 'search-choice-close',\r\n 'data-option-array-index': item.array_index\r\n });\r\n close_link.bind('click.chosen', function(evt) {\r\n return _this.choice_destroy_link_click(evt);\r\n });\r\n choice.append(close_link);\r\n }\r\n return this.search_container.before(choice);\r\n };\r\n\r\n Chosen.prototype.choice_destroy_link_click = function(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (!this.is_disabled) {\r\n return this.choice_destroy($(evt.target));\r\n }\r\n };\r\n\r\n Chosen.prototype.choice_destroy = function(link) {\r\n if (this.result_deselect(link[0].getAttribute(\"data-option-array-index\"))) {\r\n this.show_search_field_default();\r\n if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {\r\n this.results_hide();\r\n }\r\n link.parents('li').first().remove();\r\n return this.search_field_scale();\r\n }\r\n };\r\n\r\n Chosen.prototype.results_reset = function() {\r\n this.reset_single_select_options();\r\n this.form_field.options[0].selected = true;\r\n this.single_set_selected_text();\r\n this.show_search_field_default();\r\n this.results_reset_cleanup();\r\n this.form_field_jq.trigger(\"change\");\r\n if (this.active_field) {\r\n return this.results_hide();\r\n }\r\n };\r\n\r\n Chosen.prototype.results_reset_cleanup = function() {\r\n this.current_selectedIndex = this.form_field.selectedIndex;\r\n return this.selected_item.find(\"abbr\").remove();\r\n };\r\n\r\n Chosen.prototype.result_select = function(evt) {\r\n var high, item;\r\n if (this.result_highlight) {\r\n high = this.result_highlight;\r\n this.result_clear_highlight();\r\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\r\n this.form_field_jq.trigger(\"chosen:maxselected\", {\r\n chosen: this\r\n });\r\n return false;\r\n }\r\n if (this.is_multiple) {\r\n high.removeClass(\"active-result\");\r\n } else {\r\n this.reset_single_select_options();\r\n }\r\n high.addClass(\"result-selected\");\r\n item = this.results_data[high[0].getAttribute(\"data-option-array-index\")];\r\n item.selected = true;\r\n this.form_field.options[item.options_index].selected = true;\r\n this.selected_option_count = null;\r\n if (this.is_multiple) {\r\n this.choice_build(item);\r\n } else {\r\n this.single_set_selected_text(this.choice_label(item));\r\n }\r\n if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {\r\n this.results_hide();\r\n }\r\n this.show_search_field_default();\r\n if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {\r\n this.form_field_jq.trigger(\"change\", {\r\n 'selected': this.form_field.options[item.options_index].value\r\n });\r\n }\r\n this.current_selectedIndex = this.form_field.selectedIndex;\r\n evt.preventDefault();\r\n return this.search_field_scale();\r\n }\r\n };\r\n\r\n Chosen.prototype.single_set_selected_text = function(text) {\r\n if (text == null) {\r\n text = this.default_text;\r\n }\r\n if (text === this.default_text) {\r\n this.selected_item.addClass(\"chosen-default\");\r\n } else {\r\n this.single_deselect_control_build();\r\n this.selected_item.removeClass(\"chosen-default\");\r\n }\r\n return this.selected_item.find(\"span\").html(text);\r\n };\r\n\r\n Chosen.prototype.result_deselect = function(pos) {\r\n var result_data;\r\n result_data = this.results_data[pos];\r\n if (!this.form_field.options[result_data.options_index].disabled) {\r\n result_data.selected = false;\r\n this.form_field.options[result_data.options_index].selected = false;\r\n this.selected_option_count = null;\r\n this.result_clear_highlight();\r\n if (this.results_showing) {\r\n this.winnow_results();\r\n }\r\n this.form_field_jq.trigger(\"change\", {\r\n deselected: this.form_field.options[result_data.options_index].value\r\n });\r\n this.search_field_scale();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n Chosen.prototype.single_deselect_control_build = function() {\r\n if (!this.allow_single_deselect) {\r\n return;\r\n }\r\n if (!this.selected_item.find(\"abbr\").length) {\r\n this.selected_item.find(\"span\").first().after(\"<abbr class=\\\"search-choice-close\\\"></abbr>\");\r\n }\r\n return this.selected_item.addClass(\"chosen-single-with-deselect\");\r\n };\r\n\r\n Chosen.prototype.get_search_text = function() {\r\n return $('<div/>').text($.trim(this.search_field.val())).html();\r\n };\r\n\r\n Chosen.prototype.winnow_results_set_highlight = function() {\r\n var do_high, selected_results;\r\n selected_results = !this.is_multiple ? this.search_results.find(\".result-selected.active-result\") : [];\r\n do_high = selected_results.length ? selected_results.first() : this.search_results.find(\".active-result\").first();\r\n if (do_high != null) {\r\n return this.result_do_highlight(do_high);\r\n }\r\n };\r\n\r\n Chosen.prototype.no_results = function(terms) {\r\n var no_results_html;\r\n no_results_html = $('<li class=\"no-results\">' + this.results_none_found + ' \"<span></span>\"</li>');\r\n no_results_html.find(\"span\").first().html(terms);\r\n this.search_results.append(no_results_html);\r\n return this.form_field_jq.trigger(\"chosen:no_results\", {\r\n chosen: this\r\n });\r\n };\r\n\r\n Chosen.prototype.no_results_clear = function() {\r\n return this.search_results.find(\".no-results\").remove();\r\n };\r\n\r\n Chosen.prototype.keydown_arrow = function() {\r\n var next_sib;\r\n if (this.results_showing && this.result_highlight) {\r\n next_sib = this.result_highlight.nextAll(\"li.active-result\").first();\r\n if (next_sib) {\r\n return this.result_do_highlight(next_sib);\r\n }\r\n } else {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n Chosen.prototype.keyup_arrow = function() {\r\n var prev_sibs;\r\n if (!this.results_showing && !this.is_multiple) {\r\n return this.results_show();\r\n } else if (this.result_highlight) {\r\n prev_sibs = this.result_highlight.prevAll(\"li.active-result\");\r\n if (prev_sibs.length) {\r\n return this.result_do_highlight(prev_sibs.first());\r\n } else {\r\n if (this.choices_count() > 0) {\r\n this.results_hide();\r\n }\r\n return this.result_clear_highlight();\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.keydown_backstroke = function() {\r\n var next_available_destroy;\r\n if (this.pending_backstroke) {\r\n this.choice_destroy(this.pending_backstroke.find(\"a\").first());\r\n return this.clear_backstroke();\r\n } else {\r\n next_available_destroy = this.search_container.siblings(\"li.search-choice\").last();\r\n if (next_available_destroy.length && !next_available_destroy.hasClass(\"search-choice-disabled\")) {\r\n this.pending_backstroke = next_available_destroy;\r\n if (this.single_backstroke_delete) {\r\n return this.keydown_backstroke();\r\n } else {\r\n return this.pending_backstroke.addClass(\"search-choice-focus\");\r\n }\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.clear_backstroke = function() {\r\n if (this.pending_backstroke) {\r\n this.pending_backstroke.removeClass(\"search-choice-focus\");\r\n }\r\n return this.pending_backstroke = null;\r\n };\r\n\r\n Chosen.prototype.keydown_checker = function(evt) {\r\n var stroke, _ref1;\r\n stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;\r\n this.search_field_scale();\r\n if (stroke !== 8 && this.pending_backstroke) {\r\n this.clear_backstroke();\r\n }\r\n switch (stroke) {\r\n case 8:\r\n this.backstroke_length = this.search_field.val().length;\r\n break;\r\n case 9:\r\n if (this.results_showing && !this.is_multiple) {\r\n this.result_select(evt);\r\n }\r\n this.mouse_on_container = false;\r\n break;\r\n case 13:\r\n if (this.results_showing) {\r\n evt.preventDefault();\r\n }\r\n break;\r\n case 32:\r\n if (this.disable_search) {\r\n evt.preventDefault();\r\n }\r\n break;\r\n case 38:\r\n evt.preventDefault();\r\n this.keyup_arrow();\r\n break;\r\n case 40:\r\n evt.preventDefault();\r\n this.keydown_arrow();\r\n break;\r\n }\r\n };\r\n\r\n Chosen.prototype.search_field_scale = function() {\r\n var div, f_width, h, style, style_block, styles, w, _i, _len;\r\n if (this.is_multiple) {\r\n h = 0;\r\n w = 0;\r\n style_block = \"position:absolute; left: -1000px; top: -1000px; display:none;\";\r\n styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];\r\n for (_i = 0, _len = styles.length; _i < _len; _i++) {\r\n style = styles[_i];\r\n style_block += style + \":\" + this.search_field.css(style) + \";\";\r\n }\r\n div = $('<div />', {\r\n 'style': style_block\r\n });\r\n div.text(this.search_field.val());\r\n $('body').append(div);\r\n w = div.width() + 25;\r\n div.remove();\r\n f_width = this.container.outerWidth();\r\n if (w > f_width - 10) {\r\n w = f_width - 10;\r\n }\r\n return this.search_field.css({\r\n 'width': w + 'px'\r\n });\r\n }\r\n };\r\n\r\n return Chosen;\r\n\r\n })(AbstractChosen);\r\n\r\n}).call(this);\r\n","/*!\n * jQuery JavaScript Library v3.6.4\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-03-08T15:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.10\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2023-02-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t// Make sure the the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `<template/>` may have\n\t\t\t// a null one - a default behavior of all modern browsers.\n\t\t\tvar adown = a.nodeType === 9 && a.documentElement || a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\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\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\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}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn 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}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\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\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\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\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\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\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\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\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\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\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\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}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\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\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\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}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\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\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\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} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\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\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\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\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/*! jQuery UI - v1.13.1 - 2022-01-20\r\n* http://jqueryui.com\r\n* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js\r\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\r\n\r\n!function(t){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],t):t(jQuery)}(function(V){\"use strict\";V.ui=V.ui||{};V.ui.version=\"1.13.1\";var n,i=0,a=Array.prototype.hasOwnProperty,r=Array.prototype.slice;V.cleanData=(n=V.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=V._data(i,\"events\"))&&e.remove&&V(i).triggerHandler(\"remove\");n(t)}),V.widget=function(t,i,e){var s,n,o,a={},r=t.split(\".\")[0],l=r+\"-\"+(t=t.split(\".\")[1]);return e||(e=i,i=V.Widget),Array.isArray(e)&&(e=V.extend.apply(null,[{}].concat(e))),V.expr.pseudos[l.toLowerCase()]=function(t){return!!V.data(t,l)},V[r]=V[r]||{},s=V[r][t],n=V[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},V.extend(n,s,{version:e.version,_proto:V.extend({},e),_childConstructors:[]}),(o=new i).options=V.widget.extend({},o.options),V.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]=\"function\"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=V.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(V.each(s._childConstructors,function(t,e){var i=e.prototype;V.widget(i.namespace+\".\"+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),V.widget.bridge(t,n),n},V.widget.extend=function(t){for(var e,i,s=r.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],a.call(s[n],e)&&void 0!==i&&(V.isPlainObject(i)?t[e]=V.isPlainObject(t[e])?V.widget.extend({},t[e],i):V.widget.extend({},i):t[e]=i);return t},V.widget.bridge=function(o,e){var a=e.prototype.widgetFullName||o;V.fn[o]=function(i){var t=\"string\"==typeof i,s=r.call(arguments,1),n=this;return t?this.length||\"instance\"!==i?this.each(function(){var t,e=V.data(this,a);return\"instance\"===i?(n=e,!1):e?\"function\"!=typeof e[i]||\"_\"===i.charAt(0)?V.error(\"no such method '\"+i+\"' for \"+o+\" widget instance\"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:V.error(\"cannot call methods on \"+o+\" prior to initialization; attempted to call method '\"+i+\"'\")}):n=void 0:(s.length&&(i=V.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=V.data(this,a);t?(t.option(i||{}),t._init&&t._init()):V.data(this,a,new e(i,this))})),n}},V.Widget=function(){},V.Widget._childConstructors=[],V.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",defaultElement:\"<div>\",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=V(e||this.defaultElement||this)[0],this.element=V(e),this.uuid=i++,this.eventNamespace=\".\"+this.widgetName+this.uuid,this.bindings=V(),this.hoverable=V(),this.focusable=V(),this.classesElementLookup={},e!==this&&(V.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=V(e.style?e.ownerDocument:e.document||e),this.window=V(this.document[0].defaultView||this.document[0].parentWindow)),this.options=V.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger(\"create\",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:V.noop,_create:V.noop,_init:V.noop,destroy:function(){var i=this;this._destroy(),V.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\"),this.bindings.off(this.eventNamespace)},_destroy:V.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return V.widget.extend({},this.options);if(\"string\"==typeof t)if(o={},t=(i=t.split(\".\")).shift(),i.length){for(s=o[t]=V.widget.extend({},this.options[t]),n=0;n<i.length-1;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){for(var e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return\"classes\"===t&&this._setOptionClasses(e),this.options[t]=e,\"disabled\"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(t){var e,i,s;for(e in t)s=this.classesElementLookup[e],t[e]!==this.options.classes[e]&&s&&s.length&&(i=V(s.get()),this._removeClass(s,e),i.addClass(this._classes({element:i,keys:e,classes:t,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+\"-disabled\",null,!!t),t&&(this._removeClass(this.hoverable,null,\"ui-state-hover\"),this._removeClass(this.focusable,null,\"ui-state-focus\"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(n){var o=[],a=this;function t(t,e){for(var i,s=0;s<t.length;s++)i=a.classesElementLookup[t[s]]||V(),i=n.add?(function(){var i=[];n.element.each(function(t,e){V.map(a.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),a._on(V(i),{remove:\"_untrackClassesElement\"})}(),V(V.uniqueSort(i.get().concat(n.element.get())))):V(i.not(n.element).get()),a.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=V.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\\S+/g)||[],!0),n.extra&&t(n.extra.match(/\\S+/g)||[]),o.join(\" \")},_untrackClassesElement:function(i){var s=this;V.each(s.classesElementLookup,function(t,e){-1!==V.inArray(i.target,e)&&(s.classesElementLookup[t]=V(e.not(i.target).get()))}),this._off(V(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n=\"string\"==typeof t||null===t,i={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s=\"boolean\"==typeof s?s:i};return i.element.toggleClass(this._classes(i),s),this},_on:function(n,o,t){var a,r=this;\"boolean\"!=typeof n&&(t=o,o=n,n=!1),t?(o=a=V(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,a=this.widget()),V.each(t,function(t,e){function i(){if(n||!0!==r.options.disabled&&!V(this).hasClass(\"ui-state-disabled\"))return(\"string\"==typeof e?r[e]:e).apply(r,arguments)}\"string\"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||V.guid++);var s=t.match(/^([\\w:-]*)\\s*(.*)$/),t=s[1]+r.eventNamespace,s=s[2];s?a.on(t,s,i):o.on(t,i)})},_off:function(t,e){e=(e||\"\").split(\" \").join(this.eventNamespace+\" \")+this.eventNamespace,t.off(e),this.bindings=V(this.bindings.not(t).get()),this.focusable=V(this.focusable.not(t).get()),this.hoverable=V(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return(\"string\"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(V(t.currentTarget),null,\"ui-state-hover\")},mouseleave:function(t){this._removeClass(V(t.currentTarget),null,\"ui-state-hover\")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(V(t.currentTarget),null,\"ui-state-focus\")},focusout:function(t){this._removeClass(V(t.currentTarget),null,\"ui-state-focus\")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=V.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!(\"function\"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},V.each({show:\"fadeIn\",hide:\"fadeOut\"},function(o,a){V.Widget.prototype[\"_\"+o]=function(e,t,i){var s,n=(t=\"string\"==typeof t?{effect:t}:t)?!0!==t&&\"number\"!=typeof t&&t.effect||a:o;\"number\"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!V.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&V.effects&&V.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){V(this)[o](),i&&i.call(e[0]),t()})}});var s,x,k,o,l,h,c,u,C;V.widget;function D(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function I(t,e){return parseInt(V.css(t,e),10)||0}function T(t){return null!=t&&t===t.window}x=Math.max,k=Math.abs,o=/left|center|right/,l=/top|center|bottom/,h=/[\\+\\-]\\d+(\\.[\\d]+)?%?/,c=/^\\w+/,u=/%$/,C=V.fn.position,V.position={scrollbarWidth:function(){if(void 0!==s)return s;var t,e=V(\"<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>\"),i=e.children()[0];return V(\"body\").append(e),t=i.offsetWidth,e.css(\"overflow\",\"scroll\"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?\"\":t.element.css(\"overflow-x\"),i=t.isWindow||t.isDocument?\"\":t.element.css(\"overflow-y\"),e=\"scroll\"===e||\"auto\"===e&&t.width<t.element[0].scrollWidth;return{width:\"scroll\"===i||\"auto\"===i&&t.height<t.element[0].scrollHeight?V.position.scrollbarWidth():0,height:e?V.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=V(t||window),i=T(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:!i&&!s?V(t).offset():{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:e.outerWidth(),height:e.outerHeight()}}},V.fn.position=function(u){if(!u||!u.of)return C.apply(this,arguments);var d,p,f,g,m,t,_=\"string\"==typeof(u=V.extend({},u)).of?V(document).find(u.of):V(u.of),v=V.position.getWithinInfo(u.within),b=V.position.getScrollInfo(v),y=(u.collision||\"flip\").split(\" \"),w={},e=9===(t=(e=_)[0]).nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:T(t)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()};return _[0].preventDefault&&(u.at=\"left top\"),p=e.width,f=e.height,m=V.extend({},g=e.offset),V.each([\"my\",\"at\"],function(){var t,e,i=(u[this]||\"\").split(\" \");(i=1===i.length?o.test(i[0])?i.concat([\"center\"]):l.test(i[0])?[\"center\"].concat(i):[\"center\",\"center\"]:i)[0]=o.test(i[0])?i[0]:\"center\",i[1]=l.test(i[1])?i[1]:\"center\",t=h.exec(i[0]),e=h.exec(i[1]),w[this]=[t?t[0]:0,e?e[0]:0],u[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===y.length&&(y[1]=y[0]),\"right\"===u.at[0]?m.left+=p:\"center\"===u.at[0]&&(m.left+=p/2),\"bottom\"===u.at[1]?m.top+=f:\"center\"===u.at[1]&&(m.top+=f/2),d=D(w.at,p,f),m.left+=d[0],m.top+=d[1],this.each(function(){var i,t,a=V(this),r=a.outerWidth(),l=a.outerHeight(),e=I(this,\"marginLeft\"),s=I(this,\"marginTop\"),n=r+e+I(this,\"marginRight\")+b.width,o=l+s+I(this,\"marginBottom\")+b.height,h=V.extend({},m),c=D(w.my,a.outerWidth(),a.outerHeight());\"right\"===u.my[0]?h.left-=r:\"center\"===u.my[0]&&(h.left-=r/2),\"bottom\"===u.my[1]?h.top-=l:\"center\"===u.my[1]&&(h.top-=l/2),h.left+=c[0],h.top+=c[1],i={marginLeft:e,marginTop:s},V.each([\"left\",\"top\"],function(t,e){V.ui.position[y[t]]&&V.ui.position[y[t]][e](h,{targetWidth:p,targetHeight:f,elemWidth:r,elemHeight:l,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+c[0],d[1]+c[1]],my:u.my,at:u.at,within:v,elem:a})}),u.using&&(t=function(t){var e=g.left-h.left,i=e+p-r,s=g.top-h.top,n=s+f-l,o={target:{element:_,left:g.left,top:g.top,width:p,height:f},element:{element:a,left:h.left,top:h.top,width:r,height:l},horizontal:i<0?\"left\":0<e?\"right\":\"center\",vertical:n<0?\"top\":0<s?\"bottom\":\"middle\"};p<r&&k(e+i)<p&&(o.horizontal=\"center\"),f<l&&k(s+n)<f&&(o.vertical=\"middle\"),x(k(e),k(i))>x(k(s),k(n))?o.important=\"horizontal\":o.important=\"vertical\",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})},V.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,a=s-o,r=o+e.collisionWidth-n-s;e.collisionWidth>n?0<a&&r<=0?(i=t.left+a+e.collisionWidth-n-s,t.left+=a-i):t.left=!(0<r&&a<=0)&&r<a?s+n-e.collisionWidth:s:0<a?t.left+=a:0<r?t.left-=r:t.left=x(t.left-o,t.left)},top:function(t,e){var i=e.within,s=i.isWindow?i.scrollTop:i.offset.top,n=e.within.height,o=t.top-e.collisionPosition.marginTop,a=s-o,r=o+e.collisionHeight-n-s;e.collisionHeight>n?0<a&&r<=0?(i=t.top+a+e.collisionHeight-n-s,t.top+=a-i):t.top=!(0<r&&a<=0)&&r<a?s+n-e.collisionHeight:s:0<a?t.top+=a:0<r?t.top-=r:t.top=x(t.top-o,t.top)}},flip:{left:function(t,e){var i=e.within,s=i.offset.left+i.scrollLeft,n=i.width,o=i.isWindow?i.scrollLeft:i.offset.left,a=t.left-e.collisionPosition.marginLeft,r=a-o,l=a+e.collisionWidth-n-o,h=\"left\"===e.my[0]?-e.elemWidth:\"right\"===e.my[0]?e.elemWidth:0,i=\"left\"===e.at[0]?e.targetWidth:\"right\"===e.at[0]?-e.targetWidth:0,a=-2*e.offset[0];r<0?((s=t.left+h+i+a+e.collisionWidth-n-s)<0||s<k(r))&&(t.left+=h+i+a):0<l&&(0<(o=t.left-e.collisionPosition.marginLeft+h+i+a-o)||k(o)<l)&&(t.left+=h+i+a)},top:function(t,e){var i=e.within,s=i.offset.top+i.scrollTop,n=i.height,o=i.isWindow?i.scrollTop:i.offset.top,a=t.top-e.collisionPosition.marginTop,r=a-o,l=a+e.collisionHeight-n-o,h=\"top\"===e.my[1]?-e.elemHeight:\"bottom\"===e.my[1]?e.elemHeight:0,i=\"top\"===e.at[1]?e.targetHeight:\"bottom\"===e.at[1]?-e.targetHeight:0,a=-2*e.offset[1];r<0?((s=t.top+h+i+a+e.collisionHeight-n-s)<0||s<k(r))&&(t.top+=h+i+a):0<l&&(0<(o=t.top-e.collisionPosition.marginTop+h+i+a-o)||k(o)<l)&&(t.top+=h+i+a)}},flipfit:{left:function(){V.ui.position.flip.left.apply(this,arguments),V.ui.position.fit.left.apply(this,arguments)},top:function(){V.ui.position.flip.top.apply(this,arguments),V.ui.position.fit.top.apply(this,arguments)}}};V.ui.position,V.extend(V.expr.pseudos,{data:V.expr.createPseudo?V.expr.createPseudo(function(e){return function(t){return!!V.data(t,e)}}):function(t,e,i){return!!V.data(t,i[3])}}),V.fn.extend({disableSelection:(t=\"onselectstart\"in document.createElement(\"div\")?\"selectstart\":\"mousedown\",function(){return this.on(t+\".ui-disableSelection\",function(t){t.preventDefault()})}),enableSelection:function(){return this.off(\".ui-disableSelection\")}});var t,d=V,p={},e=p.toString,f=/^([\\-+])=\\s*(\\d+\\.?\\d*)/,g=[{re:/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),t[4]?(parseInt(t[4],16)/255).toFixed(2):1]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16),t[4]?(parseInt(t[4]+t[4],16)/255).toFixed(2):1]}},{re:/hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,space:\"hsla\",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],m=d.Color=function(t,e,i,s){return new d.Color.fn.parse(t,e,i,s)},_={rgba:{props:{red:{idx:0,type:\"byte\"},green:{idx:1,type:\"byte\"},blue:{idx:2,type:\"byte\"}}},hsla:{props:{hue:{idx:0,type:\"degrees\"},saturation:{idx:1,type:\"percent\"},lightness:{idx:2,type:\"percent\"}}}},v={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},b=m.support={},y=d(\"<p>\")[0],w=d.each;function P(t){return null==t?t+\"\":\"object\"==typeof t?p[e.call(t)]||\"object\":typeof t}function M(t,e,i){var s=v[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:Math.min(s.max,Math.max(0,t)))}function S(s){var n=m(),o=n._rgba=[];return s=s.toLowerCase(),w(g,function(t,e){var i=e.re.exec(s),i=i&&e.parse(i),e=e.space||\"rgba\";if(i)return i=n[e](i),n[_[e].cache]=i[_[e].cache],o=n._rgba=i._rgba,!1}),o.length?(\"0,0,0,0\"===o.join()&&d.extend(o,B.transparent),n):B[s]}function H(t,e,i){return 6*(i=(i+1)%1)<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}y.style.cssText=\"background-color:rgba(1,1,1,.5)\",b.rgba=-1<y.style.backgroundColor.indexOf(\"rgba\"),w(_,function(t,e){e.cache=\"_\"+t,e.props.alpha={idx:3,type:\"percent\",def:1}}),d.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(t,e){p[\"[object \"+e+\"]\"]=e.toLowerCase()}),(m.fn=d.extend(m.prototype,{parse:function(n,t,e,i){if(void 0===n)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=d(n).css(t),t=void 0);var o=this,s=P(n),a=this._rgba=[];return void 0!==t&&(n=[n,t,e,i],s=\"array\"),\"string\"===s?this.parse(S(n)||B._default):\"array\"===s?(w(_.rgba.props,function(t,e){a[e.idx]=M(n[e.idx],e)}),this):\"object\"===s?(w(_,n instanceof m?function(t,e){n[e.cache]&&(o[e.cache]=n[e.cache].slice())}:function(t,i){var s=i.cache;w(i.props,function(t,e){if(!o[s]&&i.to){if(\"alpha\"===t||null==n[t])return;o[s]=i.to(o._rgba)}o[s][e.idx]=M(n[t],e,!0)}),o[s]&&d.inArray(null,o[s].slice(0,3))<0&&(null==o[s][3]&&(o[s][3]=1),i.from&&(o._rgba=i.from(o[s])))}),this):void 0},is:function(t){var n=m(t),o=!0,a=this;return w(_,function(t,e){var i,s=n[e.cache];return s&&(i=a[e.cache]||e.to&&e.to(a._rgba)||[],w(e.props,function(t,e){if(null!=s[e.idx])return o=s[e.idx]===i[e.idx]})),o}),o},_space:function(){var i=[],s=this;return w(_,function(t,e){s[e.cache]&&i.push(t)}),i.pop()},transition:function(t,a){var e=(h=m(t))._space(),i=_[e],t=0===this.alpha()?m(\"transparent\"):this,r=t[i.cache]||i.to(t._rgba),l=r.slice(),h=h[i.cache];return w(i.props,function(t,e){var i=e.idx,s=r[i],n=h[i],o=v[e.type]||{};null!==n&&(null===s?l[i]=n:(o.mod&&(n-s>o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=M((n-s)*a+s,e)))}),this[e](l)},blend:function(t){if(1===this._rgba[3])return this;var e=this._rgba.slice(),i=e.pop(),s=m(t)._rgba;return m(d.map(e,function(t,e){return(1-i)*s[e]+i*t}))},toRgbaString:function(){var t=\"rgba(\",e=d.map(this._rgba,function(t,e){return null!=t?t:2<e?1:0});return 1===e[3]&&(e.pop(),t=\"rgb(\"),t+e.join()+\")\"},toHslaString:function(){var t=\"hsla(\",e=d.map(this.hsla(),function(t,e){return null==t&&(t=2<e?1:0),t=e&&e<3?Math.round(100*t)+\"%\":t});return 1===e[3]&&(e.pop(),t=\"hsl(\"),t+e.join()+\")\"},toHexString:function(t){var e=this._rgba.slice(),i=e.pop();return t&&e.push(~~(255*i)),\"#\"+d.map(e,function(t){return 1===(t=(t||0).toString(16)).length?\"0\"+t:t}).join(\"\")},toString:function(){return 0===this._rgba[3]?\"transparent\":this.toRgbaString()}})).parse.prototype=m.fn,_.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/255,i=t[1]/255,s=t[2]/255,n=t[3],o=Math.max(e,i,s),a=Math.min(e,i,s),r=o-a,l=o+a,t=.5*l,i=a===o?0:e===o?60*(i-s)/r+360:i===o?60*(s-e)/r+120:60*(e-i)/r+240,l=0==r?0:t<=.5?r/l:r/(2-l);return[Math.round(i)%360,l,t,null==n?1:n]},_.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],t=t[3],i=s<=.5?s*(1+i):s+i-s*i,s=2*s-i;return[Math.round(255*H(s,i,e+1/3)),Math.round(255*H(s,i,e)),Math.round(255*H(s,i,e-1/3)),t]},w(_,function(l,t){var e=t.props,o=t.cache,a=t.to,r=t.from;m.fn[l]=function(t){if(a&&!this[o]&&(this[o]=a(this._rgba)),void 0===t)return this[o].slice();var i=P(t),s=\"array\"===i||\"object\"===i?t:arguments,n=this[o].slice();return w(e,function(t,e){t=s[\"object\"===i?t:e.idx];null==t&&(t=n[e.idx]),n[e.idx]=M(t,e)}),r?((t=m(r(n)))[o]=n,t):m(n)},w(e,function(a,r){m.fn[a]||(m.fn[a]=function(t){var e,i=P(t),s=\"alpha\"===a?this._hsla?\"hsla\":\"rgba\":l,n=this[s](),o=n[r.idx];return\"undefined\"===i?o:(\"function\"===i&&(i=P(t=t.call(this,o))),null==t&&r.empty?this:(\"string\"===i&&(e=f.exec(t))&&(t=o+parseFloat(e[2])*(\"+\"===e[1]?1:-1)),n[r.idx]=t,this[s](n)))})})}),(m.hook=function(t){t=t.split(\" \");w(t,function(t,o){d.cssHooks[o]={set:function(t,e){var i,s,n=\"\";if(\"transparent\"!==e&&(\"string\"!==P(e)||(i=S(e)))){if(e=m(i||e),!b.rgba&&1!==e._rgba[3]){for(s=\"backgroundColor\"===o?t.parentNode:t;(\"\"===n||\"transparent\"===n)&&s&&s.style;)try{n=d.css(s,\"backgroundColor\"),s=s.parentNode}catch(t){}e=e.blend(n&&\"transparent\"!==n?n:\"_default\")}e=e.toRgbaString()}try{t.style[o]=e}catch(t){}}},d.fx.step[o]=function(t){t.colorInit||(t.start=m(t.elem,o),t.end=m(t.end),t.colorInit=!0),d.cssHooks[o].set(t.elem,t.start.transition(t.end,t.pos))}})})(\"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\"),d.cssHooks.borderColor={expand:function(i){var s={};return w([\"Top\",\"Right\",\"Bottom\",\"Left\"],function(t,e){s[\"border\"+e+\"Color\"]=i}),s}};var z,A,O,N,E,W,F,L,R,Y,B=d.Color.names={aqua:\"#00ffff\",black:\"#000000\",blue:\"#0000ff\",fuchsia:\"#ff00ff\",gray:\"#808080\",green:\"#008000\",lime:\"#00ff00\",maroon:\"#800000\",navy:\"#000080\",olive:\"#808000\",purple:\"#800080\",red:\"#ff0000\",silver:\"#c0c0c0\",teal:\"#008080\",white:\"#ffffff\",yellow:\"#ffff00\",transparent:[null,null,null,0],_default:\"#ffffff\"},j=\"ui-effects-\",q=\"ui-effects-style\",K=\"ui-effects-animated\";function U(t){var e,i,s=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,n={};if(s&&s.length&&s[0]&&s[s[0]])for(i=s.length;i--;)\"string\"==typeof s[e=s[i]]&&(n[e.replace(/-([\\da-z])/gi,function(t,e){return e.toUpperCase()})]=s[e]);else for(e in s)\"string\"==typeof s[e]&&(n[e]=s[e]);return n}function X(t,e,i,s){return t={effect:t=V.isPlainObject(t)?(e=t).effect:t},\"function\"==typeof(e=null==e?{}:e)&&(s=e,i=null,e={}),\"number\"!=typeof e&&!V.fx.speeds[e]||(s=i,i=e,e={}),\"function\"==typeof i&&(s=i,i=null),e&&V.extend(t,e),i=i||e.duration,t.duration=V.fx.off?0:\"number\"==typeof i?i:i in V.fx.speeds?V.fx.speeds[i]:V.fx.speeds._default,t.complete=s||e.complete,t}function $(t){return!t||\"number\"==typeof t||V.fx.speeds[t]||(\"string\"==typeof t&&!V.effects.effect[t]||(\"function\"==typeof t||\"object\"==typeof t&&!t.effect))}function G(t,e){var i=e.outerWidth(),e=e.outerHeight(),t=/^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/.exec(t)||[\"\",0,i,e,0];return{top:parseFloat(t[1])||0,right:\"auto\"===t[2]?i:parseFloat(t[2]),bottom:\"auto\"===t[3]?e:parseFloat(t[3]),left:parseFloat(t[4])||0}}V.effects={effect:{}},N=[\"add\",\"remove\",\"toggle\"],E={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1},V.each([\"borderLeftStyle\",\"borderRightStyle\",\"borderBottomStyle\",\"borderTopStyle\"],function(t,e){V.fx.step[e]=function(t){(\"none\"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(d.style(t.elem,e,t.end),t.setAttr=!0)}}),V.fn.addBack||(V.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),V.effects.animateClass=function(n,t,e,i){var o=V.speed(t,e,i);return this.queue(function(){var i=V(this),t=i.attr(\"class\")||\"\",e=(e=o.children?i.find(\"*\").addBack():i).map(function(){return{el:V(this),start:U(this)}}),s=function(){V.each(N,function(t,e){n[e]&&i[e+\"Class\"](n[e])})};s(),e=e.map(function(){return this.end=U(this.el[0]),this.diff=function(t,e){var i,s,n={};for(i in e)s=e[i],t[i]!==s&&(E[i]||!V.fx.step[i]&&isNaN(parseFloat(s))||(n[i]=s));return n}(this.start,this.end),this}),i.attr(\"class\",t),e=e.map(function(){var t=this,e=V.Deferred(),i=V.extend({},o,{queue:!1,complete:function(){e.resolve(t)}});return this.el.animate(this.diff,i),e.promise()}),V.when.apply(V,e.get()).done(function(){s(),V.each(arguments,function(){var e=this.el;V.each(this.diff,function(t){e.css(t,\"\")})}),o.complete.call(i[0])})})},V.fn.extend({addClass:(O=V.fn.addClass,function(t,e,i,s){return e?V.effects.animateClass.call(this,{add:t},e,i,s):O.apply(this,arguments)}),removeClass:(A=V.fn.removeClass,function(t,e,i,s){return 1<arguments.length?V.effects.animateClass.call(this,{remove:t},e,i,s):A.apply(this,arguments)}),toggleClass:(z=V.fn.toggleClass,function(t,e,i,s,n){return\"boolean\"==typeof e||void 0===e?i?V.effects.animateClass.call(this,e?{add:t}:{remove:t},i,s,n):z.apply(this,arguments):V.effects.animateClass.call(this,{toggle:t},e,i,s)}),switchClass:function(t,e,i,s,n){return V.effects.animateClass.call(this,{add:e,remove:t},i,s,n)}}),V.expr&&V.expr.pseudos&&V.expr.pseudos.animated&&(V.expr.pseudos.animated=(W=V.expr.pseudos.animated,function(t){return!!V(t).data(K)||W(t)})),!1!==V.uiBackCompat&&V.extend(V.effects,{save:function(t,e){for(var i=0,s=e.length;i<s;i++)null!==e[i]&&t.data(j+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;s<n;s++)null!==e[s]&&(i=t.data(j+e[s]),t.css(e[s],i))},setMode:function(t,e){return e=\"toggle\"===e?t.is(\":hidden\")?\"show\":\"hide\":e},createWrapper:function(i){if(i.parent().is(\".ui-effects-wrapper\"))return i.parent();var s={width:i.outerWidth(!0),height:i.outerHeight(!0),float:i.css(\"float\")},t=V(\"<div></div>\").addClass(\"ui-effects-wrapper\").css({fontSize:\"100%\",background:\"transparent\",border:\"none\",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger(\"focus\"),t=i.parent(),\"static\"===i.css(\"position\")?(t.css({position:\"relative\"}),i.css({position:\"relative\"})):(V.extend(s,{position:i.css(\"position\"),zIndex:i.css(\"z-index\")}),V.each([\"top\",\"left\",\"bottom\",\"right\"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]=\"auto\")}),i.css({position:\"relative\",top:0,left:0,right:\"auto\",bottom:\"auto\"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(\".ui-effects-wrapper\")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger(\"focus\")),t}}),V.extend(V.effects,{version:\"1.13.1\",define:function(t,e,i){return i||(i=e,e=\"effect\"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s=\"horizontal\"!==i?(e||100)/100:1,e=\"vertical\"!==i?(e||100)/100:1;return{height:t.height()*e,width:t.width()*s,outerHeight:t.outerHeight()*e,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1<e&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(q,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(q)||\"\",t.removeData(q)},mode:function(t,e){t=t.is(\":hidden\");return\"toggle\"===e&&(e=t?\"show\":\"hide\"),e=(t?\"hide\"===e:\"show\"===e)?\"none\":e},getBaseline:function(t,e){var i,s;switch(t[0]){case\"top\":i=0;break;case\"middle\":i=.5;break;case\"bottom\":i=1;break;default:i=t[0]/e.height}switch(t[1]){case\"left\":s=0;break;case\"center\":s=.5;break;case\"right\":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(t){var e,i=t.css(\"position\"),s=t.position();return t.css({marginTop:t.css(\"marginTop\"),marginBottom:t.css(\"marginBottom\"),marginLeft:t.css(\"marginLeft\"),marginRight:t.css(\"marginRight\")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()),/^(static|relative)/.test(i)&&(i=\"absolute\",e=V(\"<\"+t[0].nodeName+\">\").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css(\"display\"))?\"inline-block\":\"block\",visibility:\"hidden\",marginTop:t.css(\"marginTop\"),marginBottom:t.css(\"marginBottom\"),marginLeft:t.css(\"marginLeft\"),marginRight:t.css(\"marginRight\"),float:t.css(\"float\")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass(\"ui-effects-placeholder\"),t.data(j+\"placeholder\",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=j+\"placeholder\",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0<i[0]&&(o[e]=i[0]*n+i[1])}),o}}),V.fn.extend({effect:function(){function t(t){var e=V(this),i=V.effects.mode(e,r)||o;e.data(K,!0),l.push(i),o&&(\"show\"===i||i===o&&\"hide\"===i)&&e.show(),o&&\"none\"===i||V.effects.saveStyle(e),\"function\"==typeof t&&t()}var s=X.apply(this,arguments),n=V.effects.effect[s.effect],o=n.mode,e=s.queue,i=e||\"fx\",a=s.complete,r=s.mode,l=[];return V.fx.off||!n?r?this[r](s.duration,a):this.each(function(){a&&a.call(this)}):!1===e?this.each(t).each(h):this.queue(i,t).queue(i,h);function h(t){var e=V(this);function i(){\"function\"==typeof a&&a.call(e[0]),\"function\"==typeof t&&t()}s.mode=l.shift(),!1===V.uiBackCompat||o?\"none\"===s.mode?(e[r](),i()):n.call(e[0],s,function(){e.removeData(K),V.effects.cleanUp(e),\"hide\"===s.mode&&e.hide(),i()}):(e.is(\":hidden\")?\"hide\"===r:\"show\"===r)?(e[r](),i()):n.call(e[0],s,i)}},show:(R=V.fn.show,function(t){if($(t))return R.apply(this,arguments);t=X.apply(this,arguments);return t.mode=\"show\",this.effect.call(this,t)}),hide:(L=V.fn.hide,function(t){if($(t))return L.apply(this,arguments);t=X.apply(this,arguments);return t.mode=\"hide\",this.effect.call(this,t)}),toggle:(F=V.fn.toggle,function(t){if($(t)||\"boolean\"==typeof t)return F.apply(this,arguments);t=X.apply(this,arguments);return t.mode=\"toggle\",this.effect.call(this,t)}),cssUnit:function(t){var i=this.css(t),s=[];return V.each([\"em\",\"px\",\"%\",\"pt\"],function(t,e){0<i.indexOf(e)&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css(\"clip\",\"rect(\"+t.top+\"px \"+t.right+\"px \"+t.bottom+\"px \"+t.left+\"px)\"):G(this.css(\"clip\"),this)},transfer:function(t,e){var i=V(this),s=V(t.to),n=\"fixed\"===s.css(\"position\"),o=V(\"body\"),a=n?o.scrollTop():0,r=n?o.scrollLeft():0,o=s.offset(),o={top:o.top-a,left:o.left-r,height:s.innerHeight(),width:s.innerWidth()},s=i.offset(),l=V(\"<div class='ui-effects-transfer'></div>\");l.appendTo(\"body\").addClass(t.className).css({top:s.top-a,left:s.left-r,height:i.innerHeight(),width:i.innerWidth(),position:n?\"fixed\":\"absolute\"}).animate(o,t.duration,t.easing,function(){l.remove(),\"function\"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),\"string\"==typeof t.end&&(t.end=G(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},Y={},V.each([\"Quad\",\"Cubic\",\"Quart\",\"Quint\",\"Expo\"],function(e,t){Y[t]=function(t){return Math.pow(t,e+2)}}),V.extend(Y,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(Y,function(t,e){V.easing[\"easeIn\"+t]=e,V.easing[\"easeOut\"+t]=function(t){return 1-e(1-t)},V.easing[\"easeInOut\"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});y=V.effects,V.effects.define(\"blind\",\"hide\",function(t,e){var i={up:[\"bottom\",\"top\"],vertical:[\"bottom\",\"top\"],down:[\"top\",\"bottom\"],left:[\"right\",\"left\"],horizontal:[\"right\",\"left\"],right:[\"left\",\"right\"]},s=V(this),n=t.direction||\"up\",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],\"show\"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define(\"bounce\",function(t,e){var i,s,n=V(this),o=t.mode,a=\"hide\"===o,r=\"show\"===o,l=t.direction||\"up\",h=t.distance,c=t.times||5,o=2*c+(r||a?1:0),u=t.duration/o,d=t.easing,p=\"up\"===l||\"down\"===l?\"top\":\"left\",f=\"up\"===l||\"left\"===l,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),l=n.css(p),h=h||n[\"top\"==p?\"outerHeight\":\"outerWidth\"]()/3,r&&((s={opacity:1})[p]=l,n.css(\"opacity\",0).css(p,f?2*-h:2*h).animate(s,u,d)),a&&(h/=Math.pow(2,c-1)),(s={})[p]=l;g<c;g++)(i={})[p]=(f?\"-=\":\"+=\")+h,n.animate(i,u,d).animate(s,u,d),h=a?2*h:h/2;a&&((i={opacity:0})[p]=(f?\"-=\":\"+=\")+h,n.animate(i,u,d)),n.queue(e),V.effects.unshift(n,t,1+o)}),V.effects.define(\"clip\",\"hide\",function(t,e){var i={},s=V(this),n=t.direction||\"vertical\",o=\"both\"===n,a=o||\"horizontal\"===n,o=o||\"vertical\"===n,n=s.cssClip();i.clip={top:o?(n.bottom-n.top)/2:n.top,right:a?(n.right-n.left)/2:n.right,bottom:o?(n.bottom-n.top)/2:n.bottom,left:a?(n.right-n.left)/2:n.left},V.effects.createPlaceholder(s),\"show\"===t.mode&&(s.cssClip(i.clip),i.clip=n),s.animate(i,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define(\"drop\",\"hide\",function(t,e){var i=V(this),s=\"show\"===t.mode,n=t.direction||\"left\",o=\"up\"===n||\"down\"===n?\"top\":\"left\",a=\"up\"===n||\"left\"===n?\"-=\":\"+=\",r=\"+=\"==a?\"-=\":\"+=\",l={opacity:0};V.effects.createPlaceholder(i),n=t.distance||i[\"top\"==o?\"outerHeight\":\"outerWidth\"](!0)/2,l[o]=a+n,s&&(i.css(l),l[o]=r+n,l.opacity=1),i.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define(\"explode\",\"hide\",function(t,e){var i,s,n,o,a,r,l=t.pieces?Math.round(Math.sqrt(t.pieces)):3,h=l,c=V(this),u=\"show\"===t.mode,d=c.show().css(\"visibility\",\"hidden\").offset(),p=Math.ceil(c.outerWidth()/h),f=Math.ceil(c.outerHeight()/l),g=[];function m(){g.push(this),g.length===l*h&&(c.css({visibility:\"visible\"}),V(g).remove(),e())}for(i=0;i<l;i++)for(o=d.top+i*f,r=i-(l-1)/2,s=0;s<h;s++)n=d.left+s*p,a=s-(h-1)/2,c.clone().appendTo(\"body\").wrap(\"<div></div>\").css({position:\"absolute\",visibility:\"visible\",left:-s*p,top:-i*f}).parent().addClass(\"ui-effects-explode\").css({position:\"absolute\",overflow:\"hidden\",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define(\"fade\",\"toggle\",function(t,e){var i=\"show\"===t.mode;V(this).css(\"opacity\",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define(\"fold\",\"hide\",function(e,t){var i=V(this),s=e.mode,n=\"show\"===s,o=\"hide\"===s,a=e.size||15,r=/([0-9]+)%/.exec(a),l=!!e.horizFirst?[\"right\",\"bottom\"]:[\"bottom\",\"right\"],h=e.duration/2,c=V.effects.createPlaceholder(i),u=i.cssClip(),d={clip:V.extend({},u)},p={clip:V.extend({},u)},f=[u[l[0]],u[l[1]]],s=i.queue().length;r&&(a=parseInt(r[1],10)/100*f[o?0:1]),d.clip[l[0]]=a,p.clip[l[0]]=a,p.clip[l[1]]=0,n&&(i.cssClip(p.clip),c&&c.css(V.effects.clipToBox(p)),p.clip=u),i.queue(function(t){c&&c.animate(V.effects.clipToBox(d),h,e.easing).animate(V.effects.clipToBox(p),h,e.easing),t()}).animate(d,h,e.easing).animate(p,h,e.easing).queue(t),V.effects.unshift(i,s,4)}),V.effects.define(\"highlight\",\"show\",function(t,e){var i=V(this),s={backgroundColor:i.css(\"backgroundColor\")};\"hide\"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:\"none\",backgroundColor:t.color||\"#ffff99\"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define(\"size\",function(s,e){var n,i=V(this),t=[\"fontSize\"],o=[\"borderTopWidth\",\"borderBottomWidth\",\"paddingTop\",\"paddingBottom\"],a=[\"borderLeftWidth\",\"borderRightWidth\",\"paddingLeft\",\"paddingRight\"],r=s.mode,l=\"effect\"!==r,h=s.scale||\"both\",c=s.origin||[\"middle\",\"center\"],u=i.css(\"position\"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),\"show\"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},\"box\"!==h&&\"both\"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),\"content\"!==h&&\"both\"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(c=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*c.y+d.top,f.left=(p.outerWidth-f.outerWidth)*c.x+d.left,g.top=(p.outerHeight-g.outerHeight)*c.y+d.top,g.left=(p.outerWidth-g.outerWidth)*c.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),\"content\"!==h&&\"both\"!==h||(o=o.concat([\"marginTop\",\"marginBottom\"]).concat(t),a=a.concat([\"marginLeft\",\"marginRight\"]),i.find(\"*[width]\").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css(\"opacity\",f.opacity),l||(i.css(\"position\",\"static\"===u?\"relative\":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define(\"scale\",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||\"effect\"!==s?0:100),s=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||\"both\"),origin:t.origin||[\"middle\",\"center\"]},t);t.fade&&(s.from.opacity=1,s.to.opacity=0),V.effects.effect.size.call(this,s,e)}),V.effects.define(\"puff\",\"hide\",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define(\"pulsate\",\"show\",function(t,e){var i=V(this),s=t.mode,n=\"show\"===s,o=2*(t.times||5)+(n||\"hide\"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(\":visible\")||(i.css(\"opacity\",0).show(),r=1);l<o;l++)i.animate({opacity:r},a,t.easing),r=1-r;i.animate({opacity:r},a,t.easing),i.queue(e),V.effects.unshift(i,s,1+o)}),V.effects.define(\"shake\",function(t,e){var i=1,s=V(this),n=t.direction||\"left\",o=t.distance||20,a=t.times||3,r=2*a+1,l=Math.round(t.duration/r),h=\"up\"===n||\"down\"===n?\"top\":\"left\",c=\"up\"===n||\"left\"===n,u={},d={},p={},n=s.queue().length;for(V.effects.createPlaceholder(s),u[h]=(c?\"-=\":\"+=\")+o,d[h]=(c?\"+=\":\"-=\")+2*o,p[h]=(c?\"-=\":\"+=\")+2*o,s.animate(u,l,t.easing);i<a;i++)s.animate(d,l,t.easing).animate(p,l,t.easing);s.animate(d,l,t.easing).animate(u,l/2,t.easing).queue(e),V.effects.unshift(s,n,1+r)}),V.effects.define(\"slide\",\"show\",function(t,e){var i,s,n=V(this),o={up:[\"bottom\",\"top\"],down:[\"top\",\"bottom\"],left:[\"right\",\"left\"],right:[\"left\",\"right\"]},a=t.mode,r=t.direction||\"left\",l=\"up\"===r||\"down\"===r?\"top\":\"left\",h=\"up\"===r||\"left\"===r,c=t.distance||n[\"top\"==l?\"outerHeight\":\"outerWidth\"](!0),u={};V.effects.createPlaceholder(n),i=n.cssClip(),s=n.position()[l],u[l]=(h?-1:1)*c+s,u.clip=n.cssClip(),u.clip[o[r][1]]=u.clip[o[r][0]],\"show\"===a&&(n.cssClip(u.clip),n.css(l,u[l]),u.clip=i,u[l]=s),n.animate(u,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),y=!1!==V.uiBackCompat?V.effects.define(\"transfer\",function(t,e){V(this).transfer(t,e)}):y;V.ui.focusable=function(t,e){var i,s,n,o,a=t.nodeName.toLowerCase();return\"area\"===a?(s=(i=t.parentNode).name,!(!t.href||!s||\"map\"!==i.nodeName.toLowerCase())&&(0<(s=V(\"img[usemap='#\"+s+\"']\")).length&&s.is(\":visible\"))):(/^(input|select|textarea|button|object)$/.test(a)?(n=!t.disabled)&&(o=V(t).closest(\"fieldset\")[0])&&(n=!o.disabled):n=\"a\"===a&&t.href||e,n&&V(t).is(\":visible\")&&function(t){var e=t.css(\"visibility\");for(;\"inherit\"===e;)t=t.parent(),e=t.css(\"visibility\");return\"visible\"===e}(V(t)))},V.extend(V.expr.pseudos,{focusable:function(t){return V.ui.focusable(t,null!=V.attr(t,\"tabindex\"))}});var Q,J;V.ui.focusable,V.fn._form=function(){return\"string\"==typeof this[0].form?this.closest(\"form\"):V(this[0].form)},V.ui.formResetMixin={_formResetHandler:function(){var e=V(this);setTimeout(function(){var t=e.data(\"ui-form-reset-instances\");V.each(t,function(){this.refresh()})})},_bindFormResetHandler:function(){var t;this.form=this.element._form(),this.form.length&&((t=this.form.data(\"ui-form-reset-instances\")||[]).length||this.form.on(\"reset.ui-form-reset\",this._formResetHandler),t.push(this),this.form.data(\"ui-form-reset-instances\",t))},_unbindFormResetHandler:function(){var t;this.form.length&&((t=this.form.data(\"ui-form-reset-instances\")).splice(V.inArray(this,t),1),t.length?this.form.data(\"ui-form-reset-instances\",t):this.form.removeData(\"ui-form-reset-instances\").off(\"reset.ui-form-reset\"))}};V.expr.pseudos||(V.expr.pseudos=V.expr[\":\"]),V.uniqueSort||(V.uniqueSort=V.unique),V.escapeSelector||(Q=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,J=function(t,e){return e?\"\\0\"===t?\"�\":t.slice(0,-1)+\"\\\\\"+t.charCodeAt(t.length-1).toString(16)+\" \":\"\\\\\"+t},V.escapeSelector=function(t){return(t+\"\").replace(Q,J)}),V.fn.even&&V.fn.odd||V.fn.extend({even:function(){return this.filter(function(t){return t%2==0})},odd:function(){return this.filter(function(t){return t%2==1})}});var Z;V.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},V.fn.labels=function(){var t,e,i;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents(\"label\"),(t=this.attr(\"id\"))&&(i=(i=this.eq(0).parents().last()).add((i.length?i:this).siblings()),t=\"label[for='\"+V.escapeSelector(t)+\"']\",e=e.add(i.find(t).addBack(t))),this.pushStack(e)):this.pushStack([])},V.fn.scrollParent=function(t){var e=this.css(\"position\"),i=\"absolute\"===e,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,t=this.parents().filter(function(){var t=V(this);return(!i||\"static\"!==t.css(\"position\"))&&s.test(t.css(\"overflow\")+t.css(\"overflow-y\")+t.css(\"overflow-x\"))}).eq(0);return\"fixed\"!==e&&t.length?t:V(this[0].ownerDocument||document)},V.extend(V.expr.pseudos,{tabbable:function(t){var e=V.attr(t,\"tabindex\"),i=null!=e;return(!i||0<=e)&&V.ui.focusable(t,i)}}),V.fn.extend({uniqueId:(Z=0,function(){return this.each(function(){this.id||(this.id=\"ui-id-\"+ ++Z)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\\d+$/.test(this.id)&&V(this).removeAttr(\"id\")})}}),V.widget(\"ui.accordion\",{version:\"1.13.1\",options:{active:0,animate:{},classes:{\"ui-accordion-header\":\"ui-corner-top\",\"ui-accordion-header-collapsed\":\"ui-corner-all\",\"ui-accordion-content\":\"ui-corner-bottom\"},collapsible:!1,event:\"click\",header:function(t){return t.find(\"> li > :first-child\").add(t.find(\"> :not(li)\").even())},heightStyle:\"auto\",icons:{activeHeader:\"ui-icon-triangle-1-s\",header:\"ui-icon-triangle-1-e\"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:\"hide\",borderBottomWidth:\"hide\",paddingTop:\"hide\",paddingBottom:\"hide\",height:\"hide\"},showProps:{borderTopWidth:\"show\",borderBottomWidth:\"show\",paddingTop:\"show\",paddingBottom:\"show\",height:\"show\"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass(\"ui-accordion\",\"ui-widget ui-helper-reset\"),this.element.attr(\"role\",\"tablist\"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(\"<span>\"),this._addClass(t,\"ui-accordion-header-icon\",\"ui-icon \"+e.header),t.prependTo(this.headers),t=this.active.children(\".ui-accordion-header-icon\"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,\"ui-accordion-icons\"))},_destroyIcons:function(){this._removeClass(this.headers,\"ui-accordion-icons\"),this.headers.children(\".ui-accordion-header-icon\").remove()},_destroy:function(){var t;this.element.removeAttr(\"role\"),this.headers.removeAttr(\"role aria-expanded aria-selected aria-controls tabIndex\").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css(\"display\",\"\").removeAttr(\"role aria-hidden aria-labelledby\").removeUniqueId(),\"content\"!==this.options.heightStyle&&t.css(\"height\",\"\")},_setOption:function(t,e){\"active\"!==t?(\"event\"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),\"collapsible\"!==t||e||!1!==this.options.active||this._activate(0),\"icons\"===t&&(this._destroyIcons(),e&&this._createIcons())):this._activate(e)},_setOptionDisabled:function(t){this._super(t),this.element.attr(\"aria-disabled\",t),this._toggleClass(null,\"ui-state-disabled\",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,\"ui-state-disabled\",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr(\"tabIndex\",-1),V(n).attr(\"tabIndex\",0),V(n).trigger(\"focus\"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger(\"focus\")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(\".ui-state-disabled\").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;\"function\"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,\"ui-accordion-header ui-accordion-header-collapsed\",\"ui-state-default\"),this.panels=this.headers.next().filter(\":not(.ui-accordion-content-active)\").hide(),this._addClass(this.panels,\"ui-accordion-content\",\"ui-helper-reset ui-widget-content\"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,\"ui-accordion-header-active\",\"ui-state-active\")._removeClass(this.active,\"ui-accordion-header-collapsed\"),this._addClass(this.active.next(),\"ui-accordion-content-active\"),this.active.next().show(),this.headers.attr(\"role\",\"tab\").each(function(){var t=V(this),e=t.uniqueId().attr(\"id\"),i=t.next(),s=i.uniqueId().attr(\"id\");t.attr(\"aria-controls\",s),i.attr(\"aria-labelledby\",e)}).next().attr(\"role\",\"tabpanel\"),this.headers.not(this.active).attr({\"aria-selected\":\"false\",\"aria-expanded\":\"false\",tabIndex:-1}).next().attr({\"aria-hidden\":\"true\"}).hide(),this.active.length?this.active.attr({\"aria-selected\":\"true\",\"aria-expanded\":\"true\",tabIndex:0}).next().attr({\"aria-hidden\":\"false\"}):this.headers.eq(0).attr(\"tabIndex\",0),this._createIcons(),this._setupEvents(t.event),\"fill\"===e?(i=s.height(),this.element.siblings(\":visible\").each(function(){var t=V(this),e=t.css(\"position\");\"absolute\"!==e&&\"fixed\"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css(\"overflow\",\"auto\")):\"auto\"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(\":visible\");t||V(this).show(),i=Math.max(i,V(this).css(\"height\",\"\").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return\"number\"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:\"_keydown\"};t&&V.each(t.split(\" \"),function(t,e){i[e]=\"_eventHandler\"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:\"_panelKeyDown\"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),a={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger(\"beforeActivate\",t,a)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(a),this._removeClass(i,\"ui-accordion-header-active\",\"ui-state-active\"),e.icons&&(i=i.children(\".ui-accordion-header-icon\"),this._removeClass(i,null,e.icons.activeHeader)._addClass(i,null,e.icons.header)),n||(this._removeClass(s,\"ui-accordion-header-collapsed\")._addClass(s,\"ui-accordion-header-active\",\"ui-state-active\"),e.icons&&(n=s.children(\".ui-accordion-header-icon\"),this._removeClass(n,null,e.icons.header)._addClass(n,null,e.icons.activeHeader)),this._addClass(s.next(),\"ui-accordion-content-active\")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({\"aria-hidden\":\"true\"}),i.prev().attr({\"aria-selected\":\"false\",\"aria-expanded\":\"false\"}),e.length&&i.length?i.prev().attr({tabIndex:-1,\"aria-expanded\":\"false\"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr(\"tabIndex\"),10)}).attr(\"tabIndex\",-1),e.attr(\"aria-hidden\",\"false\").prev().attr({\"aria-selected\":\"true\",\"aria-expanded\":\"true\",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,l=t.css(\"box-sizing\"),h=t.length&&(!i.length||t.index()<i.index()),c=this.options.animate||{},u=h&&c.down||c,h=function(){a._toggleComplete(e)};return n=(n=\"string\"==typeof u?u:n)||u.easing||c.easing,o=(o=\"number\"==typeof u?u:o)||u.duration||c.duration,i.length?t.length?(s=t.show().outerHeight(),i.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),void t.hide().animate(this.showProps,{duration:o,easing:n,complete:h,step:function(t,e){e.now=Math.round(t),\"height\"!==e.prop?\"content-box\"===l&&(r+=e.now):\"content\"!==a.options.heightStyle&&(e.now=Math.round(s-i.outerHeight()-r),r=0)}})):i.animate(this.hideProps,o,n,h):t.animate(this.showProps,o,n,h)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,\"ui-accordion-content-active\"),this._removeClass(i,\"ui-accordion-header-active\")._addClass(i,\"ui-accordion-header-collapsed\"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger(\"activate\",null,t)}}),V.ui.safeActiveElement=function(e){var i;try{i=e.activeElement}catch(t){i=e.body}return i=!(i=i||e.body).nodeName?e.body:i},V.widget(\"ui.menu\",{version:\"1.13.1\",defaultElement:\"<ul>\",delay:300,options:{icons:{submenu:\"ui-icon-caret-1-e\"},items:\"> *\",menus:\"ul\",position:{my:\"left top\",at:\"right top\"},role:\"menu\",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass(\"ui-menu\",\"ui-widget ui-widget-content\"),this._on({\"mousedown .ui-menu-item\":function(t){t.preventDefault(),this._activateItem(t)},\"click .ui-menu-item\":function(t){var e=V(t.target),i=V(V.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(\".ui-state-disabled\").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(\".ui-menu\").length?this.expand(t):!this.element.is(\":focus\")&&i.closest(\".ui-menu\").length&&(this.element.trigger(\"focus\",[!0]),this.active&&1===this.active.parents(\".ui-menu\").length&&clearTimeout(this.timer)))},\"mouseenter .ui-menu-item\":\"_activateItem\",\"mousemove .ui-menu-item\":\"_activateItem\",mouseleave:\"collapseAll\",\"mouseleave .ui-menu\":\"collapseAll\",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],V.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:\"_keydown\"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(\".ui-menu-item\"),i=V(t.currentTarget),e[0]===i[0]&&(i.is(\".ui-state-active\")||(this._removeClass(i.siblings().children(\".ui-state-active\"),null,\"ui-state-active\"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(\".ui-menu-item\").removeAttr(\"role aria-disabled\").children(\".ui-menu-item-wrapper\").removeUniqueId().removeAttr(\"tabIndex role aria-haspopup\");this.element.removeAttr(\"aria-activedescendant\").find(\".ui-menu\").addBack().removeAttr(\"role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex\").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data(\"ui-menu-submenu-caret\")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move(\"first\",\"first\",t);break;case V.ui.keyCode.END:this._move(\"last\",\"last\",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(\".ui-state-disabled\")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||\"\",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(\".ui-menu-item\"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(\".ui-state-disabled\")&&(this.active.children(\"[aria-haspopup='true']\").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass(\"ui-menu-icons\",null,!!this.element.find(\".ui-icon\").length),e=i.filter(\":not(.ui-menu)\").hide().attr({role:this.options.role,\"aria-hidden\":\"true\",\"aria-expanded\":\"false\"}).each(function(){var t=V(this),e=t.prev(),i=V(\"<span>\").data(\"ui-menu-submenu-caret\",!0);s._addClass(i,\"ui-menu-icon\",\"ui-icon \"+n),e.attr(\"aria-haspopup\",\"true\").prepend(i),t.attr(\"aria-labelledby\",e.attr(\"id\"))}),this._addClass(e,\"ui-menu\",\"ui-widget ui-widget-content ui-front\"),(t=i.add(this.element).find(this.options.items)).not(\".ui-menu-item\").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,\"ui-menu-divider\",\"ui-widget-content\")}),i=(e=t.not(\".ui-menu-item, .ui-menu-divider\")).children().not(\".ui-menu\").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,\"ui-menu-item\")._addClass(i,\"ui-menu-item-wrapper\"),t.filter(\".ui-state-disabled\").attr(\"aria-disabled\",\"true\"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:\"menuitem\",listbox:\"option\"}[this.options.role]},_setOption:function(t,e){var i;\"icons\"===t&&(i=this.element.find(\".ui-menu-icon\"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr(\"aria-disabled\",String(t)),this._toggleClass(null,\"ui-state-disabled\",!!t)},focus:function(t,e){var i;this.blur(t,t&&\"focus\"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(\".ui-menu-item-wrapper\"),this._addClass(i,null,\"ui-state-active\"),this.options.role&&this.element.attr(\"aria-activedescendant\",i.attr(\"id\")),i=this.active.parent().closest(\".ui-menu-item\").children(\".ui-menu-item-wrapper\"),this._addClass(i,null,\"ui-state-active\"),t&&\"keydown\"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(\".ui-menu\")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger(\"focus\",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(V.css(this.activeMenu[0],\"borderTopWidth\"))||0,s=parseFloat(V.css(this.activeMenu[0],\"paddingTop\"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s<e+t&&this.activeMenu.scrollTop(i+e-s+t))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(\".ui-menu-item-wrapper\"),null,\"ui-state-active\"),this._trigger(\"blur\",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),\"true\"===t.attr(\"aria-hidden\")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(t){var e=V.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(\".ui-menu\").not(t.parents(\".ui-menu\")).hide().attr(\"aria-hidden\",\"true\"),t.show().removeAttr(\"aria-hidden\").attr(\"aria-expanded\",\"true\").position(e)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var t=i?this.element:V(e&&e.target).closest(this.element.find(\".ui-menu\"));t.length||(t=this.element),this._close(t),this.blur(e),this._removeClass(t.find(\".ui-state-active\"),null,\"ui-state-active\"),this.activeMenu=t},i?0:this.delay)},_close:function(t){(t=t||(this.active?this.active.parent():this.element)).find(\".ui-menu\").hide().attr(\"aria-hidden\",\"true\").attr(\"aria-expanded\",\"false\")},_closeOnDocumentClick:function(t){return!V(t.target).closest(\".ui-menu\").length},_isDivider:function(t){return!/[^\\-\\u2014\\u2013\\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(\".ui-menu-item\",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this._menuItems(this.active.children(\".ui-menu\")).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move(\"next\",\"first\",t)},previous:function(t){this._move(\"prev\",\"last\",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(\".ui-menu-item\").length},isLastItem:function(){return this.active&&!this.active.nextAll(\".ui-menu-item\").length},_menuItems:function(t){return(t||this.element).find(this.options.items).filter(\".ui-menu-item\")},_move:function(t,e,i){var s;(s=this.active?\"first\"===t||\"last\"===t?this.active[\"first\"===t?\"prevAll\":\"nextAll\"](\".ui-menu-item\").last():this.active[t+\"All\"](\".ui-menu-item\").first():s)&&s.length&&this.active||(s=this._menuItems(this.activeMenu)[e]()),this.focus(i,s)},nextPage:function(t){var e,i,s;this.active?this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===V.fn.jquery.indexOf(\"3.2.\")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.nextAll(\".ui-menu-item\").each(function(){return(e=V(this)).offset().top-i-s<0}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu)[this.active?\"last\":\"first\"]())):this.next(t)},previousPage:function(t){var e,i,s;this.active?this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===V.fn.jquery.indexOf(\"3.2.\")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.prevAll(\".ui-menu-item\").each(function(){return 0<(e=V(this)).offset().top-i+s}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop(\"scrollHeight\")},select:function(t){this.active=this.active||V(t.target).closest(\".ui-menu-item\");var e={item:this.active};this.active.has(\".ui-menu\").length||this.collapseAll(t,!0),this._trigger(\"select\",t,e)},_filterMenuItems:function(t){var t=t.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,\"\\\\$&\"),e=new RegExp(\"^\"+t,\"i\");return this.activeMenu.find(this.options.items).filter(\".ui-menu-item\").filter(function(){return e.test(String.prototype.trim.call(V(this).children(\".ui-menu-item-wrapper\").text()))})}});V.widget(\"ui.autocomplete\",{version:\"1.13.1\",defaultElement:\"<input>\",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:\"left top\",at:\"left bottom\",collision:\"none\"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e=\"textarea\"===t,t=\"input\"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?\"val\":\"text\"],this.isNewMenu=!0,this._addClass(\"ui-autocomplete-input\"),this.element.attr(\"autocomplete\",\"off\"),this._on(this.element,{keydown:function(t){if(this.element.prop(\"readOnly\"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move(\"previousPage\",t);break;case e.PAGE_DOWN:i=!0,this._move(\"nextPage\",t);break;case e.UP:i=!0,this._keyEvent(\"previous\",t);break;case e.DOWN:i=!0,this._keyEvent(\"next\",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(\":visible\")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(\":visible\")||t.preventDefault());if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move(\"previousPage\",t);break;case e.PAGE_DOWN:this._move(\"nextPage\",t);break;case e.UP:this._keyEvent(\"previous\",t);break;case e.DOWN:this._keyEvent(\"next\",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V(\"<ul>\").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:\"on\"}).menu(\"instance\"),this._addClass(this.menu.element,\"ui-autocomplete\",\"ui-front\"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one(\"mousemove\",function(){V(t.target).trigger(t.originalEvent)});s=e.item.data(\"ui-autocomplete-item\"),!1!==this._trigger(\"focus\",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr(\"aria-label\")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(V(\"<div>\").text(i))},100))},menuselect:function(t,e){var i=e.item.data(\"ui-autocomplete-item\"),s=this.previous;this.element[0]!==V.ui.safeActiveElement(this.document[0])&&(this.element.trigger(\"focus\"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger(\"select\",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=V(\"<div>\",{role:\"status\",\"aria-live\":\"assertive\",\"aria-relevant\":\"additions\"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,\"ui-helper-hidden-accessible\"),this._on(this.window,{beforeunload:function(){this.element.removeAttr(\"autocomplete\")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr(\"autocomplete\"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),\"source\"===t&&this._initSource(),\"appendTo\"===t&&this.menu.element.appendTo(this._appendTo()),\"disabled\"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||V.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(\".ui-front, dialog\"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(V.ui.autocomplete.filter(i,t.term))}):\"string\"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=V.ajax({url:s,data:t,dataType:\"json\",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(\":visible\"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):!1!==this._trigger(\"search\",e)?this._search(t):void 0},_search:function(t){this.pending++,this._addClass(\"ui-autocomplete-loading\"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass(\"ui-autocomplete-loading\")}.bind(this)},__response:function(t){t=t&&this._normalize(t),this._trigger(\"response\",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger(\"open\")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,\"mousedown\"),this.menu.element.is(\":visible\")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger(\"close\",t))},_change:function(t){this.previous!==this._value()&&this._trigger(\"change\",t,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:V.map(t,function(t){return\"string\"==typeof t?{label:t,value:t}:V.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var e=this.menu.element.empty();this._renderMenu(e,t),this.isNewMenu=!0,this.menu.refresh(),e.show(),this._resizeMenu(),e.position(V.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:\"_closeOnClickOutside\"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width(\"\").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(i,t){var s=this;V.each(t,function(t,e){s._renderItemData(i,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data(\"ui-autocomplete-item\",e)},_renderItem:function(t,e){return V(\"<li>\").append(V(\"<div>\").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(\":visible\"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(\":visible\")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop(\"contentEditable\");return\"inherit\"===e?this._isContentEditable(t.parent()):\"true\"===e}}),V.extend(V.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,\"\\\\$&\")},filter:function(t,e){var i=new RegExp(V.ui.autocomplete.escapeRegex(e),\"i\");return V.grep(t,function(t){return i.test(t.label||t.value||t)})}}),V.widget(\"ui.autocomplete\",V.ui.autocomplete,{options:{messages:{noResults:\"No search results.\",results:function(t){return t+(1<t?\" results are\":\" result is\")+\" available, use up and down arrow keys to navigate.\"}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(V(\"<div>\").text(e))},100))}});V.ui.autocomplete;var tt=/ui-corner-([a-z]){2,6}/g;V.widget(\"ui.controlgroup\",{version:\"1.13.1\",defaultElement:\"<div>\",options:{direction:\"horizontal\",disabled:null,onlyVisible:!0,items:{button:\"input[type=button], input[type=submit], input[type=reset], button, a\",controlgroupLabel:\".ui-controlgroup-label\",checkboxradio:\"input[type='checkbox'], input[type='radio']\",selectmenu:\"select\",spinner:\".ui-spinner-input\"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr(\"role\",\"toolbar\"),this.refresh()},_destroy:function(){this._callChildMethod(\"destroy\"),this.childWidgets.removeData(\"ui-controlgroup-data\"),this.element.removeAttr(\"role\"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(\".ui-controlgroup-label-contents\").contents().unwrap()},_initWidgets:function(){var o=this,a=[];V.each(this.options.items,function(s,t){var e,n={};if(t)return\"controlgroupLabel\"===s?((e=o.element.find(t)).each(function(){var t=V(this);t.children(\".ui-controlgroup-label-contents\").length||t.contents().wrapAll(\"<span class='ui-controlgroup-label-contents'></span>\")}),o._addClass(e,null,\"ui-widget ui-widget-content ui-state-default\"),void(a=a.concat(e.get()))):void(V.fn[s]&&(n=o[\"_\"+s+\"Options\"]?o[\"_\"+s+\"Options\"](\"middle\"):{classes:{}},o.element.find(t).each(function(){var t=V(this),e=t[s](\"instance\"),i=V.widget.extend({},n);\"button\"===s&&t.parent(\".ui-spinner\").length||((e=e||t[s]()[s](\"instance\"))&&(i.classes=o._resolveClassesValues(i.classes,e)),t[s](i),i=t[s](\"widget\"),V.data(i[0],\"ui-controlgroup-data\",e||t[s](\"instance\")),a.push(i[0]))})))}),this.childWidgets=V(V.uniqueSort(a)),this._addClass(this.childWidgets,\"ui-controlgroup-item\")},_callChildMethod:function(e){this.childWidgets.each(function(){var t=V(this).data(\"ui-controlgroup-data\");t&&t[e]&&t[e]()})},_updateCornerClass:function(t,e){e=this._buildSimpleOptions(e,\"label\").classes.label;this._removeClass(t,null,\"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all\"),this._addClass(t,null,e)},_buildSimpleOptions:function(t,e){var i=\"vertical\"===this.options.direction,s={classes:{}};return s.classes[e]={middle:\"\",first:\"ui-corner-\"+(i?\"top\":\"left\"),last:\"ui-corner-\"+(i?\"bottom\":\"right\"),only:\"ui-corner-all\"}[t],s},_spinnerOptions:function(t){t=this._buildSimpleOptions(t,\"ui-spinner\");return t.classes[\"ui-spinner-up\"]=\"\",t.classes[\"ui-spinner-down\"]=\"\",t},_buttonOptions:function(t){return this._buildSimpleOptions(t,\"ui-button\")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,\"ui-checkboxradio-label\")},_selectmenuOptions:function(t){var e=\"vertical\"===this.options.direction;return{width:e&&\"auto\",classes:{middle:{\"ui-selectmenu-button-open\":\"\",\"ui-selectmenu-button-closed\":\"\"},first:{\"ui-selectmenu-button-open\":\"ui-corner-\"+(e?\"top\":\"tl\"),\"ui-selectmenu-button-closed\":\"ui-corner-\"+(e?\"top\":\"left\")},last:{\"ui-selectmenu-button-open\":e?\"\":\"ui-corner-tr\",\"ui-selectmenu-button-closed\":\"ui-corner-\"+(e?\"bottom\":\"right\")},only:{\"ui-selectmenu-button-open\":\"ui-corner-top\",\"ui-selectmenu-button-closed\":\"ui-corner-all\"}}[t]}},_resolveClassesValues:function(i,s){var n={};return V.each(i,function(t){var e=s.options.classes[t]||\"\",e=String.prototype.trim.call(e.replace(tt,\"\"));n[t]=(e+\" \"+i[t]).replace(/\\s+/g,\" \")}),n},_setOption:function(t,e){\"direction\"===t&&this._removeClass(\"ui-controlgroup-\"+this.options.direction),this._super(t,e),\"disabled\"!==t?this.refresh():this._callChildMethod(e?\"disable\":\"enable\")},refresh:function(){var n,o=this;this._addClass(\"ui-controlgroup ui-controlgroup-\"+this.options.direction),\"horizontal\"===this.options.direction&&this._addClass(null,\"ui-helper-clearfix\"),this._initWidgets(),n=this.childWidgets,(n=this.options.onlyVisible?n.filter(\":visible\"):n).length&&(V.each([\"first\",\"last\"],function(t,e){var i,s=n[e]().data(\"ui-controlgroup-data\");s&&o[\"_\"+s.widgetName+\"Options\"]?((i=o[\"_\"+s.widgetName+\"Options\"](1===n.length?\"only\":e)).classes=o._resolveClassesValues(i.classes,s),s.element[s.widgetName](i)):o._updateCornerClass(n[e](),e)}),this._callChildMethod(\"refresh\"))}});V.widget(\"ui.checkboxradio\",[V.ui.formResetMixin,{version:\"1.13.1\",options:{disabled:null,label:null,icon:!0,classes:{\"ui-checkboxradio-label\":\"ui-corner-all\",\"ui-checkboxradio-icon\":\"ui-corner-all\"}},_getCreateOptions:function(){var t,e=this,i=this._super()||{};return this._readType(),t=this.element.labels(),this.label=V(t[t.length-1]),this.label.length||V.error(\"No label found for checkboxradio widget\"),this.originalLabel=\"\",this.label.contents().not(this.element[0]).each(function(){e.originalLabel+=3===this.nodeType?V(this).text():this.outerHTML}),this.originalLabel&&(i.label=this.originalLabel),null!=(t=this.element[0].disabled)&&(i.disabled=t),i},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption(\"disabled\",this.options.disabled),this._addClass(\"ui-checkboxradio\",\"ui-helper-hidden-accessible\"),this._addClass(this.label,\"ui-checkboxradio-label\",\"ui-button ui-widget\"),\"radio\"===this.type&&this._addClass(this.label,\"ui-checkboxradio-radio-label\"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&this._addClass(this.label,\"ui-checkboxradio-checked\",\"ui-state-active\"),this._on({change:\"_toggleClasses\",focus:function(){this._addClass(this.label,null,\"ui-state-focus ui-visual-focus\")},blur:function(){this._removeClass(this.label,null,\"ui-state-focus ui-visual-focus\")}})},_readType:function(){var t=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,\"input\"===t&&/radio|checkbox/.test(this.type)||V.error(\"Can't create checkboxradio on element.nodeName=\"+t+\" and element.type=\"+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var t=this.element[0].name,e=\"input[name='\"+V.escapeSelector(t)+\"']\";return t?(this.form.length?V(this.form[0].elements).filter(e):V(e).filter(function(){return 0===V(this)._form().length})).not(this.element):V([])},_toggleClasses:function(){var t=this.element[0].checked;this._toggleClass(this.label,\"ui-checkboxradio-checked\",\"ui-state-active\",t),this.options.icon&&\"checkbox\"===this.type&&this._toggleClass(this.icon,null,\"ui-icon-check ui-state-checked\",t)._toggleClass(this.icon,null,\"ui-icon-blank\",!t),\"radio\"===this.type&&this._getRadioGroup().each(function(){var t=V(this).checkboxradio(\"instance\");t&&t._removeClass(t.label,\"ui-checkboxradio-checked\",\"ui-state-active\")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){if(\"label\"!==t||e){if(this._super(t,e),\"disabled\"===t)return this._toggleClass(this.label,null,\"ui-state-disabled\",e),void(this.element[0].disabled=e);this.refresh()}},_updateIcon:function(t){var e=\"ui-icon ui-icon-background \";this.options.icon?(this.icon||(this.icon=V(\"<span>\"),this.iconSpace=V(\"<span> </span>\"),this._addClass(this.iconSpace,\"ui-checkboxradio-icon-space\")),\"checkbox\"===this.type?(e+=t?\"ui-icon-check ui-state-checked\":\"ui-icon-blank\",this._removeClass(this.icon,null,t?\"ui-icon-blank\":\"ui-icon-check\")):e+=\"ui-icon-blank\",this._addClass(this.icon,\"ui-checkboxradio-icon\",e),t||this._removeClass(this.icon,null,\"ui-icon-check ui-state-checked\"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),(t=this.iconSpace?t.not(this.iconSpace[0]):t).remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,\"ui-checkboxradio-checked\",\"ui-state-active\",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]);var et;V.ui.checkboxradio;V.widget(\"ui.button\",{version:\"1.13.1\",defaultElement:\"<button>\",options:{classes:{\"ui-button\":\"ui-corner-all\"},disabled:null,icon:null,iconPosition:\"beginning\",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is(\"input\"),null!=(t=this.element[0].disabled)&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr(\"title\"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass(\"ui-button\",\"ui-widget\"),this._setOption(\"disabled\",this.options.disabled),this._enhance(),this.element.is(\"a\")&&this._on({keyup:function(t){t.keyCode===V.ui.keyCode.SPACE&&(t.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger(\"click\"))}})},_enhance:function(){this.element.is(\"button\")||this.element.attr(\"role\",\"button\"),this.options.icon&&(this._updateIcon(\"icon\",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr(\"title\"),this.options.showLabel||this.title||this.element.attr(\"title\",this.options.label)},_updateIcon:function(t,e){var i=\"iconPosition\"!==t,s=i?this.options.iconPosition:e,t=\"top\"===s||\"bottom\"===s;this.icon?i&&this._removeClass(this.icon,null,this.options.icon):(this.icon=V(\"<span>\"),this._addClass(this.icon,\"ui-button-icon\",\"ui-icon\"),this.options.showLabel||this._addClass(\"ui-button-icon-only\")),i&&this._addClass(this.icon,null,e),this._attachIcon(s),t?(this._addClass(this.icon,null,\"ui-widget-icon-block\"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=V(\"<span> </span>\"),this._addClass(this.iconSpace,\"ui-button-icon-space\")),this._removeClass(this.icon,null,\"ui-wiget-icon-block\"),this._attachIconSpace(s))},_destroy:function(){this.element.removeAttr(\"role\"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr(\"title\")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?\"before\":\"after\"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?\"append\":\"prepend\"](this.icon)},_setOptions:function(t){var e=(void 0===t.showLabel?this.options:t).showLabel,i=(void 0===t.icon?this.options:t).icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){\"icon\"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),\"iconPosition\"===t&&this._updateIcon(t,e),\"showLabel\"===t&&(this._toggleClass(\"ui-button-icon-only\",null,!e),this._updateTooltip()),\"label\"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),\"disabled\"===t&&(this._toggleClass(null,\"ui-state-disabled\",e),(this.element[0].disabled=e)&&this.element.trigger(\"blur\"))},refresh:function(){var t=this.element.is(\"input, button\")?this.element[0].disabled:this.element.hasClass(\"ui-button-disabled\");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),!1!==V.uiBackCompat&&(V.widget(\"ui.button\",V.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition=\"end\"),this._super()},_setOption:function(t,e){\"text\"!==t?(\"showLabel\"===t&&(this.options.text=e),\"icon\"===t&&(this.options.icons.primary=e),\"icons\"===t&&(e.primary?(this._super(\"icon\",e.primary),this._super(\"iconPosition\",\"beginning\")):e.secondary&&(this._super(\"icon\",e.secondary),this._super(\"iconPosition\",\"end\"))),this._superApply(arguments)):this._super(\"showLabel\",e)}}),V.fn.button=(et=V.fn.button,function(i){var t=\"string\"==typeof i,s=Array.prototype.slice.call(arguments,1),n=this;return t?this.length||\"instance\"!==i?this.each(function(){var t=V(this).attr(\"type\"),e=V.data(this,\"ui-\"+(\"checkbox\"!==t&&\"radio\"!==t?\"button\":\"checkboxradio\"));return\"instance\"===i?(n=e,!1):e?\"function\"!=typeof e[i]||\"_\"===i.charAt(0)?V.error(\"no such method '\"+i+\"' for button widget instance\"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:V.error(\"cannot call methods on button prior to initialization; attempted to call method '\"+i+\"'\")}):n=void 0:(s.length&&(i=V.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=V(this).attr(\"type\"),e=\"checkbox\"!==t&&\"radio\"!==t?\"button\":\"checkboxradio\",t=V.data(this,\"ui-\"+e);t?(t.option(i||{}),t._init&&t._init()):\"button\"!=e?V(this).checkboxradio(V.extend({icon:!1},i)):et.call(V(this),i)})),n}),V.fn.buttonset=function(){return V.ui.controlgroup||V.error(\"Controlgroup widget missing\"),\"option\"===arguments[0]&&\"items\"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],\"items.button\",arguments[2]]):\"option\"===arguments[0]&&\"items\"===arguments[1]?this.controlgroup.apply(this,[arguments[0],\"items.button\"]):(\"object\"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))});var it;V.ui.button;function st(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId=\"ui-datepicker-div\",this._inlineClass=\"ui-datepicker-inline\",this._appendClass=\"ui-datepicker-append\",this._triggerClass=\"ui-datepicker-trigger\",this._dialogClass=\"ui-datepicker-dialog\",this._disableClass=\"ui-datepicker-disabled\",this._unselectableClass=\"ui-datepicker-unselectable\",this._currentClass=\"ui-datepicker-current-day\",this._dayOverClass=\"ui-datepicker-days-cell-over\",this.regional=[],this.regional[\"\"]={closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"mm/dd/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\",selectMonthLabel:\"Select month\",selectYearLabel:\"Select year\"},this._defaults={showOn:\"focus\",showAnim:\"fadeIn\",showOptions:{},defaultDate:null,appendText:\"\",buttonText:\"...\",buttonImage:\"\",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:\"c-10:c+10\",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:\"+10\",minDate:null,maxDate:null,duration:\"fast\",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,onUpdateDatepicker:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:\"\",altFormat:\"\",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},V.extend(this._defaults,this.regional[\"\"]),this.regional.en=V.extend(!0,{},this.regional[\"\"]),this.regional[\"en-US\"]=V.extend(!0,{},this.regional.en),this.dpDiv=nt(V(\"<div id='\"+this._mainDivId+\"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\"))}function nt(t){var e=\"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";return t.on(\"mouseout\",e,function(){V(this).removeClass(\"ui-state-hover\"),-1!==this.className.indexOf(\"ui-datepicker-prev\")&&V(this).removeClass(\"ui-datepicker-prev-hover\"),-1!==this.className.indexOf(\"ui-datepicker-next\")&&V(this).removeClass(\"ui-datepicker-next-hover\")}).on(\"mouseover\",e,ot)}function ot(){V.datepicker._isDisabledDatepicker((it.inline?it.dpDiv.parent():it.input)[0])||(V(this).parents(\".ui-datepicker-calendar\").find(\"a\").removeClass(\"ui-state-hover\"),V(this).addClass(\"ui-state-hover\"),-1!==this.className.indexOf(\"ui-datepicker-prev\")&&V(this).addClass(\"ui-datepicker-prev-hover\"),-1!==this.className.indexOf(\"ui-datepicker-next\")&&V(this).addClass(\"ui-datepicker-next-hover\"))}function at(t,e){for(var i in V.extend(t,e),e)null==e[i]&&(t[i]=e[i]);return t}V.extend(V.ui,{datepicker:{version:\"1.13.1\"}}),V.extend(st.prototype,{markerClassName:\"hasDatepicker\",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return at(this._defaults,t||{}),this},_attachDatepicker:function(t,e){var i,s=t.nodeName.toLowerCase(),n=\"div\"===s||\"span\"===s;t.id||(this.uuid+=1,t.id=\"dp\"+this.uuid),(i=this._newInst(V(t),n)).settings=V.extend({},e||{}),\"input\"===s?this._connectDatepicker(t,i):n&&this._inlineDatepicker(t,i)},_newInst:function(t,e){return{id:t[0].id.replace(/([^A-Za-z0-9_\\-])/g,\"\\\\\\\\$1\"),input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:e,dpDiv:e?nt(V(\"<div class='\"+this._inlineClass+\" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\")):this.dpDiv}},_connectDatepicker:function(t,e){var i=V(t);e.append=V([]),e.trigger=V([]),i.hasClass(this.markerClassName)||(this._attachments(i,e),i.addClass(this.markerClassName).on(\"keydown\",this._doKeyDown).on(\"keypress\",this._doKeyPress).on(\"keyup\",this._doKeyUp),this._autoSize(e),V.data(t,\"datepicker\",e),e.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,e){var i,s=this._get(e,\"appendText\"),n=this._get(e,\"isRTL\");e.append&&e.append.remove(),s&&(e.append=V(\"<span>\").addClass(this._appendClass).text(s),t[n?\"before\":\"after\"](e.append)),t.off(\"focus\",this._showDatepicker),e.trigger&&e.trigger.remove(),\"focus\"!==(i=this._get(e,\"showOn\"))&&\"both\"!==i||t.on(\"focus\",this._showDatepicker),\"button\"!==i&&\"both\"!==i||(s=this._get(e,\"buttonText\"),i=this._get(e,\"buttonImage\"),this._get(e,\"buttonImageOnly\")?e.trigger=V(\"<img>\").addClass(this._triggerClass).attr({src:i,alt:s,title:s}):(e.trigger=V(\"<button type='button'>\").addClass(this._triggerClass),i?e.trigger.html(V(\"<img>\").attr({src:i,alt:s,title:s})):e.trigger.text(s)),t[n?\"before\":\"after\"](e.trigger),e.trigger.on(\"click\",function(){return V.datepicker._datepickerShowing&&V.datepicker._lastInput===t[0]?V.datepicker._hideDatepicker():(V.datepicker._datepickerShowing&&V.datepicker._lastInput!==t[0]&&V.datepicker._hideDatepicker(),V.datepicker._showDatepicker(t[0])),!1}))},_autoSize:function(t){var e,i,s,n,o,a;this._get(t,\"autoSize\")&&!t.inline&&(o=new Date(2009,11,20),(a=this._get(t,\"dateFormat\")).match(/[DM]/)&&(e=function(t){for(n=s=i=0;n<t.length;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?\"monthNames\":\"monthNamesShort\"))),o.setDate(e(this._get(t,a.match(/DD/)?\"dayNames\":\"dayNamesShort\"))+20-o.getDay())),t.input.attr(\"size\",this._formatDate(t,o).length))},_inlineDatepicker:function(t,e){var i=V(t);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(e.dpDiv),V.data(t,\"datepicker\",e),this._setDate(e,this._getDefaultDate(e),!0),this._updateDatepicker(e),this._updateAlternate(e),e.settings.disabled&&this._disableDatepicker(t),e.dpDiv.css(\"display\",\"block\"))},_dialogDatepicker:function(t,e,i,s,n){var o,a=this._dialogInst;return a||(this.uuid+=1,o=\"dp\"+this.uuid,this._dialogInput=V(\"<input type='text' id='\"+o+\"' style='position: absolute; top: -100px; width: 0px;'/>\"),this._dialogInput.on(\"keydown\",this._doKeyDown),V(\"body\").append(this._dialogInput),(a=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},V.data(this._dialogInput[0],\"datepicker\",a)),at(a.settings,s||{}),e=e&&e.constructor===Date?this._formatDate(a,e):e,this._dialogInput.val(e),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(o=document.documentElement.clientWidth,s=document.documentElement.clientHeight,e=document.documentElement.scrollLeft||document.body.scrollLeft,n=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[o/2-100+e,s/2-150+n]),this._dialogInput.css(\"left\",this._pos[0]+20+\"px\").css(\"top\",this._pos[1]+\"px\"),a.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),V.blockUI&&V.blockUI(this.dpDiv),V.data(this._dialogInput[0],\"datepicker\",a),this},_destroyDatepicker:function(t){var e,i=V(t),s=V.data(t,\"datepicker\");i.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),V.removeData(t,\"datepicker\"),\"input\"===e?(s.append.remove(),s.trigger.remove(),i.removeClass(this.markerClassName).off(\"focus\",this._showDatepicker).off(\"keydown\",this._doKeyDown).off(\"keypress\",this._doKeyPress).off(\"keyup\",this._doKeyUp)):\"div\"!==e&&\"span\"!==e||i.removeClass(this.markerClassName).empty(),it===s&&(it=null,this._curInst=null))},_enableDatepicker:function(e){var t,i=V(e),s=V.data(e,\"datepicker\");i.hasClass(this.markerClassName)&&(\"input\"===(t=e.nodeName.toLowerCase())?(e.disabled=!1,s.trigger.filter(\"button\").each(function(){this.disabled=!1}).end().filter(\"img\").css({opacity:\"1.0\",cursor:\"\"})):\"div\"!==t&&\"span\"!==t||((i=i.children(\".\"+this._inlineClass)).children().removeClass(\"ui-state-disabled\"),i.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").prop(\"disabled\",!1)),this._disabledInputs=V.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var t,i=V(e),s=V.data(e,\"datepicker\");i.hasClass(this.markerClassName)&&(\"input\"===(t=e.nodeName.toLowerCase())?(e.disabled=!0,s.trigger.filter(\"button\").each(function(){this.disabled=!0}).end().filter(\"img\").css({opacity:\"0.5\",cursor:\"default\"})):\"div\"!==t&&\"span\"!==t||((i=i.children(\".\"+this._inlineClass)).children().addClass(\"ui-state-disabled\"),i.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").prop(\"disabled\",!0)),this._disabledInputs=V.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;e<this._disabledInputs.length;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(t){try{return V.data(t,\"datepicker\")}catch(t){throw\"Missing instance data for this datepicker\"}},_optionDatepicker:function(t,e,i){var s,n,o=this._getInst(t);if(2===arguments.length&&\"string\"==typeof e)return\"defaults\"===e?V.extend({},V.datepicker._defaults):o?\"all\"===e?V.extend({},o.settings):this._get(o,e):null;s=e||{},\"string\"==typeof e&&((s={})[e]=i),o&&(this._curInst===o&&this._hideDatepicker(),n=this._getDateDatepicker(t,!0),e=this._getMinMaxDate(o,\"min\"),i=this._getMinMaxDate(o,\"max\"),at(o.settings,s),null!==e&&void 0!==s.dateFormat&&void 0===s.minDate&&(o.settings.minDate=this._formatDate(o,e)),null!==i&&void 0!==s.dateFormat&&void 0===s.maxDate&&(o.settings.maxDate=this._formatDate(o,i)),\"disabled\"in s&&(s.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(V(t),o),this._autoSize(o),this._setDate(o,n),this._updateAlternate(o),this._updateDatepicker(o))},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){t=this._getInst(t);t&&this._updateDatepicker(t)},_setDateDatepicker:function(t,e){t=this._getInst(t);t&&(this._setDate(t,e),this._updateDatepicker(t),this._updateAlternate(t))},_getDateDatepicker:function(t,e){t=this._getInst(t);return t&&!t.inline&&this._setDateFromField(t,e),t?this._getDate(t):null},_doKeyDown:function(t){var e,i,s=V.datepicker._getInst(t.target),n=!0,o=s.dpDiv.is(\".ui-datepicker-rtl\");if(s._keyEvent=!0,V.datepicker._datepickerShowing)switch(t.keyCode){case 9:V.datepicker._hideDatepicker(),n=!1;break;case 13:return(i=V(\"td.\"+V.datepicker._dayOverClass+\":not(.\"+V.datepicker._currentClass+\")\",s.dpDiv))[0]&&V.datepicker._selectDay(t.target,s.selectedMonth,s.selectedYear,i[0]),(e=V.datepicker._get(s,\"onSelect\"))?(i=V.datepicker._formatDate(s),e.apply(s.input?s.input[0]:null,[i,s])):V.datepicker._hideDatepicker(),!1;case 27:V.datepicker._hideDatepicker();break;case 33:V.datepicker._adjustDate(t.target,t.ctrlKey?-V.datepicker._get(s,\"stepBigMonths\"):-V.datepicker._get(s,\"stepMonths\"),\"M\");break;case 34:V.datepicker._adjustDate(t.target,t.ctrlKey?+V.datepicker._get(s,\"stepBigMonths\"):+V.datepicker._get(s,\"stepMonths\"),\"M\");break;case 35:(t.ctrlKey||t.metaKey)&&V.datepicker._clearDate(t.target),n=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&V.datepicker._gotoToday(t.target),n=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,o?1:-1,\"D\"),n=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&V.datepicker._adjustDate(t.target,t.ctrlKey?-V.datepicker._get(s,\"stepBigMonths\"):-V.datepicker._get(s,\"stepMonths\"),\"M\");break;case 38:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,-7,\"D\"),n=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,o?-1:1,\"D\"),n=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&V.datepicker._adjustDate(t.target,t.ctrlKey?+V.datepicker._get(s,\"stepBigMonths\"):+V.datepicker._get(s,\"stepMonths\"),\"M\");break;case 40:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,7,\"D\"),n=t.ctrlKey||t.metaKey;break;default:n=!1}else 36===t.keyCode&&t.ctrlKey?V.datepicker._showDatepicker(this):n=!1;n&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var e,i=V.datepicker._getInst(t.target);if(V.datepicker._get(i,\"constrainInput\"))return e=V.datepicker._possibleChars(V.datepicker._get(i,\"dateFormat\")),i=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||i<\" \"||!e||-1<e.indexOf(i)},_doKeyUp:function(t){t=V.datepicker._getInst(t.target);if(t.input.val()!==t.lastVal)try{V.datepicker.parseDate(V.datepicker._get(t,\"dateFormat\"),t.input?t.input.val():null,V.datepicker._getFormatConfig(t))&&(V.datepicker._setDateFromField(t),V.datepicker._updateAlternate(t),V.datepicker._updateDatepicker(t))}catch(t){}return!0},_showDatepicker:function(t){var e,i,s,n;\"input\"!==(t=t.target||t).nodeName.toLowerCase()&&(t=V(\"input\",t.parentNode)[0]),V.datepicker._isDisabledDatepicker(t)||V.datepicker._lastInput===t||(n=V.datepicker._getInst(t),V.datepicker._curInst&&V.datepicker._curInst!==n&&(V.datepicker._curInst.dpDiv.stop(!0,!0),n&&V.datepicker._datepickerShowing&&V.datepicker._hideDatepicker(V.datepicker._curInst.input[0])),!1!==(i=(s=V.datepicker._get(n,\"beforeShow\"))?s.apply(t,[t,n]):{})&&(at(n.settings,i),n.lastVal=null,V.datepicker._lastInput=t,V.datepicker._setDateFromField(n),V.datepicker._inDialog&&(t.value=\"\"),V.datepicker._pos||(V.datepicker._pos=V.datepicker._findPos(t),V.datepicker._pos[1]+=t.offsetHeight),e=!1,V(t).parents().each(function(){return!(e|=\"fixed\"===V(this).css(\"position\"))}),s={left:V.datepicker._pos[0],top:V.datepicker._pos[1]},V.datepicker._pos=null,n.dpDiv.empty(),n.dpDiv.css({position:\"absolute\",display:\"block\",top:\"-1000px\"}),V.datepicker._updateDatepicker(n),s=V.datepicker._checkOffset(n,s,e),n.dpDiv.css({position:V.datepicker._inDialog&&V.blockUI?\"static\":e?\"fixed\":\"absolute\",display:\"none\",left:s.left+\"px\",top:s.top+\"px\"}),n.inline||(i=V.datepicker._get(n,\"showAnim\"),s=V.datepicker._get(n,\"duration\"),n.dpDiv.css(\"z-index\",function(t){for(var e,i;t.length&&t[0]!==document;){if((\"absolute\"===(e=t.css(\"position\"))||\"relative\"===e||\"fixed\"===e)&&(i=parseInt(t.css(\"zIndex\"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}(V(t))+1),V.datepicker._datepickerShowing=!0,V.effects&&V.effects.effect[i]?n.dpDiv.show(i,V.datepicker._get(n,\"showOptions\"),s):n.dpDiv[i||\"show\"](i?s:null),V.datepicker._shouldFocusInput(n)&&n.input.trigger(\"focus\"),V.datepicker._curInst=n)))},_updateDatepicker:function(t){this.maxRows=4,(it=t).dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var e,i=this._getNumberOfMonths(t),s=i[1],n=t.dpDiv.find(\".\"+this._dayOverClass+\" a\"),o=V.datepicker._get(t,\"onUpdateDatepicker\");0<n.length&&ot.apply(n.get(0)),t.dpDiv.removeClass(\"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\").width(\"\"),1<s&&t.dpDiv.addClass(\"ui-datepicker-multi-\"+s).css(\"width\",17*s+\"em\"),t.dpDiv[(1!==i[0]||1!==i[1]?\"add\":\"remove\")+\"Class\"](\"ui-datepicker-multi\"),t.dpDiv[(this._get(t,\"isRTL\")?\"add\":\"remove\")+\"Class\"](\"ui-datepicker-rtl\"),t===V.datepicker._curInst&&V.datepicker._datepickerShowing&&V.datepicker._shouldFocusInput(t)&&t.input.trigger(\"focus\"),t.yearshtml&&(e=t.yearshtml,setTimeout(function(){e===t.yearshtml&&t.yearshtml&&t.dpDiv.find(\"select.ui-datepicker-year\").first().replaceWith(t.yearshtml),e=t.yearshtml=null},0)),o&&o.apply(t.input?t.input[0]:null,[t])},_shouldFocusInput:function(t){return t.input&&t.input.is(\":visible\")&&!t.input.is(\":disabled\")&&!t.input.is(\":focus\")},_checkOffset:function(t,e,i){var s=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,a=t.input?t.input.outerHeight():0,r=document.documentElement.clientWidth+(i?0:V(document).scrollLeft()),l=document.documentElement.clientHeight+(i?0:V(document).scrollTop());return e.left-=this._get(t,\"isRTL\")?s-o:0,e.left-=i&&e.left===t.input.offset().left?V(document).scrollLeft():0,e.top-=i&&e.top===t.input.offset().top+a?V(document).scrollTop():0,e.left-=Math.min(e.left,e.left+s>r&&s<r?Math.abs(e.left+s-r):0),e.top-=Math.min(e.top,e.top+n>l&&n<l?Math.abs(n+a):0),e},_findPos:function(t){for(var e=this._getInst(t),i=this._get(e,\"isRTL\");t&&(\"hidden\"===t.type||1!==t.nodeType||V.expr.pseudos.hidden(t));)t=t[i?\"previousSibling\":\"nextSibling\"];return[(e=V(t).offset()).left,e.top]},_hideDatepicker:function(t){var e,i,s=this._curInst;!s||t&&s!==V.data(t,\"datepicker\")||this._datepickerShowing&&(e=this._get(s,\"showAnim\"),i=this._get(s,\"duration\"),t=function(){V.datepicker._tidyDialog(s)},V.effects&&(V.effects.effect[e]||V.effects[e])?s.dpDiv.hide(e,V.datepicker._get(s,\"showOptions\"),i,t):s.dpDiv[\"slideDown\"===e?\"slideUp\":\"fadeIn\"===e?\"fadeOut\":\"hide\"](e?i:null,t),e||t(),this._datepickerShowing=!1,(t=this._get(s,\"onClose\"))&&t.apply(s.input?s.input[0]:null,[s.input?s.input.val():\"\",s]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:\"absolute\",left:\"0\",top:\"-100px\"}),V.blockUI&&(V.unblockUI(),V(\"body\").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(\".ui-datepicker-calendar\")},_checkExternalClick:function(t){var e;V.datepicker._curInst&&(e=V(t.target),t=V.datepicker._getInst(e[0]),(e[0].id===V.datepicker._mainDivId||0!==e.parents(\"#\"+V.datepicker._mainDivId).length||e.hasClass(V.datepicker.markerClassName)||e.closest(\".\"+V.datepicker._triggerClass).length||!V.datepicker._datepickerShowing||V.datepicker._inDialog&&V.blockUI)&&(!e.hasClass(V.datepicker.markerClassName)||V.datepicker._curInst===t)||V.datepicker._hideDatepicker())},_adjustDate:function(t,e,i){var s=V(t),t=this._getInst(s[0]);this._isDisabledDatepicker(s[0])||(this._adjustInstDate(t,e,i),this._updateDatepicker(t))},_gotoToday:function(t){var e=V(t),i=this._getInst(e[0]);this._get(i,\"gotoCurrent\")&&i.currentDay?(i.selectedDay=i.currentDay,i.drawMonth=i.selectedMonth=i.currentMonth,i.drawYear=i.selectedYear=i.currentYear):(t=new Date,i.selectedDay=t.getDate(),i.drawMonth=i.selectedMonth=t.getMonth(),i.drawYear=i.selectedYear=t.getFullYear()),this._notifyChange(i),this._adjustDate(e)},_selectMonthYear:function(t,e,i){var s=V(t),t=this._getInst(s[0]);t[\"selected\"+(\"M\"===i?\"Month\":\"Year\")]=t[\"draw\"+(\"M\"===i?\"Month\":\"Year\")]=parseInt(e.options[e.selectedIndex].value,10),this._notifyChange(t),this._adjustDate(s)},_selectDay:function(t,e,i,s){var n=V(t);V(s).hasClass(this._unselectableClass)||this._isDisabledDatepicker(n[0])||((n=this._getInst(n[0])).selectedDay=n.currentDay=parseInt(V(\"a\",s).attr(\"data-date\")),n.selectedMonth=n.currentMonth=e,n.selectedYear=n.currentYear=i,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){t=V(t);this._selectDate(t,\"\")},_selectDate:function(t,e){var i=V(t),t=this._getInst(i[0]);e=null!=e?e:this._formatDate(t),t.input&&t.input.val(e),this._updateAlternate(t),(i=this._get(t,\"onSelect\"))?i.apply(t.input?t.input[0]:null,[e,t]):t.input&&t.input.trigger(\"change\"),t.inline?this._updateDatepicker(t):(this._hideDatepicker(),this._lastInput=t.input[0],\"object\"!=typeof t.input[0]&&t.input.trigger(\"focus\"),this._lastInput=null)},_updateAlternate:function(t){var e,i,s=this._get(t,\"altField\");s&&(e=this._get(t,\"altFormat\")||this._get(t,\"dateFormat\"),i=this._getDate(t),t=this.formatDate(e,i,this._getFormatConfig(t)),V(document).find(s).val(t))},noWeekends:function(t){t=t.getDay();return[0<t&&t<6,\"\"]},iso8601Week:function(t){var e=new Date(t.getTime());return e.setDate(e.getDate()+4-(e.getDay()||7)),t=e.getTime(),e.setMonth(0),e.setDate(1),Math.floor(Math.round((t-e)/864e5)/7)+1},parseDate:function(e,n,t){if(null==e||null==n)throw\"Invalid arguments\";if(\"\"===(n=\"object\"==typeof n?n.toString():n+\"\"))return null;for(var i,s,o,a=0,r=(t?t.shortYearCutoff:null)||this._defaults.shortYearCutoff,r=\"string\"!=typeof r?r:(new Date).getFullYear()%100+parseInt(r,10),l=(t?t.dayNamesShort:null)||this._defaults.dayNamesShort,h=(t?t.dayNames:null)||this._defaults.dayNames,c=(t?t.monthNamesShort:null)||this._defaults.monthNamesShort,u=(t?t.monthNames:null)||this._defaults.monthNames,d=-1,p=-1,f=-1,g=-1,m=!1,_=function(t){t=w+1<e.length&&e.charAt(w+1)===t;return t&&w++,t},v=function(t){var e=_(t),e=\"@\"===t?14:\"!\"===t?20:\"y\"===t&&e?4:\"o\"===t?3:2,e=new RegExp(\"^\\\\d{\"+(\"y\"===t?e:1)+\",\"+e+\"}\"),e=n.substring(a).match(e);if(!e)throw\"Missing number at position \"+a;return a+=e[0].length,parseInt(e[0],10)},b=function(t,e,i){var s=-1,e=V.map(_(t)?i:e,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(V.each(e,function(t,e){var i=e[1];if(n.substr(a,i.length).toLowerCase()===i.toLowerCase())return s=e[0],a+=i.length,!1}),-1!==s)return s+1;throw\"Unknown name at position \"+a},y=function(){if(n.charAt(a)!==e.charAt(w))throw\"Unexpected literal at position \"+a;a++},w=0;w<e.length;w++)if(m)\"'\"!==e.charAt(w)||_(\"'\")?y():m=!1;else switch(e.charAt(w)){case\"d\":f=v(\"d\");break;case\"D\":b(\"D\",l,h);break;case\"o\":g=v(\"o\");break;case\"m\":p=v(\"m\");break;case\"M\":p=b(\"M\",c,u);break;case\"y\":d=v(\"y\");break;case\"@\":d=(o=new Date(v(\"@\"))).getFullYear(),p=o.getMonth()+1,f=o.getDate();break;case\"!\":d=(o=new Date((v(\"!\")-this._ticksTo1970)/1e4)).getFullYear(),p=o.getMonth()+1,f=o.getDate();break;case\"'\":_(\"'\")?y():m=!0;break;default:y()}if(a<n.length&&(s=n.substr(a),!/^\\s+/.test(s)))throw\"Extra/unparsed characters found in date: \"+s;if(-1===d?d=(new Date).getFullYear():d<100&&(d+=(new Date).getFullYear()-(new Date).getFullYear()%100+(d<=r?0:-100)),-1<g)for(p=1,f=g;;){if(f<=(i=this._getDaysInMonth(d,p-1)))break;p++,f-=i}if((o=this._daylightSavingAdjust(new Date(d,p-1,f))).getFullYear()!==d||o.getMonth()+1!==p||o.getDate()!==f)throw\"Invalid date\";return o},ATOM:\"yy-mm-dd\",COOKIE:\"D, dd M yy\",ISO_8601:\"yy-mm-dd\",RFC_822:\"D, d M y\",RFC_850:\"DD, dd-M-y\",RFC_1036:\"D, d M y\",RFC_1123:\"D, d M yy\",RFC_2822:\"D, d M yy\",RSS:\"D, d M y\",TICKS:\"!\",TIMESTAMP:\"@\",W3C:\"yy-mm-dd\",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(e,t,i){if(!t)return\"\";function s(t,e,i){var s=\"\"+e;if(c(t))for(;s.length<i;)s=\"0\"+s;return s}function n(t,e,i,s){return(c(t)?s:i)[e]}var o,a=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,r=(i?i.dayNames:null)||this._defaults.dayNames,l=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,h=(i?i.monthNames:null)||this._defaults.monthNames,c=function(t){t=o+1<e.length&&e.charAt(o+1)===t;return t&&o++,t},u=\"\",d=!1;if(t)for(o=0;o<e.length;o++)if(d)\"'\"!==e.charAt(o)||c(\"'\")?u+=e.charAt(o):d=!1;else switch(e.charAt(o)){case\"d\":u+=s(\"d\",t.getDate(),2);break;case\"D\":u+=n(\"D\",t.getDay(),a,r);break;case\"o\":u+=s(\"o\",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case\"m\":u+=s(\"m\",t.getMonth()+1,2);break;case\"M\":u+=n(\"M\",t.getMonth(),l,h);break;case\"y\":u+=c(\"y\")?t.getFullYear():(t.getFullYear()%100<10?\"0\":\"\")+t.getFullYear()%100;break;case\"@\":u+=t.getTime();break;case\"!\":u+=1e4*t.getTime()+this._ticksTo1970;break;case\"'\":c(\"'\")?u+=\"'\":d=!0;break;default:u+=e.charAt(o)}return u},_possibleChars:function(e){for(var t=\"\",i=!1,s=function(t){t=n+1<e.length&&e.charAt(n+1)===t;return t&&n++,t},n=0;n<e.length;n++)if(i)\"'\"!==e.charAt(n)||s(\"'\")?t+=e.charAt(n):i=!1;else switch(e.charAt(n)){case\"d\":case\"m\":case\"y\":case\"@\":t+=\"0123456789\";break;case\"D\":case\"M\":return null;case\"'\":s(\"'\")?t+=\"'\":i=!0;break;default:t+=e.charAt(n)}return t},_get:function(t,e){return(void 0!==t.settings[e]?t.settings:this._defaults)[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,\"dateFormat\"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(t){s=e?\"\":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,\"defaultDate\"),new Date))},_determineDate:function(r,t,e){var i,s,t=null==t||\"\"===t?e:\"string\"==typeof t?function(t){try{return V.datepicker.parseDate(V.datepicker._get(r,\"dateFormat\"),t,V.datepicker._getFormatConfig(r))}catch(t){}for(var e=(t.toLowerCase().match(/^c/)?V.datepicker._getDate(r):null)||new Date,i=e.getFullYear(),s=e.getMonth(),n=e.getDate(),o=/([+\\-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g,a=o.exec(t);a;){switch(a[2]||\"d\"){case\"d\":case\"D\":n+=parseInt(a[1],10);break;case\"w\":case\"W\":n+=7*parseInt(a[1],10);break;case\"m\":case\"M\":s+=parseInt(a[1],10),n=Math.min(n,V.datepicker._getDaysInMonth(i,s));break;case\"y\":case\"Y\":i+=parseInt(a[1],10),n=Math.min(n,V.datepicker._getDaysInMonth(i,s))}a=o.exec(t)}return new Date(i,s,n)}(t):\"number\"==typeof t?isNaN(t)?e:(i=t,(s=new Date).setDate(s.getDate()+i),s):new Date(t.getTime());return(t=t&&\"Invalid Date\"===t.toString()?e:t)&&(t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0)),this._daylightSavingAdjust(t)},_daylightSavingAdjust:function(t){return t?(t.setHours(12<t.getHours()?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,e=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=e.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=e.getMonth(),t.drawYear=t.selectedYear=t.currentYear=e.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?\"\":this._formatDate(t))},_getDate:function(t){return!t.currentYear||t.input&&\"\"===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))},_attachHandlers:function(t){var e=this._get(t,\"stepMonths\"),i=\"#\"+t.id.replace(/\\\\\\\\/g,\"\\\\\");t.dpDiv.find(\"[data-handler]\").map(function(){var t={prev:function(){V.datepicker._adjustDate(i,-e,\"M\")},next:function(){V.datepicker._adjustDate(i,+e,\"M\")},hide:function(){V.datepicker._hideDatepicker()},today:function(){V.datepicker._gotoToday(i)},selectDay:function(){return V.datepicker._selectDay(i,+this.getAttribute(\"data-month\"),+this.getAttribute(\"data-year\"),this),!1},selectMonth:function(){return V.datepicker._selectMonthYear(i,this,\"M\"),!1},selectYear:function(){return V.datepicker._selectMonthYear(i,this,\"Y\"),!1}};V(this).on(this.getAttribute(\"data-event\"),t[this.getAttribute(\"data-handler\")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,l,h,c,u,d,p,f,g,m,_,v,b,y,w,x,k,C,D,I,T,P,M,S,H,z,A=new Date,O=this._daylightSavingAdjust(new Date(A.getFullYear(),A.getMonth(),A.getDate())),N=this._get(t,\"isRTL\"),E=this._get(t,\"showButtonPanel\"),W=this._get(t,\"hideIfNoPrevNext\"),F=this._get(t,\"navigationAsDateFormat\"),L=this._getNumberOfMonths(t),R=this._get(t,\"showCurrentAtPos\"),A=this._get(t,\"stepMonths\"),Y=1!==L[0]||1!==L[1],B=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),j=this._getMinMaxDate(t,\"min\"),q=this._getMinMaxDate(t,\"max\"),K=t.drawMonth-R,U=t.drawYear;if(K<0&&(K+=12,U--),q)for(e=this._daylightSavingAdjust(new Date(q.getFullYear(),q.getMonth()-L[0]*L[1]+1,q.getDate())),e=j&&e<j?j:e;this._daylightSavingAdjust(new Date(U,K,1))>e;)--K<0&&(K=11,U--);for(t.drawMonth=K,t.drawYear=U,R=this._get(t,\"prevText\"),R=F?this.formatDate(R,this._daylightSavingAdjust(new Date(U,K-A,1)),this._getFormatConfig(t)):R,i=this._canAdjustMonth(t,-1,U,K)?V(\"<a>\").attr({class:\"ui-datepicker-prev ui-corner-all\",\"data-handler\":\"prev\",\"data-event\":\"click\",title:R}).append(V(\"<span>\").addClass(\"ui-icon ui-icon-circle-triangle-\"+(N?\"e\":\"w\")).text(R))[0].outerHTML:W?\"\":V(\"<a>\").attr({class:\"ui-datepicker-prev ui-corner-all ui-state-disabled\",title:R}).append(V(\"<span>\").addClass(\"ui-icon ui-icon-circle-triangle-\"+(N?\"e\":\"w\")).text(R))[0].outerHTML,R=this._get(t,\"nextText\"),R=F?this.formatDate(R,this._daylightSavingAdjust(new Date(U,K+A,1)),this._getFormatConfig(t)):R,s=this._canAdjustMonth(t,1,U,K)?V(\"<a>\").attr({class:\"ui-datepicker-next ui-corner-all\",\"data-handler\":\"next\",\"data-event\":\"click\",title:R}).append(V(\"<span>\").addClass(\"ui-icon ui-icon-circle-triangle-\"+(N?\"w\":\"e\")).text(R))[0].outerHTML:W?\"\":V(\"<a>\").attr({class:\"ui-datepicker-next ui-corner-all ui-state-disabled\",title:R}).append(V(\"<span>\").attr(\"class\",\"ui-icon ui-icon-circle-triangle-\"+(N?\"w\":\"e\")).text(R))[0].outerHTML,A=this._get(t,\"currentText\"),W=this._get(t,\"gotoCurrent\")&&t.currentDay?B:O,A=F?this.formatDate(A,W,this._getFormatConfig(t)):A,R=\"\",t.inline||(R=V(\"<button>\").attr({type:\"button\",class:\"ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all\",\"data-handler\":\"hide\",\"data-event\":\"click\"}).text(this._get(t,\"closeText\"))[0].outerHTML),F=\"\",E&&(F=V(\"<div class='ui-datepicker-buttonpane ui-widget-content'>\").append(N?R:\"\").append(this._isInRange(t,W)?V(\"<button>\").attr({type:\"button\",class:\"ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all\",\"data-handler\":\"today\",\"data-event\":\"click\"}).text(A):\"\").append(N?\"\":R)[0].outerHTML),n=parseInt(this._get(t,\"firstDay\"),10),n=isNaN(n)?0:n,o=this._get(t,\"showWeek\"),a=this._get(t,\"dayNames\"),r=this._get(t,\"dayNamesMin\"),l=this._get(t,\"monthNames\"),h=this._get(t,\"monthNamesShort\"),c=this._get(t,\"beforeShowDay\"),u=this._get(t,\"showOtherMonths\"),d=this._get(t,\"selectOtherMonths\"),p=this._getDefaultDate(t),f=\"\",m=0;m<L[0];m++){for(_=\"\",this.maxRows=4,v=0;v<L[1];v++){if(b=this._daylightSavingAdjust(new Date(U,K,t.selectedDay)),y=\" ui-corner-all\",w=\"\",Y){if(w+=\"<div class='ui-datepicker-group\",1<L[1])switch(v){case 0:w+=\" ui-datepicker-group-first\",y=\" ui-corner-\"+(N?\"right\":\"left\");break;case L[1]-1:w+=\" ui-datepicker-group-last\",y=\" ui-corner-\"+(N?\"left\":\"right\");break;default:w+=\" ui-datepicker-group-middle\",y=\"\"}w+=\"'>\"}for(w+=\"<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix\"+y+\"'>\"+(/all|left/.test(y)&&0===m?N?s:i:\"\")+(/all|right/.test(y)&&0===m?N?i:s:\"\")+this._generateMonthYearHeader(t,K,U,j,q,0<m||0<v,l,h)+\"</div><table class='ui-datepicker-calendar'><thead><tr>\",x=o?\"<th class='ui-datepicker-week-col'>\"+this._get(t,\"weekHeader\")+\"</th>\":\"\",g=0;g<7;g++)x+=\"<th scope='col'\"+(5<=(g+n+6)%7?\" class='ui-datepicker-week-end'\":\"\")+\"><span title='\"+a[k=(g+n)%7]+\"'>\"+r[k]+\"</span></th>\";for(w+=x+\"</tr></thead><tbody>\",D=this._getDaysInMonth(U,K),U===t.selectedYear&&K===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,D)),C=(this._getFirstDayOfMonth(U,K)-n+7)%7,D=Math.ceil((C+D)/7),I=Y&&this.maxRows>D?this.maxRows:D,this.maxRows=I,T=this._daylightSavingAdjust(new Date(U,K,1-C)),P=0;P<I;P++){for(w+=\"<tr>\",M=o?\"<td class='ui-datepicker-week-col'>\"+this._get(t,\"calculateWeek\")(T)+\"</td>\":\"\",g=0;g<7;g++)S=c?c.apply(t.input?t.input[0]:null,[T]):[!0,\"\"],z=(H=T.getMonth()!==K)&&!d||!S[0]||j&&T<j||q&&q<T,M+=\"<td class='\"+(5<=(g+n+6)%7?\" ui-datepicker-week-end\":\"\")+(H?\" ui-datepicker-other-month\":\"\")+(T.getTime()===b.getTime()&&K===t.selectedMonth&&t._keyEvent||p.getTime()===T.getTime()&&p.getTime()===b.getTime()?\" \"+this._dayOverClass:\"\")+(z?\" \"+this._unselectableClass+\" ui-state-disabled\":\"\")+(H&&!u?\"\":\" \"+S[1]+(T.getTime()===B.getTime()?\" \"+this._currentClass:\"\")+(T.getTime()===O.getTime()?\" ui-datepicker-today\":\"\"))+\"'\"+(H&&!u||!S[2]?\"\":\" title='\"+S[2].replace(/'/g,\"'\")+\"'\")+(z?\"\":\" data-handler='selectDay' data-event='click' data-month='\"+T.getMonth()+\"' data-year='\"+T.getFullYear()+\"'\")+\">\"+(H&&!u?\" \":z?\"<span class='ui-state-default'>\"+T.getDate()+\"</span>\":\"<a class='ui-state-default\"+(T.getTime()===O.getTime()?\" ui-state-highlight\":\"\")+(T.getTime()===B.getTime()?\" ui-state-active\":\"\")+(H?\" ui-priority-secondary\":\"\")+\"' href='#' aria-current='\"+(T.getTime()===B.getTime()?\"true\":\"false\")+\"' data-date='\"+T.getDate()+\"'>\"+T.getDate()+\"</a>\")+\"</td>\",T.setDate(T.getDate()+1),T=this._daylightSavingAdjust(T);w+=M+\"</tr>\"}11<++K&&(K=0,U++),_+=w+=\"</tbody></table>\"+(Y?\"</div>\"+(0<L[0]&&v===L[1]-1?\"<div class='ui-datepicker-row-break'></div>\":\"\"):\"\")}f+=_}return f+=F,t._keyEvent=!1,f},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l,h,c,u,d,p,f=this._get(t,\"changeMonth\"),g=this._get(t,\"changeYear\"),m=this._get(t,\"showMonthAfterYear\"),_=this._get(t,\"selectMonthLabel\"),v=this._get(t,\"selectYearLabel\"),b=\"<div class='ui-datepicker-title'>\",y=\"\";if(o||!f)y+=\"<span class='ui-datepicker-month'>\"+a[e]+\"</span>\";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+=\"<select class='ui-datepicker-month' aria-label='\"+_+\"' data-handler='selectMonth' data-event='change'>\",c=0;c<12;c++)(!l||c>=s.getMonth())&&(!h||c<=n.getMonth())&&(y+=\"<option value='\"+c+\"'\"+(c===e?\" selected='selected'\":\"\")+\">\"+r[c]+\"</option>\");y+=\"</select>\"}if(m||(b+=y+(!o&&f&&g?\"\":\" \")),!t.yearshtml)if(t.yearshtml=\"\",o||!g)b+=\"<span class='ui-datepicker-year'>\"+i+\"</span>\";else{for(a=this._get(t,\"yearRange\").split(\":\"),u=(new Date).getFullYear(),d=(_=function(t){t=t.match(/c[+\\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\\-].*/)?u+parseInt(t,10):parseInt(t,10);return isNaN(t)?u:t})(a[0]),p=Math.max(d,_(a[1]||\"\")),d=s?Math.max(d,s.getFullYear()):d,p=n?Math.min(p,n.getFullYear()):p,t.yearshtml+=\"<select class='ui-datepicker-year' aria-label='\"+v+\"' data-handler='selectYear' data-event='change'>\";d<=p;d++)t.yearshtml+=\"<option value='\"+d+\"'\"+(d===i?\" selected='selected'\":\"\")+\">\"+d+\"</option>\";t.yearshtml+=\"</select>\",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,\"yearSuffix\"),m&&(b+=(!o&&f&&g?\"\":\" \")+y),b+=\"</div>\"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+(\"Y\"===i?e:0),n=t.selectedMonth+(\"M\"===i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+(\"D\"===i?e:0),e=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=e.getDate(),t.drawMonth=t.selectedMonth=e.getMonth(),t.drawYear=t.selectedYear=e.getFullYear(),\"M\"!==i&&\"Y\"!==i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,\"min\"),t=this._getMinMaxDate(t,\"max\"),e=i&&e<i?i:e;return t&&t<e?t:e},_notifyChange:function(t){var e=this._get(t,\"onChangeMonthYear\");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){t=this._get(t,\"numberOfMonths\");return null==t?[1,1]:\"number\"==typeof t?[1,t]:t},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+\"Date\"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),n=this._daylightSavingAdjust(new Date(i,s+(e<0?e:n[0]*n[1]),1));return e<0&&n.setDate(this._getDaysInMonth(n.getFullYear(),n.getMonth())),this._isInRange(t,n)},_isInRange:function(t,e){var i=this._getMinMaxDate(t,\"min\"),s=this._getMinMaxDate(t,\"max\"),n=null,o=null,a=this._get(t,\"yearRange\");return a&&(t=a.split(\":\"),a=(new Date).getFullYear(),n=parseInt(t[0],10),o=parseInt(t[1],10),t[0].match(/[+\\-].*/)&&(n+=a),t[1].match(/[+\\-].*/)&&(o+=a)),(!i||e.getTime()>=i.getTime())&&(!s||e.getTime()<=s.getTime())&&(!n||e.getFullYear()>=n)&&(!o||e.getFullYear()<=o)},_getFormatConfig:function(t){var e=this._get(t,\"shortYearCutoff\");return{shortYearCutoff:e=\"string\"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,\"dayNamesShort\"),dayNames:this._get(t,\"dayNames\"),monthNamesShort:this._get(t,\"monthNamesShort\"),monthNames:this._get(t,\"monthNames\")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);e=e?\"object\"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,\"dateFormat\"),e,this._getFormatConfig(t))}}),V.fn.datepicker=function(t){if(!this.length)return this;V.datepicker.initialized||(V(document).on(\"mousedown\",V.datepicker._checkExternalClick),V.datepicker.initialized=!0),0===V(\"#\"+V.datepicker._mainDivId).length&&V(\"body\").append(V.datepicker.dpDiv);var e=Array.prototype.slice.call(arguments,1);return\"string\"==typeof t&&(\"isDisabled\"===t||\"getDate\"===t||\"widget\"===t)||\"option\"===t&&2===arguments.length&&\"string\"==typeof arguments[1]?V.datepicker[\"_\"+t+\"Datepicker\"].apply(V.datepicker,[this[0]].concat(e)):this.each(function(){\"string\"==typeof t?V.datepicker[\"_\"+t+\"Datepicker\"].apply(V.datepicker,[this].concat(e)):V.datepicker._attachDatepicker(this,t)})},V.datepicker=new st,V.datepicker.initialized=!1,V.datepicker.uuid=(new Date).getTime(),V.datepicker.version=\"1.13.1\";V.datepicker,V.ui.ie=!!/msie [\\w.]+/.exec(navigator.userAgent.toLowerCase());var rt=!1;V(document).on(\"mouseup\",function(){rt=!1});V.widget(\"ui.mouse\",{version:\"1.13.1\",options:{cancel:\"input, textarea, button, select, option\",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on(\"mousedown.\"+this.widgetName,function(t){return e._mouseDown(t)}).on(\"click.\"+this.widgetName,function(t){if(!0===V.data(t.target,e.widgetName+\".preventClickEvent\"))return V.removeData(t.target,e.widgetName+\".preventClickEvent\"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off(\".\"+this.widgetName),this._mouseMoveDelegate&&this.document.off(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).off(\"mouseup.\"+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!rt){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!(\"string\"!=typeof this.options.cancel||!t.target.nodeName)&&V(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===V.data(t.target,this.widgetName+\".preventClickEvent\")&&V.removeData(t.target,this.widgetName+\".preventClickEvent\"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).on(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),t.preventDefault(),rt=!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(V.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).off(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&V.data(t.target,this.widgetName+\".preventClickEvent\",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,rt=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),V.ui.plugin={add:function(t,e,i){var s,n=V.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n<o.length;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},V.ui.safeBlur=function(t){t&&\"body\"!==t.nodeName.toLowerCase()&&V(t).trigger(\"blur\")};V.widget(\"ui.draggable\",V.ui.mouse,{version:\"1.13.1\",widgetEventPrefix:\"drag\",options:{addClasses:!0,appendTo:\"parent\",axis:!1,connectToSortable:!1,containment:!1,cursor:\"auto\",cursorAt:!1,grid:!1,handle:!1,helper:\"original\",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:\"default\",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:\"both\",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){\"original\"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass(\"ui-draggable\"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),\"handle\"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){(this.helper||this.element).is(\".ui-draggable-dragging\")?this.destroyOnClear=!0:(this._removeHandleClassName(),this._mouseDestroy())},_mouseCapture:function(t){var e=this.options;return!(this.helper||e.disabled||0<V(t.target).closest(\".ui-resizable-handle\").length)&&(this.handle=this._getHandle(t),!!this.handle&&(this._blurActiveElement(t),this._blockFrames(!0===e.iframeFix?\"iframe\":e.iframeFix),!0))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=V(this);return V(\"<div>\").css(\"position\",\"absolute\").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=V.ui.safeActiveElement(this.document[0]);V(t.target).closest(e).length||V.ui.safeBlur(e)},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,\"ui-draggable-dragging\"),this._cacheHelperProportions(),V.ui.ddmanager&&(V.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css(\"position\"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0<this.helper.parents().filter(function(){return\"fixed\"===V(this).css(\"position\")}).length,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this._setContainment(),!1===this._trigger(\"start\",t)?(this._clear(),!1):(this._cacheHelperProportions(),V.ui.ddmanager&&!e.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),V.ui.ddmanager&&V.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(t,e){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo(\"absolute\"),!e){e=this._uiHash();if(!1===this._trigger(\"drag\",t,e))return this._mouseUp(new V.Event(\"mouseup\",t)),!1;this.position=e.position}return this.helper[0].style.left=this.position.left+\"px\",this.helper[0].style.top=this.position.top+\"px\",V.ui.ddmanager&&V.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var e=this,i=!1;return V.ui.ddmanager&&!this.options.dropBehaviour&&(i=V.ui.ddmanager.drop(this,t)),this.dropped&&(i=this.dropped,this.dropped=!1),\"invalid\"===this.options.revert&&!i||\"valid\"===this.options.revert&&i||!0===this.options.revert||\"function\"==typeof this.options.revert&&this.options.revert.call(this.element,i)?V(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==e._trigger(\"stop\",t)&&e._clear()}):!1!==this._trigger(\"stop\",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),V.ui.ddmanager&&V.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.trigger(\"focus\"),V.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(\".ui-draggable-dragging\")?this._mouseUp(new V.Event(\"mouseup\",{target:this.element[0]})):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!V(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,\"ui-draggable-handle\")},_removeHandleClassName:function(){this._removeClass(this.handleElement,\"ui-draggable-handle\")},_createHelper:function(t){var e=this.options,i=\"function\"==typeof e.helper,t=i?V(e.helper.apply(this.element[0],[t])):\"clone\"===e.helper?this.element.clone().removeAttr(\"id\"):this.element;return t.parents(\"body\").length||t.appendTo(\"parent\"===e.appendTo?this.element[0].parentNode:e.appendTo),i&&t[0]===this.element[0]&&this._setPositionRelative(),t[0]===this.element[0]||/(fixed|absolute)/.test(t.css(\"position\"))||t.css(\"position\",\"absolute\"),t},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css(\"position\"))||(this.element[0].style.position=\"relative\")},_adjustOffsetFromHelper:function(t){\"string\"==typeof t&&(t=t.split(\" \")),\"left\"in(t=Array.isArray(t)?{left:+t[0],top:+t[1]||0}:t)&&(this.offset.click.left=t.left+this.margins.left),\"right\"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),\"top\"in t&&(this.offset.click.top=t.top+this.margins.top),\"bottom\"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),e=this.document[0];return\"absolute\"===this.cssPosition&&this.scrollParent[0]!==e&&V.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),{top:(t=this._isRootNode(this.offsetParent[0])?{top:0,left:0}:t).top+(parseInt(this.offsetParent.css(\"borderTopWidth\"),10)||0),left:t.left+(parseInt(this.offsetParent.css(\"borderLeftWidth\"),10)||0)}},_getRelativeOffset:function(){if(\"relative\"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css(\"top\"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css(\"left\"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css(\"marginLeft\"),10)||0,top:parseInt(this.element.css(\"marginTop\"),10)||0,right:parseInt(this.element.css(\"marginRight\"),10)||0,bottom:parseInt(this.element.css(\"marginBottom\"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e,i,s=this.options,n=this.document[0];this.relativeContainer=null,s.containment?\"window\"!==s.containment?\"document\"!==s.containment?s.containment.constructor!==Array?(\"parent\"===s.containment&&(s.containment=this.helper[0].parentNode),(i=(e=V(s.containment))[0])&&(t=/(scroll|auto)/.test(e.css(\"overflow\")),this.containment=[(parseInt(e.css(\"borderLeftWidth\"),10)||0)+(parseInt(e.css(\"paddingLeft\"),10)||0),(parseInt(e.css(\"borderTopWidth\"),10)||0)+(parseInt(e.css(\"paddingTop\"),10)||0),(t?Math.max(i.scrollWidth,i.offsetWidth):i.offsetWidth)-(parseInt(e.css(\"borderRightWidth\"),10)||0)-(parseInt(e.css(\"paddingRight\"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(i.scrollHeight,i.offsetHeight):i.offsetHeight)-(parseInt(e.css(\"borderBottomWidth\"),10)||0)-(parseInt(e.css(\"paddingBottom\"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=e)):this.containment=s.containment:this.containment=[0,0,V(n).width()-this.helperProportions.width-this.margins.left,(V(n).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=[V(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,V(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,V(window).scrollLeft()+V(window).width()-this.helperProportions.width-this.margins.left,V(window).scrollTop()+(V(window).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=null},_convertPositionTo:function(t,e){e=e||this.position;var i=\"absolute\"===t?1:-1,t=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-(\"fixed\"===this.cssPosition?-this.offset.scroll.top:t?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-(\"fixed\"===this.cssPosition?-this.offset.scroll.left:t?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s=this.options,n=this._isRootNode(this.scrollParent[0]),o=t.pageX,a=t.pageY;return n&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(i=this.relativeContainer?(i=this.relativeContainer.offset(),[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]):this.containment,t.pageX-this.offset.click.left<i[0]&&(o=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(a=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(o=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(a=i[3]+this.offset.click.top)),s.grid&&(t=s.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,a=!i||t-this.offset.click.top>=i[1]||t-this.offset.click.top>i[3]?t:t-this.offset.click.top>=i[1]?t-s.grid[1]:t+s.grid[1],t=s.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,o=!i||t-this.offset.click.left>=i[0]||t-this.offset.click.left>i[2]?t:t-this.offset.click.left>=i[0]?t-s.grid[0]:t+s.grid[0]),\"y\"===s.axis&&(o=this.originalPageX),\"x\"===s.axis&&(a=this.originalPageY)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(\"fixed\"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(\"fixed\"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,\"ui-draggable-dragging\"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,e,i){return i=i||this._uiHash(),V.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo(\"absolute\"),i.offset=this.positionAbs),V.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),V.ui.plugin.add(\"draggable\",\"connectToSortable\",{start:function(e,t,i){var s=V.extend({},t,{item:i.element});i.sortables=[],V(i.options.connectToSortable).each(function(){var t=V(this).sortable(\"instance\");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger(\"activate\",e,s))})},stop:function(e,t,i){var s=V.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,V.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css(\"position\"),top:t.placeholder.css(\"top\"),left:t.placeholder.css(\"left\")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger(\"deactivate\",e,s))})},drag:function(i,s,n){V.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,V.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,t=this!==e&&this._intersectsWith(this.containerCache)&&V.contains(e.element[0],this.element[0])?!1:t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data(\"ui-sortable-item\",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger(\"toSortable\",i),n.dropped=e.element,V.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger(\"out\",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger(\"fromSortable\",i),n.dropped=!1,V.each(n.sortables,function(){this.refreshPositions()}))})}}),V.ui.plugin.add(\"draggable\",\"cursor\",{start:function(t,e,i){var s=V(\"body\"),i=i.options;s.css(\"cursor\")&&(i._cursor=s.css(\"cursor\")),s.css(\"cursor\",i.cursor)},stop:function(t,e,i){i=i.options;i._cursor&&V(\"body\").css(\"cursor\",i._cursor)}}),V.ui.plugin.add(\"draggable\",\"opacity\",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css(\"opacity\")&&(i._opacity=e.css(\"opacity\")),e.css(\"opacity\",i.opacity)},stop:function(t,e,i){i=i.options;i._opacity&&V(e.helper).css(\"opacity\",i._opacity)}}),V.ui.plugin.add(\"draggable\",\"scroll\",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&\"HTML\"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&\"HTML\"!==o.tagName?(s.axis&&\"x\"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY<s.scrollSensitivity?o.scrollTop=n=o.scrollTop+s.scrollSpeed:t.pageY-i.overflowOffset.top<s.scrollSensitivity&&(o.scrollTop=n=o.scrollTop-s.scrollSpeed)),s.axis&&\"y\"===s.axis||(i.overflowOffset.left+o.offsetWidth-t.pageX<s.scrollSensitivity?o.scrollLeft=n=o.scrollLeft+s.scrollSpeed:t.pageX-i.overflowOffset.left<s.scrollSensitivity&&(o.scrollLeft=n=o.scrollLeft-s.scrollSpeed))):(s.axis&&\"x\"===s.axis||(t.pageY-V(a).scrollTop()<s.scrollSensitivity?n=V(a).scrollTop(V(a).scrollTop()-s.scrollSpeed):V(window).height()-(t.pageY-V(a).scrollTop())<s.scrollSensitivity&&(n=V(a).scrollTop(V(a).scrollTop()+s.scrollSpeed))),s.axis&&\"y\"===s.axis||(t.pageX-V(a).scrollLeft()<s.scrollSensitivity?n=V(a).scrollLeft(V(a).scrollLeft()-s.scrollSpeed):V(window).width()-(t.pageX-V(a).scrollLeft())<s.scrollSensitivity&&(n=V(a).scrollLeft(V(a).scrollLeft()+s.scrollSpeed)))),!1!==n&&V.ui.ddmanager&&!s.dropBehaviour&&V.ui.ddmanager.prepareOffsets(i,t)}}),V.ui.plugin.add(\"draggable\",\"snap\",{start:function(t,e,i){var s=i.options;i.snapElements=[],V(s.snap.constructor!==String?s.snap.items||\":data(ui-draggable)\":s.snap).each(function(){var t=V(this),e=t.offset();this!==i.element[0]&&i.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:e.top,left:e.left})})},drag:function(t,e,i){for(var s,n,o,a,r,l,h,c,u,d=i.options,p=d.snapTolerance,f=e.offset.left,g=f+i.helperProportions.width,m=e.offset.top,_=m+i.helperProportions.height,v=i.snapElements.length-1;0<=v;v--)l=(r=i.snapElements[v].left-i.margins.left)+i.snapElements[v].width,c=(h=i.snapElements[v].top-i.margins.top)+i.snapElements[v].height,g<r-p||l+p<f||_<h-p||c+p<m||!V.contains(i.snapElements[v].item.ownerDocument,i.snapElements[v].item)?(i.snapElements[v].snapping&&i.options.snap.release&&i.options.snap.release.call(i.element,t,V.extend(i._uiHash(),{snapItem:i.snapElements[v].item})),i.snapElements[v].snapping=!1):(\"inner\"!==d.snapMode&&(s=Math.abs(h-_)<=p,n=Math.abs(c-m)<=p,o=Math.abs(r-g)<=p,a=Math.abs(l-f)<=p,s&&(e.position.top=i._convertPositionTo(\"relative\",{top:h-i.helperProportions.height,left:0}).top),n&&(e.position.top=i._convertPositionTo(\"relative\",{top:c,left:0}).top),o&&(e.position.left=i._convertPositionTo(\"relative\",{top:0,left:r-i.helperProportions.width}).left),a&&(e.position.left=i._convertPositionTo(\"relative\",{top:0,left:l}).left)),u=s||n||o||a,\"outer\"!==d.snapMode&&(s=Math.abs(h-m)<=p,n=Math.abs(c-_)<=p,o=Math.abs(r-f)<=p,a=Math.abs(l-g)<=p,s&&(e.position.top=i._convertPositionTo(\"relative\",{top:h,left:0}).top),n&&(e.position.top=i._convertPositionTo(\"relative\",{top:c-i.helperProportions.height,left:0}).top),o&&(e.position.left=i._convertPositionTo(\"relative\",{top:0,left:r}).left),a&&(e.position.left=i._convertPositionTo(\"relative\",{top:0,left:l-i.helperProportions.width}).left)),!i.snapElements[v].snapping&&(s||n||o||a||u)&&i.options.snap.snap&&i.options.snap.snap.call(i.element,t,V.extend(i._uiHash(),{snapItem:i.snapElements[v].item})),i.snapElements[v].snapping=s||n||o||a||u)}}),V.ui.plugin.add(\"draggable\",\"stack\",{start:function(t,e,i){var s,i=i.options,i=V.makeArray(V(i.stack)).sort(function(t,e){return(parseInt(V(t).css(\"zIndex\"),10)||0)-(parseInt(V(e).css(\"zIndex\"),10)||0)});i.length&&(s=parseInt(V(i[0]).css(\"zIndex\"),10)||0,V(i).each(function(t){V(this).css(\"zIndex\",s+t)}),this.css(\"zIndex\",s+i.length))}}),V.ui.plugin.add(\"draggable\",\"zIndex\",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css(\"zIndex\")&&(i._zIndex=e.css(\"zIndex\")),e.css(\"zIndex\",i.zIndex)},stop:function(t,e,i){i=i.options;i._zIndex&&V(e.helper).css(\"zIndex\",i._zIndex)}});V.ui.draggable;V.widget(\"ui.resizable\",V.ui.mouse,{version:\"1.13.1\",widgetEventPrefix:\"resize\",options:{alsoResize:!1,animate:!1,animateDuration:\"slow\",animateEasing:\"swing\",aspectRatio:!1,autoHide:!1,classes:{\"ui-resizable-se\":\"ui-icon ui-icon-gripsmall-diagonal-se\"},containment:!1,ghost:!1,grid:!1,handles:\"e,s,se\",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(t,e){if(\"hidden\"===V(t).css(\"overflow\"))return!1;var i=e&&\"left\"===e?\"scrollLeft\":\"scrollTop\",e=!1;if(0<t[i])return!0;try{t[i]=1,e=0<t[i],t[i]=0}catch(t){}return e},_create:function(){var t,e=this.options,i=this;this._addClass(\"ui-resizable\"),V.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||\"ui-resizable-helper\":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(V(\"<div class='ui-wrapper'></div>\").css({overflow:\"hidden\",position:this.element.css(\"position\"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css(\"top\"),left:this.element.css(\"left\")})),this.element=this.element.parent().data(\"ui-resizable\",this.element.resizable(\"instance\")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css(\"marginTop\"),marginRight:this.originalElement.css(\"marginRight\"),marginBottom:this.originalElement.css(\"marginBottom\"),marginLeft:this.originalElement.css(\"marginLeft\")},this.element.css(t),this.originalElement.css(\"margin\",0),this.originalResizeStyle=this.originalElement.css(\"resize\"),this.originalElement.css(\"resize\",\"none\"),this._proportionallyResizeElements.push(this.originalElement.css({position:\"static\",zoom:1,display:\"block\"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&V(this.element).on(\"mouseenter\",function(){e.disabled||(i._removeClass(\"ui-resizable-autohide\"),i._handles.show())}).on(\"mouseleave\",function(){e.disabled||i.resizing||(i._addClass(\"ui-resizable-autohide\"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){V(t).removeData(\"resizable\").removeData(\"ui-resizable\").off(\".resizable\")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css(\"position\"),width:e.outerWidth(),height:e.outerHeight(),top:e.css(\"top\"),left:e.css(\"left\")}).insertAfter(e),e.remove()),this.originalElement.css(\"resize\",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case\"handles\":this._removeHandles(),this._setupHandles();break;case\"aspectRatio\":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,a=this;if(this.handles=o.handles||(V(\".ui-resizable-handle\",this.element).length?{n:\".ui-resizable-n\",e:\".ui-resizable-e\",s:\".ui-resizable-s\",w:\".ui-resizable-w\",se:\".ui-resizable-se\",sw:\".ui-resizable-sw\",ne:\".ui-resizable-ne\",nw:\".ui-resizable-nw\"}:\"e,s,se\"),this._handles=V(),this._addedHandles=V(),this.handles.constructor===String)for(\"all\"===this.handles&&(this.handles=\"n,e,s,w,se,sw,ne,nw\"),i=this.handles.split(\",\"),this.handles={},e=0;e<i.length;e++)s=\"ui-resizable-\"+(t=String.prototype.trim.call(i[e])),n=V(\"<div>\"),this._addClass(n,\"ui-resizable-handle \"+s),n.css({zIndex:o.zIndex}),this.handles[t]=\".ui-resizable-\"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=V(this.handles[e]),this._on(this.handles[e],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=V(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=[\"padding\",/ne|nw|n/.test(e)?\"Top\":/se|sw|s/.test(e)?\"Bottom\":/^e$/.test(e)?\"Right\":\"Left\"].join(\"\"),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(\".ui-resizable-handle\")),this._handles.disableSelection(),this._handles.on(\"mouseover\",function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:\"se\")}),o.autoHide&&(this._handles.hide(),this._addClass(\"ui-resizable-autohide\"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=V(this.handles[e])[0])!==t.target&&!V.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css(\"left\")),i=this._num(this.helper.css(\"top\")),s.containment&&(e+=V(s.containment).scrollLeft()||0,i+=V(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=\"number\"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=V(\".ui-resizable-\"+this.axis).css(\"cursor\"),V(\"body\").css(\"cursor\",\"auto\"===s?this.axis+\"-resize\":s),this._addClass(\"ui-resizable-resizing\"),this._propagate(\"start\",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate(\"resize\",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),V.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger(\"resize\",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],\"left\")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css(\"left\"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css(\"top\"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(V.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),V(\"body\").css(\"cursor\",\"auto\"),this._removeClass(\"ui-resizable-resizing\"),this._propagate(\"stop\",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+\"px\"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+\"px\"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+\"px\"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+\"px\"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),s<n.maxWidth&&(n.maxWidth=s),t<n.maxHeight&&(n.maxHeight=t)),this._vBoundaries=n},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),\"sw\"===s&&(t.left=e.left+(i.width-t.width),t.top=null),\"nw\"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css(\"borderTopWidth\"),t.css(\"borderRightWidth\"),t.css(\"borderBottomWidth\"),t.css(\"borderLeftWidth\")],n=[t.css(\"paddingTop\"),t.css(\"paddingRight\"),t.css(\"paddingBottom\"),t.css(\"paddingLeft\")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,e=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||V(\"<div></div>\").css({overflow:\"hidden\"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:\"absolute\",left:this.elementOffset.left+\"px\",top:this.elementOffset.top+\"px\",zIndex:++e.zIndex}),this.helper.appendTo(\"body\").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){V.ui.plugin.call(this,t,[e,this.ui()]),\"resize\"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),V.ui.plugin.add(\"resizable\",\"animate\",{stop:function(e){var i=V(this).resizable(\"instance\"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],\"left\")?0:i.sizeDiff.height,a=n?0:i.sizeDiff.width,n={width:i.size.width-a,height:i.size.height-o},a=parseFloat(i.element.css(\"left\"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css(\"top\"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(V.extend(n,o&&a?{top:o,left:a}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css(\"width\")),height:parseFloat(i.element.css(\"height\")),top:parseFloat(i.element.css(\"top\")),left:parseFloat(i.element.css(\"left\"))};s&&s.length&&V(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate(\"resize\",e)}})}}),V.ui.plugin.add(\"resizable\",\"containment\",{start:function(){var i,s,n=V(this).resizable(\"instance\"),t=n.options,e=n.element,o=t.containment,a=o instanceof V?o.get(0):/parent/.test(o)?e.parent().get(0):o;a&&(n.containerElement=V(a),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:V(document),left:0,top:0,width:V(document).width(),height:V(document).height()||document.body.parentNode.scrollHeight}):(i=V(a),s=[],V([\"Top\",\"Right\",\"Left\",\"Bottom\"]).each(function(t,e){s[t]=n._num(i.css(\"padding\"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(a,\"left\")?a.scrollWidth:o,e=n._hasScroll(a)?a.scrollHeight:e,n.parentData={element:a,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=V(this).resizable(\"instance\"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,a={top:0,left:0},r=e.containerElement,t=!0;r[0]!==document&&/static/.test(r.css(\"position\"))&&(a=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-a.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css(\"position\")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-a.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-a.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=V(this).resizable(\"instance\"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=V(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css(\"position\"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o}),t._helper&&!e.animate&&/static/.test(n.css(\"position\"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o})}}),V.ui.plugin.add(\"resizable\",\"alsoResize\",{start:function(){var t=V(this).resizable(\"instance\").options;V(t.alsoResize).each(function(){var t=V(this);t.data(\"ui-resizable-alsoresize\",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css(\"left\")),top:parseFloat(t.css(\"top\"))})})},resize:function(t,i){var e=V(this).resizable(\"instance\"),s=e.options,n=e.originalSize,o=e.originalPosition,a={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};V(s.alsoResize).each(function(){var t=V(this),s=V(this).data(\"ui-resizable-alsoresize\"),n={},e=t.parents(i.originalElement[0]).length?[\"width\",\"height\"]:[\"width\",\"height\",\"top\",\"left\"];V.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){V(this).removeData(\"ui-resizable-alsoresize\")}}),V.ui.plugin.add(\"resizable\",\"ghost\",{start:function(){var t=V(this).resizable(\"instance\"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:\"block\",position:\"relative\",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,\"ui-resizable-ghost\"),!1!==V.uiBackCompat&&\"string\"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=V(this).resizable(\"instance\");t.ghost&&t.ghost.css({position:\"relative\",height:t.size.height,width:t.size.width})},stop:function(){var t=V(this).resizable(\"instance\");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),V.ui.plugin.add(\"resizable\",\"grid\",{resize:function(){var t,e=V(this).resizable(\"instance\"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r=\"number\"==typeof i.grid?[i.grid,i.grid]:i.grid,l=r[0]||1,h=r[1]||1,c=Math.round((s.width-n.width)/l)*l,u=Math.round((s.height-n.height)/h)*h,d=n.width+c,p=n.height+u,f=i.maxWidth&&i.maxWidth<d,g=i.maxHeight&&i.maxHeight<p,m=i.minWidth&&i.minWidth>d,s=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=l),s&&(p+=h),f&&(d-=l),g&&(p-=h),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):((p-h<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0<p-h?(e.size.height=p,e.position.top=o.top-u):(p=h-t.height,e.size.height=p,e.position.top=o.top+n.height-p),0<d-l?(e.size.width=d,e.position.left=o.left-c):(d=l-t.width,e.size.width=d,e.position.left=o.left+n.width-d))}});V.ui.resizable;V.widget(\"ui.dialog\",{version:\"1.13.1\",options:{appendTo:\"body\",autoOpen:!0,buttons:[],classes:{\"ui-dialog\":\"ui-corner-all\",\"ui-dialog-titlebar\":\"ui-corner-all\"},closeOnEscape:!0,closeText:\"Close\",draggable:!0,hide:null,height:\"auto\",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:\"center\",at:\"center\",of:window,collision:\"fit\",using:function(t){var e=V(this).css(t).offset().top;e<0&&V(this).css(\"top\",t.top-e)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr(\"title\"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr(\"title\").appendTo(this.uiDialog),this._addClass(\"ui-dialog-content\",\"ui-widget-content\"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&V.fn.draggable&&this._makeDraggable(),this.options.resizable&&V.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?V(t):this.document.find(t||\"body\").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr(\"title\",this.originalTitle),(t=e.parent.children().eq(e.index)).length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:V.noop,enable:V.noop,close:function(t){var e=this;this._isOpen&&!1!==this._trigger(\"beforeClose\",t)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(\":focusable\").trigger(\"focus\").length||V.ui.safeBlur(V.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){e._trigger(\"close\",t)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,e){var i=!1,s=this.uiDialog.siblings(\".ui-front:visible\").map(function(){return+V(this).css(\"z-index\")}).get(),s=Math.max.apply(null,s);return s>=+this.uiDialog.css(\"z-index\")&&(this.uiDialog.css(\"z-index\",s+1),i=!0),i&&!e&&this._trigger(\"focus\",t),i},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=V(V.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css(\"z-index\",this.uiDialog.css(\"z-index\")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger(\"focus\")}),this._makeFocusTarget(),this._trigger(\"open\"))},_focusTabbable:function(){var t=this._focusedElement;(t=!(t=!(t=!(t=!(t=t||this.element.find(\"[autofocus]\")).length?this.element.find(\":tabbable\"):t).length?this.uiDialogButtonPane.find(\":tabbable\"):t).length?this.uiDialogTitlebarClose.filter(\":tabbable\"):t).length?this.uiDialog:t).eq(0).trigger(\"focus\")},_restoreTabbableFocus:function(){var t=V.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===t||V.contains(this.uiDialog[0],t)||this._focusTabbable()},_keepFocus:function(t){t.preventDefault(),this._restoreTabbableFocus(),this._delay(this._restoreTabbableFocus)},_createWrapper:function(){this.uiDialog=V(\"<div>\").hide().attr({tabIndex:-1,role:\"dialog\"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,\"ui-dialog\",\"ui-widget ui-widget-content ui-front\"),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===V.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);var e,i,s;t.keyCode!==V.ui.keyCode.TAB||t.isDefaultPrevented()||(e=this.uiDialog.find(\":tabbable\"),i=e.first(),s=e.last(),t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){s.trigger(\"focus\")}),t.preventDefault()):(this._delay(function(){i.trigger(\"focus\")}),t.preventDefault()))},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find(\"[aria-describedby]\").length||this.uiDialog.attr({\"aria-describedby\":this.element.uniqueId().attr(\"id\")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=V(\"<div>\"),this._addClass(this.uiDialogTitlebar,\"ui-dialog-titlebar\",\"ui-widget-header ui-helper-clearfix\"),this._on(this.uiDialogTitlebar,{mousedown:function(t){V(t.target).closest(\".ui-dialog-titlebar-close\")||this.uiDialog.trigger(\"focus\")}}),this.uiDialogTitlebarClose=V(\"<button type='button'></button>\").button({label:V(\"<a>\").text(this.options.closeText).html(),icon:\"ui-icon-closethick\",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,\"ui-dialog-titlebar-close\"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),t=V(\"<span>\").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(t,\"ui-dialog-title\"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({\"aria-labelledby\":t.attr(\"id\")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(\" \")},_createButtonPane:function(){this.uiDialogButtonPane=V(\"<div>\"),this._addClass(this.uiDialogButtonPane,\"ui-dialog-buttonpane\",\"ui-widget-content ui-helper-clearfix\"),this.uiButtonSet=V(\"<div>\").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,\"ui-dialog-buttonset\"),this._createButtons()},_createButtons:function(){var s=this,t=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),V.isEmptyObject(t)||Array.isArray(t)&&!t.length?this._removeClass(this.uiDialog,\"ui-dialog-buttons\"):(V.each(t,function(t,e){var i;e=V.extend({type:\"button\"},e=\"function\"==typeof e?{click:e,text:t}:e),i=e.click,t={icon:e.icon,iconPosition:e.iconPosition,showLabel:e.showLabel,icons:e.icons,text:e.text},delete e.click,delete e.icon,delete e.iconPosition,delete e.showLabel,delete e.icons,\"boolean\"==typeof e.text&&delete e.text,V(\"<button></button>\",e).button(t).appendTo(s.uiButtonSet).on(\"click\",function(){i.apply(s.element[0],arguments)})}),this._addClass(this.uiDialog,\"ui-dialog-buttons\"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var n=this,o=this.options;function a(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:\".ui-dialog-content, .ui-dialog-titlebar-close\",handle:\".ui-dialog-titlebar\",containment:\"document\",start:function(t,e){n._addClass(V(this),\"ui-dialog-dragging\"),n._blockFrames(),n._trigger(\"dragStart\",t,a(e))},drag:function(t,e){n._trigger(\"drag\",t,a(e))},stop:function(t,e){var i=e.offset.left-n.document.scrollLeft(),s=e.offset.top-n.document.scrollTop();o.position={my:\"left top\",at:\"left\"+(0<=i?\"+\":\"\")+i+\" top\"+(0<=s?\"+\":\"\")+s,of:n.window},n._removeClass(V(this),\"ui-dialog-dragging\"),n._unblockFrames(),n._trigger(\"dragStop\",t,a(e))}})},_makeResizable:function(){var n=this,o=this.options,t=o.resizable,e=this.uiDialog.css(\"position\"),t=\"string\"==typeof t?t:\"n,e,s,w,se,sw,ne,nw\";function a(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:\".ui-dialog-content\",containment:\"document\",alsoResize:this.element,maxWidth:o.maxWidth,maxHeight:o.maxHeight,minWidth:o.minWidth,minHeight:this._minHeight(),handles:t,start:function(t,e){n._addClass(V(this),\"ui-dialog-resizing\"),n._blockFrames(),n._trigger(\"resizeStart\",t,a(e))},resize:function(t,e){n._trigger(\"resize\",t,a(e))},stop:function(t,e){var i=n.uiDialog.offset(),s=i.left-n.document.scrollLeft(),i=i.top-n.document.scrollTop();o.height=n.uiDialog.height(),o.width=n.uiDialog.width(),o.position={my:\"left top\",at:\"left\"+(0<=s?\"+\":\"\")+s+\" top\"+(0<=i?\"+\":\"\")+i,of:n.window},n._removeClass(V(this),\"ui-dialog-resizing\"),n._unblockFrames(),n._trigger(\"resizeStop\",t,a(e))}}).css(\"position\",e)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=V(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),e=V.inArray(this,t);-1!==e&&t.splice(e,1)},_trackingInstances:function(){var t=this.document.data(\"ui-dialog-instances\");return t||this.document.data(\"ui-dialog-instances\",t=[]),t},_minHeight:function(){var t=this.options;return\"auto\"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(\":visible\");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};V.each(t,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(\":data(ui-resizable)\")&&this.uiDialog.resizable(\"option\",n)},_setOption:function(t,e){var i,s=this.uiDialog;\"disabled\"!==t&&(this._super(t,e),\"appendTo\"===t&&this.uiDialog.appendTo(this._appendTo()),\"buttons\"===t&&this._createButtons(),\"closeText\"===t&&this.uiDialogTitlebarClose.button({label:V(\"<a>\").text(\"\"+this.options.closeText).html()}),\"draggable\"===t&&((i=s.is(\":data(ui-draggable)\"))&&!e&&s.draggable(\"destroy\"),!i&&e&&this._makeDraggable()),\"position\"===t&&this._position(),\"resizable\"===t&&((i=s.is(\":data(ui-resizable)\"))&&!e&&s.resizable(\"destroy\"),i&&\"string\"==typeof e&&s.resizable(\"option\",\"handles\",e),i||!1===e||this._makeResizable()),\"title\"===t&&this._title(this.uiDialogTitlebar.find(\".ui-dialog-title\")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:\"auto\",minHeight:0,maxHeight:\"none\",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:\"auto\",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i=\"number\"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):\"none\",\"auto\"===s.height?this.element.css({minHeight:e,maxHeight:i,height:\"auto\"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(\":data(ui-resizable)\")&&this.uiDialog.resizable(\"option\",\"minHeight\",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find(\"iframe\").map(function(){var t=V(this);return V(\"<div>\").css({position:\"absolute\",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!V(t.target).closest(\".ui-dialog\").length||!!V(t.target).closest(\".ui-datepicker\").length},_createOverlay:function(){var i,s;this.options.modal&&(i=V.fn.jquery.substring(0,4),s=!0,this._delay(function(){s=!1}),this.document.data(\"ui-dialog-overlays\")||this.document.on(\"focusin.ui-dialog\",function(t){var e;s||((e=this._trackingInstances()[0])._allowInteraction(t)||(t.preventDefault(),e._focusTabbable(),\"3.4.\"!==i&&\"3.5.\"!==i||e._delay(e._restoreTabbableFocus)))}.bind(this)),this.overlay=V(\"<div>\").appendTo(this._appendTo()),this._addClass(this.overlay,null,\"ui-widget-overlay ui-front\"),this._on(this.overlay,{mousedown:\"_keepFocus\"}),this.document.data(\"ui-dialog-overlays\",(this.document.data(\"ui-dialog-overlays\")||0)+1))},_destroyOverlay:function(){var t;this.options.modal&&this.overlay&&((t=this.document.data(\"ui-dialog-overlays\")-1)?this.document.data(\"ui-dialog-overlays\",t):(this.document.off(\"focusin.ui-dialog\"),this.document.removeData(\"ui-dialog-overlays\")),this.overlay.remove(),this.overlay=null)}}),!1!==V.uiBackCompat&&V.widget(\"ui.dialog\",V.ui.dialog,{options:{dialogClass:\"\"},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){\"dialogClass\"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}});V.ui.dialog;function lt(t,e,i){return e<=t&&t<e+i}V.widget(\"ui.droppable\",{version:\"1.13.1\",widgetEventPrefix:\"drop\",options:{accept:\"*\",addClasses:!0,greedy:!1,scope:\"default\",tolerance:\"intersect\",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,e=this.options,i=e.accept;this.isover=!1,this.isout=!0,this.accept=\"function\"==typeof i?i:function(t){return t.is(i)},this.proportions=function(){if(!arguments.length)return t=t||{width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};t=arguments[0]},this._addToManager(e.scope),e.addClasses&&this._addClass(\"ui-droppable\")},_addToManager:function(t){V.ui.ddmanager.droppables[t]=V.ui.ddmanager.droppables[t]||[],V.ui.ddmanager.droppables[t].push(this)},_splice:function(t){for(var e=0;e<t.length;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var t=V.ui.ddmanager.droppables[this.options.scope];this._splice(t)},_setOption:function(t,e){var i;\"accept\"===t?this.accept=\"function\"==typeof e?e:function(t){return t.is(e)}:\"scope\"===t&&(i=V.ui.ddmanager.droppables[this.options.scope],this._splice(i),this._addToManager(e)),this._super(t,e)},_activate:function(t){var e=V.ui.ddmanager.current;this._addActiveClass(),e&&this._trigger(\"activate\",t,this.ui(e))},_deactivate:function(t){var e=V.ui.ddmanager.current;this._removeActiveClass(),e&&this._trigger(\"deactivate\",t,this.ui(e))},_over:function(t){var e=V.ui.ddmanager.current;e&&(e.currentItem||e.element)[0]!==this.element[0]&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this._addHoverClass(),this._trigger(\"over\",t,this.ui(e)))},_out:function(t){var e=V.ui.ddmanager.current;e&&(e.currentItem||e.element)[0]!==this.element[0]&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this._removeHoverClass(),this._trigger(\"out\",t,this.ui(e)))},_drop:function(e,t){var i=t||V.ui.ddmanager.current,s=!1;return!(!i||(i.currentItem||i.element)[0]===this.element[0])&&(this.element.find(\":data(ui-droppable)\").not(\".ui-draggable-dragging\").each(function(){var t=V(this).droppable(\"instance\");if(t.options.greedy&&!t.options.disabled&&t.options.scope===i.options.scope&&t.accept.call(t.element[0],i.currentItem||i.element)&&V.ui.intersect(i,V.extend(t,{offset:t.element.offset()}),t.options.tolerance,e))return!(s=!0)}),!s&&(!!this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeActiveClass(),this._removeHoverClass(),this._trigger(\"drop\",e,this.ui(i)),this.element)))},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass(\"ui-droppable-hover\")},_removeHoverClass:function(){this._removeClass(\"ui-droppable-hover\")},_addActiveClass:function(){this._addClass(\"ui-droppable-active\")},_removeActiveClass:function(){this._removeClass(\"ui-droppable-active\")}}),V.ui.intersect=function(t,e,i,s){if(!e.offset)return!1;var n=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,a=n+t.helperProportions.width,r=o+t.helperProportions.height,l=e.offset.left,h=e.offset.top,c=l+e.proportions().width,u=h+e.proportions().height;switch(i){case\"fit\":return l<=n&&a<=c&&h<=o&&r<=u;case\"intersect\":return l<n+t.helperProportions.width/2&&a-t.helperProportions.width/2<c&&h<o+t.helperProportions.height/2&&r-t.helperProportions.height/2<u;case\"pointer\":return lt(s.pageY,h,e.proportions().height)&<(s.pageX,l,e.proportions().width);case\"touch\":return(h<=o&&o<=u||h<=r&&r<=u||o<h&&u<r)&&(l<=n&&n<=c||l<=a&&a<=c||n<l&&c<a);default:return!1}},!(V.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(t,e){var i,s,n=V.ui.ddmanager.droppables[t.options.scope]||[],o=e?e.type:null,a=(t.currentItem||t.element).find(\":data(ui-droppable)\").addBack();t:for(i=0;i<n.length;i++)if(!(n[i].options.disabled||t&&!n[i].accept.call(n[i].element[0],t.currentItem||t.element))){for(s=0;s<a.length;s++)if(a[s]===n[i].element[0]){n[i].proportions().height=0;continue t}n[i].visible=\"none\"!==n[i].element.css(\"display\"),n[i].visible&&(\"mousedown\"===o&&n[i]._activate.call(n[i],e),n[i].offset=n[i].element.offset(),n[i].proportions({width:n[i].element[0].offsetWidth,height:n[i].element[0].offsetHeight}))}},drop:function(t,e){var i=!1;return V.each((V.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&V.ui.intersect(t,this,this.options.tolerance,e)&&(i=this._drop.call(this,e)||i),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,e)))}),i},dragStart:function(t,e){t.element.parentsUntil(\"body\").on(\"scroll.droppable\",function(){t.options.refreshPositions||V.ui.ddmanager.prepareOffsets(t,e)})},drag:function(n,o){n.options.refreshPositions&&V.ui.ddmanager.prepareOffsets(n,o),V.each(V.ui.ddmanager.droppables[n.options.scope]||[],function(){var t,e,i,s;this.options.disabled||this.greedyChild||!this.visible||(s=!(i=V.ui.intersect(n,this,this.options.tolerance,o))&&this.isover?\"isout\":i&&!this.isover?\"isover\":null)&&(this.options.greedy&&(e=this.options.scope,(i=this.element.parents(\":data(ui-droppable)\").filter(function(){return V(this).droppable(\"instance\").options.scope===e})).length&&((t=V(i[0]).droppable(\"instance\")).greedyChild=\"isover\"===s)),t&&\"isover\"===s&&(t.isover=!1,t.isout=!0,t._out.call(t,o)),this[s]=!0,this[\"isout\"===s?\"isover\":\"isout\"]=!1,this[\"isover\"===s?\"_over\":\"_out\"].call(this,o),t&&\"isout\"===s&&(t.isout=!1,t.isover=!0,t._over.call(t,o)))})},dragStop:function(t,e){t.element.parentsUntil(\"body\").off(\"scroll.droppable\"),t.options.refreshPositions||V.ui.ddmanager.prepareOffsets(t,e)}})!==V.uiBackCompat&&V.widget(\"ui.droppable\",V.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}});V.ui.droppable,V.widget(\"ui.progressbar\",{version:\"1.13.1\",options:{classes:{\"ui-progressbar\":\"ui-corner-all\",\"ui-progressbar-value\":\"ui-corner-left\",\"ui-progressbar-complete\":\"ui-corner-right\"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:\"progressbar\",\"aria-valuemin\":this.min}),this._addClass(\"ui-progressbar\",\"ui-widget ui-widget-content\"),this.valueDiv=V(\"<div>\").appendTo(this.element),this._addClass(this.valueDiv,\"ui-progressbar-value\",\"ui-widget-header\"),this._refreshValue()},_destroy:function(){this.element.removeAttr(\"role aria-valuemin aria-valuemax aria-valuenow\"),this.valueDiv.remove()},value:function(t){if(void 0===t)return this.options.value;this.options.value=this._constrainedValue(t),this._refreshValue()},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,\"number\"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){\"max\"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr(\"aria-disabled\",t),this._toggleClass(null,\"ui-state-disabled\",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,e=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(e.toFixed(0)+\"%\"),this._toggleClass(this.valueDiv,\"ui-progressbar-complete\",null,t===this.options.max)._toggleClass(\"ui-progressbar-indeterminate\",null,this.indeterminate),this.indeterminate?(this.element.removeAttr(\"aria-valuenow\"),this.overlayDiv||(this.overlayDiv=V(\"<div>\").appendTo(this.valueDiv),this._addClass(this.overlayDiv,\"ui-progressbar-overlay\"))):(this.element.attr({\"aria-valuemax\":this.options.max,\"aria-valuenow\":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger(\"change\")),t===this.options.max&&this._trigger(\"complete\")}}),V.widget(\"ui.selectable\",V.ui.mouse,{version:\"1.13.1\",options:{appendTo:\"body\",autoRefresh:!0,distance:0,filter:\"*\",tolerance:\"touch\",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var i=this;this._addClass(\"ui-selectable\"),this.dragged=!1,this.refresh=function(){i.elementPos=V(i.element[0]).offset(),i.selectees=V(i.options.filter,i.element[0]),i._addClass(i.selectees,\"ui-selectee\"),i.selectees.each(function(){var t=V(this),e=t.offset(),e={left:e.left-i.elementPos.left,top:e.top-i.elementPos.top};V.data(this,\"selectable-item\",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass(\"ui-selected\"),selecting:t.hasClass(\"ui-selecting\"),unselecting:t.hasClass(\"ui-unselecting\")})})},this.refresh(),this._mouseInit(),this.helper=V(\"<div>\"),this._addClass(this.helper,\"ui-selectable-helper\")},_destroy:function(){this.selectees.removeData(\"selectable-item\"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.elementPos=V(this.element[0]).offset(),this.options.disabled||(this.selectees=V(t.filter,this.element[0]),this._trigger(\"start\",i),V(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(\".ui-selected\").each(function(){var t=V.data(this,\"selectable-item\");t.startselected=!0,i.metaKey||i.ctrlKey||(s._removeClass(t.$element,\"ui-selected\"),t.selected=!1,s._addClass(t.$element,\"ui-unselecting\"),t.unselecting=!0,s._trigger(\"unselecting\",i,{unselecting:t.element}))}),V(i.target).parents().addBack().each(function(){var t,e=V.data(this,\"selectable-item\");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass(\"ui-selected\"),s._removeClass(e.$element,t?\"ui-unselecting\":\"ui-selected\")._addClass(e.$element,t?\"ui-selecting\":\"ui-unselecting\"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger(\"selecting\",i,{selecting:e.element}):s._trigger(\"unselecting\",i,{unselecting:e.element}),!1}))},_mouseDrag:function(s){if(this.dragged=!0,!this.options.disabled){var t,n=this,o=this.options,a=this.opos[0],r=this.opos[1],l=s.pageX,h=s.pageY;return l<a&&(t=l,l=a,a=t),h<r&&(t=h,h=r,r=t),this.helper.css({left:a,top:r,width:l-a,height:h-r}),this.selectees.each(function(){var t=V.data(this,\"selectable-item\"),e=!1,i={};t&&t.element!==n.element[0]&&(i.left=t.left+n.elementPos.left,i.right=t.right+n.elementPos.left,i.top=t.top+n.elementPos.top,i.bottom=t.bottom+n.elementPos.top,\"touch\"===o.tolerance?e=!(i.left>l||i.right<a||i.top>h||i.bottom<r):\"fit\"===o.tolerance&&(e=i.left>a&&i.right<l&&i.top>r&&i.bottom<h),e?(t.selected&&(n._removeClass(t.$element,\"ui-selected\"),t.selected=!1),t.unselecting&&(n._removeClass(t.$element,\"ui-unselecting\"),t.unselecting=!1),t.selecting||(n._addClass(t.$element,\"ui-selecting\"),t.selecting=!0,n._trigger(\"selecting\",s,{selecting:t.element}))):(t.selecting&&((s.metaKey||s.ctrlKey)&&t.startselected?(n._removeClass(t.$element,\"ui-selecting\"),t.selecting=!1,n._addClass(t.$element,\"ui-selected\"),t.selected=!0):(n._removeClass(t.$element,\"ui-selecting\"),t.selecting=!1,t.startselected&&(n._addClass(t.$element,\"ui-unselecting\"),t.unselecting=!0),n._trigger(\"unselecting\",s,{unselecting:t.element}))),t.selected&&(s.metaKey||s.ctrlKey||t.startselected||(n._removeClass(t.$element,\"ui-selected\"),t.selected=!1,n._addClass(t.$element,\"ui-unselecting\"),t.unselecting=!0,n._trigger(\"unselecting\",s,{unselecting:t.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,V(\".ui-unselecting\",this.element[0]).each(function(){var t=V.data(this,\"selectable-item\");i._removeClass(t.$element,\"ui-unselecting\"),t.unselecting=!1,t.startselected=!1,i._trigger(\"unselected\",e,{unselected:t.element})}),V(\".ui-selecting\",this.element[0]).each(function(){var t=V.data(this,\"selectable-item\");i._removeClass(t.$element,\"ui-selecting\")._addClass(t.$element,\"ui-selected\"),t.selecting=!1,t.selected=!0,t.startselected=!0,i._trigger(\"selected\",e,{selected:t.element})}),this._trigger(\"stop\",e),this.helper.remove(),!1}}),V.widget(\"ui.selectmenu\",[V.ui.formResetMixin,{version:\"1.13.1\",defaultElement:\"<select>\",options:{appendTo:null,classes:{\"ui-selectmenu-button-open\":\"ui-corner-top\",\"ui-selectmenu-button-closed\":\"ui-corner-all\"},disabled:null,icons:{button:\"ui-icon-triangle-1-s\"},position:{my:\"left top\",at:\"left bottom\",collision:\"none\"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr(\"id\");this.ids={element:t,button:t+\"-button\",menu:t+\"-menu\"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=V()},_drawButton:function(){var t,e=this,i=this._parseOption(this.element.find(\"option:selected\"),this.element[0].selectedIndex);this.labels=this.element.labels().attr(\"for\",this.ids.button),this._on(this.labels,{click:function(t){this.button.trigger(\"focus\"),t.preventDefault()}}),this.element.hide(),this.button=V(\"<span>\",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:\"combobox\",\"aria-expanded\":\"false\",\"aria-autocomplete\":\"list\",\"aria-owns\":this.ids.menu,\"aria-haspopup\":\"true\",title:this.element.attr(\"title\")}).insertAfter(this.element),this._addClass(this.button,\"ui-selectmenu-button ui-selectmenu-button-closed\",\"ui-button ui-widget\"),t=V(\"<span>\").appendTo(this.button),this._addClass(t,\"ui-selectmenu-icon\",\"ui-icon \"+this.options.icons.button),this.buttonItem=this._renderButtonItem(i).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one(\"focusin\",function(){e._rendered||e._refreshMenu()})},_drawMenu:function(){var i=this;this.menu=V(\"<ul>\",{\"aria-hidden\":\"true\",\"aria-labelledby\":this.ids.button,id:this.ids.menu}),this.menuWrap=V(\"<div>\").append(this.menu),this._addClass(this.menuWrap,\"ui-selectmenu-menu\",\"ui-front\"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{\"ui-menu\":\"ui-corner-bottom\"},role:\"listbox\",select:function(t,e){t.preventDefault(),i._setSelection(),i._select(e.item.data(\"ui-selectmenu-item\"),t)},focus:function(t,e){e=e.item.data(\"ui-selectmenu-item\");null!=i.focusIndex&&e.index!==i.focusIndex&&(i._trigger(\"focus\",t,{item:e}),i.isOpen||i._select(e,t)),i.focusIndex=e.index,i.button.attr(\"aria-activedescendant\",i.menuItems.eq(e.index).attr(\"id\"))}}).menu(\"instance\"),this.menuInstance._off(this.menu,\"mouseleave\"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data(\"ui-selectmenu-item\")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t=this.element.find(\"option\");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find(\"li\").not(\".ui-selectmenu-optgroup\").find(\".ui-menu-item-wrapper\"),this._rendered=!0,t.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data(\"ui-selectmenu-item\")),this._setOption(\"disabled\",this.element.prop(\"disabled\")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(\".ui-state-active\"),null,\"ui-state-active\"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger(\"open\",t)))},_position:function(){this.menuWrap.position(V.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger(\"close\",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var e=V(\"<span>\");return this._setText(e,t.label),this._addClass(e,\"ui-selectmenu-text\"),e},_renderMenu:function(s,t){var n=this,o=\"\";V.each(t,function(t,e){var i;e.optgroup!==o&&(i=V(\"<li>\",{text:e.optgroup}),n._addClass(i,\"ui-selectmenu-optgroup\",\"ui-menu-divider\"+(e.element.parent(\"optgroup\").prop(\"disabled\")?\" ui-state-disabled\":\"\")),i.appendTo(s),o=e.optgroup),n._renderItemData(s,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data(\"ui-selectmenu-item\",e)},_renderItem:function(t,e){var i=V(\"<li>\"),s=V(\"<div>\",{title:e.element.attr(\"title\")});return e.disabled&&this._addClass(i,null,\"ui-state-disabled\"),this._setText(s,e.label),i.append(s).appendTo(t)},_setText:function(t,e){e?t.text(e):t.html(\" \")},_move:function(t,e){var i,s=\".ui-menu-item\";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent(\"li\"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent(\"li\"),s+=\":not(.ui-state-disabled)\"),(s=\"first\"===t||\"last\"===t?i[\"first\"===t?\"prevAll\":\"nextAll\"](s).eq(-1):i[t+\"All\"](s).eq(0)).length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent(\"li\")},_toggle:function(t){this[this.isOpen?\"close\":\"open\"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?((t=window.getSelection()).removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(V(t.target).closest(\".ui-selectmenu-menu, #\"+V.escapeSelector(this.ids.button)).length||this.close(t))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection()).rangeCount&&(this.range=t.getRangeAt(0)):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(t){var e=!0;switch(t.keyCode){case V.ui.keyCode.TAB:case V.ui.keyCode.ESCAPE:this.close(t),e=!1;break;case V.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case V.ui.keyCode.UP:t.altKey?this._toggle(t):this._move(\"prev\",t);break;case V.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move(\"next\",t);break;case V.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case V.ui.keyCode.LEFT:this._move(\"prev\",t);break;case V.ui.keyCode.RIGHT:this._move(\"next\",t);break;case V.ui.keyCode.HOME:case V.ui.keyCode.PAGE_UP:this._move(\"first\",t);break;case V.ui.keyCode.END:case V.ui.keyCode.PAGE_DOWN:this._move(\"last\",t);break;default:this.menu.trigger(t),e=!1}e&&t.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent(\"li\");e.hasClass(\"ui-state-disabled\")||this._select(e.data(\"ui-selectmenu-item\"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger(\"select\",e,{item:t}),t.index!==i&&this._trigger(\"change\",e,{item:t}),this.close(e)},_setAria:function(t){t=this.menuItems.eq(t.index).attr(\"id\");this.button.attr({\"aria-labelledby\":t,\"aria-activedescendant\":t}),this.menu.attr(\"aria-activedescendant\",t)},_setOption:function(t,e){var i;\"icons\"===t&&(i=this.button.find(\"span.ui-icon\"),this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)),this._super(t,e),\"appendTo\"===t&&this.menuWrap.appendTo(this._appendTo()),\"width\"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option(\"disabled\",t),this.button.attr(\"aria-disabled\",t),this._toggleClass(this.button,null,\"ui-state-disabled\",t),this.element.prop(\"disabled\",t),t?(this.button.attr(\"tabindex\",-1),this.close()):this.button.attr(\"tabindex\",0)},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(\".ui-front, dialog\"):t).length?this.document[0].body:t},_toggleAttr:function(){this.button.attr(\"aria-expanded\",this.isOpen),this._removeClass(this.button,\"ui-selectmenu-button-\"+(this.isOpen?\"closed\":\"open\"))._addClass(this.button,\"ui-selectmenu-button-\"+(this.isOpen?\"open\":\"closed\"))._toggleClass(this.menuWrap,\"ui-selectmenu-open\",null,this.isOpen),this.menu.attr(\"aria-hidden\",!this.isOpen)},_resizeButton:function(){var t=this.options.width;!1!==t?(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)):this.button.css(\"width\",\"\")},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width(\"\").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop(\"disabled\"),t},_parseOptions:function(t){var i=this,s=[];t.each(function(t,e){e.hidden||s.push(i._parseOption(V(e),t))}),this.items=s},_parseOption:function(t,e){var i=t.parent(\"optgroup\");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr(\"label\")||\"\",disabled:i.prop(\"disabled\")||t.prop(\"disabled\")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr(\"for\",this.ids.element)}}]),V.widget(\"ui.slider\",V.ui.mouse,{version:\"1.13.1\",widgetEventPrefix:\"slide\",options:{animate:!1,classes:{\"ui-slider\":\"ui-corner-all\",\"ui-slider-handle\":\"ui-corner-all\",\"ui-slider-range\":\"ui-corner-all ui-widget-header\"},distance:0,max:100,min:0,orientation:\"horizontal\",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass(\"ui-slider ui-slider-\"+this.orientation,\"ui-widget ui-widget-content\"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,e=this.options,i=this.element.find(\".ui-slider-handle\"),s=[],n=e.values&&e.values.length||1;for(i.length>n&&(i.slice(n).remove(),i=i.slice(0,n)),t=i.length;t<n;t++)s.push(\"<span tabindex='0'></span>\");this.handles=i.add(V(s.join(\"\")).appendTo(this.element)),this._addClass(this.handles,\"ui-slider-handle\",\"ui-state-default\"),this.handle=this.handles.eq(0),this.handles.each(function(t){V(this).data(\"ui-slider-handle-index\",t).attr(\"tabIndex\",0)})},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:Array.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,\"ui-slider-range-min ui-slider-range-max\"),this.range.css({left:\"\",bottom:\"\"})):(this.range=V(\"<div>\").appendTo(this.element),this._addClass(this.range,\"ui-slider-range\")),\"min\"!==t.range&&\"max\"!==t.range||this._addClass(this.range,\"ui-slider-range-\"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,o,e,a,r=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),a={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(a),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var e=Math.abs(i-r.values(t));(e<s||s===e&&(t===r._lastChangedValue||r.values(t)===l.min))&&(s=e,n=V(this),o=t)}),!1!==this._start(t,o)&&(this._mouseSliding=!0,this._handleIndex=o,this._addClass(n,null,\"ui-state-active\"),n.trigger(\"focus\"),e=n.offset(),a=!V(t.target).parents().addBack().is(\".ui-slider-handle\"),this._clickOffset=a?{left:0,top:0}:{left:t.pageX-e.left-n.width()/2,top:t.pageY-e.top-n.height()/2-(parseInt(n.css(\"borderTopWidth\"),10)||0)-(parseInt(n.css(\"borderBottomWidth\"),10)||0)+(parseInt(n.css(\"marginTop\"),10)||0)},this.handles.hasClass(\"ui-state-hover\")||this._slide(t,o,i),this._animateOff=!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},e=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,e),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,\"ui-state-active\"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1},_detectOrientation:function(){this.orientation=\"vertical\"===this.options.orientation?\"vertical\":\"horizontal\"},_normValueFromMouse:function(t){var e,t=\"horizontal\"===this.orientation?(e=this.elementSize.width,t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),t=t/e;return(t=1<t?1:t)<0&&(t=0),\"vertical\"===this.orientation&&(t=1-t),e=this._valueMax()-this._valueMin(),e=this._valueMin()+t*e,this._trimAlignValue(e)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger(\"start\",t,this._uiHash(e))},_slide:function(t,e,i){var s,n=this.value(),o=this.values();this._hasMultipleValues()&&(s=this.values(e?0:1),n=this.values(e),2===this.options.values.length&&!0===this.options.range&&(i=0===e?Math.min(s,i):Math.max(s,i)),o[e]=i),i!==n&&!1!==this._trigger(\"slide\",t,this._uiHash(e,i,o))&&(this._hasMultipleValues()?this.values(e,i):this.value(i))},_stop:function(t,e){this._trigger(\"stop\",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger(\"change\",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),void this._change(null,0)):this._value()},values:function(t,e){var i,s,n;if(1<arguments.length)return this.options.values[t]=this._trimAlignValue(e),this._refreshValue(),void this._change(null,t);if(!arguments.length)return this._values();if(!Array.isArray(t))return this._hasMultipleValues()?this._values(t):this.value();for(i=this.options.values,s=t,n=0;n<i.length;n+=1)i[n]=this._trimAlignValue(s[n]),this._change(null,n);this._refreshValue()},_setOption:function(t,e){var i,s=0;switch(\"range\"===t&&!0===this.options.range&&(\"min\"===e?(this.options.value=this._values(0),this.options.values=null):\"max\"===e&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),Array.isArray(this.options.values)&&(s=this.options.values.length),this._super(t,e),t){case\"orientation\":this._detectOrientation(),this._removeClass(\"ui-slider-horizontal ui-slider-vertical\")._addClass(\"ui-slider-\"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(e),this.handles.css(\"horizontal\"===e?\"bottom\":\"left\",\"\");break;case\"value\":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case\"values\":for(this._animateOff=!0,this._refreshValue(),i=s-1;0<=i;i--)this._change(null,i);this._animateOff=!1;break;case\"step\":case\"min\":case\"max\":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case\"range\":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,\"ui-state-disabled\",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i;if(arguments.length)return t=this.options.values[t],t=this._trimAlignValue(t);if(this._hasMultipleValues()){for(e=this.options.values.slice(),i=0;i<e.length;i+=1)e[i]=this._trimAlignValue(e[i]);return e}return[]},_trimAlignValue:function(t){if(t<=this._valueMin())return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=0<this.options.step?this.options.step:1,i=(t-this._valueMin())%e,t=t-i;return 2*Math.abs(i)>=e&&(t+=0<i?e:-e),parseFloat(t.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step;(t=Math.round((t-e)/i)*i+e)>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var e=t.toString(),t=e.indexOf(\".\");return-1===t?0:e.length-t-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){\"vertical\"===t&&this.range.css({width:\"\",left:\"\"}),\"horizontal\"===t&&this.range.css({height:\"\",bottom:\"\"})},_refreshValue:function(){var e,i,t,s,n,o=this.options.range,a=this.options,r=this,l=!this._animateOff&&a.animate,h={};this._hasMultipleValues()?this.handles.each(function(t){i=(r.values(t)-r._valueMin())/(r._valueMax()-r._valueMin())*100,h[\"horizontal\"===r.orientation?\"left\":\"bottom\"]=i+\"%\",V(this).stop(1,1)[l?\"animate\":\"css\"](h,a.animate),!0===r.options.range&&(\"horizontal\"===r.orientation?(0===t&&r.range.stop(1,1)[l?\"animate\":\"css\"]({left:i+\"%\"},a.animate),1===t&&r.range[l?\"animate\":\"css\"]({width:i-e+\"%\"},{queue:!1,duration:a.animate})):(0===t&&r.range.stop(1,1)[l?\"animate\":\"css\"]({bottom:i+\"%\"},a.animate),1===t&&r.range[l?\"animate\":\"css\"]({height:i-e+\"%\"},{queue:!1,duration:a.animate}))),e=i}):(t=this.value(),s=this._valueMin(),n=this._valueMax(),i=n!==s?(t-s)/(n-s)*100:0,h[\"horizontal\"===this.orientation?\"left\":\"bottom\"]=i+\"%\",this.handle.stop(1,1)[l?\"animate\":\"css\"](h,a.animate),\"min\"===o&&\"horizontal\"===this.orientation&&this.range.stop(1,1)[l?\"animate\":\"css\"]({width:i+\"%\"},a.animate),\"max\"===o&&\"horizontal\"===this.orientation&&this.range.stop(1,1)[l?\"animate\":\"css\"]({width:100-i+\"%\"},a.animate),\"min\"===o&&\"vertical\"===this.orientation&&this.range.stop(1,1)[l?\"animate\":\"css\"]({height:i+\"%\"},a.animate),\"max\"===o&&\"vertical\"===this.orientation&&this.range.stop(1,1)[l?\"animate\":\"css\"]({height:100-i+\"%\"},a.animate))},_handleEvents:{keydown:function(t){var e,i,s,n=V(t.target).data(\"ui-slider-handle-index\");switch(t.keyCode){case V.ui.keyCode.HOME:case V.ui.keyCode.END:case V.ui.keyCode.PAGE_UP:case V.ui.keyCode.PAGE_DOWN:case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(V(t.target),null,\"ui-state-active\"),!1===this._start(t,n)))return}switch(s=this.options.step,e=i=this._hasMultipleValues()?this.values(n):this.value(),t.keyCode){case V.ui.keyCode.HOME:i=this._valueMin();break;case V.ui.keyCode.END:i=this._valueMax();break;case V.ui.keyCode.PAGE_UP:i=this._trimAlignValue(e+(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(e-(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:if(e===this._valueMax())return;i=this._trimAlignValue(e+s);break;case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(e===this._valueMin())return;i=this._trimAlignValue(e-s)}this._slide(t,n,i)},keyup:function(t){var e=V(t.target).data(\"ui-slider-handle-index\");this._keySliding&&(this._keySliding=!1,this._stop(t,e),this._change(t,e),this._removeClass(V(t.target),null,\"ui-state-active\"))}}}),V.widget(\"ui.sortable\",V.ui.mouse,{version:\"1.13.1\",widgetEventPrefix:\"sort\",ready:!1,options:{appendTo:\"parent\",axis:!1,connectWith:!1,containment:!1,cursor:\"auto\",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:\"original\",items:\"> *\",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:\"default\",tolerance:\"intersect\",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t<e+i},_isFloating:function(t){return/left|right/.test(t.css(\"float\"))||/inline|table-cell/.test(t.css(\"display\"))},_create:function(){this.containerCache={},this._addClass(\"ui-sortable\"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),\"handle\"===t&&this._setHandleClassName()},_setHandleClassName:function(){var t=this;this._removeClass(this.element.find(\".ui-sortable-handle\"),\"ui-sortable-handle\"),V.each(this.items,function(){t._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,\"ui-sortable-handle\")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;0<=t;t--)this.items[t].item.removeData(this.widgetName+\"-item\");return this},_mouseCapture:function(t,e){var i=null,s=!1,n=this;return!this.reverting&&(!this.options.disabled&&\"static\"!==this.options.type&&(this._refreshItems(t),V(t.target).parents().each(function(){if(V.data(this,n.widgetName+\"-item\")===n)return i=V(this),!1}),!!(i=V.data(t.target,n.widgetName+\"-item\")===n?V(t.target):i)&&(!(this.options.handle&&!e&&(V(this.options.handle,i).find(\"*\").addBack().each(function(){this===t.target&&(s=!0)}),!s))&&(this.currentItem=i,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(t,e,i){var s,n,o=this.options;if((this.currentContainer=this).refreshPositions(),this.appendTo=V(\"parent\"!==o.appendTo?o.appendTo:this.currentItem.parent()),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},V.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},relative:this._getRelativeOffset()}),this.helper.css(\"position\",\"absolute\"),this.cssPosition=this.helper.css(\"position\"),o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),this.scrollParent=this.placeholder.scrollParent(),V.extend(this.offset,{parent:this._getParentOffset()}),o.containment&&this._setContainment(),o.cursor&&\"auto\"!==o.cursor&&(n=this.document.find(\"body\"),this.storedCursor=n.css(\"cursor\"),n.css(\"cursor\",o.cursor),this.storedStylesheet=V(\"<style>*{ cursor: \"+o.cursor+\" !important; }</style>\").appendTo(n)),o.zIndex&&(this.helper.css(\"zIndex\")&&(this._storedZIndex=this.helper.css(\"zIndex\")),this.helper.css(\"zIndex\",o.zIndex)),o.opacity&&(this.helper.css(\"opacity\")&&(this._storedOpacity=this.helper.css(\"opacity\")),this.helper.css(\"opacity\",o.opacity)),this.scrollParent[0]!==this.document[0]&&\"HTML\"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger(\"start\",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger(\"activate\",t,this._uiHash(this));return V.ui.ddmanager&&(V.ui.ddmanager.current=this),V.ui.ddmanager&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,\"ui-sortable-helper\"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo(\"absolute\"),this._mouseDrag(t),!0},_scroll:function(t){var e=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&\"HTML\"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<e.scrollSensitivity?this.scrollParent[0].scrollTop=i=this.scrollParent[0].scrollTop+e.scrollSpeed:t.pageY-this.overflowOffset.top<e.scrollSensitivity&&(this.scrollParent[0].scrollTop=i=this.scrollParent[0].scrollTop-e.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<e.scrollSensitivity?this.scrollParent[0].scrollLeft=i=this.scrollParent[0].scrollLeft+e.scrollSpeed:t.pageX-this.overflowOffset.left<e.scrollSensitivity&&(this.scrollParent[0].scrollLeft=i=this.scrollParent[0].scrollLeft-e.scrollSpeed)):(t.pageY-this.document.scrollTop()<e.scrollSensitivity?i=this.document.scrollTop(this.document.scrollTop()-e.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<e.scrollSensitivity&&(i=this.document.scrollTop(this.document.scrollTop()+e.scrollSpeed)),t.pageX-this.document.scrollLeft()<e.scrollSensitivity?i=this.document.scrollLeft(this.document.scrollLeft()-e.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<e.scrollSensitivity&&(i=this.document.scrollLeft(this.document.scrollLeft()+e.scrollSpeed))),i},_mouseDrag:function(t){var e,i,s,n,o=this.options;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo(\"absolute\"),this.options.axis&&\"y\"===this.options.axis||(this.helper[0].style.left=this.position.left+\"px\"),this.options.axis&&\"x\"===this.options.axis||(this.helper[0].style.top=this.position.top+\"px\"),o.scroll&&!1!==this._scroll(t)&&(this._refreshItemPositions(!0),V.ui.ddmanager&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t)),this.dragDirection={vertical:this._getDragVerticalDirection(),horizontal:this._getDragHorizontalDirection()},e=this.items.length-1;0<=e;e--)if(s=(i=this.items[e]).item[0],(n=this._intersectsWithPointer(i))&&i.instance===this.currentContainer&&!(s===this.currentItem[0]||this.placeholder[1===n?\"next\":\"prev\"]()[0]===s||V.contains(this.placeholder[0],s)||\"semi-dynamic\"===this.options.type&&V.contains(this.element[0],s))){if(this.direction=1===n?\"down\":\"up\",\"pointer\"!==this.options.tolerance&&!this._intersectsWithSides(i))break;this._rearrange(t,i),this._trigger(\"change\",t,this._uiHash());break}return this._contactContainers(t),V.ui.ddmanager&&V.ui.ddmanager.drag(this,t),this._trigger(\"sort\",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,e){var i,s,n,o;if(t)return V.ui.ddmanager&&!this.options.dropBehaviour&&V.ui.ddmanager.drop(this,t),this.options.revert?(s=(i=this).placeholder.offset(),o={},(n=this.options.axis)&&\"x\"!==n||(o.left=s.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),n&&\"y\"!==n||(o.top=s.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,V(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){i._clear(t)})):this._clear(t,e),!1},cancel:function(){if(this.dragging){this._mouseUp(new V.Event(\"mouseup\",{target:null})),\"original\"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,\"ui-sortable-helper\")):this.currentItem.show();for(var t=this.containers.length-1;0<=t;t--)this.containers[t]._trigger(\"deactivate\",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger(\"out\",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),\"original\"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),V.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?V(this.domPosition.prev).after(this.currentItem):V(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var t=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},V(t).each(function(){var t=(V(e.item||this).attr(e.attribute||\"id\")||\"\").match(e.expression||/(.+)[\\-=_](.+)/);t&&i.push((e.key||t[1]+\"[]\")+\"=\"+(e.key&&e.expression?t[1]:t[2]))}),!i.length&&e.key&&i.push(e.key+\"=\"),i.join(\"&\")},toArray:function(t){var e=this._getItemsAsjQuery(t&&t.connected),i=[];return t=t||{},e.each(function(){i.push(V(t.item||this).attr(t.attribute||\"id\")||\"\")}),i},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,l=r+t.height,h=this.offset.click.top,c=this.offset.click.left,h=\"x\"===this.options.axis||r<s+h&&s+h<l,c=\"y\"===this.options.axis||o<e+c&&e+c<a;return\"pointer\"===this.options.tolerance||this.options.forcePointerForContainers||\"pointer\"!==this.options.tolerance&&this.helperProportions[this.floating?\"width\":\"height\"]>t[this.floating?\"width\":\"height\"]?h&&c:o<e+this.helperProportions.width/2&&i-this.helperProportions.width/2<a&&r<s+this.helperProportions.height/2&&n-this.helperProportions.height/2<l},_intersectsWithPointer:function(t){var e=\"x\"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),t=\"y\"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width);return!(!e||!t)&&(e=this.dragDirection.vertical,t=this.dragDirection.horizontal,this.floating?\"right\"===t||\"down\"===e?2:1:e&&(\"down\"===e?2:1))},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this.dragDirection.vertical,t=this.dragDirection.horizontal;return this.floating&&t?\"right\"===t&&i||\"left\"===t&&!i:s&&(\"down\"===s&&e||\"up\"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!=t&&(0<t?\"down\":\"up\")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!=t&&(0<t?\"right\":\"left\")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(t){var e,i,s,n,o=[],a=[],r=this._connectWith();if(r&&t)for(e=r.length-1;0<=e;e--)for(i=(s=V(r[e],this.document[0])).length-1;0<=i;i--)(n=V.data(s[i],this.widgetFullName))&&n!==this&&!n.options.disabled&&a.push([\"function\"==typeof n.options.items?n.options.items.call(n.element):V(n.options.items,n.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"),n]);function l(){o.push(this)}for(a.push([\"function\"==typeof this.options.items?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):V(this.options.items,this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"),this]),e=a.length-1;0<=e;e--)a[e][0].each(l);return V(o)},_removeCurrentsFromItems:function(){var i=this.currentItem.find(\":data(\"+this.widgetName+\"-item)\");this.items=V.grep(this.items,function(t){for(var e=0;e<i.length;e++)if(i[e]===t.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var e,i,s,n,o,a,r,l,h=this.items,c=[[\"function\"==typeof this.options.items?this.options.items.call(this.element[0],t,{item:this.currentItem}):V(this.options.items,this.element),this]],u=this._connectWith();if(u&&this.ready)for(e=u.length-1;0<=e;e--)for(i=(s=V(u[e],this.document[0])).length-1;0<=i;i--)(n=V.data(s[i],this.widgetFullName))&&n!==this&&!n.options.disabled&&(c.push([\"function\"==typeof n.options.items?n.options.items.call(n.element[0],t,{item:this.currentItem}):V(n.options.items,n.element),n]),this.containers.push(n));for(e=c.length-1;0<=e;e--)for(o=c[e][1],l=(a=c[e][i=0]).length;i<l;i++)(r=V(a[i])).data(this.widgetName+\"-item\",o),h.push({item:r,instance:o,width:0,height:0,left:0,top:0})},_refreshItemPositions:function(t){for(var e,i,s=this.items.length-1;0<=s;s--)e=this.items[s],this.currentContainer&&e.instance!==this.currentContainer&&e.item[0]!==this.currentItem[0]||(i=this.options.toleranceElement?V(this.options.toleranceElement,e.item):e.item,t||(e.width=i.outerWidth(),e.height=i.outerHeight()),i=i.offset(),e.left=i.left,e.top=i.top)},refreshPositions:function(t){var e,i;if(this.floating=!!this.items.length&&(\"x\"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),this._refreshItemPositions(t),this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(e=this.containers.length-1;0<=e;e--)i=this.containers[e].element.offset(),this.containers[e].containerCache.left=i.left,this.containers[e].containerCache.top=i.top,this.containers[e].containerCache.width=this.containers[e].element.outerWidth(),this.containers[e].containerCache.height=this.containers[e].element.outerHeight();return this},_createPlaceholder:function(i){var s,n,o=(i=i||this).options;o.placeholder&&o.placeholder.constructor!==String||(s=o.placeholder,n=i.currentItem[0].nodeName.toLowerCase(),o.placeholder={element:function(){var t=V(\"<\"+n+\">\",i.document[0]);return i._addClass(t,\"ui-sortable-placeholder\",s||i.currentItem[0].className)._removeClass(t,\"ui-sortable-helper\"),\"tbody\"===n?i._createTrPlaceholder(i.currentItem.find(\"tr\").eq(0),V(\"<tr>\",i.document[0]).appendTo(t)):\"tr\"===n?i._createTrPlaceholder(i.currentItem,t):\"img\"===n&&t.attr(\"src\",i.currentItem.attr(\"src\")),s||t.css(\"visibility\",\"hidden\"),t},update:function(t,e){s&&!o.forcePlaceholderSize||(e.height()&&(!o.forcePlaceholderSize||\"tbody\"!==n&&\"tr\"!==n)||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css(\"paddingTop\")||0,10)-parseInt(i.currentItem.css(\"paddingBottom\")||0,10)),e.width()||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css(\"paddingLeft\")||0,10)-parseInt(i.currentItem.css(\"paddingRight\")||0,10)))}}),i.placeholder=V(o.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),o.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){V(\"<td> </td>\",i.document[0]).attr(\"colspan\",V(this).attr(\"colspan\")||1).appendTo(e)})},_contactContainers:function(t){for(var e,i,s,n,o,a,r,l,h,c=null,u=null,d=this.containers.length-1;0<=d;d--)V.contains(this.currentItem[0],this.containers[d].element[0])||(this._intersectsWith(this.containers[d].containerCache)?c&&V.contains(this.containers[d].element[0],c.element[0])||(c=this.containers[d],u=d):this.containers[d].containerCache.over&&(this.containers[d]._trigger(\"out\",t,this._uiHash(this)),this.containers[d].containerCache.over=0));if(c)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger(\"over\",t,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,s=null,n=(l=c.floating||this._isFloating(this.currentItem))?\"left\":\"top\",o=l?\"width\":\"height\",h=l?\"pageX\":\"pageY\",e=this.items.length-1;0<=e;e--)V.contains(this.containers[u].element[0],this.items[e].item[0])&&this.items[e].item[0]!==this.currentItem[0]&&(a=this.items[e].item.offset()[n],r=!1,t[h]-a>this.items[e][o]/2&&(r=!0),Math.abs(t[h]-a)<i&&(i=Math.abs(t[h]-a),s=this.items[e],this.direction=r?\"up\":\"down\"));(s||this.options.dropOnEmpty)&&(this.currentContainer!==this.containers[u]?(s?this._rearrange(t,s,null,!0):this._rearrange(t,null,this.containers[u].element,!0),this._trigger(\"change\",t,this._uiHash()),this.containers[u]._trigger(\"change\",t,this._uiHash(this)),this.currentContainer=this.containers[u],this.options.placeholder.update(this.currentContainer,this.placeholder),this.scrollParent=this.placeholder.scrollParent(),this.scrollParent[0]!==this.document[0]&&\"HTML\"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this.containers[u]._trigger(\"over\",t,this._uiHash(this)),this.containers[u].containerCache.over=1):this.currentContainer.containerCache.over||(this.containers[u]._trigger(\"over\",t,this._uiHash()),this.currentContainer.containerCache.over=1))}},_createHelper:function(t){var e=this.options,t=\"function\"==typeof e.helper?V(e.helper.apply(this.element[0],[t,this.currentItem])):\"clone\"===e.helper?this.currentItem.clone():this.currentItem;return t.parents(\"body\").length||this.appendTo[0].appendChild(t[0]),t[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css(\"position\"),top:this.currentItem.css(\"top\"),left:this.currentItem.css(\"left\")}),t[0].style.width&&!e.forceHelperSize||t.width(this.currentItem.width()),t[0].style.height&&!e.forceHelperSize||t.height(this.currentItem.height()),t},_adjustOffsetFromHelper:function(t){\"string\"==typeof t&&(t=t.split(\" \")),\"left\"in(t=Array.isArray(t)?{left:+t[0],top:+t[1]||0}:t)&&(this.offset.click.left=t.left+this.margins.left),\"right\"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),\"top\"in t&&(this.offset.click.top=t.top+this.margins.top),\"bottom\"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return\"absolute\"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&V.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),{top:(t=this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&\"html\"===this.offsetParent[0].tagName.toLowerCase()&&V.ui.ie?{top:0,left:0}:t).top+(parseInt(this.offsetParent.css(\"borderTopWidth\"),10)||0),left:t.left+(parseInt(this.offsetParent.css(\"borderLeftWidth\"),10)||0)}},_getRelativeOffset:function(){if(\"relative\"!==this.cssPosition)return{top:0,left:0};var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css(\"top\"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css(\"left\"),10)||0)+this.scrollParent.scrollLeft()}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css(\"marginLeft\"),10)||0,top:parseInt(this.currentItem.css(\"marginTop\"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e,i=this.options;\"parent\"===i.containment&&(i.containment=this.helper[0].parentNode),\"document\"!==i.containment&&\"window\"!==i.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,\"document\"===i.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,(\"document\"===i.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(i.containment)||(t=V(i.containment)[0],e=V(i.containment).offset(),i=\"hidden\"!==V(t).css(\"overflow\"),this.containment=[e.left+(parseInt(V(t).css(\"borderLeftWidth\"),10)||0)+(parseInt(V(t).css(\"paddingLeft\"),10)||0)-this.margins.left,e.top+(parseInt(V(t).css(\"borderTopWidth\"),10)||0)+(parseInt(V(t).css(\"paddingTop\"),10)||0)-this.margins.top,e.left+(i?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(V(t).css(\"borderLeftWidth\"),10)||0)-(parseInt(V(t).css(\"paddingRight\"),10)||0)-this.helperProportions.width-this.margins.left,e.top+(i?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(V(t).css(\"borderTopWidth\"),10)||0)-(parseInt(V(t).css(\"paddingBottom\"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,e){e=e||this.position;var i=\"absolute\"===t?1:-1,s=\"absolute\"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&V.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,t=/(html|body)/i.test(s[0].tagName);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-(\"fixed\"===this.cssPosition?-this.scrollParent.scrollTop():t?0:s.scrollTop())*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-(\"fixed\"===this.cssPosition?-this.scrollParent.scrollLeft():t?0:s.scrollLeft())*i}},_generatePosition:function(t){var e=this.options,i=t.pageX,s=t.pageY,n=\"absolute\"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&V.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return\"relative\"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(i=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(s=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(i=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),e.grid&&(t=this.originalPageY+Math.round((s-this.originalPageY)/e.grid[1])*e.grid[1],s=!this.containment||t-this.offset.click.top>=this.containment[1]&&t-this.offset.click.top<=this.containment[3]?t:t-this.offset.click.top>=this.containment[1]?t-e.grid[1]:t+e.grid[1],t=this.originalPageX+Math.round((i-this.originalPageX)/e.grid[0])*e.grid[0],i=!this.containment||t-this.offset.click.left>=this.containment[0]&&t-this.offset.click.left<=this.containment[2]?t:t-this.offset.click.left>=this.containment[0]?t-e.grid[0]:t+e.grid[0])),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(\"fixed\"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(\"fixed\"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],\"down\"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)\"auto\"!==this._storedCSS[i]&&\"static\"!==this._storedCSS[i]||(this._storedCSS[i]=\"\");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,\"ui-sortable-helper\")}else this.currentItem.show();function n(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}for(this.fromOutside&&!e&&s.push(function(t){this._trigger(\"receive\",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(\".ui-sortable-helper\")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger(\"update\",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger(\"remove\",t,this._uiHash())}),s.push(function(e){return function(t){e._trigger(\"receive\",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger(\"update\",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;0<=i;i--)e||s.push(n(\"deactivate\",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(n(\"out\",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find(\"body\").css(\"cursor\",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css(\"opacity\",this._storedOpacity),this._storedZIndex&&this.helper.css(\"zIndex\",\"auto\"===this._storedZIndex?\"\":this._storedZIndex),this.dragging=!1,e||this._trigger(\"beforeStop\",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i<s.length;i++)s[i].call(this,t);this._trigger(\"stop\",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===V.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(t){var e=t||this;return{helper:e.helper,placeholder:e.placeholder||V([]),position:e.position,originalPosition:e.originalPosition,offset:e.positionAbs,item:e.currentItem,sender:t?t.element:null}}});function ht(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger(\"change\")}}V.widget(\"ui.spinner\",{version:\"1.13.1\",defaultElement:\"<input>\",widgetEventPrefix:\"spin\",options:{classes:{\"ui-spinner\":\"ui-corner-all\",\"ui-spinner-down\":\"ui-corner-br\",\"ui-spinner-up\":\"ui-corner-tr\"},culture:null,icons:{down:\"ui-icon-triangle-1-s\",up:\"ui-icon-triangle-1-n\"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption(\"max\",this.options.max),this._setOption(\"min\",this.options.min),this._setOption(\"step\",this.options.step),\"\"!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr(\"autocomplete\")}})},_getCreateOptions:function(){var s=this._super(),n=this.element;return V.each([\"min\",\"max\",\"step\"],function(t,e){var i=n.attr(e);null!=i&&i.length&&(s[e]=i)}),s},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:\"_stop\",focus:function(){this.previous=this.element.val()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger(\"change\",t))},mousewheel:function(t,e){var i=V.ui.safeActiveElement(this.document[0]);if(this.element[0]===i&&e){if(!this.spinning&&!this._start(t))return!1;this._spin((0<e?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},\"mousedown .ui-spinner-button\":function(t){var e;function i(){this.element[0]===V.ui.safeActiveElement(this.document[0])||(this.element.trigger(\"focus\"),this.previous=e,this._delay(function(){this.previous=e}))}e=this.element[0]===V.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),!1!==this._start(t)&&this._repeat(null,V(t.currentTarget).hasClass(\"ui-spinner-up\")?1:-1,t)},\"mouseup .ui-spinner-button\":\"_stop\",\"mouseenter .ui-spinner-button\":function(t){if(V(t.currentTarget).hasClass(\"ui-state-active\"))return!1!==this._start(t)&&void this._repeat(null,V(t.currentTarget).hasClass(\"ui-spinner-up\")?1:-1,t)},\"mouseleave .ui-spinner-button\":\"_stop\"},_enhance:function(){this.uiSpinner=this.element.attr(\"autocomplete\",\"off\").wrap(\"<span>\").parent().append(\"<a></a><a></a>\")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,\"ui-spinner\",\"ui-widget ui-widget-content\"),this._addClass(\"ui-spinner-input\"),this.element.attr(\"role\",\"spinbutton\"),this.buttons=this.uiSpinner.children(\"a\").attr(\"tabIndex\",-1).attr(\"aria-hidden\",!0).button({classes:{\"ui-button\":\"\"}}),this._removeClass(this.buttons,\"ui-corner-all\"),this._addClass(this.buttons.first(),\"ui-spinner-button ui-spinner-up\"),this._addClass(this.buttons.last(),\"ui-spinner-button ui-spinner-down\"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&0<this.uiSpinner.height()&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(t){var e=this.options,i=V.ui.keyCode;switch(t.keyCode){case i.UP:return this._repeat(null,1,t),!0;case i.DOWN:return this._repeat(null,-1,t),!0;case i.PAGE_UP:return this._repeat(null,e.page,t),!0;case i.PAGE_DOWN:return this._repeat(null,-e.page,t),!0}return!1},_start:function(t){return!(!this.spinning&&!1===this._trigger(\"start\",t))&&(this.counter||(this.counter=1),this.spinning=!0)},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&!1===this._trigger(\"spin\",e,{value:i})||(this._value(i),this.counter++)},_increment:function(t){var e=this.options.incremental;return e?\"function\"==typeof e?e(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var e=t.toString(),t=e.indexOf(\".\");return-1===t?0:e.length-t-1},_adjustValue:function(t){var e=this.options,i=null!==e.min?e.min:0,s=t-i;return t=i+Math.round(s/e.step)*e.step,t=parseFloat(t.toFixed(this._precision())),null!==e.max&&t>e.max?e.max:null!==e.min&&t<e.min?e.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger(\"stop\",t))},_setOption:function(t,e){var i;if(\"culture\"===t||\"numberFormat\"===t)return i=this._parse(this.element.val()),this.options[t]=e,void this.element.val(this._format(i));\"max\"!==t&&\"min\"!==t&&\"step\"!==t||\"string\"==typeof e&&(e=this._parse(e)),\"icons\"===t&&(i=this.buttons.first().find(\".ui-icon\"),this._removeClass(i,null,this.options.icons.up),this._addClass(i,null,e.up),i=this.buttons.last().find(\".ui-icon\"),this._removeClass(i,null,this.options.icons.down),this._addClass(i,null,e.down)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,\"ui-state-disabled\",!!t),this.element.prop(\"disabled\",!!t),this.buttons.button(t?\"disable\":\"enable\")},_setOptions:ht(function(t){this._super(t)}),_parse:function(t){return\"\"===(t=\"string\"==typeof t&&\"\"!==t?window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t:t)||isNaN(t)?null:t},_format:function(t){return\"\"===t?\"\":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({\"aria-valuemin\":this.options.min,\"aria-valuemax\":this.options.max,\"aria-valuenow\":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null!==t&&t===this._adjustValue(t)},_value:function(t,e){var i;\"\"!==t&&null!==(i=this._parse(t))&&(e||(i=this._adjustValue(i)),t=this._format(i)),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop(\"disabled\",!1).removeAttr(\"autocomplete role aria-valuemin aria-valuemax aria-valuenow\"),this.uiSpinner.replaceWith(this.element)},stepUp:ht(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:ht(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:ht(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:ht(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){if(!arguments.length)return this._parse(this.element.val());ht(this._value).call(this,t)},widget:function(){return this.uiSpinner}}),!1!==V.uiBackCompat&&V.widget(\"ui.spinner\",V.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr(\"autocomplete\",\"off\").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return\"<span>\"},_buttonHtml:function(){return\"<a></a><a></a>\"}});var ct;V.ui.spinner;V.widget(\"ui.tabs\",{version:\"1.13.1\",delay:300,options:{active:null,classes:{\"ui-tabs\":\"ui-corner-all\",\"ui-tabs-nav\":\"ui-corner-all\",\"ui-tabs-panel\":\"ui-corner-bottom\",\"ui-tabs-tab\":\"ui-corner-top\"},collapsible:!1,event:\"click\",heightStyle:\"content\",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(ct=/#.*$/,function(t){var e=t.href.replace(ct,\"\"),i=location.href.replace(ct,\"\");try{e=decodeURIComponent(e)}catch(t){}try{i=decodeURIComponent(i)}catch(t){}return 1<t.hash.length&&e===i}),_create:function(){var e=this,t=this.options;this.running=!1,this._addClass(\"ui-tabs\",\"ui-widget ui-widget-content\"),this._toggleClass(\"ui-tabs-collapsible\",null,t.collapsible),this._processTabs(),t.active=this._initialActive(),Array.isArray(t.disabled)&&(t.disabled=V.uniqueSort(t.disabled.concat(V.map(this.tabs.filter(\".ui-state-disabled\"),function(t){return e.tabs.index(t)}))).sort()),!1!==this.options.active&&this.anchors.length?this.active=this._findActive(t.active):this.active=V(),this._refresh(),this.active.length&&this.load(t.active)},_initialActive:function(){var i=this.options.active,t=this.options.collapsible,s=location.hash.substring(1);return null===i&&(s&&this.tabs.each(function(t,e){if(V(e).attr(\"aria-controls\")===s)return i=t,!1}),null!==(i=null===i?this.tabs.index(this.tabs.filter(\".ui-tabs-active\")):i)&&-1!==i||(i=!!this.tabs.length&&0)),!1!==i&&-1===(i=this.tabs.index(this.tabs.eq(i)))&&(i=!t&&0),i=!t&&!1===i&&this.anchors.length?0:i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):V()}},_tabKeydown:function(t){var e=V(V.ui.safeActiveElement(this.document[0])).closest(\"li\"),i=this.tabs.index(e),s=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:i++;break;case V.ui.keyCode.UP:case V.ui.keyCode.LEFT:s=!1,i--;break;case V.ui.keyCode.END:i=this.anchors.length-1;break;case V.ui.keyCode.HOME:i=0;break;case V.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i);case V.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i!==this.options.active&&i);default:return}t.preventDefault(),clearTimeout(this.activating),i=this._focusNextTab(i,s),t.ctrlKey||t.metaKey||(e.attr(\"aria-selected\",\"false\"),this.tabs.eq(i).attr(\"aria-selected\",\"true\"),this.activating=this._delay(function(){this.option(\"active\",i)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===V.ui.keyCode.UP&&(t.preventDefault(),this.active.trigger(\"focus\"))},_handlePageNav:function(t){return t.altKey&&t.keyCode===V.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===V.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,e){var i=this.tabs.length-1;for(;-1!==V.inArray(t=(t=i<t?0:t)<0?i:t,this.options.disabled);)t=e?t+1:t-1;return t},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger(\"focus\"),t},_setOption:function(t,e){\"active\"!==t?(this._super(t,e),\"collapsible\"===t&&(this._toggleClass(\"ui-tabs-collapsible\",null,e),e||!1!==this.options.active||this._activate(0)),\"event\"===t&&this._setupEvents(e),\"heightStyle\"===t&&this._setupHeightStyle(e)):this._activate(e)},_sanitizeSelector:function(t){return t?t.replace(/[!\"$%&'()*+,.\\/:;<=>?@\\[\\]\\^`{|}~]/g,\"\\\\$&\"):\"\"},refresh:function(){var t=this.options,e=this.tablist.children(\":has(a[href])\");t.disabled=V.map(e.filter(\".ui-state-disabled\"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!V.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=V()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=V()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({\"aria-selected\":\"false\",\"aria-expanded\":\"false\",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({\"aria-hidden\":\"true\"}),this.active.length?(this.active.attr({\"aria-selected\":\"true\",\"aria-expanded\":\"true\",tabIndex:0}),this._addClass(this.active,\"ui-tabs-active\",\"ui-state-active\"),this._getPanelForTab(this.active).show().attr({\"aria-hidden\":\"false\"})):this.tabs.eq(0).attr(\"tabIndex\",0)},_processTabs:function(){var l=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().attr(\"role\",\"tablist\"),this._addClass(this.tablist,\"ui-tabs-nav\",\"ui-helper-reset ui-helper-clearfix ui-widget-header\"),this.tablist.on(\"mousedown\"+this.eventNamespace,\"> li\",function(t){V(this).is(\".ui-state-disabled\")&&t.preventDefault()}).on(\"focus\"+this.eventNamespace,\".ui-tabs-anchor\",function(){V(this).closest(\"li\").is(\".ui-state-disabled\")&&this.blur()}),this.tabs=this.tablist.find(\"> li:has(a[href])\").attr({role:\"tab\",tabIndex:-1}),this._addClass(this.tabs,\"ui-tabs-tab\",\"ui-state-default\"),this.anchors=this.tabs.map(function(){return V(\"a\",this)[0]}).attr({tabIndex:-1}),this._addClass(this.anchors,\"ui-tabs-anchor\"),this.panels=V(),this.anchors.each(function(t,e){var i,s,n,o=V(e).uniqueId().attr(\"id\"),a=V(e).closest(\"li\"),r=a.attr(\"aria-controls\");l._isLocal(e)?(n=(i=e.hash).substring(1),s=l.element.find(l._sanitizeSelector(i))):(n=a.attr(\"aria-controls\")||V({}).uniqueId()[0].id,(s=l.element.find(i=\"#\"+n)).length||(s=l._createPanel(n)).insertAfter(l.panels[t-1]||l.tablist),s.attr(\"aria-live\",\"polite\")),s.length&&(l.panels=l.panels.add(s)),r&&a.data(\"ui-tabs-aria-controls\",r),a.attr({\"aria-controls\":n,\"aria-labelledby\":o}),s.attr(\"aria-labelledby\",o)}),this.panels.attr(\"role\",\"tabpanel\"),this._addClass(this.panels,\"ui-tabs-panel\",\"ui-widget-content\"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find(\"ol, ul\").eq(0)},_createPanel:function(t){return V(\"<div>\").attr(\"id\",t).data(\"ui-tabs-destroy\",!0)},_setOptionDisabled:function(t){var e,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;e=this.tabs[i];i++)e=V(e),!0===t||-1!==V.inArray(i,t)?(e.attr(\"aria-disabled\",\"true\"),this._addClass(e,null,\"ui-state-disabled\")):(e.removeAttr(\"aria-disabled\"),this._removeClass(e,null,\"ui-state-disabled\"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+\"-disabled\",null,!0===t)},_setupEvents:function(t){var i={};t&&V.each(t.split(\" \"),function(t,e){i[e]=\"_eventHandler\"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:\"_tabKeydown\"}),this._on(this.panels,{keydown:\"_panelKeydown\"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();\"fill\"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(\":visible\").each(function(){var t=V(this),e=t.css(\"position\");\"absolute\"!==e&&\"fixed\"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=V(this).outerHeight(!0)}),this.panels.each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css(\"overflow\",\"auto\")):\"auto\"===t&&(i=0,this.panels.each(function(){i=Math.max(i,V(this).height(\"\").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget).closest(\"li\"),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():this._getPanelForTab(s),r=i.length?this._getPanelForTab(i):V(),i={oldTab:i,oldPanel:r,newTab:o?V():s,newPanel:a};t.preventDefault(),s.hasClass(\"ui-state-disabled\")||s.hasClass(\"ui-tabs-loading\")||this.running||n&&!e.collapsible||!1===this._trigger(\"beforeActivate\",t,i)||(e.active=!o&&this.tabs.index(s),this.active=n?V():s,this.xhr&&this.xhr.abort(),r.length||a.length||V.error(\"jQuery UI Tabs: Mismatching fragment identifier.\"),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,i))},_toggle:function(t,e){var i=this,s=e.newPanel,n=e.oldPanel;function o(){i.running=!1,i._trigger(\"activate\",t,e)}function a(){i._addClass(e.newTab.closest(\"li\"),\"ui-tabs-active\",\"ui-state-active\"),s.length&&i.options.show?i._show(s,i.options.show,o):(s.show(),o())}this.running=!0,n.length&&this.options.hide?this._hide(n,this.options.hide,function(){i._removeClass(e.oldTab.closest(\"li\"),\"ui-tabs-active\",\"ui-state-active\"),a()}):(this._removeClass(e.oldTab.closest(\"li\"),\"ui-tabs-active\",\"ui-state-active\"),n.hide(),a()),n.attr(\"aria-hidden\",\"true\"),e.oldTab.attr({\"aria-selected\":\"false\",\"aria-expanded\":\"false\"}),s.length&&n.length?e.oldTab.attr(\"tabIndex\",-1):s.length&&this.tabs.filter(function(){return 0===V(this).attr(\"tabIndex\")}).attr(\"tabIndex\",-1),s.attr(\"aria-hidden\",\"false\"),e.newTab.attr({\"aria-selected\":\"true\",\"aria-expanded\":\"true\",tabIndex:0})},_activate:function(t){var t=this._findActive(t);t[0]!==this.active[0]&&(t=(t=!t.length?this.active:t).find(\".ui-tabs-anchor\")[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return!1===t?V():this.tabs.eq(t)},_getIndex:function(t){return t=\"string\"==typeof t?this.anchors.index(this.anchors.filter(\"[href$='\"+V.escapeSelector(t)+\"']\")):t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr(\"role\").off(this.eventNamespace),this.anchors.removeAttr(\"role tabIndex\").removeUniqueId(),this.tabs.add(this.panels).each(function(){V.data(this,\"ui-tabs-destroy\")?V(this).remove():V(this).removeAttr(\"role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded\")}),this.tabs.each(function(){var t=V(this),e=t.data(\"ui-tabs-aria-controls\");e?t.attr(\"aria-controls\",e).removeData(\"ui-tabs-aria-controls\"):t.removeAttr(\"aria-controls\")}),this.panels.show(),\"content\"!==this.options.heightStyle&&this.panels.css(\"height\",\"\")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),Array.isArray(t)?V.map(t,function(t){return t!==i?t:null}):V.map(this.tabs,function(t,e){return e!==i?e:null})),this._setOptionDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==V.inArray(t,e))return;e=Array.isArray(e)?V.merge([t],e).sort():[t]}this._setOptionDisabled(e)}},load:function(t,s){t=this._getIndex(t);function n(t,e){\"abort\"===e&&o.panels.stop(!1,!0),o._removeClass(i,\"ui-tabs-loading\"),a.removeAttr(\"aria-busy\"),t===o.xhr&&delete o.xhr}var o=this,i=this.tabs.eq(t),t=i.find(\".ui-tabs-anchor\"),a=this._getPanelForTab(i),r={tab:i,panel:a};this._isLocal(t[0])||(this.xhr=V.ajax(this._ajaxSettings(t,s,r)),this.xhr&&\"canceled\"!==this.xhr.statusText&&(this._addClass(i,\"ui-tabs-loading\"),a.attr(\"aria-busy\",\"true\"),this.xhr.done(function(t,e,i){setTimeout(function(){a.html(t),o._trigger(\"load\",s,r),n(i,e)},1)}).fail(function(t,e){setTimeout(function(){n(t,e)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr(\"href\").replace(/#.*$/,\"\"),beforeSend:function(t,e){return n._trigger(\"beforeLoad\",i,V.extend({jqXHR:t,ajaxSettings:e},s))}}},_getPanelForTab:function(t){t=V(t).attr(\"aria-controls\");return this.element.find(this._sanitizeSelector(\"#\"+t))}}),!1!==V.uiBackCompat&&V.widget(\"ui.tabs\",V.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,\"ui-tab\")}});V.ui.tabs;V.widget(\"ui.tooltip\",{version:\"1.13.1\",options:{classes:{\"ui-tooltip\":\"ui-corner-all ui-widget-shadow\"},content:function(){var t=V(this).attr(\"title\");return V(\"<a>\").text(t).html()},hide:!0,items:\"[title]:not([disabled])\",position:{my:\"left top+15\",at:\"left bottom\",collision:\"flipfit flip\"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(t,e){var i=(t.attr(\"aria-describedby\")||\"\").split(/\\s+/);i.push(e),t.data(\"ui-tooltip-id\",e).attr(\"aria-describedby\",String.prototype.trim.call(i.join(\" \")))},_removeDescribedBy:function(t){var e=t.data(\"ui-tooltip-id\"),i=(t.attr(\"aria-describedby\")||\"\").split(/\\s+/),e=V.inArray(e,i);-1!==e&&i.splice(e,1),t.removeData(\"ui-tooltip-id\"),(i=String.prototype.trim.call(i.join(\" \")))?t.attr(\"aria-describedby\",i):t.removeAttr(\"aria-describedby\")},_create:function(){this._on({mouseover:\"open\",focusin:\"open\"}),this.tooltips={},this.parents={},this.liveRegion=V(\"<div>\").attr({role:\"log\",\"aria-live\":\"assertive\",\"aria-relevant\":\"additions\"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,\"ui-helper-hidden-accessible\"),this.disabledTitles=V([])},_setOption:function(t,e){var i=this;this._super(t,e),\"content\"===t&&V.each(this.tooltips,function(t,e){i._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?\"_disable\":\"_enable\"]()},_disable:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event(\"blur\");i.target=i.currentTarget=e.element[0],s.close(i,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var t=V(this);if(t.is(\"[title]\"))return t.data(\"ui-tooltip-title\",t.attr(\"title\")).removeAttr(\"title\")}))},_enable:function(){this.disabledTitles.each(function(){var t=V(this);t.data(\"ui-tooltip-title\")&&t.attr(\"title\",t.data(\"ui-tooltip-title\"))}),this.disabledTitles=V([])},open:function(t){var i=this,e=V(t?t.target:this.element).closest(this.options.items);e.length&&!e.data(\"ui-tooltip-id\")&&(e.attr(\"title\")&&e.data(\"ui-tooltip-title\",e.attr(\"title\")),e.data(\"ui-tooltip-open\",!0),t&&\"mouseover\"===t.type&&e.parents().each(function(){var t,e=V(this);e.data(\"ui-tooltip-open\")&&((t=V.Event(\"blur\")).target=t.currentTarget=this,i.close(t,!0)),e.attr(\"title\")&&(e.uniqueId(),i.parents[this.id]={element:this,title:e.attr(\"title\")},e.attr(\"title\",\"\"))}),this._registerCloseHandlers(t,e),this._updateContent(e,t))},_updateContent:function(e,i){var t=this.options.content,s=this,n=i?i.type:null;if(\"string\"==typeof t||t.nodeType||t.jquery)return this._open(i,e,t);(t=t.call(e[0],function(t){s._delay(function(){e.data(\"ui-tooltip-open\")&&(i&&(i.type=n),this._open(i,e,t))})}))&&this._open(i,e,t)},_open:function(t,e,i){var s,n,o,a=V.extend({},this.options.position);function r(t){a.of=t,n.is(\":hidden\")||n.position(a)}i&&((s=this._find(e))?s.tooltip.find(\".ui-tooltip-content\").html(i):(e.is(\"[title]\")&&(t&&\"mouseover\"===t.type?e.attr(\"title\",\"\"):e.removeAttr(\"title\")),s=this._tooltip(e),n=s.tooltip,this._addDescribedBy(e,n.attr(\"id\")),n.find(\".ui-tooltip-content\").html(i),this.liveRegion.children().hide(),(i=V(\"<div>\").html(n.find(\".ui-tooltip-content\").html())).removeAttr(\"name\").find(\"[name]\").removeAttr(\"name\"),i.removeAttr(\"id\").find(\"[id]\").removeAttr(\"id\"),i.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:r}),r(t)):n.position(V.extend({of:e},this.options.position)),n.hide(),this._show(n,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(o=this.delayedShow=setInterval(function(){n.is(\":visible\")&&(r(a.of),clearInterval(o))},13)),this._trigger(\"open\",t,{tooltip:n})))},_registerCloseHandlers:function(t,e){var i={keyup:function(t){t.keyCode===V.ui.keyCode.ESCAPE&&((t=V.Event(t)).currentTarget=e[0],this.close(t,!0))}};e[0]!==this.element[0]&&(i.remove=function(){var t=this._find(e);t&&this._removeTooltip(t.tooltip)}),t&&\"mouseover\"!==t.type||(i.mouseleave=\"close\"),t&&\"focusin\"!==t.type||(i.focusout=\"close\"),this._on(!0,e,i)},close:function(t){var e,i=this,s=V(t?t.currentTarget:this.element),n=this._find(s);n?(e=n.tooltip,n.closing||(clearInterval(this.delayedShow),s.data(\"ui-tooltip-title\")&&!s.attr(\"title\")&&s.attr(\"title\",s.data(\"ui-tooltip-title\")),this._removeDescribedBy(s),n.hiding=!0,e.stop(!0),this._hide(e,this.options.hide,function(){i._removeTooltip(V(this))}),s.removeData(\"ui-tooltip-open\"),this._off(s,\"mouseleave focusout keyup\"),s[0]!==this.element[0]&&this._off(s,\"remove\"),this._off(this.document,\"mousemove\"),t&&\"mouseleave\"===t.type&&V.each(this.parents,function(t,e){V(e.element).attr(\"title\",e.title),delete i.parents[t]}),n.closing=!0,this._trigger(\"close\",t,{tooltip:e}),n.hiding||(n.closing=!1))):s.removeData(\"ui-tooltip-open\")},_tooltip:function(t){var e=V(\"<div>\").attr(\"role\",\"tooltip\"),i=V(\"<div>\").appendTo(e),s=e.uniqueId().attr(\"id\");return this._addClass(i,\"ui-tooltip-content\"),this._addClass(e,\"ui-tooltip\",\"ui-widget ui-widget-content\"),e.appendTo(this._appendTo(t)),this.tooltips[s]={element:t,tooltip:e}},_find:function(t){t=t.data(\"ui-tooltip-id\");return t?this.tooltips[t]:null},_removeTooltip:function(t){clearInterval(this.delayedShow),t.remove(),delete this.tooltips[t.attr(\"id\")]},_appendTo:function(t){t=t.closest(\".ui-front, dialog\");return t=!t.length?this.document[0].body:t},_destroy:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event(\"blur\"),e=e.element;i.target=i.currentTarget=e[0],s.close(i,!0),V(\"#\"+t).remove(),e.data(\"ui-tooltip-title\")&&(e.attr(\"title\")||e.attr(\"title\",e.data(\"ui-tooltip-title\")),e.removeData(\"ui-tooltip-title\"))}),this.liveRegion.remove()}}),!1!==V.uiBackCompat&&V.widget(\"ui.tooltip\",V.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}});V.ui.tooltip});","var tabName, tabView, tabs;\r\n\r\nfunction tabUrlControl() { var e, t = window.location.href; - 1 != t.search(\"#tab-\") && (e = t.split(\"#\")[1].split(\"-\"), $(\".tab-view .tab\").removeClass(\"active\"), $(\".tab-view .tab[data-tab=\" + e[1] + \"]\").addClass(\"active\"), $(\".tab-view .content\").removeClass(\"active\"), $(\".tab-view .content-\" + e[1]).addClass(\"active\")) }! function(e, t) { \"use strict\"; \"object\" == typeof module && \"object\" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) { if (!e.document) throw new Error(\"jQuery requires a window with a document\"); return t(e) } : t(e) }(\"undefined\" != typeof window ? window : this, function(C, e) { \"use strict\";\r\n\r\n function g(e) { return null != e && e === e.window } var t = [],\r\n T = C.document,\r\n i = Object.getPrototypeOf,\r\n a = t.slice,\r\n m = t.concat,\r\n l = t.push,\r\n r = t.indexOf,\r\n n = {},\r\n o = n.toString,\r\n v = n.hasOwnProperty,\r\n s = v.toString,\r\n c = s.call(Object),\r\n y = {},\r\n _ = function(e) { return \"function\" == typeof e && \"number\" != typeof e.nodeType },\r\n u = { type: !0, src: !0, noModule: !0 };\r\n\r\n function b(e, t, n) { var i, r = (t = t || T).createElement(\"script\"); if (r.text = e, n)\r\n for (i in u) n[i] && (r[i] = n[i]);\r\n t.head.appendChild(r).parentNode.removeChild(r) }\r\n\r\n function E(e) { return null == e ? e + \"\" : \"object\" == typeof e || \"function\" == typeof e ? n[o.call(e)] || \"object\" : typeof e } var x = function(e, t) { return new x.fn.init(e, t) },\r\n f = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\r\n\r\n function h(e) { var t = !!e && \"length\" in e && e.length,\r\n n = E(e); return !_(e) && !g(e) && (\"array\" === n || 0 === t || \"number\" == typeof t && 0 < t && t - 1 in e) }\r\n x.fn = x.prototype = { jquery: \"3.3.1\", constructor: x, length: 0, toArray: function() { return a.call(this) }, get: function(e) { return null == e ? a.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function(e) { var t = x.merge(this.constructor(), e); return t.prevObject = this, t }, each: function(e) { return x.each(this, e) }, map: function(n) { return this.pushStack(x.map(this, function(e, t) { return n.call(e, t, e) })) }, slice: function() { return this.pushStack(a.apply(this, arguments)) }, first: function() { return this.eq(0) }, last: function() { return this.eq(-1) }, eq: function(e) { var t = this.length,\r\n n = +e + (e < 0 ? t : 0); return this.pushStack(0 <= n && n < t ? [this[n]] : []) }, end: function() { return this.prevObject || this.constructor() }, push: l, sort: t.sort, splice: t.splice }, x.extend = x.fn.extend = function() { var e, t, n, i, r, o, s = arguments[0] || {},\r\n a = 1,\r\n l = arguments.length,\r\n c = !1; for (\"boolean\" == typeof s && (c = s, s = arguments[a] || {}, a++), \"object\" == typeof s || _(s) || (s = {}), a === l && (s = this, a--); a < l; a++)\r\n if (null != (e = arguments[a]))\r\n for (t in e) n = s[t], s !== (i = e[t]) && (c && i && (x.isPlainObject(i) || (r = Array.isArray(i))) ? (o = r ? (r = !1, n && Array.isArray(n) ? n : []) : n && x.isPlainObject(n) ? n : {}, s[t] = x.extend(c, o, i)) : void 0 !== i && (s[t] = i));\r\n return s }, x.extend({ expando: \"jQuery\" + (\"3.3.1\" + Math.random()).replace(/\\D/g, \"\"), isReady: !0, error: function(e) { throw new Error(e) }, noop: function() {}, isPlainObject: function(e) { var t, n; return !(!e || \"[object Object]\" !== o.call(e) || (t = i(e)) && (\"function\" != typeof(n = v.call(t, \"constructor\") && t.constructor) || s.call(n) !== c)) }, isEmptyObject: function(e) { var t; for (t in e) return !1; return !0 }, globalEval: function(e) { b(e) }, each: function(e, t) { var n, i = 0; if (h(e))\r\n for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++);\r\n else\r\n for (i in e)\r\n if (!1 === t.call(e[i], i, e[i])) break; return e }, trim: function(e) { return null == e ? \"\" : (e + \"\").replace(f, \"\") }, makeArray: function(e, t) { var n = t || []; return null != e && (h(Object(e)) ? x.merge(n, \"string\" == typeof e ? [e] : e) : l.call(n, e)), n }, inArray: function(e, t, n) { return null == t ? -1 : r.call(t, e, n) }, merge: function(e, t) { for (var n = +t.length, i = 0, r = e.length; i < n; i++) e[r++] = t[i]; return e.length = r, e }, grep: function(e, t, n) { for (var i = [], r = 0, o = e.length, s = !n; r < o; r++) !t(e[r], r) != s && i.push(e[r]); return i }, map: function(e, t, n) { var i, r, o = 0,\r\n s = []; if (h(e))\r\n for (i = e.length; o < i; o++) null != (r = t(e[o], o, n)) && s.push(r);\r\n else\r\n for (o in e) null != (r = t(e[o], o, n)) && s.push(r); return m.apply([], s) }, guid: 1, support: y }), \"function\" == typeof Symbol && (x.fn[Symbol.iterator] = t[Symbol.iterator]), x.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function(e, t) { n[\"[object \" + t + \"]\"] = t.toLowerCase() }); var d = function(n) {\r\n function f(e, t, n) { var i = \"0x\" + t - 65536; return i != i || n ? t : i < 0 ? String.fromCharCode(65536 + i) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320) }\r\n\r\n function r() { w() } var e, d, b, o, s, p, h, g, E, l, c, w, C, a, T, m, u, v, y, x = \"sizzle\" + +new Date,\r\n _ = n.document,\r\n S = 0,\r\n i = 0,\r\n D = se(),\r\n A = se(),\r\n N = se(),\r\n I = function(e, t) { return e === t && (c = !0), 0 },\r\n k = {}.hasOwnProperty,\r\n t = [],\r\n O = t.pop,\r\n j = t.push,\r\n L = t.push,\r\n P = t.slice,\r\n H = function(e, t) { for (var n = 0, i = e.length; n < i; n++)\r\n if (e[n] === t) return n;\r\n return -1 },\r\n q = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\r\n R = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\r\n M = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\r\n W = \"\\\\[\" + R + \"*(\" + M + \")(?:\" + R + \"*([*^$|!~]?=)\" + R + \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + M + \"))|)\" + R + \"*\\\\]\",\r\n F = \":(\" + M + \")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + W + \")*)|.*)\\\\)|)\",\r\n $ = new RegExp(R + \"+\", \"g\"),\r\n B = new RegExp(\"^\" + R + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + R + \"+$\", \"g\"),\r\n U = new RegExp(\"^\" + R + \"*,\" + R + \"*\"),\r\n Q = new RegExp(\"^\" + R + \"*([>+~]|\" + R + \")\" + R + \"*\"),\r\n K = new RegExp(\"=\" + R + \"*([^\\\\]'\\\"]*?)\" + R + \"*\\\\]\", \"g\"),\r\n V = new RegExp(F),\r\n z = new RegExp(\"^\" + M + \"$\"),\r\n X = { ID: new RegExp(\"^#(\" + M + \")\"), CLASS: new RegExp(\"^\\\\.(\" + M + \")\"), TAG: new RegExp(\"^(\" + M + \"|[*])\"), ATTR: new RegExp(\"^\" + W), PSEUDO: new RegExp(\"^\" + F), CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + R + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + R + \"*(?:([+-]|)\" + R + \"*(\\\\d+)|))\" + R + \"*\\\\)|)\", \"i\"), bool: new RegExp(\"^(?:\" + q + \")$\", \"i\"), needsContext: new RegExp(\"^\" + R + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + R + \"*((?:-\\\\d)?\\\\d*)\" + R + \"*\\\\)|)(?=[^-]|$)\", \"i\") },\r\n Y = /^(?:input|select|textarea|button)$/i,\r\n G = /^h\\d$/i,\r\n J = /^[^{]+\\{\\s*\\[native \\w/,\r\n Z = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\r\n ee = /[+~]/,\r\n te = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + R + \"?|(\" + R + \")|.)\", \"ig\"),\r\n ne = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\r\n ie = function(e, t) { return t ? \"\\0\" === e ? \"�\" : e.slice(0, -1) + \"\\\\\" + e.charCodeAt(e.length - 1).toString(16) + \" \" : \"\\\\\" + e },\r\n re = me(function(e) { return !0 === e.disabled && (\"form\" in e || \"label\" in e) }, { dir: \"parentNode\", next: \"legend\" }); try { L.apply(t = P.call(_.childNodes), _.childNodes), t[_.childNodes.length].nodeType } catch (n) { L = { apply: t.length ? function(e, t) { j.apply(e, P.call(t)) } : function(e, t) { for (var n = e.length, i = 0; e[n++] = t[i++];);\r\n e.length = n - 1 } } }\r\n\r\n function oe(e, t, n, i) { var r, o, s, a, l, c, u, f = t && t.ownerDocument,\r\n h = t ? t.nodeType : 9; if (n = n || [], \"string\" != typeof e || !e || 1 !== h && 9 !== h && 11 !== h) return n; if (!i && ((t ? t.ownerDocument || t : _) !== C && w(t), t = t || C, T)) { if (11 !== h && (l = Z.exec(e)))\r\n if (r = l[1]) { if (9 === h) { if (!(s = t.getElementById(r))) return n; if (s.id === r) return n.push(s), n } else if (f && (s = f.getElementById(r)) && y(t, s) && s.id === r) return n.push(s), n } else { if (l[2]) return L.apply(n, t.getElementsByTagName(e)), n; if ((r = l[3]) && d.getElementsByClassName && t.getElementsByClassName) return L.apply(n, t.getElementsByClassName(r)), n }\r\n if (d.qsa && !N[e + \" \"] && (!m || !m.test(e))) { if (1 !== h) f = t, u = e;\r\n else if (\"object\" !== t.nodeName.toLowerCase()) { for ((a = t.getAttribute(\"id\")) ? a = a.replace(ne, ie) : t.setAttribute(\"id\", a = x), o = (c = p(e)).length; o--;) c[o] = \"#\" + a + \" \" + ge(c[o]);\r\n u = c.join(\",\"), f = ee.test(e) && de(t.parentNode) || t } if (u) try { return L.apply(n, f.querySelectorAll(u)), n } catch (e) {} finally { a === x && t.removeAttribute(\"id\") } } } return g(e.replace(B, \"$1\"), t, n, i) }\r\n\r\n function se() { var n = [];\r\n\r\n function i(e, t) { return n.push(e + \" \") > b.cacheLength && delete i[n.shift()], i[e + \" \"] = t } return i }\r\n\r\n function ae(e) { return e[x] = !0, e }\r\n\r\n function le(e) { var t = C.createElement(\"fieldset\"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } }\r\n\r\n function ce(e, t) { for (var n = e.split(\"|\"), i = n.length; i--;) b.attrHandle[n[i]] = t }\r\n\r\n function ue(e, t) { var n = t && e,\r\n i = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (i) return i; if (n)\r\n for (; n = n.nextSibling;)\r\n if (n === t) return -1;\r\n return e ? 1 : -1 }\r\n\r\n function fe(t) { return function(e) { return \"form\" in e ? e.parentNode && !1 === e.disabled ? \"label\" in e ? \"label\" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && re(e) === t : e.disabled === t : \"label\" in e && e.disabled === t } }\r\n\r\n function he(s) { return ae(function(o) { return o = +o, ae(function(e, t) { for (var n, i = s([], e.length, o), r = i.length; r--;) e[n = i[r]] && (e[n] = !(t[n] = e[n])) }) }) }\r\n\r\n function de(e) { return e && void 0 !== e.getElementsByTagName && e } for (e in d = oe.support = {}, s = oe.isXML = function(e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && \"HTML\" !== t.nodeName }, w = oe.setDocument = function(e) { var t, n, i = e ? e.ownerDocument || e : _; return i !== C && 9 === i.nodeType && i.documentElement && (a = (C = i).documentElement, T = !s(C), _ !== C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener(\"unload\", r, !1) : n.attachEvent && n.attachEvent(\"onunload\", r)), d.attributes = le(function(e) { return e.className = \"i\", !e.getAttribute(\"className\") }), d.getElementsByTagName = le(function(e) { return e.appendChild(C.createComment(\"\")), !e.getElementsByTagName(\"*\").length }), d.getElementsByClassName = J.test(C.getElementsByClassName), d.getById = le(function(e) { return a.appendChild(e).id = x, !C.getElementsByName || !C.getElementsByName(x).length }), d.getById ? (b.filter.ID = function(e) { var t = e.replace(te, f); return function(e) { return e.getAttribute(\"id\") === t } }, b.find.ID = function(e, t) { if (void 0 !== t.getElementById && T) { var n = t.getElementById(e); return n ? [n] : [] } }) : (b.filter.ID = function(e) { var n = e.replace(te, f); return function(e) { var t = void 0 !== e.getAttributeNode && e.getAttributeNode(\"id\"); return t && t.value === n } }, b.find.ID = function(e, t) { if (void 0 !== t.getElementById && T) { var n, i, r, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode(\"id\")) && n.value === e) return [o]; for (r = t.getElementsByName(e), i = 0; o = r[i++];)\r\n if ((n = o.getAttributeNode(\"id\")) && n.value === e) return [o] } return [] } }), b.find.TAG = d.getElementsByTagName ? function(e, t) { return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0 } : function(e, t) { var n, i = [],\r\n r = 0,\r\n o = t.getElementsByTagName(e); if (\"*\" !== e) return o; for (; n = o[r++];) 1 === n.nodeType && i.push(n); return i }, b.find.CLASS = d.getElementsByClassName && function(e, t) { if (void 0 !== t.getElementsByClassName && T) return t.getElementsByClassName(e) }, u = [], m = [], (d.qsa = J.test(C.querySelectorAll)) && (le(function(e) { a.appendChild(e).innerHTML = \"<a id='\" + x + \"'></a><select id='\" + x + \"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\", e.querySelectorAll(\"[msallowcapture^='']\").length && m.push(\"[*^$]=\" + R + \"*(?:''|\\\"\\\")\"), e.querySelectorAll(\"[selected]\").length || m.push(\"\\\\[\" + R + \"*(?:value|\" + q + \")\"), e.querySelectorAll(\"[id~=\" + x + \"-]\").length || m.push(\"~=\"), e.querySelectorAll(\":checked\").length || m.push(\":checked\"), e.querySelectorAll(\"a#\" + x + \"+*\").length || m.push(\".#.+[+~]\") }), le(function(e) { e.innerHTML = \"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\"; var t = C.createElement(\"input\");\r\n t.setAttribute(\"type\", \"hidden\"), e.appendChild(t).setAttribute(\"name\", \"D\"), e.querySelectorAll(\"[name=d]\").length && m.push(\"name\" + R + \"*[*^$|!~]?=\"), 2 !== e.querySelectorAll(\":enabled\").length && m.push(\":enabled\", \":disabled\"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(\":disabled\").length && m.push(\":enabled\", \":disabled\"), e.querySelectorAll(\"*,:x\"), m.push(\",.*:\") })), (d.matchesSelector = J.test(v = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && le(function(e) { d.disconnectedMatch = v.call(e, \"*\"), v.call(e, \"[s!='']:x\"), u.push(\"!=\", F) }), m = m.length && new RegExp(m.join(\"|\")), u = u.length && new RegExp(u.join(\"|\")), t = J.test(a.compareDocumentPosition), y = t || J.test(a.contains) ? function(e, t) { var n = 9 === e.nodeType ? e.documentElement : e,\r\n i = t && t.parentNode; return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i))) } : function(e, t) { if (t)\r\n for (; t = t.parentNode;)\r\n if (t === e) return !0;\r\n return !1 }, I = t ? function(e, t) { if (e === t) return c = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e === C || e.ownerDocument === _ && y(_, e) ? -1 : t === C || t.ownerDocument === _ && y(_, t) ? 1 : l ? H(l, e) - H(l, t) : 0 : 4 & n ? -1 : 1) } : function(e, t) { if (e === t) return c = !0, 0; var n, i = 0,\r\n r = e.parentNode,\r\n o = t.parentNode,\r\n s = [e],\r\n a = [t]; if (!r || !o) return e === C ? -1 : t === C ? 1 : r ? -1 : o ? 1 : l ? H(l, e) - H(l, t) : 0; if (r === o) return ue(e, t); for (n = e; n = n.parentNode;) s.unshift(n); for (n = t; n = n.parentNode;) a.unshift(n); for (; s[i] === a[i];) i++; return i ? ue(s[i], a[i]) : s[i] === _ ? -1 : a[i] === _ ? 1 : 0 }), C }, oe.matches = function(e, t) { return oe(e, null, null, t) }, oe.matchesSelector = function(e, t) { if ((e.ownerDocument || e) !== C && w(e), t = t.replace(K, \"='$1']\"), d.matchesSelector && T && !N[t + \" \"] && (!u || !u.test(t)) && (!m || !m.test(t))) try { var n = v.call(e, t); if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (e) {}\r\n return 0 < oe(t, C, null, [e]).length }, oe.contains = function(e, t) { return (e.ownerDocument || e) !== C && w(e), y(e, t) }, oe.attr = function(e, t) {\r\n (e.ownerDocument || e) !== C && w(e); var n = b.attrHandle[t.toLowerCase()],\r\n i = n && k.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !T) : void 0; return void 0 !== i ? i : d.attributes || !T ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value : null }, oe.escape = function(e) { return (e + \"\").replace(ne, ie) }, oe.error = function(e) { throw new Error(\"Syntax error, unrecognized expression: \" + e) }, oe.uniqueSort = function(e) { var t, n = [],\r\n i = 0,\r\n r = 0; if (c = !d.detectDuplicates, l = !d.sortStable && e.slice(0), e.sort(I), c) { for (; t = e[r++];) t === e[r] && (i = n.push(r)); for (; i--;) e.splice(n[i], 1) } return l = null, e }, o = oe.getText = function(e) { var t, n = \"\",\r\n i = 0,\r\n r = e.nodeType; if (r) { if (1 === r || 9 === r || 11 === r) { if (\"string\" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += o(e) } else if (3 === r || 4 === r) return e.nodeValue } else\r\n for (; t = e[i++];) n += o(t); return n }, (b = oe.selectors = { cacheLength: 50, createPseudo: ae, match: X, attrHandle: {}, find: {}, relative: { \">\": { dir: \"parentNode\", first: !0 }, \" \": { dir: \"parentNode\" }, \"+\": { dir: \"previousSibling\", first: !0 }, \"~\": { dir: \"previousSibling\" } }, preFilter: { ATTR: function(e) { return e[1] = e[1].replace(te, f), e[3] = (e[3] || e[4] || e[5] || \"\").replace(te, f), \"~=\" === e[2] && (e[3] = \" \" + e[3] + \" \"), e.slice(0, 4) }, CHILD: function(e) { return e[1] = e[1].toLowerCase(), \"nth\" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * (\"even\" === e[3] || \"odd\" === e[3])), e[5] = +(e[7] + e[8] || \"odd\" === e[3])) : e[3] && oe.error(e[0]), e }, PSEUDO: function(e) { var t, n = !e[6] && e[2]; return X.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || \"\" : n && V.test(n) && (t = p(n, !0)) && (t = n.indexOf(\")\", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function(e) { var t = e.replace(te, f).toLowerCase(); return \"*\" === e ? function() { return !0 } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function(e) { var t = D[e + \" \"]; return t || (t = new RegExp(\"(^|\" + R + \")\" + e + \"(\" + R + \"|$)\")) && D(e, function(e) { return t.test(\"string\" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute(\"class\") || \"\") }) }, ATTR: function(n, i, r) { return function(e) { var t = oe.attr(e, n); return null == t ? \"!=\" === i : !i || (t += \"\", \"=\" === i ? t === r : \"!=\" === i ? t !== r : \"^=\" === i ? r && 0 === t.indexOf(r) : \"*=\" === i ? r && -1 < t.indexOf(r) : \"$=\" === i ? r && t.slice(-r.length) === r : \"~=\" === i ? -1 < (\" \" + t.replace($, \" \") + \" \").indexOf(r) : \"|=\" === i && (t === r || t.slice(0, r.length + 1) === r + \"-\")) } }, CHILD: function(p, e, t, g, m) { var v = \"nth\" !== p.slice(0, 3),\r\n y = \"last\" !== p.slice(-4),\r\n _ = \"of-type\" === e; return 1 === g && 0 === m ? function(e) { return !!e.parentNode } : function(e, t, n) { var i, r, o, s, a, l, c = v != y ? \"nextSibling\" : \"previousSibling\",\r\n u = e.parentNode,\r\n f = _ && e.nodeName.toLowerCase(),\r\n h = !n && !_,\r\n d = !1; if (u) { if (v) { for (; c;) { for (s = e; s = s[c];)\r\n if (_ ? s.nodeName.toLowerCase() === f : 1 === s.nodeType) return !1;\r\n l = c = \"only\" === p && !l && \"nextSibling\" } return !0 } if (l = [y ? u.firstChild : u.lastChild], y && h) { for (d = (a = (i = (r = (o = (s = u)[x] || (s[x] = {}))[s.uniqueID] || (o[s.uniqueID] = {}))[p] || [])[0] === S && i[1]) && i[2], s = a && u.childNodes[a]; s = ++a && s && s[c] || (d = a = 0) || l.pop();)\r\n if (1 === s.nodeType && ++d && s === e) { r[p] = [S, a, d]; break } } else if (h && (d = a = (i = (r = (o = (s = e)[x] || (s[x] = {}))[s.uniqueID] || (o[s.uniqueID] = {}))[p] || [])[0] === S && i[1]), !1 === d)\r\n for (;\r\n (s = ++a && s && s[c] || (d = a = 0) || l.pop()) && ((_ ? s.nodeName.toLowerCase() !== f : 1 !== s.nodeType) || !++d || (h && ((r = (o = s[x] || (s[x] = {}))[s.uniqueID] || (o[s.uniqueID] = {}))[p] = [S, d]), s !== e));); return (d -= m) === g || d % g == 0 && 0 <= d / g } } }, PSEUDO: function(e, o) { var t, s = b.pseudos[e] || b.setFilters[e.toLowerCase()] || oe.error(\"unsupported pseudo: \" + e); return s[x] ? s(o) : 1 < s.length ? (t = [e, e, \"\", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? ae(function(e, t) { for (var n, i = s(e, o), r = i.length; r--;) e[n = H(e, i[r])] = !(t[n] = i[r]) }) : function(e) { return s(e, 0, t) }) : s } }, pseudos: { not: ae(function(e) { var i = [],\r\n r = [],\r\n a = h(e.replace(B, \"$1\")); return a[x] ? ae(function(e, t, n, i) { for (var r, o = a(e, null, i, []), s = e.length; s--;)(r = o[s]) && (e[s] = !(t[s] = r)) }) : function(e, t, n) { return i[0] = e, a(i, null, n, r), i[0] = null, !r.pop() } }), has: ae(function(t) { return function(e) { return 0 < oe(t, e).length } }), contains: ae(function(t) { return t = t.replace(te, f),\r\n function(e) { return -1 < (e.textContent || e.innerText || o(e)).indexOf(t) } }), lang: ae(function(n) { return z.test(n || \"\") || oe.error(\"unsupported lang: \" + n), n = n.replace(te, f).toLowerCase(),\r\n function(e) { var t;\r\n do { if (t = T ? e.lang : e.getAttribute(\"xml:lang\") || e.getAttribute(\"lang\")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + \"-\") } while ((e = e.parentNode) && 1 === e.nodeType); return !1 } }), target: function(e) { var t = n.location && n.location.hash; return t && t.slice(1) === e.id }, root: function(e) { return e === a }, focus: function(e) { return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: fe(!1), disabled: fe(!0), checked: function(e) { var t = e.nodeName.toLowerCase(); return \"input\" === t && !!e.checked || \"option\" === t && !!e.selected }, selected: function(e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function(e) { for (e = e.firstChild; e; e = e.nextSibling)\r\n if (e.nodeType < 6) return !1;\r\n return !0 }, parent: function(e) { return !b.pseudos.empty(e) }, header: function(e) { return G.test(e.nodeName) }, input: function(e) { return Y.test(e.nodeName) }, button: function(e) { var t = e.nodeName.toLowerCase(); return \"input\" === t && \"button\" === e.type || \"button\" === t }, text: function(e) { var t; return \"input\" === e.nodeName.toLowerCase() && \"text\" === e.type && (null == (t = e.getAttribute(\"type\")) || \"text\" === t.toLowerCase()) }, first: he(function() { return [0] }), last: he(function(e, t) { return [t - 1] }), eq: he(function(e, t, n) { return [n < 0 ? n + t : n] }), even: he(function(e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e }), odd: he(function(e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e }), lt: he(function(e, t, n) { for (var i = n < 0 ? n + t : n; 0 <= --i;) e.push(i); return e }), gt: he(function(e, t, n) { for (var i = n < 0 ? n + t : n; ++i < t;) e.push(i); return e }) } }).pseudos.nth = b.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) b.pseudos[e] = function(t) { return function(e) { return \"input\" === e.nodeName.toLowerCase() && e.type === t } }(e); for (e in { submit: !0, reset: !0 }) b.pseudos[e] = function(n) { return function(e) { var t = e.nodeName.toLowerCase(); return (\"input\" === t || \"button\" === t) && e.type === n } }(e);\r\n\r\n function pe() {}\r\n\r\n function ge(e) { for (var t = 0, n = e.length, i = \"\"; t < n; t++) i += e[t].value; return i }\r\n\r\n function me(a, e, t) { var l = e.dir,\r\n c = e.next,\r\n u = c || l,\r\n f = t && \"parentNode\" === u,\r\n h = i++; return e.first ? function(e, t, n) { for (; e = e[l];)\r\n if (1 === e.nodeType || f) return a(e, t, n);\r\n return !1 } : function(e, t, n) { var i, r, o, s = [S, h]; if (n) { for (; e = e[l];)\r\n if ((1 === e.nodeType || f) && a(e, t, n)) return !0 } else\r\n for (; e = e[l];)\r\n if (1 === e.nodeType || f)\r\n if (r = (o = e[x] || (e[x] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), c && c === e.nodeName.toLowerCase()) e = e[l] || e;\r\n else { if ((i = r[u]) && i[0] === S && i[1] === h) return s[2] = i[2]; if ((r[u] = s)[2] = a(e, t, n)) return !0 } return !1 } }\r\n\r\n function ve(r) { return 1 < r.length ? function(e, t, n) { for (var i = r.length; i--;)\r\n if (!r[i](e, t, n)) return !1;\r\n return !0 } : r[0] }\r\n\r\n function ye(e, t, n, i, r) { for (var o, s = [], a = 0, l = e.length, c = null != t; a < l; a++)(o = e[a]) && (n && !n(o, i, r) || (s.push(o), c && t.push(a))); return s }\r\n\r\n function _e(d, p, g, m, v, e) { return m && !m[x] && (m = _e(m)), v && !v[x] && (v = _e(v, e)), ae(function(e, t, n, i) { var r, o, s, a = [],\r\n l = [],\r\n c = t.length,\r\n u = e || function(e, t, n) { for (var i = 0, r = t.length; i < r; i++) oe(e, t[i], n); return n }(p || \"*\", n.nodeType ? [n] : n, []),\r\n f = !d || !e && p ? u : ye(u, a, d, n, i),\r\n h = g ? v || (e ? d : c || m) ? [] : t : f; if (g && g(f, h, n, i), m)\r\n for (r = ye(h, l), m(r, [], n, i), o = r.length; o--;)(s = r[o]) && (h[l[o]] = !(f[l[o]] = s)); if (e) { if (v || d) { if (v) { for (r = [], o = h.length; o--;)(s = h[o]) && r.push(f[o] = s);\r\n v(null, h = [], r, i) } for (o = h.length; o--;)(s = h[o]) && -1 < (r = v ? H(e, s) : a[o]) && (e[r] = !(t[r] = s)) } } else h = ye(h === t ? h.splice(c, h.length) : h), v ? v(null, t, h, i) : L.apply(t, h) }) }\r\n\r\n function be(m, v) {\r\n function e(e, t, n, i, r) { var o, s, a, l = 0,\r\n c = \"0\",\r\n u = e && [],\r\n f = [],\r\n h = E,\r\n d = e || _ && b.find.TAG(\"*\", r),\r\n p = S += null == h ? 1 : Math.random() || .1,\r\n g = d.length; for (r && (E = t === C || t || r); c !== g && null != (o = d[c]); c++) { if (_ && o) { for (s = 0, t || o.ownerDocument === C || (w(o), n = !T); a = m[s++];)\r\n if (a(o, t || C, n)) { i.push(o); break }\r\n r && (S = p) }\r\n y && ((o = !a && o) && l--, e && u.push(o)) } if (l += c, y && c !== l) { for (s = 0; a = v[s++];) a(u, f, t, n); if (e) { if (0 < l)\r\n for (; c--;) u[c] || f[c] || (f[c] = O.call(i));\r\n f = ye(f) }\r\n L.apply(i, f), r && !e && 0 < f.length && 1 < l + v.length && oe.uniqueSort(i) } return r && (S = p, E = h), u } var y = 0 < v.length,\r\n _ = 0 < m.length; return y ? ae(e) : e } return pe.prototype = b.filters = b.pseudos, b.setFilters = new pe, p = oe.tokenize = function(e, t) { var n, i, r, o, s, a, l, c = A[e + \" \"]; if (c) return t ? 0 : c.slice(0); for (s = e, a = [], l = b.preFilter; s;) { for (o in n && !(i = U.exec(s)) || (i && (s = s.slice(i[0].length) || s), a.push(r = [])), n = !1, (i = Q.exec(s)) && (n = i.shift(), r.push({ value: n, type: i[0].replace(B, \" \") }), s = s.slice(n.length)), b.filter) !(i = X[o].exec(s)) || l[o] && !(i = l[o](i)) || (n = i.shift(), r.push({ value: n, type: o, matches: i }), s = s.slice(n.length)); if (!n) break } return t ? s.length : s ? oe.error(e) : A(e, a).slice(0) }, h = oe.compile = function(e, t) { var n, i = [],\r\n r = [],\r\n o = N[e + \" \"]; if (!o) { for (n = (t = t || p(e)).length; n--;)(o = function e(t) { for (var r, n, i, o = t.length, s = b.relative[t[0].type], a = s || b.relative[\" \"], l = s ? 1 : 0, c = me(function(e) { return e === r }, a, !0), u = me(function(e) { return -1 < H(r, e) }, a, !0), f = [function(e, t, n) { var i = !s && (n || t !== E) || ((r = t).nodeType ? c : u)(e, t, n); return r = null, i }]; l < o; l++)\r\n if (n = b.relative[t[l].type]) f = [me(ve(f), n)];\r\n else { if ((n = b.filter[t[l].type].apply(null, t[l].matches))[x]) { for (i = ++l; i < o && !b.relative[t[i].type]; i++); return _e(1 < l && ve(f), 1 < l && ge(t.slice(0, l - 1).concat({ value: \" \" === t[l - 2].type ? \"*\" : \"\" })).replace(B, \"$1\"), n, l < i && e(t.slice(l, i)), i < o && e(t = t.slice(i)), i < o && ge(t)) }\r\n f.push(n) }\r\n return ve(f) }(t[n]))[x] ? i.push(o) : r.push(o);\r\n (o = N(e, be(r, i))).selector = e } return o }, g = oe.select = function(e, t, n, i) { var r, o, s, a, l, c = \"function\" == typeof e && e,\r\n u = !i && p(e = c.selector || e); if (n = n || [], 1 === u.length) { if (2 < (o = u[0] = u[0].slice(0)).length && \"ID\" === (s = o[0]).type && 9 === t.nodeType && T && b.relative[o[1].type]) { if (!(t = (b.find.ID(s.matches[0].replace(te, f), t) || [])[0])) return n;\r\n c && (t = t.parentNode), e = e.slice(o.shift().value.length) } for (r = X.needsContext.test(e) ? 0 : o.length; r-- && (s = o[r], !b.relative[a = s.type]);)\r\n if ((l = b.find[a]) && (i = l(s.matches[0].replace(te, f), ee.test(o[0].type) && de(t.parentNode) || t))) { if (o.splice(r, 1), !(e = i.length && ge(o))) return L.apply(n, i), n; break } } return (c || h(e, u))(i, t, !T, n, !t || ee.test(e) && de(t.parentNode) || t), n }, d.sortStable = x.split(\"\").sort(I).join(\"\") === x, d.detectDuplicates = !!c, w(), d.sortDetached = le(function(e) { return 1 & e.compareDocumentPosition(C.createElement(\"fieldset\")) }), le(function(e) { return e.innerHTML = \"<a href='#'></a>\", \"#\" === e.firstChild.getAttribute(\"href\") }) || ce(\"type|href|height|width\", function(e, t, n) { if (!n) return e.getAttribute(t, \"type\" === t.toLowerCase() ? 1 : 2) }), d.attributes && le(function(e) { return e.innerHTML = \"<input/>\", e.firstChild.setAttribute(\"value\", \"\"), \"\" === e.firstChild.getAttribute(\"value\") }) || ce(\"value\", function(e, t, n) { if (!n && \"input\" === e.nodeName.toLowerCase()) return e.defaultValue }), le(function(e) { return null == e.getAttribute(\"disabled\") }) || ce(q, function(e, t, n) { var i; if (!n) return !0 === e[t] ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null }), oe }(C);\r\n x.find = d, x.expr = d.selectors, x.expr[\":\"] = x.expr.pseudos, x.uniqueSort = x.unique = d.uniqueSort, x.text = d.getText, x.isXMLDoc = d.isXML, x.contains = d.contains, x.escapeSelector = d.escape;\r\n\r\n function p(e, t, n) { for (var i = [], r = void 0 !== n;\r\n (e = e[t]) && 9 !== e.nodeType;)\r\n if (1 === e.nodeType) { if (r && x(e).is(n)) break;\r\n i.push(e) }\r\n return i }\r\n\r\n function w(e, t) { for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); return n } var S = x.expr.match.needsContext;\r\n\r\n function D(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } var A = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\r\n\r\n function N(e, n, i) { return _(n) ? x.grep(e, function(e, t) { return !!n.call(e, t, e) !== i }) : n.nodeType ? x.grep(e, function(e) { return e === n !== i }) : \"string\" != typeof n ? x.grep(e, function(e) { return -1 < r.call(n, e) !== i }) : x.filter(n, e, i) }\r\n x.filter = function(e, t, n) { var i = t[0]; return n && (e = \":not(\" + e + \")\"), 1 === t.length && 1 === i.nodeType ? x.find.matchesSelector(i, e) ? [i] : [] : x.find.matches(e, x.grep(t, function(e) { return 1 === e.nodeType })) }, x.fn.extend({ find: function(e) { var t, n, i = this.length,\r\n r = this; if (\"string\" != typeof e) return this.pushStack(x(e).filter(function() { for (t = 0; t < i; t++)\r\n if (x.contains(r[t], this)) return !0 })); for (n = this.pushStack([]), t = 0; t < i; t++) x.find(e, r[t], n); return 1 < i ? x.uniqueSort(n) : n }, filter: function(e) { return this.pushStack(N(this, e || [], !1)) }, not: function(e) { return this.pushStack(N(this, e || [], !0)) }, is: function(e) { return !!N(this, \"string\" == typeof e && S.test(e) ? x(e) : e || [], !1).length } }); var I, k = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;\r\n (x.fn.init = function(e, t, n) { var i, r; if (!e) return this; if (n = n || I, \"string\" != typeof e) return e.nodeType ? (this[0] = e, this.length = 1, this) : _(e) ? void 0 !== n.ready ? n.ready(e) : e(x) : x.makeArray(e, this); if (!(i = \"<\" === e[0] && \">\" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : k.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); if (i[1]) { if (t = t instanceof x ? t[0] : t, x.merge(this, x.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : T, !0)), A.test(i[1]) && x.isPlainObject(t))\r\n for (i in t) _(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); return this } return (r = T.getElementById(i[2])) && (this[0] = r, this.length = 1), this }).prototype = x.fn, I = x(T); var O = /^(?:parents|prev(?:Until|All))/,\r\n j = { children: !0, contents: !0, next: !0, prev: !0 };\r\n\r\n function L(e, t) { for (;\r\n (e = e[t]) && 1 !== e.nodeType;); return e }\r\n x.fn.extend({ has: function(e) { var t = x(e, this),\r\n n = t.length; return this.filter(function() { for (var e = 0; e < n; e++)\r\n if (x.contains(this, t[e])) return !0 }) }, closest: function(e, t) { var n, i = 0,\r\n r = this.length,\r\n o = [],\r\n s = \"string\" != typeof e && x(e); if (!S.test(e))\r\n for (; i < r; i++)\r\n for (n = this[i]; n && n !== t; n = n.parentNode)\r\n if (n.nodeType < 11 && (s ? -1 < s.index(n) : 1 === n.nodeType && x.find.matchesSelector(n, e))) { o.push(n); break }\r\n return this.pushStack(1 < o.length ? x.uniqueSort(o) : o) }, index: function(e) { return e ? \"string\" == typeof e ? r.call(x(e), this[0]) : r.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function(e, t) { return this.pushStack(x.uniqueSort(x.merge(this.get(), x(e, t)))) }, addBack: function(e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), x.each({ parent: function(e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function(e) { return p(e, \"parentNode\") }, parentsUntil: function(e, t, n) { return p(e, \"parentNode\", n) }, next: function(e) { return L(e, \"nextSibling\") }, prev: function(e) { return L(e, \"previousSibling\") }, nextAll: function(e) { return p(e, \"nextSibling\") }, prevAll: function(e) { return p(e, \"previousSibling\") }, nextUntil: function(e, t, n) { return p(e, \"nextSibling\", n) }, prevUntil: function(e, t, n) { return p(e, \"previousSibling\", n) }, siblings: function(e) { return w((e.parentNode || {}).firstChild, e) }, children: function(e) { return w(e.firstChild) }, contents: function(e) { return D(e, \"iframe\") ? e.contentDocument : (D(e, \"template\") && (e = e.content || e), x.merge([], e.childNodes)) } }, function(i, r) { x.fn[i] = function(e, t) { var n = x.map(this, r, e); return \"Until\" !== i.slice(-5) && (t = e), t && \"string\" == typeof t && (n = x.filter(t, n)), 1 < this.length && (j[i] || x.uniqueSort(n), O.test(i) && n.reverse()), this.pushStack(n) } }); var P = /[^\\x20\\t\\r\\n\\f]+/g;\r\n\r\n function H(e) { return e }\r\n\r\n function q(e) { throw e }\r\n\r\n function R(e, t, n, i) { var r; try { e && _(r = e.promise) ? r.call(e).done(t).fail(n) : e && _(r = e.then) ? r.call(e, t, n) : t.apply(void 0, [e].slice(i)) } catch (e) { n.apply(void 0, [e]) } }\r\n x.Callbacks = function(i) { var e, n;\r\n i = \"string\" == typeof i ? (e = i, n = {}, x.each(e.match(P) || [], function(e, t) { n[t] = !0 }), n) : x.extend({}, i);\r\n\r\n function r() { for (a = a || i.once, s = o = !0; c.length; u = -1)\r\n for (t = c.shift(); ++u < l.length;) !1 === l[u].apply(t[0], t[1]) && i.stopOnFalse && (u = l.length, t = !1);\r\n i.memory || (t = !1), o = !1, a && (l = t ? [] : \"\") } var o, t, s, a, l = [],\r\n c = [],\r\n u = -1,\r\n f = { add: function() { return l && (t && !o && (u = l.length - 1, c.push(t)), function n(e) { x.each(e, function(e, t) { _(t) ? i.unique && f.has(t) || l.push(t) : t && t.length && \"string\" !== E(t) && n(t) }) }(arguments), t && !o && r()), this }, remove: function() { return x.each(arguments, function(e, t) { for (var n; - 1 < (n = x.inArray(t, l, n));) l.splice(n, 1), n <= u && u-- }), this }, has: function(e) { return e ? -1 < x.inArray(e, l) : 0 < l.length }, empty: function() { return l = l && [], this }, disable: function() { return a = c = [], l = t = \"\", this }, disabled: function() { return !l }, lock: function() { return a = c = [], t || o || (l = t = \"\"), this }, locked: function() { return !!a }, fireWith: function(e, t) { return a || (t = [e, (t = t || []).slice ? t.slice() : t], c.push(t), o || r()), this }, fire: function() { return f.fireWith(this, arguments), this }, fired: function() { return !!s } }; return f }, x.extend({ Deferred: function(e) { var o = [\r\n [\"notify\", \"progress\", x.Callbacks(\"memory\"), x.Callbacks(\"memory\"), 2],\r\n [\"resolve\", \"done\", x.Callbacks(\"once memory\"), x.Callbacks(\"once memory\"), 0, \"resolved\"],\r\n [\"reject\", \"fail\", x.Callbacks(\"once memory\"), x.Callbacks(\"once memory\"), 1, \"rejected\"]\r\n ],\r\n r = \"pending\",\r\n s = { state: function() { return r }, always: function() { return a.done(arguments).fail(arguments), this }, catch: function(e) { return s.then(null, e) }, pipe: function() { var r = arguments; return x.Deferred(function(i) { x.each(o, function(e, t) { var n = _(r[t[4]]) && r[t[4]];\r\n a[t[1]](function() { var e = n && n.apply(this, arguments);\r\n e && _(e.promise) ? e.promise().progress(i.notify).done(i.resolve).fail(i.reject) : i[t[0] + \"With\"](this, n ? [e] : arguments) }) }), r = null }).promise() }, then: function(t, n, i) { var l = 0;\r\n\r\n function c(r, o, s, a) { return function() {\r\n function e() { var e, t; if (!(r < l)) { if ((e = s.apply(n, i)) === o.promise()) throw new TypeError(\"Thenable self-resolution\");\r\n t = e && (\"object\" == typeof e || \"function\" == typeof e) && e.then, _(t) ? a ? t.call(e, c(l, o, H, a), c(l, o, q, a)) : (l++, t.call(e, c(l, o, H, a), c(l, o, q, a), c(l, o, H, o.notifyWith))) : (s !== H && (n = void 0, i = [e]), (a || o.resolveWith)(n, i)) } } var n = this,\r\n i = arguments,\r\n t = a ? e : function() { try { e() } catch (e) { x.Deferred.exceptionHook && x.Deferred.exceptionHook(e, t.stackTrace), l <= r + 1 && (s !== q && (n = void 0, i = [e]), o.rejectWith(n, i)) } };\r\n r ? t() : (x.Deferred.getStackHook && (t.stackTrace = x.Deferred.getStackHook()), C.setTimeout(t)) } } return x.Deferred(function(e) { o[0][3].add(c(0, e, _(i) ? i : H, e.notifyWith)), o[1][3].add(c(0, e, _(t) ? t : H)), o[2][3].add(c(0, e, _(n) ? n : q)) }).promise() }, promise: function(e) { return null != e ? x.extend(e, s) : s } },\r\n a = {}; return x.each(o, function(e, t) { var n = t[2],\r\n i = t[5];\r\n s[t[1]] = n.add, i && n.add(function() { r = i }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), a[t[0]] = function() { return a[t[0] + \"With\"](this === a ? void 0 : this, arguments), this }, a[t[0] + \"With\"] = n.fireWith }), s.promise(a), e && e.call(a, a), a }, when: function(e) {\r\n function t(t) { return function(e) { r[t] = this, o[t] = 1 < arguments.length ? a.call(arguments) : e, --n || s.resolveWith(r, o) } } var n = arguments.length,\r\n i = n,\r\n r = Array(i),\r\n o = a.call(arguments),\r\n s = x.Deferred(); if (n <= 1 && (R(e, s.done(t(i)).resolve, s.reject, !n), \"pending\" === s.state() || _(o[i] && o[i].then))) return s.then(); for (; i--;) R(o[i], t(i), s.reject); return s.promise() } }); var M = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\r\n x.Deferred.exceptionHook = function(e, t) { C.console && C.console.warn && e && M.test(e.name) && C.console.warn(\"jQuery.Deferred exception: \" + e.message, e.stack, t) }, x.readyException = function(e) { C.setTimeout(function() { throw e }) }; var W = x.Deferred();\r\n\r\n function F() { T.removeEventListener(\"DOMContentLoaded\", F), C.removeEventListener(\"load\", F), x.ready() }\r\n x.fn.ready = function(e) { return W.then(e).catch(function(e) { x.readyException(e) }), this }, x.extend({ isReady: !1, readyWait: 1, ready: function(e) {\r\n (!0 === e ? --x.readyWait : x.isReady) || ((x.isReady = !0) !== e && 0 < --x.readyWait || W.resolveWith(T, [x])) } }), x.ready.then = W.then, \"complete\" === T.readyState || \"loading\" !== T.readyState && !T.documentElement.doScroll ? C.setTimeout(x.ready) : (T.addEventListener(\"DOMContentLoaded\", F), C.addEventListener(\"load\", F)); var $ = function(e, t, n, i, r, o, s) { var a = 0,\r\n l = e.length,\r\n c = null == n; if (\"object\" === E(n))\r\n for (a in r = !0, n) $(e, t, a, n[a], !0, o, s);\r\n else if (void 0 !== i && (r = !0, _(i) || (s = !0), c && (t = s ? (t.call(e, i), null) : (c = t, function(e, t, n) { return c.call(x(e), n) })), t))\r\n for (; a < l; a++) t(e[a], n, s ? i : i.call(e[a], a, t(e[a], n))); return r ? e : c ? t.call(e) : l ? t(e[0], n) : o },\r\n B = /^-ms-/,\r\n U = /-([a-z])/g;\r\n\r\n function Q(e, t) { return t.toUpperCase() }\r\n\r\n function K(e) { return e.replace(B, \"ms-\").replace(U, Q) }\r\n\r\n function V(e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType }\r\n\r\n function z() { this.expando = x.expando + z.uid++ }\r\n z.uid = 1, z.prototype = { cache: function(e) { var t = e[this.expando]; return t || (t = {}, V(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t }, set: function(e, t, n) { var i, r = this.cache(e); if (\"string\" == typeof t) r[K(t)] = n;\r\n else\r\n for (i in t) r[K(i)] = t[i]; return r }, get: function(e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][K(t)] }, access: function(e, t, n) { return void 0 === t || t && \"string\" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) }, remove: function(e, t) { var n, i = e[this.expando]; if (void 0 !== i) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(K) : (t = K(t)) in i ? [t] : t.match(P) || []).length; for (; n--;) delete i[t[n]] }\r\n void 0 !== t && !x.isEmptyObject(i) || (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } }, hasData: function(e) { var t = e[this.expando]; return void 0 !== t && !x.isEmptyObject(t) } }; var X = new z,\r\n Y = new z,\r\n G = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n J = /[A-Z]/g;\r\n\r\n function Z(e, t, n) { var i, r; if (void 0 === n && 1 === e.nodeType)\r\n if (i = \"data-\" + t.replace(J, \"-$&\").toLowerCase(), \"string\" == typeof(n = e.getAttribute(i))) { try { n = \"true\" === (r = n) || \"false\" !== r && (\"null\" === r ? null : r === +r + \"\" ? +r : G.test(r) ? JSON.parse(r) : r) } catch (e) {}\r\n Y.set(e, t, n) } else n = void 0;\r\n return n }\r\n x.extend({ hasData: function(e) { return Y.hasData(e) || X.hasData(e) }, data: function(e, t, n) { return Y.access(e, t, n) }, removeData: function(e, t) { Y.remove(e, t) }, _data: function(e, t, n) { return X.access(e, t, n) }, _removeData: function(e, t) { X.remove(e, t) } }), x.fn.extend({ data: function(n, e) { var t, i, r, o = this[0],\r\n s = o && o.attributes; if (void 0 !== n) return \"object\" == typeof n ? this.each(function() { Y.set(this, n) }) : $(this, function(e) { var t; if (o && void 0 === e) { if (void 0 !== (t = Y.get(o, n))) return t; if (void 0 !== (t = Z(o, n))) return t } else this.each(function() { Y.set(this, n, e) }) }, null, e, 1 < arguments.length, null, !0); if (this.length && (r = Y.get(o), 1 === o.nodeType && !X.get(o, \"hasDataAttrs\"))) { for (t = s.length; t--;) s[t] && 0 === (i = s[t].name).indexOf(\"data-\") && (i = K(i.slice(5)), Z(o, i, r[i]));\r\n X.set(o, \"hasDataAttrs\", !0) } return r }, removeData: function(e) { return this.each(function() { Y.remove(this, e) }) } }), x.extend({ queue: function(e, t, n) { var i; if (e) return t = (t || \"fx\") + \"queue\", i = X.get(e, t), n && (!i || Array.isArray(n) ? i = X.access(e, t, x.makeArray(n)) : i.push(n)), i || [] }, dequeue: function(e, t) { t = t || \"fx\"; var n = x.queue(e, t),\r\n i = n.length,\r\n r = n.shift(),\r\n o = x._queueHooks(e, t); \"inprogress\" === r && (r = n.shift(), i--), r && (\"fx\" === t && n.unshift(\"inprogress\"), delete o.stop, r.call(e, function() { x.dequeue(e, t) }, o)), !i && o && o.empty.fire() }, _queueHooks: function(e, t) { var n = t + \"queueHooks\"; return X.get(e, n) || X.access(e, n, { empty: x.Callbacks(\"once memory\").add(function() { X.remove(e, [t + \"queue\", n]) }) }) } }), x.fn.extend({ queue: function(t, n) { var e = 2; return \"string\" != typeof t && (n = t, t = \"fx\", e--), arguments.length < e ? x.queue(this[0], t) : void 0 === n ? this : this.each(function() { var e = x.queue(this, t, n);\r\n x._queueHooks(this, t), \"fx\" === t && \"inprogress\" !== e[0] && x.dequeue(this, t) }) }, dequeue: function(e) { return this.each(function() { x.dequeue(this, e) }) }, clearQueue: function(e) { return this.queue(e || \"fx\", []) }, promise: function(e, t) {\r\n function n() {--r || o.resolveWith(s, [s]) } var i, r = 1,\r\n o = x.Deferred(),\r\n s = this,\r\n a = this.length; for (\"string\" != typeof e && (t = e, e = void 0), e = e || \"fx\"; a--;)(i = X.get(s[a], e + \"queueHooks\")) && i.empty && (r++, i.empty.add(n)); return n(), o.promise(t) } });\r\n\r\n function ee(e, t, n, i) { var r, o, s = {}; for (o in t) s[o] = e.style[o], e.style[o] = t[o]; for (o in r = n.apply(e, i || []), t) e.style[o] = s[o]; return r } var te = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,\r\n ne = new RegExp(\"^(?:([+-])=|)(\" + te + \")([a-z%]*)$\", \"i\"),\r\n ie = [\"Top\", \"Right\", \"Bottom\", \"Left\"],\r\n re = function(e, t) { return \"none\" === (e = t || e).style.display || \"\" === e.style.display && x.contains(e.ownerDocument, e) && \"none\" === x.css(e, \"display\") };\r\n\r\n function oe(e, t, n, i) { var r, o, s = 20,\r\n a = i ? function() { return i.cur() } : function() { return x.css(e, t, \"\") },\r\n l = a(),\r\n c = n && n[3] || (x.cssNumber[t] ? \"\" : \"px\"),\r\n u = (x.cssNumber[t] || \"px\" !== c && +l) && ne.exec(x.css(e, t)); if (u && u[3] !== c) { for (l /= 2, c = c || u[3], u = +l || 1; s--;) x.style(e, t, u + c), (1 - o) * (1 - (o = a() / l || .5)) <= 0 && (s = 0), u /= o;\r\n u *= 2, x.style(e, t, u + c), n = n || [] } return n && (u = +u || +l || 0, r = n[1] ? u + (n[1] + 1) * n[2] : +n[2], i && (i.unit = c, i.start = u, i.end = r)), r } var se = {};\r\n\r\n function ae(e, t) { for (var n, i, r, o, s, a, l, c = [], u = 0, f = e.length; u < f; u++)(i = e[u]).style && (n = i.style.display, t ? (\"none\" === n && (c[u] = X.get(i, \"display\") || null, c[u] || (i.style.display = \"\")), \"\" === i.style.display && re(i) && (c[u] = (l = a = s = o = void 0, s = (r = i).ownerDocument, a = r.nodeName, (l = se[a]) || (o = s.body.appendChild(s.createElement(a)), l = x.css(o, \"display\"), o.parentNode.removeChild(o), \"none\" === l && (l = \"block\"), se[a] = l)))) : \"none\" !== n && (c[u] = \"none\", X.set(i, \"display\", n))); for (u = 0; u < f; u++) null != c[u] && (e[u].style.display = c[u]); return e }\r\n x.fn.extend({ show: function() { return ae(this, !0) }, hide: function() { return ae(this) }, toggle: function(e) { return \"boolean\" == typeof e ? e ? this.show() : this.hide() : this.each(function() { re(this) ? x(this).show() : x(this).hide() }) } }); var le = /^(?:checkbox|radio)$/i,\r\n ce = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,\r\n ue = /^$|^module$|\\/(?:java|ecma)script/i,\r\n fe = { option: [1, \"<select multiple='multiple'>\", \"</select>\"], thead: [1, \"<table>\", \"</table>\"], col: [2, \"<table><colgroup>\", \"</colgroup></table>\"], tr: [2, \"<table><tbody>\", \"</tbody></table>\"], td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"], _default: [0, \"\", \"\"] };\r\n\r\n function he(e, t) { var n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || \"*\") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || \"*\") : []; return void 0 === t || t && D(e, t) ? x.merge([e], n) : n }\r\n\r\n function de(e, t) { for (var n = 0, i = e.length; n < i; n++) X.set(e[n], \"globalEval\", !t || X.get(t[n], \"globalEval\")) }\r\n fe.optgroup = fe.option, fe.tbody = fe.tfoot = fe.colgroup = fe.caption = fe.thead, fe.th = fe.td; var pe, ge, me = /<|&#?\\w+;/;\r\n\r\n function ve(e, t, n, i, r) { for (var o, s, a, l, c, u, f = t.createDocumentFragment(), h = [], d = 0, p = e.length; d < p; d++)\r\n if ((o = e[d]) || 0 === o)\r\n if (\"object\" === E(o)) x.merge(h, o.nodeType ? [o] : o);\r\n else if (me.test(o)) { for (s = s || f.appendChild(t.createElement(\"div\")), a = (ce.exec(o) || [\"\", \"\"])[1].toLowerCase(), l = fe[a] || fe._default, s.innerHTML = l[1] + x.htmlPrefilter(o) + l[2], u = l[0]; u--;) s = s.lastChild;\r\n x.merge(h, s.childNodes), (s = f.firstChild).textContent = \"\" } else h.push(t.createTextNode(o)); for (f.textContent = \"\", d = 0; o = h[d++];)\r\n if (i && -1 < x.inArray(o, i)) r && r.push(o);\r\n else if (c = x.contains(o.ownerDocument, o), s = he(f.appendChild(o), \"script\"), c && de(s), n)\r\n for (u = 0; o = s[u++];) ue.test(o.type || \"\") && n.push(o); return f }\r\n pe = T.createDocumentFragment().appendChild(T.createElement(\"div\")), (ge = T.createElement(\"input\")).setAttribute(\"type\", \"radio\"), ge.setAttribute(\"checked\", \"checked\"), ge.setAttribute(\"name\", \"t\"), pe.appendChild(ge), y.checkClone = pe.cloneNode(!0).cloneNode(!0).lastChild.checked, pe.innerHTML = \"<textarea>x</textarea>\", y.noCloneChecked = !!pe.cloneNode(!0).lastChild.defaultValue; var ye = T.documentElement,\r\n _e = /^key/,\r\n be = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\r\n Ee = /^([^.]*)(?:\\.(.+)|)/;\r\n\r\n function we() { return !0 }\r\n\r\n function Ce() { return !1 }\r\n\r\n function Te() { try { return T.activeElement } catch (e) {} }\r\n\r\n function xe(e, t, n, i, r, o) { var s, a; if (\"object\" == typeof t) { for (a in \"string\" != typeof n && (i = i || n, n = void 0), t) xe(e, a, n, i, t[a], o); return e } if (null == i && null == r ? (r = n, i = n = void 0) : null == r && (\"string\" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = Ce;\r\n else if (!r) return e; return 1 === o && (s = r, (r = function(e) { return x().off(e), s.apply(this, arguments) }).guid = s.guid || (s.guid = x.guid++)), e.each(function() { x.event.add(this, t, r, i, n) }) }\r\n x.event = { global: {}, add: function(t, e, n, i, r) { var o, s, a, l, c, u, f, h, d, p, g, m = X.get(t); if (m)\r\n for (n.handler && (n = (o = n).handler, r = o.selector), r && x.find.matchesSelector(ye, r), n.guid || (n.guid = x.guid++), (l = m.events) || (l = m.events = {}), (s = m.handle) || (s = m.handle = function(e) { return void 0 !== x && x.event.triggered !== e.type ? x.event.dispatch.apply(t, arguments) : void 0 }), c = (e = (e || \"\").match(P) || [\"\"]).length; c--;) d = g = (a = Ee.exec(e[c]) || [])[1], p = (a[2] || \"\").split(\".\").sort(), d && (f = x.event.special[d] || {}, d = (r ? f.delegateType : f.bindType) || d, f = x.event.special[d] || {}, u = x.extend({ type: d, origType: g, data: i, handler: n, guid: n.guid, selector: r, needsContext: r && x.expr.match.needsContext.test(r), namespace: p.join(\".\") }, o), (h = l[d]) || ((h = l[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, i, p, s) || t.addEventListener && t.addEventListener(d, s)), f.add && (f.add.call(t, u), u.handler.guid || (u.handler.guid = n.guid)), r ? h.splice(h.delegateCount++, 0, u) : h.push(u), x.event.global[d] = !0) }, remove: function(e, t, n, i, r) { var o, s, a, l, c, u, f, h, d, p, g, m = X.hasData(e) && X.get(e); if (m && (l = m.events)) { for (c = (t = (t || \"\").match(P) || [\"\"]).length; c--;)\r\n if (d = g = (a = Ee.exec(t[c]) || [])[1], p = (a[2] || \"\").split(\".\").sort(), d) { for (f = x.event.special[d] || {}, h = l[d = (i ? f.delegateType : f.bindType) || d] || [], a = a[2] && new RegExp(\"(^|\\\\.)\" + p.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"), s = o = h.length; o--;) u = h[o], !r && g !== u.origType || n && n.guid !== u.guid || a && !a.test(u.namespace) || i && i !== u.selector && (\"**\" !== i || !u.selector) || (h.splice(o, 1), u.selector && h.delegateCount--, f.remove && f.remove.call(e, u));\r\n s && !h.length && (f.teardown && !1 !== f.teardown.call(e, p, m.handle) || x.removeEvent(e, d, m.handle), delete l[d]) } else\r\n for (d in l) x.event.remove(e, d + t[c], n, i, !0);\r\n x.isEmptyObject(l) && X.remove(e, \"handle events\") } }, dispatch: function(e) { var t, n, i, r, o, s, a = x.event.fix(e),\r\n l = new Array(arguments.length),\r\n c = (X.get(this, \"events\") || {})[a.type] || [],\r\n u = x.event.special[a.type] || {}; for (l[0] = a, t = 1; t < arguments.length; t++) l[t] = arguments[t]; if (a.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, a)) { for (s = x.event.handlers.call(this, a, c), t = 0;\r\n (r = s[t++]) && !a.isPropagationStopped();)\r\n for (a.currentTarget = r.elem, n = 0;\r\n (o = r.handlers[n++]) && !a.isImmediatePropagationStopped();) a.rnamespace && !a.rnamespace.test(o.namespace) || (a.handleObj = o, a.data = o.data, void 0 !== (i = ((x.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, l)) && !1 === (a.result = i) && (a.preventDefault(), a.stopPropagation())); return u.postDispatch && u.postDispatch.call(this, a), a.result } }, handlers: function(e, t) { var n, i, r, o, s, a = [],\r\n l = t.delegateCount,\r\n c = e.target; if (l && c.nodeType && !(\"click\" === e.type && 1 <= e.button))\r\n for (; c !== this; c = c.parentNode || this)\r\n if (1 === c.nodeType && (\"click\" !== e.type || !0 !== c.disabled)) { for (o = [], s = {}, n = 0; n < l; n++) void 0 === s[r = (i = t[n]).selector + \" \"] && (s[r] = i.needsContext ? -1 < x(r, this).index(c) : x.find(r, this, null, [c]).length), s[r] && o.push(i);\r\n o.length && a.push({ elem: c, handlers: o }) }\r\n return c = this, l < t.length && a.push({ elem: c, handlers: t.slice(l) }), a }, addProp: function(t, e) { Object.defineProperty(x.Event.prototype, t, { enumerable: !0, configurable: !0, get: _(e) ? function() { if (this.originalEvent) return e(this.originalEvent) } : function() { if (this.originalEvent) return this.originalEvent[t] }, set: function(e) { Object.defineProperty(this, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) } }) }, fix: function(e) { return e[x.expando] ? e : new x.Event(e) }, special: { load: { noBubble: !0 }, focus: { trigger: function() { if (this !== Te() && this.focus) return this.focus(), !1 }, delegateType: \"focusin\" }, blur: { trigger: function() { if (this === Te() && this.blur) return this.blur(), !1 }, delegateType: \"focusout\" }, click: { trigger: function() { if (\"checkbox\" === this.type && this.click && D(this, \"input\")) return this.click(), !1 }, _default: function(e) { return D(e.target, \"a\") } }, beforeunload: { postDispatch: function(e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } } }, x.removeEvent = function(e, t, n) { e.removeEventListener && e.removeEventListener(t, n) }, x.Event = function(e, t) { if (!(this instanceof x.Event)) return new x.Event(e, t);\r\n e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? we : Ce, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && x.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[x.expando] = !0 }, x.Event.prototype = { constructor: x.Event, isDefaultPrevented: Ce, isPropagationStopped: Ce, isImmediatePropagationStopped: Ce, isSimulated: !1, preventDefault: function() { var e = this.originalEvent;\r\n this.isDefaultPrevented = we, e && !this.isSimulated && e.preventDefault() }, stopPropagation: function() { var e = this.originalEvent;\r\n this.isPropagationStopped = we, e && !this.isSimulated && e.stopPropagation() }, stopImmediatePropagation: function() { var e = this.originalEvent;\r\n this.isImmediatePropagationStopped = we, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() } }, x.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, char: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function(e) { var t = e.button; return null == e.which && _e.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && be.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which } }, x.event.addProp), x.each({ mouseenter: \"mouseover\", mouseleave: \"mouseout\", pointerenter: \"pointerover\", pointerleave: \"pointerout\" }, function(e, r) { x.event.special[e] = { delegateType: r, bindType: r, handle: function(e) { var t, n = e.relatedTarget,\r\n i = e.handleObj; return n && (n === this || x.contains(this, n)) || (e.type = i.origType, t = i.handler.apply(this, arguments), e.type = r), t } } }), x.fn.extend({ on: function(e, t, n, i) { return xe(this, e, t, n, i) }, one: function(e, t, n, i) { return xe(this, e, t, n, i, 1) }, off: function(e, t, n) { var i, r; if (e && e.preventDefault && e.handleObj) return i = e.handleObj, x(e.delegateTarget).off(i.namespace ? i.origType + \".\" + i.namespace : i.origType, i.selector, i.handler), this; if (\"object\" != typeof e) return !1 !== t && \"function\" != typeof t || (n = t, t = void 0), !1 === n && (n = Ce), this.each(function() { x.event.remove(this, e, n, t) }); for (r in e) this.off(r, t, e[r]); return this } }); var Se = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\r\n De = /<script|<style|<link/i,\r\n Ae = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\r\n Ne = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\r\n\r\n function Ie(e, t) { return D(e, \"table\") && D(11 !== t.nodeType ? t : t.firstChild, \"tr\") && x(e).children(\"tbody\")[0] || e }\r\n\r\n function ke(e) { return e.type = (null !== e.getAttribute(\"type\")) + \"/\" + e.type, e }\r\n\r\n function Oe(e) { return \"true/\" === (e.type || \"\").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute(\"type\"), e }\r\n\r\n function je(e, t) { var n, i, r, o, s, a, l, c; if (1 === t.nodeType) { if (X.hasData(e) && (o = X.access(e), s = X.set(t, o), c = o.events))\r\n for (r in delete s.handle, s.events = {}, c)\r\n for (n = 0, i = c[r].length; n < i; n++) x.event.add(t, r, c[r][n]);\r\n Y.hasData(e) && (a = Y.access(e), l = x.extend({}, a), Y.set(t, l)) } }\r\n\r\n function Le(n, i, r, o) { i = m.apply([], i); var e, t, s, a, l, c, u = 0,\r\n f = n.length,\r\n h = f - 1,\r\n d = i[0],\r\n p = _(d); if (p || 1 < f && \"string\" == typeof d && !y.checkClone && Ae.test(d)) return n.each(function(e) { var t = n.eq(e);\r\n p && (i[0] = d.call(this, e, t.html())), Le(t, i, r, o) }); if (f && (t = (e = ve(i, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) { for (a = (s = x.map(he(e, \"script\"), ke)).length; u < f; u++) l = e, u !== h && (l = x.clone(l, !0, !0), a && x.merge(s, he(l, \"script\"))), r.call(n[u], l, u); if (a)\r\n for (c = s[s.length - 1].ownerDocument, x.map(s, Oe), u = 0; u < a; u++) l = s[u], ue.test(l.type || \"\") && !X.access(l, \"globalEval\") && x.contains(c, l) && (l.src && \"module\" !== (l.type || \"\").toLowerCase() ? x._evalUrl && x._evalUrl(l.src) : b(l.textContent.replace(Ne, \"\"), c, l)) } return n }\r\n\r\n function Pe(e, t, n) { for (var i, r = t ? x.filter(t, e) : e, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || x.cleanData(he(i)), i.parentNode && (n && x.contains(i.ownerDocument, i) && de(he(i, \"script\")), i.parentNode.removeChild(i)); return e }\r\n x.extend({ htmlPrefilter: function(e) { return e.replace(Se, \"<$1></$2>\") }, clone: function(e, t, n) { var i, r, o, s, a, l, c, u = e.cloneNode(!0),\r\n f = x.contains(e.ownerDocument, e); if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || x.isXMLDoc(e)))\r\n for (s = he(u), i = 0, r = (o = he(e)).length; i < r; i++) a = o[i], l = s[i], c = void 0, \"input\" === (c = l.nodeName.toLowerCase()) && le.test(a.type) ? l.checked = a.checked : \"input\" !== c && \"textarea\" !== c || (l.defaultValue = a.defaultValue); if (t)\r\n if (n)\r\n for (o = o || he(e), s = s || he(u), i = 0, r = o.length; i < r; i++) je(o[i], s[i]);\r\n else je(e, u);\r\n return 0 < (s = he(u, \"script\")).length && de(s, !f && he(e, \"script\")), u }, cleanData: function(e) { for (var t, n, i, r = x.event.special, o = 0; void 0 !== (n = e[o]); o++)\r\n if (V(n)) { if (t = n[X.expando]) { if (t.events)\r\n for (i in t.events) r[i] ? x.event.remove(n, i) : x.removeEvent(n, i, t.handle);\r\n n[X.expando] = void 0 }\r\n n[Y.expando] && (n[Y.expando] = void 0) } } }), x.fn.extend({ detach: function(e) { return Pe(this, e, !0) }, remove: function(e) { return Pe(this, e) }, text: function(e) { return $(this, function(e) { return void 0 === e ? x.text(this) : this.empty().each(function() { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) }) }, null, e, arguments.length) }, append: function() { return Le(this, arguments, function(e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Ie(this, e).appendChild(e) }) }, prepend: function() { return Le(this, arguments, function(e) { var t;\r\n 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = Ie(this, e)).insertBefore(e, t.firstChild) }) }, before: function() { return Le(this, arguments, function(e) { this.parentNode && this.parentNode.insertBefore(e, this) }) }, after: function() { return Le(this, arguments, function(e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) }, empty: function() { for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (x.cleanData(he(e, !1)), e.textContent = \"\"); return this }, clone: function(e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function() { return x.clone(this, e, t) }) }, html: function(e) { return $(this, function(e) { var t = this[0] || {},\r\n n = 0,\r\n i = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if (\"string\" == typeof e && !De.test(e) && !fe[(ce.exec(e) || [\"\", \"\"])[1].toLowerCase()]) { e = x.htmlPrefilter(e); try { for (; n < i; n++) 1 === (t = this[n] || {}).nodeType && (x.cleanData(he(t, !1)), t.innerHTML = e);\r\n t = 0 } catch (e) {} }\r\n t && this.empty().append(e) }, null, e, arguments.length) }, replaceWith: function() { var n = []; return Le(this, arguments, function(e) { var t = this.parentNode;\r\n x.inArray(this, n) < 0 && (x.cleanData(he(this)), t && t.replaceChild(e, this)) }, n) } }), x.each({ appendTo: \"append\", prependTo: \"prepend\", insertBefore: \"before\", insertAfter: \"after\", replaceAll: \"replaceWith\" }, function(e, s) { x.fn[e] = function(e) { for (var t, n = [], i = x(e), r = i.length - 1, o = 0; o <= r; o++) t = o === r ? this : this.clone(!0), x(i[o])[s](t), l.apply(n, t.get()); return this.pushStack(n) } }); var He, qe, Re, Me, We, Fe, $e, Be = new RegExp(\"^(\" + te + \")(?!px)[a-z%]+$\", \"i\"),\r\n Ue = function(e) { var t = e.ownerDocument.defaultView; return t && t.opener || (t = C), t.getComputedStyle(e) },\r\n Qe = new RegExp(ie.join(\"|\"), \"i\");\r\n\r\n function Ke() { var e;\r\n $e && (Fe.style.cssText = \"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\", $e.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\", ye.appendChild(Fe).appendChild($e), e = C.getComputedStyle($e), He = \"1%\" !== e.top, We = 12 === Ve(e.marginLeft), $e.style.right = \"60%\", Me = 36 === Ve(e.right), qe = 36 === Ve(e.width), $e.style.position = \"absolute\", Re = 36 === $e.offsetWidth || \"absolute\", ye.removeChild(Fe), $e = null) }\r\n\r\n function Ve(e) { return Math.round(parseFloat(e)) }\r\n\r\n function ze(e, t, n) { var i, r, o, s, a = e.style; return (n = n || Ue(e)) && (\"\" !== (s = n.getPropertyValue(t) || n[t]) || x.contains(e.ownerDocument, e) || (s = x.style(e, t)), !y.pixelBoxStyles() && Be.test(s) && Qe.test(t) && (i = a.width, r = a.minWidth, o = a.maxWidth, a.minWidth = a.maxWidth = a.width = s, s = n.width, a.width = i, a.minWidth = r, a.maxWidth = o)), void 0 !== s ? s + \"\" : s }\r\n\r\n function Xe(e, t) { return { get: function() { if (!e()) return (this.get = t).apply(this, arguments);\r\n delete this.get } } }\r\n Fe = T.createElement(\"div\"), ($e = T.createElement(\"div\")).style && ($e.style.backgroundClip = \"content-box\", $e.cloneNode(!0).style.backgroundClip = \"\", y.clearCloneStyle = \"content-box\" === $e.style.backgroundClip, x.extend(y, { boxSizingReliable: function() { return Ke(), qe }, pixelBoxStyles: function() { return Ke(), Me }, pixelPosition: function() { return Ke(), He }, reliableMarginLeft: function() { return Ke(), We }, scrollboxSize: function() { return Ke(), Re } })); var Ye = /^(none|table(?!-c[ea]).+)/,\r\n Ge = /^--/,\r\n Je = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\r\n Ze = { letterSpacing: \"0\", fontWeight: \"400\" },\r\n et = [\"Webkit\", \"Moz\", \"ms\"],\r\n tt = T.createElement(\"div\").style;\r\n\r\n function nt(e) { return x.cssProps[e] || (x.cssProps[e] = function(e) { if (e in tt) return e; for (var t = e[0].toUpperCase() + e.slice(1), n = et.length; n--;)\r\n if ((e = et[n] + t) in tt) return e }(e) || e) }\r\n\r\n function it(e, t, n) { var i = ne.exec(t); return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || \"px\") : t }\r\n\r\n function rt(e, t, n, i, r, o) { var s = \"width\" === t ? 1 : 0,\r\n a = 0,\r\n l = 0; if (n === (i ? \"border\" : \"content\")) return 0; for (; s < 4; s += 2) \"margin\" === n && (l += x.css(e, n + ie[s], !0, r)), i ? (\"content\" === n && (l -= x.css(e, \"padding\" + ie[s], !0, r)), \"margin\" !== n && (l -= x.css(e, \"border\" + ie[s] + \"Width\", !0, r))) : (l += x.css(e, \"padding\" + ie[s], !0, r), \"padding\" !== n ? l += x.css(e, \"border\" + ie[s] + \"Width\", !0, r) : a += x.css(e, \"border\" + ie[s] + \"Width\", !0, r)); return !i && 0 <= o && (l += Math.max(0, Math.ceil(e[\"offset\" + t[0].toUpperCase() + t.slice(1)] - o - l - a - .5))), l }\r\n\r\n function ot(e, t, n) { var i = Ue(e),\r\n r = ze(e, t, i),\r\n o = \"border-box\" === x.css(e, \"boxSizing\", !1, i),\r\n s = o; if (Be.test(r)) { if (!n) return r;\r\n r = \"auto\" } return s = s && (y.boxSizingReliable() || r === e.style[t]), \"auto\" !== r && (parseFloat(r) || \"inline\" !== x.css(e, \"display\", !1, i)) || (r = e[\"offset\" + t[0].toUpperCase() + t.slice(1)], s = !0), (r = parseFloat(r) || 0) + rt(e, t, n || (o ? \"border\" : \"content\"), s, i, r) + \"px\" }\r\n\r\n function st(e, t, n, i, r) { return new st.prototype.init(e, t, n, i, r) }\r\n x.extend({ cssHooks: { opacity: { get: function(e, t) { if (t) { var n = ze(e, \"opacity\"); return \"\" === n ? \"1\" : n } } } }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function(e, t, n, i) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var r, o, s, a = K(t),\r\n l = Ge.test(t),\r\n c = e.style; if (l || (t = nt(a)), s = x.cssHooks[t] || x.cssHooks[a], void 0 === n) return s && \"get\" in s && void 0 !== (r = s.get(e, !1, i)) ? r : c[t]; \"string\" == (o = typeof n) && (r = ne.exec(n)) && r[1] && (n = oe(e, t, r), o = \"number\"), null != n && n == n && (\"number\" === o && (n += r && r[3] || (x.cssNumber[a] ? \"\" : \"px\")), y.clearCloneStyle || \"\" !== n || 0 !== t.indexOf(\"background\") || (c[t] = \"inherit\"), s && \"set\" in s && void 0 === (n = s.set(e, n, i)) || (l ? c.setProperty(t, n) : c[t] = n)) } }, css: function(e, t, n, i) { var r, o, s, a = K(t); return Ge.test(t) || (t = nt(a)), (s = x.cssHooks[t] || x.cssHooks[a]) && \"get\" in s && (r = s.get(e, !0, n)), void 0 === r && (r = ze(e, t, i)), \"normal\" === r && t in Ze && (r = Ze[t]), \"\" === n || n ? (o = parseFloat(r), !0 === n || isFinite(o) ? o || 0 : r) : r } }), x.each([\"height\", \"width\"], function(e, a) { x.cssHooks[a] = { get: function(e, t, n) { if (t) return !Ye.test(x.css(e, \"display\")) || e.getClientRects().length && e.getBoundingClientRect().width ? ot(e, a, n) : ee(e, Je, function() { return ot(e, a, n) }) }, set: function(e, t, n) { var i, r = Ue(e),\r\n o = \"border-box\" === x.css(e, \"boxSizing\", !1, r),\r\n s = n && rt(e, a, n, o, r); return o && y.scrollboxSize() === r.position && (s -= Math.ceil(e[\"offset\" + a[0].toUpperCase() + a.slice(1)] - parseFloat(r[a]) - rt(e, a, \"border\", !1, r) - .5)), s && (i = ne.exec(t)) && \"px\" !== (i[3] || \"px\") && (e.style[a] = t, t = x.css(e, a)), it(0, t, s) } } }), x.cssHooks.marginLeft = Xe(y.reliableMarginLeft, function(e, t) { if (t) return (parseFloat(ze(e, \"marginLeft\")) || e.getBoundingClientRect().left - ee(e, { marginLeft: 0 }, function() { return e.getBoundingClientRect().left })) + \"px\" }), x.each({ margin: \"\", padding: \"\", border: \"Width\" }, function(r, o) { x.cssHooks[r + o] = { expand: function(e) { for (var t = 0, n = {}, i = \"string\" == typeof e ? e.split(\" \") : [e]; t < 4; t++) n[r + ie[t] + o] = i[t] || i[t - 2] || i[0]; return n } }, \"margin\" !== r && (x.cssHooks[r + o].set = it) }), x.fn.extend({ css: function(e, t) { return $(this, function(e, t, n) { var i, r, o = {},\r\n s = 0; if (Array.isArray(t)) { for (i = Ue(e), r = t.length; s < r; s++) o[t[s]] = x.css(e, t[s], !1, i); return o } return void 0 !== n ? x.style(e, t, n) : x.css(e, t) }, e, t, 1 < arguments.length) } }), (x.Tween = st).prototype = { constructor: st, init: function(e, t, n, i, r, o) { this.elem = e, this.prop = n, this.easing = r || x.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = o || (x.cssNumber[n] ? \"\" : \"px\") }, cur: function() { var e = st.propHooks[this.prop]; return e && e.get ? e.get(this) : st.propHooks._default.get(this) }, run: function(e) { var t, n = st.propHooks[this.prop]; return this.options.duration ? this.pos = t = x.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : st.propHooks._default.set(this), this } }, st.prototype.init.prototype = st.prototype, st.propHooks = { _default: { get: function(e) { var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = x.css(e.elem, e.prop, \"\")) && \"auto\" !== t ? t : 0 }, set: function(e) { x.fx.step[e.prop] ? x.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[x.cssProps[e.prop]] && !x.cssHooks[e.prop] ? e.elem[e.prop] = e.now : x.style(e.elem, e.prop, e.now + e.unit) } } }, st.propHooks.scrollTop = st.propHooks.scrollLeft = { set: function(e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, x.easing = { linear: function(e) { return e }, swing: function(e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: \"swing\" }, x.fx = st.prototype.init, x.fx.step = {}; var at, lt, ct, ut, ft = /^(?:toggle|show|hide)$/,\r\n ht = /queueHooks$/;\r\n\r\n function dt() { lt && (!1 === T.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(dt) : C.setTimeout(dt, x.fx.interval), x.fx.tick()) }\r\n\r\n function pt() { return C.setTimeout(function() { at = void 0 }), at = Date.now() }\r\n\r\n function gt(e, t) { var n, i = 0,\r\n r = { height: e }; for (t = t ? 1 : 0; i < 4; i += 2 - t) r[\"margin\" + (n = ie[i])] = r[\"padding\" + n] = e; return t && (r.opacity = r.width = e), r }\r\n\r\n function mt(e, t, n) { for (var i, r = (vt.tweeners[t] || []).concat(vt.tweeners[\"*\"]), o = 0, s = r.length; o < s; o++)\r\n if (i = r[o].call(n, t, e)) return i }\r\n\r\n function vt(o, e, t) { var n, s, i = 0,\r\n r = vt.prefilters.length,\r\n a = x.Deferred().always(function() { delete l.elem }),\r\n l = function() { if (s) return !1; for (var e = at || pt(), t = Math.max(0, c.startTime + c.duration - e), n = 1 - (t / c.duration || 0), i = 0, r = c.tweens.length; i < r; i++) c.tweens[i].run(n); return a.notifyWith(o, [c, n, t]), n < 1 && r ? t : (r || a.notifyWith(o, [c, 1, 0]), a.resolveWith(o, [c]), !1) },\r\n c = a.promise({ elem: o, props: x.extend({}, e), opts: x.extend(!0, { specialEasing: {}, easing: x.easing._default }, t), originalProperties: e, originalOptions: t, startTime: at || pt(), duration: t.duration, tweens: [], createTween: function(e, t) { var n = x.Tween(o, c.opts, e, t, c.opts.specialEasing[e] || c.opts.easing); return c.tweens.push(n), n }, stop: function(e) { var t = 0,\r\n n = e ? c.tweens.length : 0; if (s) return this; for (s = !0; t < n; t++) c.tweens[t].run(1); return e ? (a.notifyWith(o, [c, 1, 0]), a.resolveWith(o, [c, e])) : a.rejectWith(o, [c, e]), this } }),\r\n u = c.props; for (function(e, t) { var n, i, r, o, s; for (n in e)\r\n if (r = t[i = K(n)], o = e[n], Array.isArray(o) && (r = o[1], o = e[n] = o[0]), n !== i && (e[i] = o, delete e[n]), (s = x.cssHooks[i]) && \"expand\" in s)\r\n for (n in o = s.expand(o), delete e[i], o) n in e || (e[n] = o[n], t[n] = r);\r\n else t[i] = r }(u, c.opts.specialEasing); i < r; i++)\r\n if (n = vt.prefilters[i].call(c, o, u, c.opts)) return _(n.stop) && (x._queueHooks(c.elem, c.opts.queue).stop = n.stop.bind(n)), n;\r\n return x.map(u, mt, c), _(c.opts.start) && c.opts.start.call(o, c), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always), x.fx.timer(x.extend(l, { elem: o, anim: c, queue: c.opts.queue })), c }\r\n x.Animation = x.extend(vt, { tweeners: { \"*\": [function(e, t) { var n = this.createTween(e, t); return oe(n.elem, e, ne.exec(t), n), n }] }, tweener: function(e, t) { for (var n, i = 0, r = (e = _(e) ? (t = e, [\"*\"]) : e.match(P)).length; i < r; i++) n = e[i], vt.tweeners[n] = vt.tweeners[n] || [], vt.tweeners[n].unshift(t) }, prefilters: [function(e, t, n) { var i, r, o, s, a, l, c, u, f = \"width\" in t || \"height\" in t,\r\n h = this,\r\n d = {},\r\n p = e.style,\r\n g = e.nodeType && re(e),\r\n m = X.get(e, \"fxshow\"); for (i in n.queue || (null == (s = x._queueHooks(e, \"fx\")).unqueued && (s.unqueued = 0, a = s.empty.fire, s.empty.fire = function() { s.unqueued || a() }), s.unqueued++, h.always(function() { h.always(function() { s.unqueued--, x.queue(e, \"fx\").length || s.empty.fire() }) })), t)\r\n if (r = t[i], ft.test(r)) { if (delete t[i], o = o || \"toggle\" === r, r === (g ? \"hide\" : \"show\")) { if (\"show\" !== r || !m || void 0 === m[i]) continue;\r\n g = !0 }\r\n d[i] = m && m[i] || x.style(e, i) }\r\n if ((l = !x.isEmptyObject(t)) || !x.isEmptyObject(d))\r\n for (i in f && 1 === e.nodeType && (n.overflow = [p.overflow, p.overflowX, p.overflowY], null == (c = m && m.display) && (c = X.get(e, \"display\")), \"none\" === (u = x.css(e, \"display\")) && (c ? u = c : (ae([e], !0), c = e.style.display || c, u = x.css(e, \"display\"), ae([e]))), (\"inline\" === u || \"inline-block\" === u && null != c) && \"none\" === x.css(e, \"float\") && (l || (h.done(function() { p.display = c }), null == c && (u = p.display, c = \"none\" === u ? \"\" : u)), p.display = \"inline-block\")), n.overflow && (p.overflow = \"hidden\", h.always(function() { p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2] })), l = !1, d) l || (m ? \"hidden\" in m && (g = m.hidden) : m = X.access(e, \"fxshow\", { display: c }), o && (m.hidden = !g), g && ae([e], !0), h.done(function() { for (i in g || ae([e]), X.remove(e, \"fxshow\"), d) x.style(e, i, d[i]) })), l = mt(g ? m[i] : 0, i, h), i in m || (m[i] = l.start, g && (l.end = l.start, l.start = 0)) }], prefilter: function(e, t) { t ? vt.prefilters.unshift(e) : vt.prefilters.push(e) } }), x.speed = function(e, t, n) { var i = e && \"object\" == typeof e ? x.extend({}, e) : { complete: n || !n && t || _(e) && e, duration: e, easing: n && t || t && !_(t) && t }; return x.fx.off ? i.duration = 0 : \"number\" != typeof i.duration && (i.duration in x.fx.speeds ? i.duration = x.fx.speeds[i.duration] : i.duration = x.fx.speeds._default), null != i.queue && !0 !== i.queue || (i.queue = \"fx\"), i.old = i.complete, i.complete = function() { _(i.old) && i.old.call(this), i.queue && x.dequeue(this, i.queue) }, i }, x.fn.extend({ fadeTo: function(e, t, n, i) { return this.filter(re).css(\"opacity\", 0).show().end().animate({ opacity: t }, e, n, i) }, animate: function(t, e, n, i) {\r\n function r() { var e = vt(this, x.extend({}, t), s);\r\n (o || X.get(this, \"finish\")) && e.stop(!0) } var o = x.isEmptyObject(t),\r\n s = x.speed(e, n, i); return r.finish = r, o || !1 === s.queue ? this.each(r) : this.queue(s.queue, r) }, stop: function(r, e, o) {\r\n function s(e) { var t = e.stop;\r\n delete e.stop, t(o) } return \"string\" != typeof r && (o = e, e = r, r = void 0), e && !1 !== r && this.queue(r || \"fx\", []), this.each(function() { var e = !0,\r\n t = null != r && r + \"queueHooks\",\r\n n = x.timers,\r\n i = X.get(this); if (t) i[t] && i[t].stop && s(i[t]);\r\n else\r\n for (t in i) i[t] && i[t].stop && ht.test(t) && s(i[t]); for (t = n.length; t--;) n[t].elem !== this || null != r && n[t].queue !== r || (n[t].anim.stop(o), e = !1, n.splice(t, 1));!e && o || x.dequeue(this, r) }) }, finish: function(s) { return !1 !== s && (s = s || \"fx\"), this.each(function() { var e, t = X.get(this),\r\n n = t[s + \"queue\"],\r\n i = t[s + \"queueHooks\"],\r\n r = x.timers,\r\n o = n ? n.length : 0; for (t.finish = !0, x.queue(this, s, []), i && i.stop && i.stop.call(this, !0), e = r.length; e--;) r[e].elem === this && r[e].queue === s && (r[e].anim.stop(!0), r.splice(e, 1)); for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);\r\n delete t.finish }) } }), x.each([\"toggle\", \"show\", \"hide\"], function(e, i) { var r = x.fn[i];\r\n x.fn[i] = function(e, t, n) { return null == e || \"boolean\" == typeof e ? r.apply(this, arguments) : this.animate(gt(i, !0), e, t, n) } }), x.each({ slideDown: gt(\"show\"), slideUp: gt(\"hide\"), slideToggle: gt(\"toggle\"), fadeIn: { opacity: \"show\" }, fadeOut: { opacity: \"hide\" }, fadeToggle: { opacity: \"toggle\" } }, function(e, i) { x.fn[e] = function(e, t, n) { return this.animate(i, e, t, n) } }), x.timers = [], x.fx.tick = function() { var e, t = 0,\r\n n = x.timers; for (at = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);\r\n n.length || x.fx.stop(), at = void 0 }, x.fx.timer = function(e) { x.timers.push(e), x.fx.start() }, x.fx.interval = 13, x.fx.start = function() { lt || (lt = !0, dt()) }, x.fx.stop = function() { lt = null }, x.fx.speeds = { slow: 600, fast: 200, _default: 400 }, x.fn.delay = function(i, e) { return i = x.fx && x.fx.speeds[i] || i, e = e || \"fx\", this.queue(e, function(e, t) { var n = C.setTimeout(e, i);\r\n t.stop = function() { C.clearTimeout(n) } }) }, ct = T.createElement(\"input\"), ut = T.createElement(\"select\").appendChild(T.createElement(\"option\")), ct.type = \"checkbox\", y.checkOn = \"\" !== ct.value, y.optSelected = ut.selected, (ct = T.createElement(\"input\")).value = \"t\", ct.type = \"radio\", y.radioValue = \"t\" === ct.value; var yt, _t = x.expr.attrHandle;\r\n x.fn.extend({ attr: function(e, t) { return $(this, x.attr, e, t, 1 < arguments.length) }, removeAttr: function(e) { return this.each(function() { x.removeAttr(this, e) }) } }), x.extend({ attr: function(e, t, n) { var i, r, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return void 0 === e.getAttribute ? x.prop(e, t, n) : (1 === o && x.isXMLDoc(e) || (r = x.attrHooks[t.toLowerCase()] || (x.expr.match.bool.test(t) ? yt : void 0)), void 0 !== n ? null === n ? void x.removeAttr(e, t) : r && \"set\" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + \"\"), n) : !(r && \"get\" in r && null !== (i = r.get(e, t))) && null == (i = x.find.attr(e, t)) ? void 0 : i) }, attrHooks: { type: { set: function(e, t) { if (!y.radioValue && \"radio\" === t && D(e, \"input\")) { var n = e.value; return e.setAttribute(\"type\", t), n && (e.value = n), t } } } }, removeAttr: function(e, t) { var n, i = 0,\r\n r = t && t.match(P); if (r && 1 === e.nodeType)\r\n for (; n = r[i++];) e.removeAttribute(n) } }), yt = { set: function(e, t, n) { return !1 === t ? x.removeAttr(e, n) : e.setAttribute(n, n), n } }, x.each(x.expr.match.bool.source.match(/\\w+/g), function(e, t) { var s = _t[t] || x.find.attr;\r\n _t[t] = function(e, t, n) { var i, r, o = t.toLowerCase(); return n || (r = _t[o], _t[o] = i, i = null != s(e, t, n) ? o : null, _t[o] = r), i } }); var bt = /^(?:input|select|textarea|button)$/i,\r\n Et = /^(?:a|area)$/i;\r\n\r\n function wt(e) { return (e.match(P) || []).join(\" \") }\r\n\r\n function Ct(e) { return e.getAttribute && e.getAttribute(\"class\") || \"\" }\r\n\r\n function Tt(e) { return Array.isArray(e) ? e : \"string\" == typeof e && e.match(P) || [] }\r\n x.fn.extend({ prop: function(e, t) { return $(this, x.prop, e, t, 1 < arguments.length) }, removeProp: function(e) { return this.each(function() { delete this[x.propFix[e] || e] }) } }), x.extend({ prop: function(e, t, n) { var i, r, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && x.isXMLDoc(e) || (t = x.propFix[t] || t, r = x.propHooks[t]), void 0 !== n ? r && \"set\" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && \"get\" in r && null !== (i = r.get(e, t)) ? i : e[t] }, propHooks: { tabIndex: { get: function(e) { var t = x.find.attr(e, \"tabindex\"); return t ? parseInt(t, 10) : bt.test(e.nodeName) || Et.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { for: \"htmlFor\", class: \"className\" } }), y.optSelected || (x.propHooks.selected = { get: function(e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null }, set: function(e) { var t = e.parentNode;\r\n t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) } }), x.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function() { x.propFix[this.toLowerCase()] = this }), x.fn.extend({ addClass: function(t) { var e, n, i, r, o, s, a, l = 0; if (_(t)) return this.each(function(e) { x(this).addClass(t.call(this, e, Ct(this))) }); if ((e = Tt(t)).length)\r\n for (; n = this[l++];)\r\n if (r = Ct(n), i = 1 === n.nodeType && \" \" + wt(r) + \" \") { for (s = 0; o = e[s++];) i.indexOf(\" \" + o + \" \") < 0 && (i += o + \" \");\r\n r !== (a = wt(i)) && n.setAttribute(\"class\", a) }\r\n return this }, removeClass: function(t) { var e, n, i, r, o, s, a, l = 0; if (_(t)) return this.each(function(e) { x(this).removeClass(t.call(this, e, Ct(this))) }); if (!arguments.length) return this.attr(\"class\", \"\"); if ((e = Tt(t)).length)\r\n for (; n = this[l++];)\r\n if (r = Ct(n), i = 1 === n.nodeType && \" \" + wt(r) + \" \") { for (s = 0; o = e[s++];)\r\n for (; - 1 < i.indexOf(\" \" + o + \" \");) i = i.replace(\" \" + o + \" \", \" \");\r\n r !== (a = wt(i)) && n.setAttribute(\"class\", a) }\r\n return this }, toggleClass: function(r, t) { var o = typeof r,\r\n s = \"string\" == o || Array.isArray(r); return \"boolean\" == typeof t && s ? t ? this.addClass(r) : this.removeClass(r) : _(r) ? this.each(function(e) { x(this).toggleClass(r.call(this, e, Ct(this), t), t) }) : this.each(function() { var e, t, n, i; if (s)\r\n for (t = 0, n = x(this), i = Tt(r); e = i[t++];) n.hasClass(e) ? n.removeClass(e) : n.addClass(e);\r\n else void 0 !== r && \"boolean\" != o || ((e = Ct(this)) && X.set(this, \"__className__\", e), this.setAttribute && this.setAttribute(\"class\", !e && !1 !== r && X.get(this, \"__className__\") || \"\")) }) }, hasClass: function(e) { for (var t, n = 0, i = \" \" + e + \" \"; t = this[n++];)\r\n if (1 === t.nodeType && -1 < (\" \" + wt(Ct(t)) + \" \").indexOf(i)) return !0;\r\n return !1 } }); var xt = /\\r/g;\r\n x.fn.extend({ val: function(n) { var i, e, r, t = this[0]; return arguments.length ? (r = _(n), this.each(function(e) { var t;\r\n 1 === this.nodeType && (null == (t = r ? n.call(this, e, x(this).val()) : n) ? t = \"\" : \"number\" == typeof t ? t += \"\" : Array.isArray(t) && (t = x.map(t, function(e) { return null == e ? \"\" : e + \"\" })), (i = x.valHooks[this.type] || x.valHooks[this.nodeName.toLowerCase()]) && \"set\" in i && void 0 !== i.set(this, t, \"value\") || (this.value = t)) })) : t ? (i = x.valHooks[t.type] || x.valHooks[t.nodeName.toLowerCase()]) && \"get\" in i && void 0 !== (e = i.get(t, \"value\")) ? e : \"string\" == typeof(e = t.value) ? e.replace(xt, \"\") : null == e ? \"\" : e : void 0 } }), x.extend({ valHooks: { option: { get: function(e) { var t = x.find.attr(e, \"value\"); return null != t ? t : wt(x.text(e)) } }, select: { get: function(e) { for (var t, n, i = e.options, r = e.selectedIndex, o = \"select-one\" === e.type, s = o ? null : [], a = o ? r + 1 : i.length, l = r < 0 ? a : o ? r : 0; l < a; l++)\r\n if (((n = i[l]).selected || l === r) && !n.disabled && (!n.parentNode.disabled || !D(n.parentNode, \"optgroup\"))) { if (t = x(n).val(), o) return t;\r\n s.push(t) }\r\n return s }, set: function(e, t) { for (var n, i, r = e.options, o = x.makeArray(t), s = r.length; s--;)((i = r[s]).selected = -1 < x.inArray(x.valHooks.option.get(i), o)) && (n = !0); return n || (e.selectedIndex = -1), o } } } }), x.each([\"radio\", \"checkbox\"], function() { x.valHooks[this] = { set: function(e, t) { if (Array.isArray(t)) return e.checked = -1 < x.inArray(x(e).val(), t) } }, y.checkOn || (x.valHooks[this].get = function(e) { return null === e.getAttribute(\"value\") ? \"on\" : e.value }) }), y.focusin = \"onfocusin\" in C;\r\n\r\n function St(e) { e.stopPropagation() } var Dt = /^(?:focusinfocus|focusoutblur)$/;\r\n x.extend(x.event, { trigger: function(e, t, n, i) { var r, o, s, a, l, c, u, f = [n || T],\r\n h = v.call(e, \"type\") ? e.type : e,\r\n d = v.call(e, \"namespace\") ? e.namespace.split(\".\") : [],\r\n p = u = o = n = n || T; if (3 !== n.nodeType && 8 !== n.nodeType && !Dt.test(h + x.event.triggered) && (-1 < h.indexOf(\".\") && (h = (d = h.split(\".\")).shift(), d.sort()), a = h.indexOf(\":\") < 0 && \"on\" + h, (e = e[x.expando] ? e : new x.Event(h, \"object\" == typeof e && e)).isTrigger = i ? 2 : 3, e.namespace = d.join(\".\"), e.rnamespace = e.namespace ? new RegExp(\"(^|\\\\.)\" + d.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : x.makeArray(t, [e]), c = x.event.special[h] || {}, i || !c.trigger || !1 !== c.trigger.apply(n, t))) { if (!i && !c.noBubble && !g(n)) { for (s = c.delegateType || h, Dt.test(s + h) || (p = p.parentNode); p; p = p.parentNode) f.push(p), o = p;\r\n o === (n.ownerDocument || T) && f.push(o.defaultView || o.parentWindow || C) } for (r = 0;\r\n (p = f[r++]) && !e.isPropagationStopped();) u = p, e.type = 1 < r ? s : c.bindType || h, (l = (X.get(p, \"events\") || {})[e.type] && X.get(p, \"handle\")) && l.apply(p, t), (l = a && p[a]) && l.apply && V(p) && (e.result = l.apply(p, t), !1 === e.result && e.preventDefault()); return e.type = h, i || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(f.pop(), t) || !V(n) || a && _(n[h]) && !g(n) && ((o = n[a]) && (n[a] = null), x.event.triggered = h, e.isPropagationStopped() && u.addEventListener(h, St), n[h](), e.isPropagationStopped() && u.removeEventListener(h, St), x.event.triggered = void 0, o && (n[a] = o)), e.result } }, simulate: function(e, t, n) { var i = x.extend(new x.Event, n, { type: e, isSimulated: !0 });\r\n x.event.trigger(i, null, t) } }), x.fn.extend({ trigger: function(e, t) { return this.each(function() { x.event.trigger(e, t, this) }) }, triggerHandler: function(e, t) { var n = this[0]; if (n) return x.event.trigger(e, t, n, !0) } }), y.focusin || x.each({ focus: \"focusin\", blur: \"focusout\" }, function(n, i) {\r\n function r(e) { x.event.simulate(i, e.target, x.event.fix(e)) }\r\n x.event.special[i] = { setup: function() { var e = this.ownerDocument || this,\r\n t = X.access(e, i);\r\n t || e.addEventListener(n, r, !0), X.access(e, i, (t || 0) + 1) }, teardown: function() { var e = this.ownerDocument || this,\r\n t = X.access(e, i) - 1;\r\n t ? X.access(e, i, t) : (e.removeEventListener(n, r, !0), X.remove(e, i)) } } }); var At = C.location,\r\n Nt = Date.now(),\r\n It = /\\?/;\r\n x.parseXML = function(e) { var t; if (!e || \"string\" != typeof e) return null; try { t = (new C.DOMParser).parseFromString(e, \"text/xml\") } catch (e) { t = void 0 } return t && !t.getElementsByTagName(\"parsererror\").length || x.error(\"Invalid XML: \" + e), t }; var kt = /\\[\\]$/,\r\n Ot = /\\r?\\n/g,\r\n jt = /^(?:submit|button|image|reset|file)$/i,\r\n Lt = /^(?:input|select|textarea|keygen)/i;\r\n x.param = function(e, t) {\r\n function n(e, t) { var n = _(t) ? t() : t;\r\n r[r.length] = encodeURIComponent(e) + \"=\" + encodeURIComponent(null == n ? \"\" : n) } var i, r = []; if (Array.isArray(e) || e.jquery && !x.isPlainObject(e)) x.each(e, function() { n(this.name, this.value) });\r\n else\r\n for (i in e) ! function n(i, e, r, o) { var t; if (Array.isArray(e)) x.each(e, function(e, t) { r || kt.test(i) ? o(i, t) : n(i + \"[\" + (\"object\" == typeof t && null != t ? e : \"\") + \"]\", t, r, o) });\r\n else if (r || \"object\" !== E(e)) o(i, e);\r\n else\r\n for (t in e) n(i + \"[\" + t + \"]\", e[t], r, o) }(i, e[i], t, n); return r.join(\"&\") }, x.fn.extend({ serialize: function() { return x.param(this.serializeArray()) }, serializeArray: function() { return this.map(function() { var e = x.prop(this, \"elements\"); return e ? x.makeArray(e) : this }).filter(function() { var e = this.type; return this.name && !x(this).is(\":disabled\") && Lt.test(this.nodeName) && !jt.test(e) && (this.checked || !le.test(e)) }).map(function(e, t) { var n = x(this).val(); return null == n ? null : Array.isArray(n) ? x.map(n, function(e) { return { name: t.name, value: e.replace(Ot, \"\\r\\n\") } }) : { name: t.name, value: n.replace(Ot, \"\\r\\n\") } }).get() } }); var Pt = /%20/g,\r\n Ht = /#.*$/,\r\n qt = /([?&])_=[^&]*/,\r\n Rt = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm,\r\n Mt = /^(?:GET|HEAD)$/,\r\n Wt = /^\\/\\//,\r\n Ft = {},\r\n $t = {},\r\n Bt = \"*/\".concat(\"*\"),\r\n Ut = T.createElement(\"a\");\r\n\r\n function Qt(o) { return function(e, t) { \"string\" != typeof e && (t = e, e = \"*\"); var n, i = 0,\r\n r = e.toLowerCase().match(P) || []; if (_(t))\r\n for (; n = r[i++];) \"+\" === n[0] ? (n = n.slice(1) || \"*\", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t) } }\r\n\r\n function Kt(t, r, o, s) { var a = {},\r\n l = t === $t;\r\n\r\n function c(e) { var i; return a[e] = !0, x.each(t[e] || [], function(e, t) { var n = t(r, o, s); return \"string\" != typeof n || l || a[n] ? l ? !(i = n) : void 0 : (r.dataTypes.unshift(n), c(n), !1) }), i } return c(r.dataTypes[0]) || !a[\"*\"] && c(\"*\") }\r\n\r\n function Vt(e, t) { var n, i, r = x.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((r[n] ? e : i = i || {})[n] = t[n]); return i && x.extend(!0, e, i), e }\r\n Ut.href = At.href, x.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: At.href, type: \"GET\", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(At.protocol), global: !0, processData: !0, async: !0, contentType: \"application/x-www-form-urlencoded; charset=UTF-8\", accepts: { \"*\": Bt, text: \"text/plain\", html: \"text/html\", xml: \"application/xml, text/xml\", json: \"application/json, text/javascript\" }, contents: { xml: /\\bxml\\b/, html: /\\bhtml/, json: /\\bjson\\b/ }, responseFields: { xml: \"responseXML\", text: \"responseText\", json: \"responseJSON\" }, converters: { \"* text\": String, \"text html\": !0, \"text json\": JSON.parse, \"text xml\": x.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function(e, t) { return t ? Vt(Vt(e, x.ajaxSettings), t) : Vt(x.ajaxSettings, e) }, ajaxPrefilter: Qt(Ft), ajaxTransport: Qt($t), ajax: function(e, t) { \"object\" == typeof e && (t = e, e = void 0), t = t || {}; var u, f, h, n, d, i, p, g, r, o, m = x.ajaxSetup({}, t),\r\n v = m.context || m,\r\n y = m.context && (v.nodeType || v.jquery) ? x(v) : x.event,\r\n _ = x.Deferred(),\r\n b = x.Callbacks(\"once memory\"),\r\n E = m.statusCode || {},\r\n s = {},\r\n a = {},\r\n l = \"canceled\",\r\n w = { readyState: 0, getResponseHeader: function(e) { var t; if (p) { if (!n)\r\n for (n = {}; t = Rt.exec(h);) n[t[1].toLowerCase()] = t[2];\r\n t = n[e.toLowerCase()] } return null == t ? null : t }, getAllResponseHeaders: function() { return p ? h : null }, setRequestHeader: function(e, t) { return null == p && (e = a[e.toLowerCase()] = a[e.toLowerCase()] || e, s[e] = t), this }, overrideMimeType: function(e) { return null == p && (m.mimeType = e), this }, statusCode: function(e) { var t; if (e)\r\n if (p) w.always(e[w.status]);\r\n else\r\n for (t in e) E[t] = [E[t], e[t]];\r\n return this }, abort: function(e) { var t = e || l; return u && u.abort(t), c(0, t), this } }; if (_.promise(w), m.url = ((e || m.url || At.href) + \"\").replace(Wt, At.protocol + \"//\"), m.type = t.method || t.type || m.method || m.type, m.dataTypes = (m.dataType || \"*\").toLowerCase().match(P) || [\"\"], null == m.crossDomain) { i = T.createElement(\"a\"); try { i.href = m.url, i.href = i.href, m.crossDomain = Ut.protocol + \"//\" + Ut.host != i.protocol + \"//\" + i.host } catch (e) { m.crossDomain = !0 } } if (m.data && m.processData && \"string\" != typeof m.data && (m.data = x.param(m.data, m.traditional)), Kt(Ft, m, t, w), p) return w; for (r in (g = x.event && m.global) && 0 == x.active++ && x.event.trigger(\"ajaxStart\"), m.type = m.type.toUpperCase(), m.hasContent = !Mt.test(m.type), f = m.url.replace(Ht, \"\"), m.hasContent ? m.data && m.processData && 0 === (m.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") && (m.data = m.data.replace(Pt, \"+\")) : (o = m.url.slice(f.length), m.data && (m.processData || \"string\" == typeof m.data) && (f += (It.test(f) ? \"&\" : \"?\") + m.data, delete m.data), !1 === m.cache && (f = f.replace(qt, \"$1\"), o = (It.test(f) ? \"&\" : \"?\") + \"_=\" + Nt++ + o), m.url = f + o), m.ifModified && (x.lastModified[f] && w.setRequestHeader(\"If-Modified-Since\", x.lastModified[f]), x.etag[f] && w.setRequestHeader(\"If-None-Match\", x.etag[f])), (m.data && m.hasContent && !1 !== m.contentType || t.contentType) && w.setRequestHeader(\"Content-Type\", m.contentType), w.setRequestHeader(\"Accept\", m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + (\"*\" !== m.dataTypes[0] ? \", \" + Bt + \"; q=0.01\" : \"\") : m.accepts[\"*\"]), m.headers) w.setRequestHeader(r, m.headers[r]); if (m.beforeSend && (!1 === m.beforeSend.call(v, w, m) || p)) return w.abort(); if (l = \"abort\", b.add(m.complete), w.done(m.success), w.fail(m.error), u = Kt($t, m, t, w)) { if (w.readyState = 1, g && y.trigger(\"ajaxSend\", [w, m]), p) return w;\r\n m.async && 0 < m.timeout && (d = C.setTimeout(function() { w.abort(\"timeout\") }, m.timeout)); try { p = !1, u.send(s, c) } catch (e) { if (p) throw e;\r\n c(-1, e) } } else c(-1, \"No Transport\");\r\n\r\n function c(e, t, n, i) { var r, o, s, a, l, c = t;\r\n p || (p = !0, d && C.clearTimeout(d), u = void 0, h = i || \"\", w.readyState = 0 < e ? 4 : 0, r = 200 <= e && e < 300 || 304 === e, n && (a = function(e, t, n) { for (var i, r, o, s, a = e.contents, l = e.dataTypes;\r\n \"*\" === l[0];) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader(\"Content-Type\")); if (i)\r\n for (r in a)\r\n if (a[r] && a[r].test(i)) { l.unshift(r); break }\r\n if (l[0] in n) o = l[0];\r\n else { for (r in n) { if (!l[0] || e.converters[r + \" \" + l[0]]) { o = r; break }\r\n s = s || r }\r\n o = o || s } if (o) return o !== l[0] && l.unshift(o), n[o] }(m, w, n)), a = function(e, t, n, i) { var r, o, s, a, l, c = {},\r\n u = e.dataTypes.slice(); if (u[1])\r\n for (s in e.converters) c[s.toLowerCase()] = e.converters[s]; for (o = u.shift(); o;)\r\n if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = u.shift())\r\n if (\"*\" === o) o = l;\r\n else if (\"*\" !== l && l !== o) { if (!(s = c[l + \" \" + o] || c[\"* \" + o]))\r\n for (r in c)\r\n if ((a = r.split(\" \"))[1] === o && (s = c[l + \" \" + a[0]] || c[\"* \" + a[0]])) {!0 === s ? s = c[r] : !0 !== c[r] && (o = a[0], u.unshift(a[1])); break }\r\n if (!0 !== s)\r\n if (s && e.throws) t = s(t);\r\n else try { t = s(t) } catch (e) { return { state: \"parsererror\", error: s ? e : \"No conversion from \" + l + \" to \" + o } } } return { state: \"success\", data: t } }(m, a, w, r), r ? (m.ifModified && ((l = w.getResponseHeader(\"Last-Modified\")) && (x.lastModified[f] = l), (l = w.getResponseHeader(\"etag\")) && (x.etag[f] = l)), 204 === e || \"HEAD\" === m.type ? c = \"nocontent\" : 304 === e ? c = \"notmodified\" : (c = a.state, o = a.data, r = !(s = a.error))) : (s = c, !e && c || (c = \"error\", e < 0 && (e = 0))), w.status = e, w.statusText = (t || c) + \"\", r ? _.resolveWith(v, [o, c, w]) : _.rejectWith(v, [w, c, s]), w.statusCode(E), E = void 0, g && y.trigger(r ? \"ajaxSuccess\" : \"ajaxError\", [w, m, r ? o : s]), b.fireWith(v, [w, c]), g && (y.trigger(\"ajaxComplete\", [w, m]), --x.active || x.event.trigger(\"ajaxStop\"))) } return w }, getJSON: function(e, t, n) { return x.get(e, t, n, \"json\") }, getScript: function(e, t) { return x.get(e, void 0, t, \"script\") } }), x.each([\"get\", \"post\"], function(e, r) { x[r] = function(e, t, n, i) { return _(t) && (i = i || n, n = t, t = void 0), x.ajax(x.extend({ url: e, type: r, dataType: i, data: t, success: n }, x.isPlainObject(e) && e)) } }), x._evalUrl = function(e) { return x.ajax({ url: e, type: \"GET\", dataType: \"script\", cache: !0, async: !1, global: !1, throws: !0 }) }, x.fn.extend({ wrapAll: function(e) { var t; return this[0] && (_(e) && (e = e.call(this[0])), t = x(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() { for (var e = this; e.firstElementChild;) e = e.firstElementChild; return e }).append(this)), this }, wrapInner: function(n) { return _(n) ? this.each(function(e) { x(this).wrapInner(n.call(this, e)) }) : this.each(function() { var e = x(this),\r\n t = e.contents();\r\n t.length ? t.wrapAll(n) : e.append(n) }) }, wrap: function(t) { var n = _(t); return this.each(function(e) { x(this).wrapAll(n ? t.call(this, e) : t) }) }, unwrap: function(e) { return this.parent(e).not(\"body\").each(function() { x(this).replaceWith(this.childNodes) }), this } }), x.expr.pseudos.hidden = function(e) { return !x.expr.pseudos.visible(e) }, x.expr.pseudos.visible = function(e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }, x.ajaxSettings.xhr = function() { try { return new C.XMLHttpRequest } catch (e) {} }; var zt = { 0: 200, 1223: 204 },\r\n Xt = x.ajaxSettings.xhr();\r\n y.cors = !!Xt && \"withCredentials\" in Xt, y.ajax = Xt = !!Xt, x.ajaxTransport(function(r) { var o, s; if (y.cors || Xt && !r.crossDomain) return { send: function(e, t) { var n, i = r.xhr(); if (i.open(r.type, r.url, r.async, r.username, r.password), r.xhrFields)\r\n for (n in r.xhrFields) i[n] = r.xhrFields[n]; for (n in r.mimeType && i.overrideMimeType && i.overrideMimeType(r.mimeType), r.crossDomain || e[\"X-Requested-With\"] || (e[\"X-Requested-With\"] = \"XMLHttpRequest\"), e) i.setRequestHeader(n, e[n]);\r\n o = function(e) { return function() { o && (o = s = i.onload = i.onerror = i.onabort = i.ontimeout = i.onreadystatechange = null, \"abort\" === e ? i.abort() : \"error\" === e ? \"number\" != typeof i.status ? t(0, \"error\") : t(i.status, i.statusText) : t(zt[i.status] || i.status, i.statusText, \"text\" !== (i.responseType || \"text\") || \"string\" != typeof i.responseText ? { binary: i.response } : { text: i.responseText }, i.getAllResponseHeaders())) } }, i.onload = o(), s = i.onerror = i.ontimeout = o(\"error\"), void 0 !== i.onabort ? i.onabort = s : i.onreadystatechange = function() { 4 === i.readyState && C.setTimeout(function() { o && s() }) }, o = o(\"abort\"); try { i.send(r.hasContent && r.data || null) } catch (e) { if (o) throw e } }, abort: function() { o && o() } } }), x.ajaxPrefilter(function(e) { e.crossDomain && (e.contents.script = !1) }), x.ajaxSetup({ accepts: { script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\" }, contents: { script: /\\b(?:java|ecma)script\\b/ }, converters: { \"text script\": function(e) { return x.globalEval(e), e } } }), x.ajaxPrefilter(\"script\", function(e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = \"GET\") }), x.ajaxTransport(\"script\", function(n) { var i, r; if (n.crossDomain) return { send: function(e, t) { i = x(\"<script>\").prop({ charset: n.scriptCharset, src: n.url }).on(\"load error\", r = function(e) { i.remove(), r = null, e && t(\"error\" === e.type ? 404 : 200, e.type) }), T.head.appendChild(i[0]) }, abort: function() { r && r() } } }); var Yt, Gt = [],\r\n Jt = /(=)\\?(?=&|$)|\\?\\?/;\r\n x.ajaxSetup({ jsonp: \"callback\", jsonpCallback: function() { var e = Gt.pop() || x.expando + \"_\" + Nt++; return this[e] = !0, e } }), x.ajaxPrefilter(\"json jsonp\", function(e, t, n) { var i, r, o, s = !1 !== e.jsonp && (Jt.test(e.url) ? \"url\" : \"string\" == typeof e.data && 0 === (e.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") && Jt.test(e.data) && \"data\"); if (s || \"jsonp\" === e.dataTypes[0]) return i = e.jsonpCallback = _(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(Jt, \"$1\" + i) : !1 !== e.jsonp && (e.url += (It.test(e.url) ? \"&\" : \"?\") + e.jsonp + \"=\" + i), e.converters[\"script json\"] = function() { return o || x.error(i + \" was not called\"), o[0] }, e.dataTypes[0] = \"json\", r = C[i], C[i] = function() { o = arguments }, n.always(function() { void 0 === r ? x(C).removeProp(i) : C[i] = r, e[i] && (e.jsonpCallback = t.jsonpCallback, Gt.push(i)), o && _(r) && r(o[0]), o = r = void 0 }), \"script\" }), y.createHTMLDocument = ((Yt = T.implementation.createHTMLDocument(\"\").body).innerHTML = \"<form></form><form></form>\", 2 === Yt.childNodes.length), x.parseHTML = function(e, t, n) { return \"string\" != typeof e ? [] : (\"boolean\" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((i = (t = T.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href = T.location.href, t.head.appendChild(i)) : t = T), o = !n && [], (r = A.exec(e)) ? [t.createElement(r[1])] : (r = ve([e], t, o), o && o.length && x(o).remove(), x.merge([], r.childNodes))); var i, r, o }, x.fn.load = function(e, t, n) { var i, r, o, s = this,\r\n a = e.indexOf(\" \"); return -1 < a && (i = wt(e.slice(a)), e = e.slice(0, a)), _(t) ? (n = t, t = void 0) : t && \"object\" == typeof t && (r = \"POST\"), 0 < s.length && x.ajax({ url: e, type: r || \"GET\", dataType: \"html\", data: t }).done(function(e) { o = arguments, s.html(i ? x(\"<div>\").append(x.parseHTML(e)).find(i) : e) }).always(n && function(e, t) { s.each(function() { n.apply(this, o || [e.responseText, t, e]) }) }), this }, x.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function(e, t) { x.fn[t] = function(e) { return this.on(t, e) } }), x.expr.pseudos.animated = function(t) { return x.grep(x.timers, function(e) { return t === e.elem }).length }, x.offset = { setOffset: function(e, t, n) { var i, r, o, s, a, l, c = x.css(e, \"position\"),\r\n u = x(e),\r\n f = {}; \"static\" === c && (e.style.position = \"relative\"), a = u.offset(), o = x.css(e, \"top\"), l = x.css(e, \"left\"), r = (\"absolute\" === c || \"fixed\" === c) && -1 < (o + l).indexOf(\"auto\") ? (s = (i = u.position()).top, i.left) : (s = parseFloat(o) || 0, parseFloat(l) || 0), _(t) && (t = t.call(e, n, x.extend({}, a))), null != t.top && (f.top = t.top - a.top + s), null != t.left && (f.left = t.left - a.left + r), \"using\" in t ? t.using.call(e, f) : u.css(f) } }, x.fn.extend({ offset: function(t) { if (arguments.length) return void 0 === t ? this : this.each(function(e) { x.offset.setOffset(this, t, e) }); var e, n, i = this[0]; return i ? i.getClientRects().length ? (e = i.getBoundingClientRect(), n = i.ownerDocument.defaultView, { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) : { top: 0, left: 0 } : void 0 }, position: function() { if (this[0]) { var e, t, n, i = this[0],\r\n r = { top: 0, left: 0 }; if (\"fixed\" === x.css(i, \"position\")) t = i.getBoundingClientRect();\r\n else { for (t = this.offset(), n = i.ownerDocument, e = i.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && \"static\" === x.css(e, \"position\");) e = e.parentNode;\r\n e && e !== i && 1 === e.nodeType && ((r = x(e).offset()).top += x.css(e, \"borderTopWidth\", !0), r.left += x.css(e, \"borderLeftWidth\", !0)) } return { top: t.top - r.top - x.css(i, \"marginTop\", !0), left: t.left - r.left - x.css(i, \"marginLeft\", !0) } } }, offsetParent: function() { return this.map(function() { for (var e = this.offsetParent; e && \"static\" === x.css(e, \"position\");) e = e.offsetParent; return e || ye }) } }), x.each({ scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function(t, r) { var o = \"pageYOffset\" === r;\r\n x.fn[t] = function(e) { return $(this, function(e, t, n) { var i; return g(e) ? i = e : 9 === e.nodeType && (i = e.defaultView), void 0 === n ? i ? i[r] : e[t] : void(i ? i.scrollTo(o ? i.pageXOffset : n, o ? n : i.pageYOffset) : e[t] = n) }, t, e, arguments.length) } }), x.each([\"top\", \"left\"], function(e, n) { x.cssHooks[n] = Xe(y.pixelPosition, function(e, t) { if (t) return t = ze(e, n), Be.test(t) ? x(e).position()[n] + \"px\" : t }) }), x.each({ Height: \"height\", Width: \"width\" }, function(s, a) { x.each({ padding: \"inner\" + s, content: a, \"\": \"outer\" + s }, function(i, o) { x.fn[o] = function(e, t) { var n = arguments.length && (i || \"boolean\" != typeof e),\r\n r = i || (!0 === e || !0 === t ? \"margin\" : \"border\"); return $(this, function(e, t, n) { var i; return g(e) ? 0 === o.indexOf(\"outer\") ? e[\"inner\" + s] : e.document.documentElement[\"client\" + s] : 9 === e.nodeType ? (i = e.documentElement, Math.max(e.body[\"scroll\" + s], i[\"scroll\" + s], e.body[\"offset\" + s], i[\"offset\" + s], i[\"client\" + s])) : void 0 === n ? x.css(e, t, r) : x.style(e, t, n, r) }, a, n ? e : void 0, n) } }) }), x.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"), function(e, n) { x.fn[n] = function(e, t) { return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n) } }), x.fn.extend({ hover: function(e, t) { return this.mouseenter(e).mouseleave(t || e) } }), x.fn.extend({ bind: function(e, t, n) { return this.on(e, null, t, n) }, unbind: function(e, t) { return this.off(e, null, t) }, delegate: function(e, t, n, i) { return this.on(t, e, n, i) }, undelegate: function(e, t, n) { return 1 === arguments.length ? this.off(e, \"**\") : this.off(t, e || \"**\", n) } }), x.proxy = function(e, t) { var n, i, r; if (\"string\" == typeof t && (n = e[t], t = e, e = n), _(e)) return i = a.call(arguments, 2), (r = function() { return e.apply(t || this, i.concat(a.call(arguments))) }).guid = e.guid = e.guid || x.guid++, r }, x.holdReady = function(e) { e ? x.readyWait++ : x.ready(!0) }, x.isArray = Array.isArray, x.parseJSON = JSON.parse, x.nodeName = D, x.isFunction = _, x.isWindow = g, x.camelCase = K, x.type = E, x.now = Date.now, x.isNumeric = function(e) { var t = x.type(e); return (\"number\" === t || \"string\" === t) && !isNaN(e - parseFloat(e)) }, \"function\" == typeof define && define.amd && define(\"jquery\", [], function() { return x }); var Zt = C.jQuery,\r\n en = C.$; return x.noConflict = function(e) { return C.$ === x && (C.$ = en), e && C.jQuery === x && (C.jQuery = Zt), x }, e || (C.jQuery = C.$ = x), x }),\r\nfunction(e, t) { \"object\" == typeof exports && \"undefined\" != typeof module ? t(exports, require(\"jquery\"), require(\"popper.js\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"jquery\", \"popper.js\"], t) : t((e = e || self).bootstrap = {}, e.jQuery, e.Popper) }(this, function(e, p, f) { \"use strict\";\r\n\r\n function i(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n];\r\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) } }\r\n\r\n function s(e, t, n) { return t && i(e.prototype, t), n && i(e, n), e }\r\n\r\n function t(t, e) { var n, i = Object.keys(t); return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function(e) { return Object.getOwnPropertyDescriptor(t, e).enumerable })), i.push.apply(i, n)), i }\r\n\r\n function l(r) { for (var e = 1; e < arguments.length; e++) { var o = null != arguments[e] ? arguments[e] : {};\r\n e % 2 ? t(Object(o), !0).forEach(function(e) { var t, n, i;\r\n t = r, i = o[n = e], n in t ? Object.defineProperty(t, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = i }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : t(Object(o)).forEach(function(e) { Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(o, e)) }) } return r }\r\n p = p && p.hasOwnProperty(\"default\") ? p.default : p, f = f && f.hasOwnProperty(\"default\") ? f.default : f; var n = \"transitionend\";\r\n\r\n function r(e) { var t = this,\r\n n = !1; return p(this).one(g.TRANSITION_END, function() { n = !0 }), setTimeout(function() { n || g.triggerTransitionEnd(t) }, e), this } var g = { TRANSITION_END: \"bsTransitionEnd\", getUID: function(e) { for (; e += ~~(1e6 * Math.random()), document.getElementById(e);); return e }, getSelectorFromElement: function(e) { var t, n = e.getAttribute(\"data-target\");\r\n n && \"#\" !== n || (n = (t = e.getAttribute(\"href\")) && \"#\" !== t ? t.trim() : \"\"); try { return document.querySelector(n) ? n : null } catch (e) { return null } }, getTransitionDurationFromElement: function(e) { if (!e) return 0; var t = p(e).css(\"transition-duration\"),\r\n n = p(e).css(\"transition-delay\"),\r\n i = parseFloat(t),\r\n r = parseFloat(n); return i || r ? (t = t.split(\",\")[0], n = n.split(\",\")[0], 1e3 * (parseFloat(t) + parseFloat(n))) : 0 }, reflow: function(e) { return e.offsetHeight }, triggerTransitionEnd: function(e) { p(e).trigger(n) }, supportsTransitionEnd: function() { return Boolean(n) }, isElement: function(e) { return (e[0] || e).nodeType }, typeCheckConfig: function(e, t, n) { for (var i in n)\r\n if (Object.prototype.hasOwnProperty.call(n, i)) { var r = n[i],\r\n o = t[i],\r\n s = o && g.isElement(o) ? \"element\" : (a = o, {}.toString.call(a).match(/\\s([a-z]+)/i)[1].toLowerCase()); if (!new RegExp(r).test(s)) throw new Error(e.toUpperCase() + ': Option \"' + i + '\" provided type \"' + s + '\" but expected type \"' + r + '\".') }\r\n var a }, findShadowRoot: function(e) { if (!document.documentElement.attachShadow) return null; if (\"function\" != typeof e.getRootNode) return e instanceof ShadowRoot ? e : e.parentNode ? g.findShadowRoot(e.parentNode) : null; var t = e.getRootNode(); return t instanceof ShadowRoot ? t : null }, jQueryDetection: function() { if (void 0 === p) throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\"); var e = p.fn.jquery.split(\" \")[0].split(\".\"); if (e[0] < 2 && e[1] < 9 || 1 === e[0] && 9 === e[1] && e[2] < 1 || 4 <= e[0]) throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\") } };\r\n g.jQueryDetection(), p.fn.emulateTransitionEnd = r, p.event.special[g.TRANSITION_END] = { bindType: n, delegateType: n, handle: function(e) { if (p(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) } }; var o = \"alert\",\r\n a = \"bs.alert\",\r\n c = \".\" + a,\r\n u = p.fn[o],\r\n h = { CLOSE: \"close\" + c, CLOSED: \"closed\" + c, CLICK_DATA_API: \"click\" + c + \".data-api\" },\r\n d = \"alert\",\r\n m = \"fade\",\r\n v = \"show\",\r\n y = function() {\r\n function i(e) { this._element = e } var e = i.prototype; return e.close = function(e) { var t = this._element;\r\n e && (t = this._getRootElement(e)), this._triggerCloseEvent(t).isDefaultPrevented() || this._removeElement(t) }, e.dispose = function() { p.removeData(this._element, a), this._element = null }, e._getRootElement = function(e) { var t = g.getSelectorFromElement(e),\r\n n = !1; return t && (n = document.querySelector(t)), n = n || p(e).closest(\".\" + d)[0] }, e._triggerCloseEvent = function(e) { var t = p.Event(h.CLOSE); return p(e).trigger(t), t }, e._removeElement = function(t) { var e, n = this;\r\n p(t).removeClass(v), p(t).hasClass(m) ? (e = g.getTransitionDurationFromElement(t), p(t).one(g.TRANSITION_END, function(e) { return n._destroyElement(t, e) }).emulateTransitionEnd(e)) : this._destroyElement(t) }, e._destroyElement = function(e) { p(e).detach().trigger(h.CLOSED).remove() }, i._jQueryInterface = function(n) { return this.each(function() { var e = p(this),\r\n t = e.data(a);\r\n t || (t = new i(this), e.data(a, t)), \"close\" === n && t[n](this) }) }, i._handleDismiss = function(t) { return function(e) { e && e.preventDefault(), t.close(this) } }, s(i, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }]), i }();\r\n p(document).on(h.CLICK_DATA_API, '[data-dismiss=\"alert\"]', y._handleDismiss(new y)), p.fn[o] = y._jQueryInterface, p.fn[o].Constructor = y, p.fn[o].noConflict = function() { return p.fn[o] = u, y._jQueryInterface }; var _ = \"button\",\r\n b = \"bs.button\",\r\n E = \".\" + b,\r\n w = \".data-api\",\r\n C = p.fn[_],\r\n T = \"active\",\r\n x = \"btn\",\r\n S = \"focus\",\r\n D = '[data-toggle^=\"button\"]',\r\n A = '[data-toggle=\"buttons\"]',\r\n N = '[data-toggle=\"button\"]',\r\n I = '[data-toggle=\"buttons\"] .btn',\r\n k = 'input:not([type=\"hidden\"])',\r\n O = \".active\",\r\n j = \".btn\",\r\n L = { CLICK_DATA_API: \"click\" + E + w, FOCUS_BLUR_DATA_API: \"focus\" + E + w + \" blur\" + E + w, LOAD_DATA_API: \"load\" + E + w },\r\n P = function() {\r\n function n(e) { this._element = e } var e = n.prototype; return e.toggle = function() { var e, t, n = !0,\r\n i = !0,\r\n r = p(this._element).closest(A)[0];!r || (e = this._element.querySelector(k)) && (\"radio\" === e.type ? e.checked && this._element.classList.contains(T) ? n = !1 : (t = r.querySelector(O)) && p(t).removeClass(T) : (\"checkbox\" !== e.type || \"LABEL\" === this._element.tagName && e.checked === this._element.classList.contains(T)) && (n = !1), n && (e.checked = !this._element.classList.contains(T), p(e).trigger(\"change\")), e.focus(), i = !1), this._element.hasAttribute(\"disabled\") || this._element.classList.contains(\"disabled\") || (i && this._element.setAttribute(\"aria-pressed\", !this._element.classList.contains(T)), n && p(this._element).toggleClass(T)) }, e.dispose = function() { p.removeData(this._element, b), this._element = null }, n._jQueryInterface = function(t) { return this.each(function() { var e = p(this).data(b);\r\n e || (e = new n(this), p(this).data(b, e)), \"toggle\" === t && e[t]() }) }, s(n, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }]), n }();\r\n p(document).on(L.CLICK_DATA_API, D, function(e) { var t = e.target; if (p(t).hasClass(x) || (t = p(t).closest(j)[0]), !t || t.hasAttribute(\"disabled\") || t.classList.contains(\"disabled\")) e.preventDefault();\r\n else { var n = t.querySelector(k); if (n && (n.hasAttribute(\"disabled\") || n.classList.contains(\"disabled\"))) return void e.preventDefault();\r\n P._jQueryInterface.call(p(t), \"toggle\") } }).on(L.FOCUS_BLUR_DATA_API, D, function(e) { var t = p(e.target).closest(j)[0];\r\n p(t).toggleClass(S, /^focus(in)?$/.test(e.type)) }), p(window).on(L.LOAD_DATA_API, function() { for (var e = [].slice.call(document.querySelectorAll(I)), t = 0, n = e.length; t < n; t++) { var i = e[t],\r\n r = i.querySelector(k);\r\n r.checked || r.hasAttribute(\"checked\") ? i.classList.add(T) : i.classList.remove(T) } for (var o = 0, s = (e = [].slice.call(document.querySelectorAll(N))).length; o < s; o++) { var a = e[o]; \"true\" === a.getAttribute(\"aria-pressed\") ? a.classList.add(T) : a.classList.remove(T) } }), p.fn[_] = P._jQueryInterface, p.fn[_].Constructor = P, p.fn[_].noConflict = function() { return p.fn[_] = C, P._jQueryInterface }; var H = \"carousel\",\r\n q = \"bs.carousel\",\r\n R = \".\" + q,\r\n M = \".data-api\",\r\n W = p.fn[H],\r\n F = { interval: 5e3, keyboard: !0, slide: !1, pause: \"hover\", wrap: !0, touch: !0 },\r\n $ = { interval: \"(number|boolean)\", keyboard: \"boolean\", slide: \"(boolean|string)\", pause: \"(string|boolean)\", wrap: \"boolean\", touch: \"boolean\" },\r\n B = \"next\",\r\n U = \"prev\",\r\n Q = \"left\",\r\n K = \"right\",\r\n V = { SLIDE: \"slide\" + R, SLID: \"slid\" + R, KEYDOWN: \"keydown\" + R, MOUSEENTER: \"mouseenter\" + R, MOUSELEAVE: \"mouseleave\" + R, TOUCHSTART: \"touchstart\" + R, TOUCHMOVE: \"touchmove\" + R, TOUCHEND: \"touchend\" + R, POINTERDOWN: \"pointerdown\" + R, POINTERUP: \"pointerup\" + R, DRAG_START: \"dragstart\" + R, LOAD_DATA_API: \"load\" + R + M, CLICK_DATA_API: \"click\" + R + M },\r\n z = \"carousel\",\r\n X = \"active\",\r\n Y = \"slide\",\r\n G = \"carousel-item-right\",\r\n J = \"carousel-item-left\",\r\n Z = \"carousel-item-next\",\r\n ee = \"carousel-item-prev\",\r\n te = \"pointer-event\",\r\n ne = \".active\",\r\n ie = \".active.carousel-item\",\r\n re = \".carousel-item\",\r\n oe = \".carousel-item img\",\r\n se = \".carousel-item-next, .carousel-item-prev\",\r\n ae = \".carousel-indicators\",\r\n le = \"[data-slide], [data-slide-to]\",\r\n ce = '[data-ride=\"carousel\"]',\r\n ue = { TOUCH: \"touch\", PEN: \"pen\" },\r\n fe = function() {\r\n function o(e, t) { this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(t), this._element = e, this._indicatorsElement = this._element.querySelector(ae), this._touchSupported = \"ontouchstart\" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners() } var e = o.prototype; return e.next = function() { this._isSliding || this._slide(B) }, e.nextWhenVisible = function() {!document.hidden && p(this._element).is(\":visible\") && \"hidden\" !== p(this._element).css(\"visibility\") && this.next() }, e.prev = function() { this._isSliding || this._slide(U) }, e.pause = function(e) { e || (this._isPaused = !0), this._element.querySelector(se) && (g.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, e.cycle = function(e) { e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, e.to = function(e) { var t = this;\r\n this._activeElement = this._element.querySelector(ie); var n = this._getItemIndex(this._activeElement); if (!(e > this._items.length - 1 || e < 0))\r\n if (this._isSliding) p(this._element).one(V.SLID, function() { return t.to(e) });\r\n else { if (n === e) return this.pause(), void this.cycle(); var i = n < e ? B : U;\r\n this._slide(i, this._items[e]) } }, e.dispose = function() { p(this._element).off(R), p.removeData(this._element, q), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, e._getConfig = function(e) { return e = l({}, F, {}, e), g.typeCheckConfig(H, e, $), e }, e._handleSwipe = function() { var e, t = Math.abs(this.touchDeltaX);\r\n t <= 40 || (e = t / this.touchDeltaX, (this.touchDeltaX = 0) < e && this.prev(), e < 0 && this.next()) }, e._addEventListeners = function() { var t = this;\r\n this._config.keyboard && p(this._element).on(V.KEYDOWN, function(e) { return t._keydown(e) }), \"hover\" === this._config.pause && p(this._element).on(V.MOUSEENTER, function(e) { return t.pause(e) }).on(V.MOUSELEAVE, function(e) { return t.cycle(e) }), this._config.touch && this._addTouchEventListeners() }, e._addTouchEventListeners = function() { var e, t, n = this;\r\n this._touchSupported && (e = function(e) { n._pointerEvent && ue[e.originalEvent.pointerType.toUpperCase()] ? n.touchStartX = e.originalEvent.clientX : n._pointerEvent || (n.touchStartX = e.originalEvent.touches[0].clientX) }, t = function(e) { n._pointerEvent && ue[e.originalEvent.pointerType.toUpperCase()] && (n.touchDeltaX = e.originalEvent.clientX - n.touchStartX), n._handleSwipe(), \"hover\" === n._config.pause && (n.pause(), n.touchTimeout && clearTimeout(n.touchTimeout), n.touchTimeout = setTimeout(function(e) { return n.cycle(e) }, 500 + n._config.interval)) }, p(this._element.querySelectorAll(oe)).on(V.DRAG_START, function(e) { return e.preventDefault() }), this._pointerEvent ? (p(this._element).on(V.POINTERDOWN, e), p(this._element).on(V.POINTERUP, t), this._element.classList.add(te)) : (p(this._element).on(V.TOUCHSTART, e), p(this._element).on(V.TOUCHMOVE, function(e) { var t;\r\n (t = e).originalEvent.touches && 1 < t.originalEvent.touches.length ? n.touchDeltaX = 0 : n.touchDeltaX = t.originalEvent.touches[0].clientX - n.touchStartX }), p(this._element).on(V.TOUCHEND, t))) }, e._keydown = function(e) { if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {\r\n case 37:\r\n e.preventDefault(), this.prev(); break;\r\n case 39:\r\n e.preventDefault(), this.next() } }, e._getItemIndex = function(e) { return this._items = e && e.parentNode ? [].slice.call(e.parentNode.querySelectorAll(re)) : [], this._items.indexOf(e) }, e._getItemByDirection = function(e, t) { var n = e === B,\r\n i = e === U,\r\n r = this._getItemIndex(t),\r\n o = this._items.length - 1; if ((i && 0 === r || n && r === o) && !this._config.wrap) return t; var s = (r + (e === U ? -1 : 1)) % this._items.length; return -1 == s ? this._items[this._items.length - 1] : this._items[s] }, e._triggerSlideEvent = function(e, t) { var n = this._getItemIndex(e),\r\n i = this._getItemIndex(this._element.querySelector(ie)),\r\n r = p.Event(V.SLIDE, { relatedTarget: e, direction: t, from: i, to: n }); return p(this._element).trigger(r), r }, e._setActiveIndicatorElement = function(e) { var t, n;\r\n this._indicatorsElement && (t = [].slice.call(this._indicatorsElement.querySelectorAll(ne)), p(t).removeClass(X), (n = this._indicatorsElement.children[this._getItemIndex(e)]) && p(n).addClass(X)) }, e._slide = function(e, t) { var n, i, r, o, s, a = this,\r\n l = this._element.querySelector(ie),\r\n c = this._getItemIndex(l),\r\n u = t || l && this._getItemByDirection(e, l),\r\n f = this._getItemIndex(u),\r\n h = Boolean(this._interval),\r\n d = e === B ? (n = J, i = Z, Q) : (n = G, i = ee, K);\r\n u && p(u).hasClass(X) ? this._isSliding = !1 : this._triggerSlideEvent(u, d).isDefaultPrevented() || l && u && (this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(u), r = p.Event(V.SLID, { relatedTarget: u, direction: d, from: c, to: f }), p(this._element).hasClass(Y) ? (p(u).addClass(i), g.reflow(u), p(l).addClass(n), p(u).addClass(n), (o = parseInt(u.getAttribute(\"data-interval\"), 10)) ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = o) : this._config.interval = this._config.defaultInterval || this._config.interval, s = g.getTransitionDurationFromElement(l), p(l).one(g.TRANSITION_END, function() { p(u).removeClass(n + \" \" + i).addClass(X), p(l).removeClass(X + \" \" + i + \" \" + n), a._isSliding = !1, setTimeout(function() { return p(a._element).trigger(r) }, 0) }).emulateTransitionEnd(s)) : (p(l).removeClass(X), p(u).addClass(X), this._isSliding = !1, p(this._element).trigger(r)), h && this.cycle()) }, o._jQueryInterface = function(i) { return this.each(function() { var e = p(this).data(q),\r\n t = l({}, F, {}, p(this).data()); \"object\" == typeof i && (t = l({}, t, {}, i)); var n = \"string\" == typeof i ? i : t.slide; if (e || (e = new o(this, t), p(this).data(q, e)), \"number\" == typeof i) e.to(i);\r\n else if (\"string\" == typeof n) { if (void 0 === e[n]) throw new TypeError('No method named \"' + n + '\"');\r\n e[n]() } else t.interval && t.ride && (e.pause(), e.cycle()) }) }, o._dataApiClickHandler = function(e) { var t, n, i, r = g.getSelectorFromElement(this);!r || (t = p(r)[0]) && p(t).hasClass(z) && (n = l({}, p(t).data(), {}, p(this).data()), (i = this.getAttribute(\"data-slide-to\")) && (n.interval = !1), o._jQueryInterface.call(p(t), n), i && p(t).data(q).to(i), e.preventDefault()) }, s(o, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return F } }]), o }();\r\n p(document).on(V.CLICK_DATA_API, le, fe._dataApiClickHandler), p(window).on(V.LOAD_DATA_API, function() { for (var e = [].slice.call(document.querySelectorAll(ce)), t = 0, n = e.length; t < n; t++) { var i = p(e[t]);\r\n fe._jQueryInterface.call(i, i.data()) } }), p.fn[H] = fe._jQueryInterface, p.fn[H].Constructor = fe, p.fn[H].noConflict = function() { return p.fn[H] = W, fe._jQueryInterface }; var he = \"collapse\",\r\n de = \"bs.collapse\",\r\n pe = \".\" + de,\r\n ge = p.fn[he],\r\n me = { toggle: !0, parent: \"\" },\r\n ve = { toggle: \"boolean\", parent: \"(string|element)\" },\r\n ye = { SHOW: \"show\" + pe, SHOWN: \"shown\" + pe, HIDE: \"hide\" + pe, HIDDEN: \"hidden\" + pe, CLICK_DATA_API: \"click\" + pe + \".data-api\" },\r\n _e = \"show\",\r\n be = \"collapse\",\r\n Ee = \"collapsing\",\r\n we = \"collapsed\",\r\n Ce = \"width\",\r\n Te = \"height\",\r\n xe = \".show, .collapsing\",\r\n Se = '[data-toggle=\"collapse\"]',\r\n De = function() {\r\n function a(t, e) { this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle=\"collapse\"][href=\"#' + t.id + '\"],[data-toggle=\"collapse\"][data-target=\"#' + t.id + '\"]')); for (var n = [].slice.call(document.querySelectorAll(Se)), i = 0, r = n.length; i < r; i++) { var o = n[i],\r\n s = g.getSelectorFromElement(o),\r\n a = [].slice.call(document.querySelectorAll(s)).filter(function(e) { return e === t });\r\n null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(o)) }\r\n this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } var e = a.prototype; return e.toggle = function() { p(this._element).hasClass(_e) ? this.hide() : this.show() }, e.show = function() { var e, t, n, i, r, o, s = this;\r\n this._isTransitioning || p(this._element).hasClass(_e) || (this._parent && 0 === (e = [].slice.call(this._parent.querySelectorAll(xe)).filter(function(e) { return \"string\" == typeof s._config.parent ? e.getAttribute(\"data-parent\") === s._config.parent : e.classList.contains(be) })).length && (e = null), e && (t = p(e).not(this._selector).data(de)) && t._isTransitioning || (n = p.Event(ye.SHOW), p(this._element).trigger(n), n.isDefaultPrevented() || (e && (a._jQueryInterface.call(p(e).not(this._selector), \"hide\"), t || p(e).data(de, null)), i = this._getDimension(), p(this._element).removeClass(be).addClass(Ee), this._element.style[i] = 0, this._triggerArray.length && p(this._triggerArray).removeClass(we).attr(\"aria-expanded\", !0), this.setTransitioning(!0), r = \"scroll\" + (i[0].toUpperCase() + i.slice(1)), o = g.getTransitionDurationFromElement(this._element), p(this._element).one(g.TRANSITION_END, function() { p(s._element).removeClass(Ee).addClass(be).addClass(_e), s._element.style[i] = \"\", s.setTransitioning(!1), p(s._element).trigger(ye.SHOWN) }).emulateTransitionEnd(o), this._element.style[i] = this._element[r] + \"px\"))) }, e.hide = function() { var e = this; if (!this._isTransitioning && p(this._element).hasClass(_e)) { var t = p.Event(ye.HIDE); if (p(this._element).trigger(t), !t.isDefaultPrevented()) { var n = this._getDimension();\r\n this._element.style[n] = this._element.getBoundingClientRect()[n] + \"px\", g.reflow(this._element), p(this._element).addClass(Ee).removeClass(be).removeClass(_e); var i = this._triggerArray.length; if (0 < i)\r\n for (var r = 0; r < i; r++) { var o = this._triggerArray[r],\r\n s = g.getSelectorFromElement(o);\r\n null !== s && (p([].slice.call(document.querySelectorAll(s))).hasClass(_e) || p(o).addClass(we).attr(\"aria-expanded\", !1)) }\r\n this.setTransitioning(!0);\r\n this._element.style[n] = \"\"; var a = g.getTransitionDurationFromElement(this._element);\r\n p(this._element).one(g.TRANSITION_END, function() { e.setTransitioning(!1), p(e._element).removeClass(Ee).addClass(be).trigger(ye.HIDDEN) }).emulateTransitionEnd(a) } } }, e.setTransitioning = function(e) { this._isTransitioning = e }, e.dispose = function() { p.removeData(this._element, de), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null }, e._getConfig = function(e) { return (e = l({}, me, {}, e)).toggle = Boolean(e.toggle), g.typeCheckConfig(he, e, ve), e }, e._getDimension = function() { return p(this._element).hasClass(Ce) ? Ce : Te }, e._getParent = function() { var e, n = this;\r\n g.isElement(this._config.parent) ? (e = this._config.parent, void 0 !== this._config.parent.jquery && (e = this._config.parent[0])) : e = document.querySelector(this._config.parent); var t = '[data-toggle=\"collapse\"][data-parent=\"' + this._config.parent + '\"]',\r\n i = [].slice.call(e.querySelectorAll(t)); return p(i).each(function(e, t) { n._addAriaAndCollapsedClass(a._getTargetFromElement(t), [t]) }), e }, e._addAriaAndCollapsedClass = function(e, t) { var n = p(e).hasClass(_e);\r\n t.length && p(t).toggleClass(we, !n).attr(\"aria-expanded\", n) }, a._getTargetFromElement = function(e) { var t = g.getSelectorFromElement(e); return t ? document.querySelector(t) : null }, a._jQueryInterface = function(i) { return this.each(function() { var e = p(this),\r\n t = e.data(de),\r\n n = l({}, me, {}, e.data(), {}, \"object\" == typeof i && i ? i : {}); if (!t && n.toggle && /show|hide/.test(i) && (n.toggle = !1), t || (t = new a(this, n), e.data(de, t)), \"string\" == typeof i) { if (void 0 === t[i]) throw new TypeError('No method named \"' + i + '\"');\r\n t[i]() } }) }, s(a, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return me } }]), a }();\r\n p(document).on(ye.CLICK_DATA_API, Se, function(e) { \"A\" === e.currentTarget.tagName && e.preventDefault(); var n = p(this),\r\n t = g.getSelectorFromElement(this),\r\n i = [].slice.call(document.querySelectorAll(t));\r\n p(i).each(function() { var e = p(this),\r\n t = e.data(de) ? \"toggle\" : n.data();\r\n De._jQueryInterface.call(e, t) }) }), p.fn[he] = De._jQueryInterface, p.fn[he].Constructor = De, p.fn[he].noConflict = function() { return p.fn[he] = ge, De._jQueryInterface }; var Ae = \"dropdown\",\r\n Ne = \"bs.dropdown\",\r\n Ie = \".\" + Ne,\r\n ke = \".data-api\",\r\n Oe = p.fn[Ae],\r\n je = new RegExp(\"38|40|27\"),\r\n Le = { HIDE: \"hide\" + Ie, HIDDEN: \"hidden\" + Ie, SHOW: \"show\" + Ie, SHOWN: \"shown\" + Ie, CLICK: \"click\" + Ie, CLICK_DATA_API: \"click\" + Ie + ke, KEYDOWN_DATA_API: \"keydown\" + Ie + ke, KEYUP_DATA_API: \"keyup\" + Ie + ke },\r\n Pe = \"disabled\",\r\n He = \"show\",\r\n qe = \"dropup\",\r\n Re = \"dropright\",\r\n Me = \"dropleft\",\r\n We = \"dropdown-menu-right\",\r\n Fe = \"position-static\",\r\n $e = '[data-toggle=\"dropdown\"]',\r\n Be = \".dropdown form\",\r\n Ue = \".dropdown-menu\",\r\n Qe = \".navbar-nav\",\r\n Ke = \".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",\r\n Ve = \"top-start\",\r\n ze = \"top-end\",\r\n Xe = \"bottom-start\",\r\n Ye = \"bottom-end\",\r\n Ge = \"right-start\",\r\n Je = \"left-start\",\r\n Ze = { offset: 0, flip: !0, boundary: \"scrollParent\", reference: \"toggle\", display: \"dynamic\", popperConfig: null },\r\n et = { offset: \"(number|string|function)\", flip: \"boolean\", boundary: \"(string|element)\", reference: \"(string|element)\", display: \"string\", popperConfig: \"(null|object)\" },\r\n tt = function() {\r\n function c(e, t) { this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } var e = c.prototype; return e.toggle = function() { var e;\r\n this._element.disabled || p(this._element).hasClass(Pe) || (e = p(this._menu).hasClass(He), c._clearMenus(), e || this.show(!0)) }, e.show = function(e) { if (void 0 === e && (e = !1), !(this._element.disabled || p(this._element).hasClass(Pe) || p(this._menu).hasClass(He))) { var t = { relatedTarget: this._element },\r\n n = p.Event(Le.SHOW, t),\r\n i = c._getParentFromElement(this._element); if (p(i).trigger(n), !n.isDefaultPrevented()) { if (!this._inNavbar && e) { if (void 0 === f) throw new TypeError(\"Bootstrap's dropdowns require Popper.js (https://popper.js.org/)\"); var r = this._element; \"parent\" === this._config.reference ? r = i : g.isElement(this._config.reference) && (r = this._config.reference, void 0 !== this._config.reference.jquery && (r = this._config.reference[0])), \"scrollParent\" !== this._config.boundary && p(i).addClass(Fe), this._popper = new f(r, this._menu, this._getPopperConfig()) } \"ontouchstart\" in document.documentElement && 0 === p(i).closest(Qe).length && p(document.body).children().on(\"mouseover\", null, p.noop), this._element.focus(), this._element.setAttribute(\"aria-expanded\", !0), p(this._menu).toggleClass(He), p(i).toggleClass(He).trigger(p.Event(Le.SHOWN, t)) } } }, e.hide = function() { var e, t, n;\r\n this._element.disabled || p(this._element).hasClass(Pe) || !p(this._menu).hasClass(He) || (e = { relatedTarget: this._element }, t = p.Event(Le.HIDE, e), n = c._getParentFromElement(this._element), p(n).trigger(t), t.isDefaultPrevented() || (this._popper && this._popper.destroy(), p(this._menu).toggleClass(He), p(n).toggleClass(He).trigger(p.Event(Le.HIDDEN, e)))) }, e.dispose = function() { p.removeData(this._element, Ne), p(this._element).off(Ie), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) }, e.update = function() { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() }, e._addEventListeners = function() { var t = this;\r\n p(this._element).on(Le.CLICK, function(e) { e.preventDefault(), e.stopPropagation(), t.toggle() }) }, e._getConfig = function(e) { return e = l({}, this.constructor.Default, {}, p(this._element).data(), {}, e), g.typeCheckConfig(Ae, e, this.constructor.DefaultType), e }, e._getMenuElement = function() { var e; return this._menu || (e = c._getParentFromElement(this._element)) && (this._menu = e.querySelector(Ue)), this._menu }, e._getPlacement = function() { var e = p(this._element.parentNode),\r\n t = Xe; return e.hasClass(qe) ? (t = Ve, p(this._menu).hasClass(We) && (t = ze)) : e.hasClass(Re) ? t = Ge : e.hasClass(Me) ? t = Je : p(this._menu).hasClass(We) && (t = Ye), t }, e._detectNavbar = function() { return 0 < p(this._element).closest(\".navbar\").length }, e._getOffset = function() { var t = this,\r\n e = {}; return \"function\" == typeof this._config.offset ? e.fn = function(e) { return e.offsets = l({}, e.offsets, {}, t._config.offset(e.offsets, t._element) || {}), e } : e.offset = this._config.offset, e }, e._getPopperConfig = function() { var e = { placement: this._getPlacement(), modifiers: { offset: this._getOffset(), flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return \"static\" === this._config.display && (e.modifiers.applyStyle = { enabled: !1 }), l({}, e, {}, this._config.popperConfig) }, c._jQueryInterface = function(t) { return this.each(function() { var e = p(this).data(Ne); if (e || (e = new c(this, \"object\" == typeof t ? t : null), p(this).data(Ne, e)), \"string\" == typeof t) { if (void 0 === e[t]) throw new TypeError('No method named \"' + t + '\"');\r\n e[t]() } }) }, c._clearMenus = function(e) { if (!e || 3 !== e.which && (\"keyup\" !== e.type || 9 === e.which))\r\n for (var t = [].slice.call(document.querySelectorAll($e)), n = 0, i = t.length; n < i; n++) { var r, o, s = c._getParentFromElement(t[n]),\r\n a = p(t[n]).data(Ne),\r\n l = { relatedTarget: t[n] };\r\n e && \"click\" === e.type && (l.clickEvent = e), a && (r = a._menu, p(s).hasClass(He) && (e && (\"click\" === e.type && /input|textarea/i.test(e.target.tagName) || \"keyup\" === e.type && 9 === e.which) && p.contains(s, e.target) || (o = p.Event(Le.HIDE, l), p(s).trigger(o), o.isDefaultPrevented() || (\"ontouchstart\" in document.documentElement && p(document.body).children().off(\"mouseover\", null, p.noop), t[n].setAttribute(\"aria-expanded\", \"false\"), a._popper && a._popper.destroy(), p(r).removeClass(He), p(s).removeClass(He).trigger(p.Event(Le.HIDDEN, l)))))) } }, c._getParentFromElement = function(e) { var t, n = g.getSelectorFromElement(e); return n && (t = document.querySelector(n)), t || e.parentNode }, c._dataApiKeydownHandler = function(e) { if ((/input|textarea/i.test(e.target.tagName) ? !(32 === e.which || 27 !== e.which && (40 !== e.which && 38 !== e.which || p(e.target).closest(Ue).length)) : je.test(e.which)) && (e.preventDefault(), e.stopPropagation(), !this.disabled && !p(this).hasClass(Pe))) { var t, n = c._getParentFromElement(this),\r\n i = p(n).hasClass(He); if (i || 27 !== e.which) { if (!i || i && (27 === e.which || 32 === e.which)) return 27 === e.which && (t = n.querySelector($e), p(t).trigger(\"focus\")), void p(this).trigger(\"click\"); var r, o = [].slice.call(n.querySelectorAll(Ke)).filter(function(e) { return p(e).is(\":visible\") });\r\n 0 !== o.length && (r = o.indexOf(e.target), 38 === e.which && 0 < r && r--, 40 === e.which && r < o.length - 1 && r++, r < 0 && (r = 0), o[r].focus()) } } }, s(c, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return Ze } }, { key: \"DefaultType\", get: function() { return et } }]), c }();\r\n p(document).on(Le.KEYDOWN_DATA_API, $e, tt._dataApiKeydownHandler).on(Le.KEYDOWN_DATA_API, Ue, tt._dataApiKeydownHandler).on(Le.CLICK_DATA_API + \" \" + Le.KEYUP_DATA_API, tt._clearMenus).on(Le.CLICK_DATA_API, $e, function(e) { e.preventDefault(), e.stopPropagation(), tt._jQueryInterface.call(p(this), \"toggle\") }).on(Le.CLICK_DATA_API, Be, function(e) { e.stopPropagation() }), p.fn[Ae] = tt._jQueryInterface, p.fn[Ae].Constructor = tt, p.fn[Ae].noConflict = function() { return p.fn[Ae] = Oe, tt._jQueryInterface }; var nt = \"modal\",\r\n it = \"bs.modal\",\r\n rt = \".\" + it,\r\n ot = p.fn[nt],\r\n st = { backdrop: !0, keyboard: !0, focus: !0, show: !0 },\r\n at = { backdrop: \"(boolean|string)\", keyboard: \"boolean\", focus: \"boolean\", show: \"boolean\" },\r\n lt = { HIDE: \"hide\" + rt, HIDE_PREVENTED: \"hidePrevented\" + rt, HIDDEN: \"hidden\" + rt, SHOW: \"show\" + rt, SHOWN: \"shown\" + rt, FOCUSIN: \"focusin\" + rt, RESIZE: \"resize\" + rt, CLICK_DISMISS: \"click.dismiss\" + rt, KEYDOWN_DISMISS: \"keydown.dismiss\" + rt, MOUSEUP_DISMISS: \"mouseup.dismiss\" + rt, MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + rt, CLICK_DATA_API: \"click\" + rt + \".data-api\" },\r\n ct = \"modal-dialog-scrollable\",\r\n ut = \"modal-scrollbar-measure\",\r\n ft = \"modal-backdrop\",\r\n ht = \"modal-open\",\r\n dt = \"fade\",\r\n pt = \"show\",\r\n gt = \"modal-static\",\r\n mt = \".modal-dialog\",\r\n vt = \".modal-body\",\r\n yt = '[data-toggle=\"modal\"]',\r\n _t = '[data-dismiss=\"modal\"]',\r\n bt = \".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",\r\n Et = \".sticky-top\",\r\n wt = function() {\r\n function r(e, t) { this._config = this._getConfig(t), this._element = e, this._dialog = e.querySelector(mt), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0 } var e = r.prototype; return e.toggle = function(e) { return this._isShown ? this.hide() : this.show(e) }, e.show = function(e) { var t, n = this;\r\n this._isShown || this._isTransitioning || (p(this._element).hasClass(dt) && (this._isTransitioning = !0), t = p.Event(lt.SHOW, { relatedTarget: e }), p(this._element).trigger(t), this._isShown || t.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), p(this._element).on(lt.CLICK_DISMISS, _t, function(e) { return n.hide(e) }), p(this._dialog).on(lt.MOUSEDOWN_DISMISS, function() { p(n._element).one(lt.MOUSEUP_DISMISS, function(e) { p(e.target).is(n._element) && (n._ignoreBackdropClick = !0) }) }), this._showBackdrop(function() { return n._showElement(e) }))) }, e.hide = function(e) { var t, n, i, r = this;\r\n e && e.preventDefault(), this._isShown && !this._isTransitioning && (t = p.Event(lt.HIDE), p(this._element).trigger(t), this._isShown && !t.isDefaultPrevented() && (this._isShown = !1, (n = p(this._element).hasClass(dt)) && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), p(document).off(lt.FOCUSIN), p(this._element).removeClass(pt), p(this._element).off(lt.CLICK_DISMISS), p(this._dialog).off(lt.MOUSEDOWN_DISMISS), n ? (i = g.getTransitionDurationFromElement(this._element), p(this._element).one(g.TRANSITION_END, function(e) { return r._hideModal(e) }).emulateTransitionEnd(i)) : this._hideModal())) }, e.dispose = function() {\r\n [window, this._element, this._dialog].forEach(function(e) { return p(e).off(rt) }), p(document).off(lt.FOCUSIN), p.removeData(this._element, it), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null }, e.handleUpdate = function() { this._adjustDialog() }, e._getConfig = function(e) { return e = l({}, st, {}, e), g.typeCheckConfig(nt, e, at), e }, e._triggerBackdropTransition = function() { var e = this; if (\"static\" === this._config.backdrop) { var t = p.Event(lt.HIDE_PREVENTED); if (p(this._element).trigger(t), t.defaultPrevented) return;\r\n this._element.classList.add(gt); var n = g.getTransitionDurationFromElement(this._element);\r\n p(this._element).one(g.TRANSITION_END, function() { e._element.classList.remove(gt) }).emulateTransitionEnd(n), this._element.focus() } else this.hide() }, e._showElement = function(e) { var t = this,\r\n n = p(this._element).hasClass(dt),\r\n i = this._dialog ? this._dialog.querySelector(vt) : null;\r\n this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = \"block\", this._element.removeAttribute(\"aria-hidden\"), this._element.setAttribute(\"aria-modal\", !0), p(this._dialog).hasClass(ct) && i ? i.scrollTop = 0 : this._element.scrollTop = 0, n && g.reflow(this._element), p(this._element).addClass(pt), this._config.focus && this._enforceFocus();\r\n\r\n function r() { t._config.focus && t._element.focus(), t._isTransitioning = !1, p(t._element).trigger(s) } var o, s = p.Event(lt.SHOWN, { relatedTarget: e });\r\n n ? (o = g.getTransitionDurationFromElement(this._dialog), p(this._dialog).one(g.TRANSITION_END, r).emulateTransitionEnd(o)) : r() }, e._enforceFocus = function() { var t = this;\r\n p(document).off(lt.FOCUSIN).on(lt.FOCUSIN, function(e) { document !== e.target && t._element !== e.target && 0 === p(t._element).has(e.target).length && t._element.focus() }) }, e._setEscapeEvent = function() { var t = this;\r\n this._isShown && this._config.keyboard ? p(this._element).on(lt.KEYDOWN_DISMISS, function(e) { 27 === e.which && t._triggerBackdropTransition() }) : this._isShown || p(this._element).off(lt.KEYDOWN_DISMISS) }, e._setResizeEvent = function() { var t = this;\r\n this._isShown ? p(window).on(lt.RESIZE, function(e) { return t.handleUpdate(e) }) : p(window).off(lt.RESIZE) }, e._hideModal = function() { var e = this;\r\n this._element.style.display = \"none\", this._element.setAttribute(\"aria-hidden\", !0), this._element.removeAttribute(\"aria-modal\"), this._isTransitioning = !1, this._showBackdrop(function() { p(document.body).removeClass(ht), e._resetAdjustments(), e._resetScrollbar(), p(e._element).trigger(lt.HIDDEN) }) }, e._removeBackdrop = function() { this._backdrop && (p(this._backdrop).remove(), this._backdrop = null) }, e._showBackdrop = function(e) { var t, n, i = this,\r\n r = p(this._element).hasClass(dt) ? dt : \"\"; if (this._isShown && this._config.backdrop) { if (this._backdrop = document.createElement(\"div\"), this._backdrop.className = ft, r && this._backdrop.classList.add(r), p(this._backdrop).appendTo(document.body), p(this._element).on(lt.CLICK_DISMISS, function(e) { i._ignoreBackdropClick ? i._ignoreBackdropClick = !1 : e.target === e.currentTarget && i._triggerBackdropTransition() }), r && g.reflow(this._backdrop), p(this._backdrop).addClass(pt), !e) return; if (!r) return void e(); var o = g.getTransitionDurationFromElement(this._backdrop);\r\n p(this._backdrop).one(g.TRANSITION_END, e).emulateTransitionEnd(o) } else {!this._isShown && this._backdrop ? (p(this._backdrop).removeClass(pt), t = function() { i._removeBackdrop(), e && e() }, p(this._element).hasClass(dt) ? (n = g.getTransitionDurationFromElement(this._backdrop), p(this._backdrop).one(g.TRANSITION_END, t).emulateTransitionEnd(n)) : t()) : e && e() } }, e._adjustDialog = function() { var e = this._element.scrollHeight > document.documentElement.clientHeight;!this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + \"px\"), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + \"px\") }, e._resetAdjustments = function() { this._element.style.paddingLeft = \"\", this._element.style.paddingRight = \"\" }, e._checkScrollbar = function() { var e = document.body.getBoundingClientRect();\r\n this._isBodyOverflowing = e.left + e.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, e._setScrollbar = function() { var e, t, n, i, r = this;\r\n this._isBodyOverflowing && (e = [].slice.call(document.querySelectorAll(bt)), t = [].slice.call(document.querySelectorAll(Et)), p(e).each(function(e, t) { var n = t.style.paddingRight,\r\n i = p(t).css(\"padding-right\");\r\n p(t).data(\"padding-right\", n).css(\"padding-right\", parseFloat(i) + r._scrollbarWidth + \"px\") }), p(t).each(function(e, t) { var n = t.style.marginRight,\r\n i = p(t).css(\"margin-right\");\r\n p(t).data(\"margin-right\", n).css(\"margin-right\", parseFloat(i) - r._scrollbarWidth + \"px\") }), n = document.body.style.paddingRight, i = p(document.body).css(\"padding-right\"), p(document.body).data(\"padding-right\", n).css(\"padding-right\", parseFloat(i) + this._scrollbarWidth + \"px\")), p(document.body).addClass(ht) }, e._resetScrollbar = function() { var e = [].slice.call(document.querySelectorAll(bt));\r\n p(e).each(function(e, t) { var n = p(t).data(\"padding-right\");\r\n p(t).removeData(\"padding-right\"), t.style.paddingRight = n || \"\" }); var t = [].slice.call(document.querySelectorAll(\"\" + Et));\r\n p(t).each(function(e, t) { var n = p(t).data(\"margin-right\");\r\n void 0 !== n && p(t).css(\"margin-right\", n).removeData(\"margin-right\") }); var n = p(document.body).data(\"padding-right\");\r\n p(document.body).removeData(\"padding-right\"), document.body.style.paddingRight = n || \"\" }, e._getScrollbarWidth = function() { var e = document.createElement(\"div\");\r\n e.className = ut, document.body.appendChild(e); var t = e.getBoundingClientRect().width - e.clientWidth; return document.body.removeChild(e), t }, r._jQueryInterface = function(n, i) { return this.each(function() { var e = p(this).data(it),\r\n t = l({}, st, {}, p(this).data(), {}, \"object\" == typeof n && n ? n : {}); if (e || (e = new r(this, t), p(this).data(it, e)), \"string\" == typeof n) { if (void 0 === e[n]) throw new TypeError('No method named \"' + n + '\"');\r\n e[n](i) } else t.show && e.show(i) }) }, s(r, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return st } }]), r }();\r\n p(document).on(lt.CLICK_DATA_API, yt, function(e) { var t, n = this,\r\n i = g.getSelectorFromElement(this);\r\n i && (t = document.querySelector(i)); var r = p(t).data(it) ? \"toggle\" : l({}, p(t).data(), {}, p(this).data()); \"A\" !== this.tagName && \"AREA\" !== this.tagName || e.preventDefault(); var o = p(t).one(lt.SHOW, function(e) { e.isDefaultPrevented() || o.one(lt.HIDDEN, function() { p(n).is(\":visible\") && n.focus() }) });\r\n wt._jQueryInterface.call(p(t), r, this) }), p.fn[nt] = wt._jQueryInterface, p.fn[nt].Constructor = wt, p.fn[nt].noConflict = function() { return p.fn[nt] = ot, wt._jQueryInterface }; var Ct = [\"background\", \"cite\", \"href\", \"itemtype\", \"longdesc\", \"poster\", \"src\", \"xlink:href\"],\r\n Tt = { \"*\": [\"class\", \"dir\", \"id\", \"lang\", \"role\", /^aria-[\\w-]*$/i], a: [\"target\", \"href\", \"title\", \"rel\"], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: [\"src\", \"alt\", \"title\", \"width\", \"height\"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] },\r\n xt = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,\r\n St = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\r\n\r\n function Dt(e, o, t) { if (0 === e.length) return e; if (t && \"function\" == typeof t) return t(e); for (var n = (new window.DOMParser).parseFromString(e, \"text/html\"), s = Object.keys(o), a = [].slice.call(n.body.querySelectorAll(\"*\")), i = function(e) { var t = a[e],\r\n n = t.nodeName.toLowerCase(); if (-1 === s.indexOf(t.nodeName.toLowerCase())) return t.parentNode.removeChild(t), \"continue\"; var i = [].slice.call(t.attributes),\r\n r = [].concat(o[\"*\"] || [], o[n] || []);\r\n i.forEach(function(e) {! function(e, t) { var n = e.nodeName.toLowerCase(); if (-1 !== t.indexOf(n)) return -1 === Ct.indexOf(n) || Boolean(e.nodeValue.match(xt) || e.nodeValue.match(St)); for (var i = t.filter(function(e) { return e instanceof RegExp }), r = 0, o = i.length; r < o; r++)\r\n if (n.match(i[r])) return 1 }(e, r) && t.removeAttribute(e.nodeName) }) }, r = 0, l = a.length; r < l; r++) i(r); return n.body.innerHTML } var At = \"tooltip\",\r\n Nt = \"bs.tooltip\",\r\n It = \".\" + Nt,\r\n kt = p.fn[At],\r\n Ot = \"bs-tooltip\",\r\n jt = new RegExp(\"(^|\\\\s)\" + Ot + \"\\\\S+\", \"g\"),\r\n Lt = [\"sanitize\", \"whiteList\", \"sanitizeFn\"],\r\n Pt = { animation: \"boolean\", template: \"string\", title: \"(string|element|function)\", trigger: \"string\", delay: \"(number|object)\", html: \"boolean\", selector: \"(string|boolean)\", placement: \"(string|function)\", offset: \"(number|string|function)\", container: \"(string|element|boolean)\", fallbackPlacement: \"(string|array)\", boundary: \"(string|element)\", sanitize: \"boolean\", sanitizeFn: \"(null|function)\", whiteList: \"object\", popperConfig: \"(null|object)\" },\r\n Ht = { AUTO: \"auto\", TOP: \"top\", RIGHT: \"right\", BOTTOM: \"bottom\", LEFT: \"left\" },\r\n qt = { animation: !0, template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"arrow\"></div><div class=\"tooltip-inner\"></div></div>', trigger: \"hover focus\", title: \"\", delay: 0, html: !1, selector: !1, placement: \"top\", offset: 0, container: !1, fallbackPlacement: \"flip\", boundary: \"scrollParent\", sanitize: !0, sanitizeFn: null, whiteList: Tt, popperConfig: null },\r\n Rt = \"show\",\r\n Mt = \"out\",\r\n Wt = { HIDE: \"hide\" + It, HIDDEN: \"hidden\" + It, SHOW: \"show\" + It, SHOWN: \"shown\" + It, INSERTED: \"inserted\" + It, CLICK: \"click\" + It, FOCUSIN: \"focusin\" + It, FOCUSOUT: \"focusout\" + It, MOUSEENTER: \"mouseenter\" + It, MOUSELEAVE: \"mouseleave\" + It },\r\n Ft = \"fade\",\r\n $t = \"show\",\r\n Bt = \".tooltip-inner\",\r\n Ut = \".arrow\",\r\n Qt = \"hover\",\r\n Kt = \"focus\",\r\n Vt = \"click\",\r\n zt = \"manual\",\r\n Xt = function() {\r\n function i(e, t) { if (void 0 === f) throw new TypeError(\"Bootstrap's tooltips require Popper.js (https://popper.js.org/)\");\r\n this._isEnabled = !0, this._timeout = 0, this._hoverState = \"\", this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(t), this.tip = null, this._setListeners() } var e = i.prototype; return e.enable = function() { this._isEnabled = !0 }, e.disable = function() { this._isEnabled = !1 }, e.toggleEnabled = function() { this._isEnabled = !this._isEnabled }, e.toggle = function(e) { if (this._isEnabled)\r\n if (e) { var t = this.constructor.DATA_KEY,\r\n n = p(e.currentTarget).data(t);\r\n n || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), p(e.currentTarget).data(t, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) } else { if (p(this.getTipElement()).hasClass($t)) return void this._leave(null, this);\r\n this._enter(null, this) } }, e.dispose = function() { clearTimeout(this._timeout), p.removeData(this.element, this.constructor.DATA_KEY), p(this.element).off(this.constructor.EVENT_KEY), p(this.element).closest(\".modal\").off(\"hide.bs.modal\", this._hideModalHandler), this.tip && p(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null }, e.show = function() { var t = this; if (\"none\" === p(this.element).css(\"display\")) throw new Error(\"Please use show on visible elements\"); var e = p.Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { p(this.element).trigger(e); var n = g.findShadowRoot(this.element),\r\n i = p.contains(null !== n ? n : this.element.ownerDocument.documentElement, this.element); if (e.isDefaultPrevented() || !i) return; var r = this.getTipElement(),\r\n o = g.getUID(this.constructor.NAME);\r\n r.setAttribute(\"id\", o), this.element.setAttribute(\"aria-describedby\", o), this.setContent(), this.config.animation && p(r).addClass(Ft); var s = \"function\" == typeof this.config.placement ? this.config.placement.call(this, r, this.element) : this.config.placement,\r\n a = this._getAttachment(s);\r\n this.addAttachmentClass(a); var l = this._getContainer();\r\n p(r).data(this.constructor.DATA_KEY, this), p.contains(this.element.ownerDocument.documentElement, this.tip) || p(r).appendTo(l), p(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new f(this.element, r, this._getPopperConfig(a)), p(r).addClass($t), \"ontouchstart\" in document.documentElement && p(document.body).children().on(\"mouseover\", null, p.noop); var c, u = function() { t.config.animation && t._fixTransition(); var e = t._hoverState;\r\n t._hoverState = null, p(t.element).trigger(t.constructor.Event.SHOWN), e === Mt && t._leave(null, t) };\r\n p(this.tip).hasClass(Ft) ? (c = g.getTransitionDurationFromElement(this.tip), p(this.tip).one(g.TRANSITION_END, u).emulateTransitionEnd(c)) : u() } }, e.hide = function(e) {\r\n function t() { i._hoverState !== Rt && r.parentNode && r.parentNode.removeChild(r), i._cleanTipClass(), i.element.removeAttribute(\"aria-describedby\"), p(i.element).trigger(i.constructor.Event.HIDDEN), null !== i._popper && i._popper.destroy(), e && e() } var n, i = this,\r\n r = this.getTipElement(),\r\n o = p.Event(this.constructor.Event.HIDE);\r\n p(this.element).trigger(o), o.isDefaultPrevented() || (p(r).removeClass($t), \"ontouchstart\" in document.documentElement && p(document.body).children().off(\"mouseover\", null, p.noop), this._activeTrigger[Vt] = !1, this._activeTrigger[Kt] = !1, this._activeTrigger[Qt] = !1, p(this.tip).hasClass(Ft) ? (n = g.getTransitionDurationFromElement(r), p(r).one(g.TRANSITION_END, t).emulateTransitionEnd(n)) : t(), this._hoverState = \"\") }, e.update = function() { null !== this._popper && this._popper.scheduleUpdate() }, e.isWithContent = function() { return Boolean(this.getTitle()) }, e.addAttachmentClass = function(e) { p(this.getTipElement()).addClass(Ot + \"-\" + e) }, e.getTipElement = function() { return this.tip = this.tip || p(this.config.template)[0], this.tip }, e.setContent = function() { var e = this.getTipElement();\r\n this.setElementContent(p(e.querySelectorAll(Bt)), this.getTitle()), p(e).removeClass(Ft + \" \" + $t) }, e.setElementContent = function(e, t) { \"object\" != typeof t || !t.nodeType && !t.jquery ? this.config.html ? (this.config.sanitize && (t = Dt(t, this.config.whiteList, this.config.sanitizeFn)), e.html(t)) : e.text(t) : this.config.html ? p(t).parent().is(e) || e.empty().append(t) : e.text(p(t).text()) }, e.getTitle = function() { return this.element.getAttribute(\"data-original-title\") || (\"function\" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title) }, e._getPopperConfig = function(e) { var t = this; return l({}, { placement: e, modifiers: { offset: this._getOffset(), flip: { behavior: this.config.fallbackPlacement }, arrow: { element: Ut }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function(e) { e.originalPlacement !== e.placement && t._handlePopperPlacementChange(e) }, onUpdate: function(e) { return t._handlePopperPlacementChange(e) } }, {}, this.config.popperConfig) }, e._getOffset = function() { var t = this,\r\n e = {}; return \"function\" == typeof this.config.offset ? e.fn = function(e) { return e.offsets = l({}, e.offsets, {}, t.config.offset(e.offsets, t.element) || {}), e } : e.offset = this.config.offset, e }, e._getContainer = function() { return !1 === this.config.container ? document.body : g.isElement(this.config.container) ? p(this.config.container) : p(document).find(this.config.container) }, e._getAttachment = function(e) { return Ht[e.toUpperCase()] }, e._setListeners = function() { var i = this;\r\n this.config.trigger.split(\" \").forEach(function(e) { var t, n; \"click\" === e ? p(i.element).on(i.constructor.Event.CLICK, i.config.selector, function(e) { return i.toggle(e) }) : e !== zt && (t = e === Qt ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, n = e === Qt ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT, p(i.element).on(t, i.config.selector, function(e) { return i._enter(e) }).on(n, i.config.selector, function(e) { return i._leave(e) })) }), this._hideModalHandler = function() { i.element && i.hide() }, p(this.element).closest(\".modal\").on(\"hide.bs.modal\", this._hideModalHandler), this.config.selector ? this.config = l({}, this.config, { trigger: \"manual\", selector: \"\" }) : this._fixTitle() }, e._fixTitle = function() { var e = typeof this.element.getAttribute(\"data-original-title\");!this.element.getAttribute(\"title\") && \"string\" == e || (this.element.setAttribute(\"data-original-title\", this.element.getAttribute(\"title\") || \"\"), this.element.setAttribute(\"title\", \"\")) }, e._enter = function(e, t) { var n = this.constructor.DATA_KEY;\r\n (t = t || p(e.currentTarget).data(n)) || (t = new this.constructor(e.currentTarget, this._getDelegateConfig()), p(e.currentTarget).data(n, t)), e && (t._activeTrigger[\"focusin\" === e.type ? Kt : Qt] = !0), p(t.getTipElement()).hasClass($t) || t._hoverState === Rt ? t._hoverState = Rt : (clearTimeout(t._timeout), t._hoverState = Rt, t.config.delay && t.config.delay.show ? t._timeout = setTimeout(function() { t._hoverState === Rt && t.show() }, t.config.delay.show) : t.show()) }, e._leave = function(e, t) { var n = this.constructor.DATA_KEY;\r\n (t = t || p(e.currentTarget).data(n)) || (t = new this.constructor(e.currentTarget, this._getDelegateConfig()), p(e.currentTarget).data(n, t)), e && (t._activeTrigger[\"focusout\" === e.type ? Kt : Qt] = !1), t._isWithActiveTrigger() || (clearTimeout(t._timeout), t._hoverState = Mt, t.config.delay && t.config.delay.hide ? t._timeout = setTimeout(function() { t._hoverState === Mt && t.hide() }, t.config.delay.hide) : t.hide()) }, e._isWithActiveTrigger = function() { for (var e in this._activeTrigger)\r\n if (this._activeTrigger[e]) return !0;\r\n return !1 }, e._getConfig = function(e) { var t = p(this.element).data(); return Object.keys(t).forEach(function(e) {-1 !== Lt.indexOf(e) && delete t[e] }), \"number\" == typeof(e = l({}, this.constructor.Default, {}, t, {}, \"object\" == typeof e && e ? e : {})).delay && (e.delay = { show: e.delay, hide: e.delay }), \"number\" == typeof e.title && (e.title = e.title.toString()), \"number\" == typeof e.content && (e.content = e.content.toString()), g.typeCheckConfig(At, e, this.constructor.DefaultType), e.sanitize && (e.template = Dt(e.template, e.whiteList, e.sanitizeFn)), e }, e._getDelegateConfig = function() { var e = {}; if (this.config)\r\n for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]); return e }, e._cleanTipClass = function() { var e = p(this.getTipElement()),\r\n t = e.attr(\"class\").match(jt);\r\n null !== t && t.length && e.removeClass(t.join(\"\")) }, e._handlePopperPlacementChange = function(e) { var t = e.instance;\r\n this.tip = t.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement)) }, e._fixTransition = function() { var e = this.getTipElement(),\r\n t = this.config.animation;\r\n null === e.getAttribute(\"x-placement\") && (p(e).removeClass(Ft), this.config.animation = !1, this.hide(), this.show(), this.config.animation = t) }, i._jQueryInterface = function(n) { return this.each(function() { var e = p(this).data(Nt),\r\n t = \"object\" == typeof n && n; if ((e || !/dispose|hide/.test(n)) && (e || (e = new i(this, t), p(this).data(Nt, e)), \"string\" == typeof n)) { if (void 0 === e[n]) throw new TypeError('No method named \"' + n + '\"');\r\n e[n]() } }) }, s(i, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return qt } }, { key: \"NAME\", get: function() { return At } }, { key: \"DATA_KEY\", get: function() { return Nt } }, { key: \"Event\", get: function() { return Wt } }, { key: \"EVENT_KEY\", get: function() { return It } }, { key: \"DefaultType\", get: function() { return Pt } }]), i }();\r\n p.fn[At] = Xt._jQueryInterface, p.fn[At].Constructor = Xt, p.fn[At].noConflict = function() { return p.fn[At] = kt, Xt._jQueryInterface }; var Yt = \"popover\",\r\n Gt = \"bs.popover\",\r\n Jt = \".\" + Gt,\r\n Zt = p.fn[Yt],\r\n en = \"bs-popover\",\r\n tn = new RegExp(\"(^|\\\\s)\" + en + \"\\\\S+\", \"g\"),\r\n nn = l({}, Xt.Default, { placement: \"right\", trigger: \"click\", content: \"\", template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>' }),\r\n rn = l({}, Xt.DefaultType, { content: \"(string|element|function)\" }),\r\n on = \"fade\",\r\n sn = \"show\",\r\n an = \".popover-header\",\r\n ln = \".popover-body\",\r\n cn = { HIDE: \"hide\" + Jt, HIDDEN: \"hidden\" + Jt, SHOW: \"show\" + Jt, SHOWN: \"shown\" + Jt, INSERTED: \"inserted\" + Jt, CLICK: \"click\" + Jt, FOCUSIN: \"focusin\" + Jt, FOCUSOUT: \"focusout\" + Jt, MOUSEENTER: \"mouseenter\" + Jt, MOUSELEAVE: \"mouseleave\" + Jt },\r\n un = function(e) { var t, n;\r\n\r\n function i() { return e.apply(this, arguments) || this }\r\n n = e, (t = i).prototype = Object.create(n.prototype), (t.prototype.constructor = t).__proto__ = n; var r = i.prototype; return r.isWithContent = function() { return this.getTitle() || this._getContent() }, r.addAttachmentClass = function(e) { p(this.getTipElement()).addClass(en + \"-\" + e) }, r.getTipElement = function() { return this.tip = this.tip || p(this.config.template)[0], this.tip }, r.setContent = function() { var e = p(this.getTipElement());\r\n this.setElementContent(e.find(an), this.getTitle()); var t = this._getContent(); \"function\" == typeof t && (t = t.call(this.element)), this.setElementContent(e.find(ln), t), e.removeClass(on + \" \" + sn) }, r._getContent = function() { return this.element.getAttribute(\"data-content\") || this.config.content }, r._cleanTipClass = function() { var e = p(this.getTipElement()),\r\n t = e.attr(\"class\").match(tn);\r\n null !== t && 0 < t.length && e.removeClass(t.join(\"\")) }, i._jQueryInterface = function(n) { return this.each(function() { var e = p(this).data(Gt),\r\n t = \"object\" == typeof n ? n : null; if ((e || !/dispose|hide/.test(n)) && (e || (e = new i(this, t), p(this).data(Gt, e)), \"string\" == typeof n)) { if (void 0 === e[n]) throw new TypeError('No method named \"' + n + '\"');\r\n e[n]() } }) }, s(i, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return nn } }, { key: \"NAME\", get: function() { return Yt } }, { key: \"DATA_KEY\", get: function() { return Gt } }, { key: \"Event\", get: function() { return cn } }, { key: \"EVENT_KEY\", get: function() { return Jt } }, { key: \"DefaultType\", get: function() { return rn } }]), i }(Xt);\r\n p.fn[Yt] = un._jQueryInterface, p.fn[Yt].Constructor = un, p.fn[Yt].noConflict = function() { return p.fn[Yt] = Zt, un._jQueryInterface }; var fn = \"scrollspy\",\r\n hn = \"bs.scrollspy\",\r\n dn = \".\" + hn,\r\n pn = p.fn[fn],\r\n gn = { offset: 10, method: \"auto\", target: \"\" },\r\n mn = { offset: \"number\", method: \"string\", target: \"(string|element)\" },\r\n vn = { ACTIVATE: \"activate\" + dn, SCROLL: \"scroll\" + dn, LOAD_DATA_API: \"load\" + dn + \".data-api\" },\r\n yn = \"dropdown-item\",\r\n _n = \"active\",\r\n bn = '[data-spy=\"scroll\"]',\r\n En = \".nav, .list-group\",\r\n wn = \".nav-link\",\r\n Cn = \".nav-item\",\r\n Tn = \".list-group-item\",\r\n xn = \".dropdown\",\r\n Sn = \".dropdown-item\",\r\n Dn = \".dropdown-toggle\",\r\n An = \"offset\",\r\n Nn = \"position\",\r\n In = function() {\r\n function n(e, t) { var n = this;\r\n this._element = e, this._scrollElement = \"BODY\" === e.tagName ? window : e, this._config = this._getConfig(t), this._selector = this._config.target + \" \" + wn + \",\" + this._config.target + \" \" + Tn + \",\" + this._config.target + \" \" + Sn, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, p(this._scrollElement).on(vn.SCROLL, function(e) { return n._process(e) }), this.refresh(), this._process() } var e = n.prototype; return e.refresh = function() { var t = this,\r\n e = this._scrollElement === this._scrollElement.window ? An : Nn,\r\n r = \"auto\" === this._config.method ? e : this._config.method,\r\n o = r === Nn ? this._getScrollTop() : 0;\r\n this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(e) { var t, n = g.getSelectorFromElement(e); if (n && (t = document.querySelector(n)), t) { var i = t.getBoundingClientRect(); if (i.width || i.height) return [p(t)[r]().top + o, n] } return null }).filter(function(e) { return e }).sort(function(e, t) { return e[0] - t[0] }).forEach(function(e) { t._offsets.push(e[0]), t._targets.push(e[1]) }) }, e.dispose = function() { p.removeData(this._element, hn), p(this._scrollElement).off(dn), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, e._getConfig = function(e) { var t; return \"string\" != typeof(e = l({}, gn, {}, \"object\" == typeof e && e ? e : {})).target && ((t = p(e.target).attr(\"id\")) || (t = g.getUID(fn), p(e.target).attr(\"id\", t)), e.target = \"#\" + t), g.typeCheckConfig(fn, e, mn), e }, e._getScrollTop = function() { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, e._getScrollHeight = function() { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, e._getOffsetHeight = function() { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, e._process = function() { var e = this._getScrollTop() + this._config.offset,\r\n t = this._getScrollHeight(),\r\n n = this._config.offset + t - this._getOffsetHeight(); if (this._scrollHeight !== t && this.refresh(), n <= e) { var i = this._targets[this._targets.length - 1];\r\n this._activeTarget !== i && this._activate(i) } else { if (this._activeTarget && e < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear(); for (var r = this._offsets.length; r--;) { this._activeTarget !== this._targets[r] && e >= this._offsets[r] && (void 0 === this._offsets[r + 1] || e < this._offsets[r + 1]) && this._activate(this._targets[r]) } } }, e._activate = function(t) { this._activeTarget = t, this._clear(); var e = this._selector.split(\",\").map(function(e) { return e + '[data-target=\"' + t + '\"],' + e + '[href=\"' + t + '\"]' }),\r\n n = p([].slice.call(document.querySelectorAll(e.join(\",\"))));\r\n n.hasClass(yn) ? (n.closest(xn).find(Dn).addClass(_n), n.addClass(_n)) : (n.addClass(_n), n.parents(En).prev(wn + \", \" + Tn).addClass(_n), n.parents(En).prev(Cn).children(wn).addClass(_n)), p(this._scrollElement).trigger(vn.ACTIVATE, { relatedTarget: t }) }, e._clear = function() {\r\n [].slice.call(document.querySelectorAll(this._selector)).filter(function(e) { return e.classList.contains(_n) }).forEach(function(e) { return e.classList.remove(_n) }) }, n._jQueryInterface = function(t) { return this.each(function() { var e = p(this).data(hn); if (e || (e = new n(this, \"object\" == typeof t && t), p(this).data(hn, e)), \"string\" == typeof t) { if (void 0 === e[t]) throw new TypeError('No method named \"' + t + '\"');\r\n e[t]() } }) }, s(n, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"Default\", get: function() { return gn } }]), n }();\r\n p(window).on(vn.LOAD_DATA_API, function() { for (var e = [].slice.call(document.querySelectorAll(bn)), t = e.length; t--;) { var n = p(e[t]);\r\n In._jQueryInterface.call(n, n.data()) } }), p.fn[fn] = In._jQueryInterface, p.fn[fn].Constructor = In, p.fn[fn].noConflict = function() { return p.fn[fn] = pn, In._jQueryInterface }; var kn = \"bs.tab\",\r\n On = \".\" + kn,\r\n jn = p.fn.tab,\r\n Ln = { HIDE: \"hide\" + On, HIDDEN: \"hidden\" + On, SHOW: \"show\" + On, SHOWN: \"shown\" + On, CLICK_DATA_API: \"click\" + On + \".data-api\" },\r\n Pn = \"dropdown-menu\",\r\n Hn = \"active\",\r\n qn = \"disabled\",\r\n Rn = \"fade\",\r\n Mn = \"show\",\r\n Wn = \".dropdown\",\r\n Fn = \".nav, .list-group\",\r\n $n = \".active\",\r\n Bn = \"> li > .active\",\r\n Un = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\r\n Qn = \".dropdown-toggle\",\r\n Kn = \"> .dropdown-menu .active\",\r\n Vn = function() {\r\n function i(e) { this._element = e } var e = i.prototype; return e.show = function() { var e, t, n, i, r, o, s, a, l = this;\r\n this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && p(this._element).hasClass(Hn) || p(this._element).hasClass(qn) || (t = p(this._element).closest(Fn)[0], n = g.getSelectorFromElement(this._element), t && (i = \"UL\" === t.nodeName || \"OL\" === t.nodeName ? Bn : $n, r = (r = p.makeArray(p(t).find(i)))[r.length - 1]), o = p.Event(Ln.HIDE, { relatedTarget: this._element }), s = p.Event(Ln.SHOW, { relatedTarget: r }), r && p(r).trigger(o), p(this._element).trigger(s), s.isDefaultPrevented() || o.isDefaultPrevented() || (n && (e = document.querySelector(n)), this._activate(this._element, t), a = function() { var e = p.Event(Ln.HIDDEN, { relatedTarget: l._element }),\r\n t = p.Event(Ln.SHOWN, { relatedTarget: r });\r\n p(r).trigger(e), p(l._element).trigger(t) }, e ? this._activate(e, e.parentNode, a) : a())) }, e.dispose = function() { p.removeData(this._element, kn), this._element = null }, e._activate = function(e, t, n) {\r\n function i() { return o._transitionComplete(e, s, n) } var r, o = this,\r\n s = (!t || \"UL\" !== t.nodeName && \"OL\" !== t.nodeName ? p(t).children($n) : p(t).find(Bn))[0],\r\n a = n && s && p(s).hasClass(Rn);\r\n s && a ? (r = g.getTransitionDurationFromElement(s), p(s).removeClass(Mn).one(g.TRANSITION_END, i).emulateTransitionEnd(r)) : i() }, e._transitionComplete = function(e, t, n) { var i, r, o;\r\n t && (p(t).removeClass(Hn), (i = p(t.parentNode).find(Kn)[0]) && p(i).removeClass(Hn), \"tab\" === t.getAttribute(\"role\") && t.setAttribute(\"aria-selected\", !1)), p(e).addClass(Hn), \"tab\" === e.getAttribute(\"role\") && e.setAttribute(\"aria-selected\", !0), g.reflow(e), e.classList.contains(Rn) && e.classList.add(Mn), e.parentNode && p(e.parentNode).hasClass(Pn) && ((r = p(e).closest(Wn)[0]) && (o = [].slice.call(r.querySelectorAll(Qn)), p(o).addClass(Hn)), e.setAttribute(\"aria-expanded\", !0)), n && n() }, i._jQueryInterface = function(n) { return this.each(function() { var e = p(this),\r\n t = e.data(kn); if (t || (t = new i(this), e.data(kn, t)), \"string\" == typeof n) { if (void 0 === t[n]) throw new TypeError('No method named \"' + n + '\"');\r\n t[n]() } }) }, s(i, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }]), i }();\r\n p(document).on(Ln.CLICK_DATA_API, Un, function(e) { e.preventDefault(), Vn._jQueryInterface.call(p(this), \"show\") }), p.fn.tab = Vn._jQueryInterface, p.fn.tab.Constructor = Vn, p.fn.tab.noConflict = function() { return p.fn.tab = jn, Vn._jQueryInterface }; var zn = \"toast\",\r\n Xn = \"bs.toast\",\r\n Yn = \".\" + Xn,\r\n Gn = p.fn[zn],\r\n Jn = { CLICK_DISMISS: \"click.dismiss\" + Yn, HIDE: \"hide\" + Yn, HIDDEN: \"hidden\" + Yn, SHOW: \"show\" + Yn, SHOWN: \"shown\" + Yn },\r\n Zn = \"fade\",\r\n ei = \"hide\",\r\n ti = \"show\",\r\n ni = \"showing\",\r\n ii = { animation: \"boolean\", autohide: \"boolean\", delay: \"number\" },\r\n ri = { animation: !0, autohide: !0, delay: 500 },\r\n oi = '[data-dismiss=\"toast\"]',\r\n si = function() {\r\n function i(e, t) { this._element = e, this._config = this._getConfig(t), this._timeout = null, this._setListeners() } var e = i.prototype; return e.show = function() { var e, t, n = this,\r\n i = p.Event(Jn.SHOW);\r\n p(this._element).trigger(i), i.isDefaultPrevented() || (this._config.animation && this._element.classList.add(Zn), e = function() { n._element.classList.remove(ni), n._element.classList.add(ti), p(n._element).trigger(Jn.SHOWN), n._config.autohide && (n._timeout = setTimeout(function() { n.hide() }, n._config.delay)) }, this._element.classList.remove(ei), g.reflow(this._element), this._element.classList.add(ni), this._config.animation ? (t = g.getTransitionDurationFromElement(this._element), p(this._element).one(g.TRANSITION_END, e).emulateTransitionEnd(t)) : e()) }, e.hide = function() { var e;\r\n this._element.classList.contains(ti) && (e = p.Event(Jn.HIDE), p(this._element).trigger(e), e.isDefaultPrevented() || this._close()) }, e.dispose = function() { clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(ti) && this._element.classList.remove(ti), p(this._element).off(Jn.CLICK_DISMISS), p.removeData(this._element, Xn), this._element = null, this._config = null }, e._getConfig = function(e) { return e = l({}, ri, {}, p(this._element).data(), {}, \"object\" == typeof e && e ? e : {}), g.typeCheckConfig(zn, e, this.constructor.DefaultType), e }, e._setListeners = function() { var e = this;\r\n p(this._element).on(Jn.CLICK_DISMISS, oi, function() { return e.hide() }) }, e._close = function() {\r\n function e() { n._element.classList.add(ei), p(n._element).trigger(Jn.HIDDEN) } var t, n = this;\r\n this._element.classList.remove(ti), this._config.animation ? (t = g.getTransitionDurationFromElement(this._element), p(this._element).one(g.TRANSITION_END, e).emulateTransitionEnd(t)) : e() }, i._jQueryInterface = function(n) { return this.each(function() { var e = p(this),\r\n t = e.data(Xn); if (t || (t = new i(this, \"object\" == typeof n && n), e.data(Xn, t)), \"string\" == typeof n) { if (void 0 === t[n]) throw new TypeError('No method named \"' + n + '\"');\r\n t[n](this) } }) }, s(i, null, [{ key: \"VERSION\", get: function() { return \"4.4.1\" } }, { key: \"DefaultType\", get: function() { return ii } }, { key: \"Default\", get: function() { return ri } }]), i }();\r\n p.fn[zn] = si._jQueryInterface, p.fn[zn].Constructor = si, p.fn[zn].noConflict = function() { return p.fn[zn] = Gn, si._jQueryInterface }, e.Alert = y, e.Button = P, e.Carousel = fe, e.Collapse = De, e.Dropdown = tt, e.Modal = wt, e.Popover = un, e.Scrollspy = In, e.Tab = Vn, e.Toast = si, e.Tooltip = Xt, e.Util = g, Object.defineProperty(e, \"__esModule\", { value: !0 }) }), $(document).ready(function() {}), $(\"body\").on(\"click\", \".tab-view .tab\", function(e) { tabName = $(this).data(\"tab\"), tabView = $(this).parent().parent(\".tab-view\"), tabs = $(this).parents(\".tab-view > .tab\"), $(this).parent(\".tabs\").children(\".tab\").each(function(e) { $(this).removeClass(\"active\") }), $(this).addClass(\"active\"), tabView.children(\".contents\").children(\".content\").each(function(e) { $(this).removeClass(\"active\") }), tabView.children(\".contents\").children(\".content-\" + tabName).addClass(\"active\") }), tabUrlControl(), window.onhashchange = function() { tabUrlControl() };\r\nvar busSearchInput = $(\".bussearch .bseach-input\");\r\n\r\nfunction searchInputChange(e) { 0 < e.prev(\".bseach-input\").val().length ? (e.addClass(\"icon-close\"), e.removeClass(\"icon-down-arrow\")) : (e.addClass(\"icon-down-arrow\"), e.removeClass(\"icon-close\")) }\r\n$(\".bussearch .bseach-input\").focus(function() { $(this).parent().toggleClass(\"active\") }), $(document).mouseup(function(e) { busSearchInput.is(e.target) || 0 !== busSearchInput.has(e.target).length || busSearchInput.parent().removeClass(\"active\") }), busSearchInput.on(\"input\", function() { searchInputChange($(this).parents(\".bussearch\").children(\".icon.down\")) }), $(\".bussearch .buslist .item\").click(function() { $(this).parents(\".bussearch\").children(\".bseach-input\").val($(this).find(\".value\").text()), searchInputChange($(this).parents(\".bussearch\").children(\".icon.down\")) }), $(\"body\").on(\"click\", \".bussearch .icon-close\", function(e) { $(this).prev(\".bseach-input\").val(\"\"), searchInputChange($(this)) }), $(\"#nav-icon2\").click(function() { $(this).toggleClass(\"open\"), $(\"body\").toggleClass(\"menu-open\"), $(\".black-layer\").toggleClass(\"active\") }), $(\".black-layer\").click(function() { $(\"#nav-icon2\").removeClass(\"open\"), $(\"body\").removeClass(\"menu-open\"), $(\".black-layer\").removeClass(\"active\") }), $(\".password .pass-eye\").click(function() { $(\".password .pass-eye .eye\").toggleClass(\"icon-eye icon-eye-closed\"); var e = $(\".password input\"); \"password\" == e.attr(\"type\") ? e.attr(\"type\", \"text\") : e.attr(\"type\", \"password\") }), $(document).click(function() { $(\".right-links\").removeClass(\"active\") }), $(\".right-links .drop-trigger\").click(function(e) { e.stopPropagation(), $(this).parent().toggleClass(\"active\") });","var DateFormatter;!function(){\"use strict\";var D=function(e,t){return\"string\"==typeof e&&\"string\"==typeof t&&e.toLowerCase()===t.toLowerCase()},s=function(e,t,a){var n=a||\"0\",r=e.toString();return r.length<t?s(n+r,t):r},r=function(e){var t,a;for(e=e||{},t=1;t<arguments.length;t++)if(a=arguments[t])for(var n in a)a.hasOwnProperty(n)&&(\"object\"==typeof a[n]?r(e[n],a[n]):e[n]=a[n]);return e},a=function(e,t){for(var a=0;a<t.length;a++)if(t[a].toLowerCase()===e.toLowerCase())return a;return-1},n={dateSettings:{days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],daysShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthsShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],meridiem:[\"AM\",\"PM\"],ordinal:function(e){var t=e%10,a={1:\"st\",2:\"nd\",3:\"rd\"};return 1!==Math.floor(e%100/10)&&a[t]?a[t]:\"th\"}},separators:/[ \\-+\\/\\.T:@]/g,validParts:/[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,intParts:/[djwNzmnyYhHgGis]/g,tzParts:/\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,tzClip:/[^-+\\dA-Z]/g};(DateFormatter=function(e){var t=this,a=r(n,e);t.dateSettings=a.dateSettings,t.separators=a.separators,t.validParts=a.validParts,t.intParts=a.intParts,t.tzParts=a.tzParts,t.tzClip=a.tzClip}).prototype={constructor:DateFormatter,getMonth:function(e){var t;return 0===(t=a(e,this.dateSettings.monthsShort)+1)&&(t=a(e,this.dateSettings.months)+1),t},parseDate:function(e,t){var a,n,r,o,i,s,d,u,l,f,c=this,m=!1,h=!1,g=c.dateSettings,p={date:null,year:null,month:null,day:null,hour:0,min:0,sec:0};if(!e)return null;if(e instanceof Date)return e;if(\"U\"===t)return(r=parseInt(e))?new Date(1e3*r):e;switch(typeof e){case\"number\":return new Date(e);case\"string\":break;default:return null}if(!(a=t.match(c.validParts))||0===a.length)throw new Error(\"Invalid date format definition.\");for(n=e.replace(c.separators,\"\\0\").split(\"\\0\"),r=0;r<n.length;r++)switch(o=n[r],i=parseInt(o),a[r]){case\"y\":case\"Y\":if(!i)return null;l=o.length,p.year=2===l?parseInt((i<70?\"20\":\"19\")+o):i,m=!0;break;case\"m\":case\"n\":case\"M\":case\"F\":if(isNaN(i)){if(!(0<(s=c.getMonth(o))))return null;p.month=s}else{if(!(1<=i&&i<=12))return null;p.month=i}m=!0;break;case\"d\":case\"j\":if(!(1<=i&&i<=31))return null;p.day=i,m=!0;break;case\"g\":case\"h\":if(f=n[d=-1<a.indexOf(\"a\")?a.indexOf(\"a\"):-1<a.indexOf(\"A\")?a.indexOf(\"A\"):-1],-1<d)u=D(f,g.meridiem[0])?0:D(f,g.meridiem[1])?12:-1,1<=i&&i<=12&&-1<u?p.hour=i+u-1:0<=i&&i<=23&&(p.hour=i);else{if(!(0<=i&&i<=23))return null;p.hour=i}h=!0;break;case\"G\":case\"H\":if(!(0<=i&&i<=23))return null;p.hour=i,h=!0;break;case\"i\":if(!(0<=i&&i<=59))return null;p.min=i,h=!0;break;case\"s\":if(!(0<=i&&i<=59))return null;p.sec=i,h=!0}if(!0===m&&p.year&&p.month&&p.day)p.date=new Date(p.year,p.month-1,p.day,p.hour,p.min,p.sec,0);else{if(!0!==h)return null;p.date=new Date(0,0,0,p.hour,p.min,p.sec,0)}return p.date},guessDate:function(e,t){if(\"string\"!=typeof e)return e;var a,n,r,o,i,s,d=e.replace(this.separators,\"\\0\").split(\"\\0\"),u=t.match(this.validParts),l=new Date,f=0;if(!/^[djmn]/g.test(u[0]))return e;for(r=0;r<d.length;r++){if(f=2,i=d[r],s=parseInt(i.substr(0,2)),isNaN(s))return null;switch(r){case 0:\"m\"===u[0]||\"n\"===u[0]?l.setMonth(s-1):l.setDate(s);break;case 1:\"m\"===u[0]||\"n\"===u[0]?l.setDate(s):l.setMonth(s-1);break;case 2:if(n=l.getFullYear(),f=(a=i.length)<4?a:4,!(n=parseInt(a<4?n.toString().substr(0,4-a)+i:i.substr(0,4))))return null;l.setFullYear(n);break;case 3:l.setHours(s);break;case 4:l.setMinutes(s);break;case 5:l.setSeconds(s)}0<(o=i.substr(f)).length&&d.splice(r+1,0,o)}return l},parseFormat:function(e,n){function t(e,t){return i[e]?i[e]():t}var a=this,r=a.dateSettings,o=/\\\\?(.?)/gi,i={d:function(){return s(i.j(),2)},D:function(){return r.daysShort[i.w()]},j:function(){return n.getDate()},l:function(){return r.days[i.w()]},N:function(){return i.w()||7},w:function(){return n.getDay()},z:function(){var e=new Date(i.Y(),i.n()-1,i.j()),t=new Date(i.Y(),0,1);return Math.round((e-t)/864e5)},W:function(){var e=new Date(i.Y(),i.n()-1,i.j()-i.N()+3),t=new Date(e.getFullYear(),0,4);return s(1+Math.round((e-t)/864e5/7),2)},F:function(){return r.months[n.getMonth()]},m:function(){return s(i.n(),2)},M:function(){return r.monthsShort[n.getMonth()]},n:function(){return n.getMonth()+1},t:function(){return new Date(i.Y(),i.n(),0).getDate()},L:function(){var e=i.Y();return e%4==0&&e%100!=0||e%400==0?1:0},o:function(){var e=i.n(),t=i.W();return i.Y()+(12===e&&t<9?1:1===e&&9<t?-1:0)},Y:function(){return n.getFullYear()},y:function(){return i.Y().toString().slice(-2)},a:function(){return i.A().toLowerCase()},A:function(){var e=i.G()<12?0:1;return r.meridiem[e]},B:function(){var e=3600*n.getUTCHours(),t=60*n.getUTCMinutes(),a=n.getUTCSeconds();return s(Math.floor((e+t+a+3600)/86.4)%1e3,3)},g:function(){return i.G()%12||12},G:function(){return n.getHours()},h:function(){return s(i.g(),2)},H:function(){return s(i.G(),2)},i:function(){return s(n.getMinutes(),2)},s:function(){return s(n.getSeconds(),2)},u:function(){return s(1e3*n.getMilliseconds(),6)},e:function(){return/\\((.*)\\)/.exec(String(n))[1]||\"Coordinated Universal Time\"},I:function(){return new Date(i.Y(),0)-Date.UTC(i.Y(),0)!=new Date(i.Y(),6)-Date.UTC(i.Y(),6)?1:0},O:function(){var e=n.getTimezoneOffset(),t=Math.abs(e);return(0<e?\"-\":\"+\")+s(100*Math.floor(t/60)+t%60,4)},P:function(){var e=i.O();return e.substr(0,3)+\":\"+e.substr(3,2)},T:function(){return(String(n).match(a.tzParts)||[\"\"]).pop().replace(a.tzClip,\"\")||\"UTC\"},Z:function(){return 60*-n.getTimezoneOffset()},c:function(){return\"Y-m-d\\\\TH:i:sP\".replace(o,t)},r:function(){return\"D, d M Y H:i:s O\".replace(o,t)},U:function(){return n.getTime()/1e3||0}};return t(e,e)},formatDate:function(e,t){var a,n,r,o,i,s=\"\";if(\"string\"==typeof e&&!(e=this.parseDate(e,t)))return null;if(e instanceof Date){for(r=t.length,a=0;a<r;a++)\"S\"!==(i=t.charAt(a))&&\"\\\\\"!==i&&(0<a&&\"\\\\\"===t.charAt(a-1)?s+=i:(o=this.parseFormat(i,e),a!==r-1&&this.intParts.test(i)&&\"S\"===t.charAt(a+1)&&(n=parseInt(o)||0,o+=this.dateSettings.ordinal(n)),s+=o));return s}return\"\"}}}();var datetimepickerFactory=function(L){\"use strict\";function a(){var e=s.i18n[R],t={days:e.dayOfWeek,daysShort:e.dayOfWeekShort,months:e.months,monthsShort:L.map(e.months,function(e){return e.substring(0,3)})};\"function\"==typeof DateFormatter&&(E=n=new DateFormatter({dateSettings:L.extend({},r,t)}))}var s={i18n:{ar:{months:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"Øزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],dayOfWeekShort:[\"Ù†\",\"Ø«\",\"ع\",\"Ø®\",\"ج\",\"س\",\"Ø\"],dayOfWeek:[\"الأØد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\",\"الأØد\"]},ro:{months:[\"Ianuarie\",\"Februarie\",\"Martie\",\"Aprilie\",\"Mai\",\"Iunie\",\"Iulie\",\"August\",\"Septembrie\",\"Octombrie\",\"Noiembrie\",\"Decembrie\"],dayOfWeekShort:[\"Du\",\"Lu\",\"Ma\",\"Mi\",\"Jo\",\"Vi\",\"Sâ\"],dayOfWeek:[\"Duminică\",\"Luni\",\"MarÅ£i\",\"Miercuri\",\"Joi\",\"Vineri\",\"Sâmbătă\"]},id:{months:[\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"November\",\"Desember\"],dayOfWeekShort:[\"Min\",\"Sen\",\"Sel\",\"Rab\",\"Kam\",\"Jum\",\"Sab\"],dayOfWeek:[\"Minggu\",\"Senin\",\"Selasa\",\"Rabu\",\"Kamis\",\"Jumat\",\"Sabtu\"]},is:{months:[\"Janúar\",\"Febrúar\",\"Mars\",\"AprÃl\",\"MaÃ\",\"JúnÃ\",\"JúlÃ\",\"Ãgúst\",\"September\",\"Október\",\"Nóvember\",\"Desember\"],dayOfWeekShort:[\"Sun\",\"Mán\",\"Þrið\",\"Mið\",\"Fim\",\"Fös\",\"Lau\"],dayOfWeek:[\"Sunnudagur\",\"Mánudagur\",\"Þriðjudagur\",\"Miðvikudagur\",\"Fimmtudagur\",\"Föstudagur\",\"Laugardagur\"]},bg:{months:[\"Януари\",\"Февруари\",\"Март\",\"Ðприл\",\"Май\",\"Юни\",\"Юли\",\"ÐвгуÑÑ‚\",\"Септември\",\"Октомври\",\"Ðоември\",\"Декември\"],dayOfWeekShort:[\"Ðд\",\"Пн\",\"Ð’Ñ‚\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],dayOfWeek:[\"ÐеделÑ\",\"Понеделник\",\"Вторник\",\"СрÑда\",\"Четвъртък\",\"Петък\",\"Събота\"]},fa:{months:[\"Ùروردین\",\"اردیبهشت\",\"خرداد\",\"تیر\",\"مرداد\",\"شهریور\",\"مهر\",\"آبان\",\"آذر\",\"دی\",\"بهمن\",\"اسÙند\"],dayOfWeekShort:[\"یکشنبه\",\"دوشنبه\",\"سه شنبه\",\"چهارشنبه\",\"پنجشنبه\",\"جمعه\",\"شنبه\"],dayOfWeek:[\"یک‌شنبه\",\"دوشنبه\",\"سه‌شنبه\",\"چهارشنبه\",\"پنج‌شنبه\",\"جمعه\",\"شنبه\",\"یک‌شنبه\"]},ru:{months:[\"Январь\",\"Февраль\",\"Март\",\"Ðпрель\",\"Май\",\"Июнь\",\"Июль\",\"ÐвгуÑÑ‚\",\"СентÑбрь\",\"ОктÑбрь\",\"ÐоÑбрь\",\"Декабрь\"],dayOfWeekShort:[\"Ð’Ñ\",\"Пн\",\"Ð’Ñ‚\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],dayOfWeek:[\"ВоÑкреÑенье\",\"Понедельник\",\"Вторник\",\"Среда\",\"Четверг\",\"ПÑтница\",\"Суббота\"]},uk:{months:[\"Січень\",\"Лютий\",\"Березень\",\"Квітень\",\"Травень\",\"Червень\",\"Липень\",\"Серпень\",\"ВереÑень\",\"Жовтень\",\"ЛиÑтопад\",\"Грудень\"],dayOfWeekShort:[\"Ðдл\",\"Пнд\",\"Ð’Ñ‚Ñ€\",\"Срд\",\"Чтв\",\"Птн\",\"Сбт\"],dayOfWeek:[\"ÐеділÑ\",\"Понеділок\",\"Вівторок\",\"Середа\",\"Четвер\",\"П'ÑтницÑ\",\"Субота\"]},en:{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],dayOfWeekShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayOfWeek:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},el:{months:[\"ΙανουάÏιος\",\"ΦεβÏουάÏιος\",\"ΜάÏτιος\",\"ΑπÏίλιος\",\"Μάιος\",\"ΙοÏνιος\",\"ΙοÏλιος\",\"ΑÏγουστος\",\"ΣεπτÎμβÏιος\",\"ΟκτώβÏιος\",\"ÎοÎμβÏιος\",\"ΔεκÎμβÏιος\"],dayOfWeekShort:[\"ΚυÏ\",\"Δευ\",\"ΤÏι\",\"Τετ\",\"Πεμ\",\"ΠαÏ\",\"Σαβ\"],dayOfWeek:[\"ΚυÏιακή\",\"ΔευτÎÏα\",\"ΤÏίτη\",\"ΤετάÏτη\",\"Î Îμπτη\",\"ΠαÏασκευή\",\"Σάββατο\"]},de:{months:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],dayOfWeekShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayOfWeek:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"]},nl:{months:[\"januari\",\"februari\",\"maart\",\"april\",\"mei\",\"juni\",\"juli\",\"augustus\",\"september\",\"oktober\",\"november\",\"december\"],dayOfWeekShort:[\"zo\",\"ma\",\"di\",\"wo\",\"do\",\"vr\",\"za\"],dayOfWeek:[\"zondag\",\"maandag\",\"dinsdag\",\"woensdag\",\"donderdag\",\"vrijdag\",\"zaterdag\"]},tr:{months:[\"Ocak\",\"Åžubat\",\"Mart\",\"Nisan\",\"Mayıs\",\"Haziran\",\"Temmuz\",\"AÄŸustos\",\"Eylül\",\"Ekim\",\"Kasım\",\"Aralık\"],dayOfWeekShort:[\"Paz\",\"Pts\",\"Sal\",\"Çar\",\"Per\",\"Cum\",\"Cts\"],dayOfWeek:[\"Pazar\",\"Pazartesi\",\"Salı\",\"ÇarÅŸamba\",\"PerÅŸembe\",\"Cuma\",\"Cumartesi\"]},fr:{months:[\"Janvier\",\"Février\",\"Mars\",\"Avril\",\"Mai\",\"Juin\",\"Juillet\",\"Août\",\"Septembre\",\"Octobre\",\"Novembre\",\"Décembre\"],dayOfWeekShort:[\"Dim\",\"Lun\",\"Mar\",\"Mer\",\"Jeu\",\"Ven\",\"Sam\"],dayOfWeek:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"]},es:{months:[\"Enero\",\"Febrero\",\"Marzo\",\"Abril\",\"Mayo\",\"Junio\",\"Julio\",\"Agosto\",\"Septiembre\",\"Octubre\",\"Noviembre\",\"Diciembre\"],dayOfWeekShort:[\"Dom\",\"Lun\",\"Mar\",\"Mié\",\"Jue\",\"Vie\",\"Sáb\"],dayOfWeek:[\"Domingo\",\"Lunes\",\"Martes\",\"Miércoles\",\"Jueves\",\"Viernes\",\"Sábado\"]},th:{months:[\"มà¸à¸£à¸²à¸„ม\",\"à¸à¸¸à¸¡à¸ าพันธ์\",\"มีนาคม\",\"เมษายน\",\"พฤษภาคม\",\"มิถุนายน\",\"à¸à¸£à¸à¸Žà¸²à¸„ม\",\"สิงหาคม\",\"à¸à¸±à¸™à¸¢à¸²à¸¢à¸™\",\"ตุลาคม\",\"พฤศจิà¸à¸²à¸¢à¸™\",\"ธันวาคม\"],dayOfWeekShort:[\"à¸à¸².\",\"จ.\",\"à¸.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],dayOfWeek:[\"à¸à¸²à¸—ิตย์\",\"จันทร์\",\"à¸à¸±à¸‡à¸„าร\",\"พุธ\",\"พฤหัส\",\"ศุà¸à¸£à¹Œ\",\"เสาร์\",\"à¸à¸²à¸—ิตย์\"]},pl:{months:[\"styczeÅ„\",\"luty\",\"marzec\",\"kwiecieÅ„\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpieÅ„\",\"wrzesieÅ„\",\"październik\",\"listopad\",\"grudzieÅ„\"],dayOfWeekShort:[\"nd\",\"pn\",\"wt\",\"Å›r\",\"cz\",\"pt\",\"sb\"],dayOfWeek:[\"niedziela\",\"poniedziaÅ‚ek\",\"wtorek\",\"Å›roda\",\"czwartek\",\"piÄ…tek\",\"sobota\"]},pt:{months:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],dayOfWeekShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sab\"],dayOfWeek:[\"Domingo\",\"Segunda\",\"Terça\",\"Quarta\",\"Quinta\",\"Sexta\",\"Sábado\"]},ch:{months:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"å…月\",\"七月\",\"八月\",\"ä¹æœˆ\",\"å月\",\"å一月\",\"å二月\"],dayOfWeekShort:[\"æ—¥\",\"一\",\"二\",\"三\",\"å››\",\"五\",\"å…\"]},se:{months:[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"],dayOfWeekShort:[\"Sön\",\"MÃ¥n\",\"Tis\",\"Ons\",\"Tor\",\"Fre\",\"Lör\"]},km:{months:[\"មករា​\",\"កុម្ភៈ\",\"មិនា​\",\"មáŸážŸáž¶â€‹\",\"ឧសភា​\",\"មិážáž»áž“ា​\",\"កក្កដា​\",\"សីហា​\",\"កញ្ញា​\",\"ážáž»áž›áž¶â€‹\",\"វិច្ឆិកា\",\"ធ្នូ​\"],dayOfWeekShort:[\"អាទិ​\",\"áž…áŸáž“្ទ​\",\"អង្គារ​\",\"ពុធ​\",\"ព្រហ​​\",\"សុក្រ​\",\"សៅរáŸ\"],dayOfWeek:[\"អាទិážáŸ’យ​\",\"áž…áŸáž“្ទ​\",\"អង្គារ​\",\"ពុធ​\",\"ព្រហស្បážáž·áŸâ€‹\",\"សុក្រ​\",\"សៅរáŸ\"]},kr:{months:[\"1ì›”\",\"2ì›”\",\"3ì›”\",\"4ì›”\",\"5ì›”\",\"6ì›”\",\"7ì›”\",\"8ì›”\",\"9ì›”\",\"10ì›”\",\"11ì›”\",\"12ì›”\"],dayOfWeekShort:[\"ì¼\",\"ì›”\",\"í™”\",\"수\",\"목\",\"금\",\"í† \"],dayOfWeek:[\"ì¼ìš”ì¼\",\"월요ì¼\",\"화요ì¼\",\"수요ì¼\",\"목요ì¼\",\"금요ì¼\",\"í† ìš”ì¼\"]},it:{months:[\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],dayOfWeekShort:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\"],dayOfWeek:[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"]},da:{months:[\"Januar\",\"Februar\",\"Marts\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"December\"],dayOfWeekShort:[\"Søn\",\"Man\",\"Tir\",\"Ons\",\"Tor\",\"Fre\",\"Lør\"],dayOfWeek:[\"søndag\",\"mandag\",\"tirsdag\",\"onsdag\",\"torsdag\",\"fredag\",\"lørdag\"]},no:{months:[\"Januar\",\"Februar\",\"Mars\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Desember\"],dayOfWeekShort:[\"Søn\",\"Man\",\"Tir\",\"Ons\",\"Tor\",\"Fre\",\"Lør\"],dayOfWeek:[\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\"]},ja:{months:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],dayOfWeekShort:[\"æ—¥\",\"月\",\"ç«\",\"æ°´\",\"木\",\"金\",\"土\"],dayOfWeek:[\"日曜\",\"月曜\",\"ç«æ›œ\",\"水曜\",\"木曜\",\"金曜\",\"土曜\"]},vi:{months:[\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"],dayOfWeekShort:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],dayOfWeek:[\"Chủ nháºt\",\"Thứ hai\",\"Thứ ba\",\"Thứ tÆ°\",\"Thứ năm\",\"Thứ sáu\",\"Thứ bảy\"]},sl:{months:[\"Januar\",\"Februar\",\"Marec\",\"April\",\"Maj\",\"Junij\",\"Julij\",\"Avgust\",\"September\",\"Oktober\",\"November\",\"December\"],dayOfWeekShort:[\"Ned\",\"Pon\",\"Tor\",\"Sre\",\"ÄŒet\",\"Pet\",\"Sob\"],dayOfWeek:[\"Nedelja\",\"Ponedeljek\",\"Torek\",\"Sreda\",\"ÄŒetrtek\",\"Petek\",\"Sobota\"]},cs:{months:[\"Leden\",\"Únor\",\"BÅ™ezen\",\"Duben\",\"KvÄ›ten\",\"ÄŒerven\",\"ÄŒervenec\",\"Srpen\",\"ZářÃ\",\"ŘÃjen\",\"Listopad\",\"Prosinec\"],dayOfWeekShort:[\"Ne\",\"Po\",\"Út\",\"St\",\"ÄŒt\",\"Pá\",\"So\"]},hu:{months:[\"Január\",\"Február\",\"Március\",\"Ãprilis\",\"Május\",\"Június\",\"Július\",\"Augusztus\",\"Szeptember\",\"Október\",\"November\",\"December\"],dayOfWeekShort:[\"Va\",\"Hé\",\"Ke\",\"Sze\",\"Cs\",\"Pé\",\"Szo\"],dayOfWeek:[\"vasárnap\",\"hétfÅ‘\",\"kedd\",\"szerda\",\"csütörtök\",\"péntek\",\"szombat\"]},az:{months:[\"Yanvar\",\"Fevral\",\"Mart\",\"Aprel\",\"May\",\"Iyun\",\"Iyul\",\"Avqust\",\"Sentyabr\",\"Oktyabr\",\"Noyabr\",\"Dekabr\"],dayOfWeekShort:[\"B\",\"Be\",\"Ça\",\"Ç\",\"Ca\",\"C\",\"Åž\"],dayOfWeek:[\"Bazar\",\"Bazar ertÉ™si\",\"ÇərÅŸÉ™nbÉ™ axÅŸamı\",\"ÇərÅŸÉ™nbÉ™\",\"CümÉ™ axÅŸamı\",\"CümÉ™\",\"ŞənbÉ™\"]},bs:{months:[\"Januar\",\"Februar\",\"Mart\",\"April\",\"Maj\",\"Jun\",\"Jul\",\"Avgust\",\"Septembar\",\"Oktobar\",\"Novembar\",\"Decembar\"],dayOfWeekShort:[\"Ned\",\"Pon\",\"Uto\",\"Sri\",\"ÄŒet\",\"Pet\",\"Sub\"],dayOfWeek:[\"Nedjelja\",\"Ponedjeljak\",\"Utorak\",\"Srijeda\",\"ÄŒetvrtak\",\"Petak\",\"Subota\"]},ca:{months:[\"Gener\",\"Febrer\",\"Març\",\"Abril\",\"Maig\",\"Juny\",\"Juliol\",\"Agost\",\"Setembre\",\"Octubre\",\"Novembre\",\"Desembre\"],dayOfWeekShort:[\"Dg\",\"Dl\",\"Dt\",\"Dc\",\"Dj\",\"Dv\",\"Ds\"],dayOfWeek:[\"Diumenge\",\"Dilluns\",\"Dimarts\",\"Dimecres\",\"Dijous\",\"Divendres\",\"Dissabte\"]},\"en-GB\":{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],dayOfWeekShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayOfWeek:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},et:{months:[\"Jaanuar\",\"Veebruar\",\"Märts\",\"Aprill\",\"Mai\",\"Juuni\",\"Juuli\",\"August\",\"September\",\"Oktoober\",\"November\",\"Detsember\"],dayOfWeekShort:[\"P\",\"E\",\"T\",\"K\",\"N\",\"R\",\"L\"],dayOfWeek:[\"Pühapäev\",\"Esmaspäev\",\"Teisipäev\",\"Kolmapäev\",\"Neljapäev\",\"Reede\",\"Laupäev\"]},eu:{months:[\"Urtarrila\",\"Otsaila\",\"Martxoa\",\"Apirila\",\"Maiatza\",\"Ekaina\",\"Uztaila\",\"Abuztua\",\"Iraila\",\"Urria\",\"Azaroa\",\"Abendua\"],dayOfWeekShort:[\"Ig.\",\"Al.\",\"Ar.\",\"Az.\",\"Og.\",\"Or.\",\"La.\"],dayOfWeek:[\"Igandea\",\"Astelehena\",\"Asteartea\",\"Asteazkena\",\"Osteguna\",\"Ostirala\",\"Larunbata\"]},fi:{months:[\"Tammikuu\",\"Helmikuu\",\"Maaliskuu\",\"Huhtikuu\",\"Toukokuu\",\"Kesäkuu\",\"Heinäkuu\",\"Elokuu\",\"Syyskuu\",\"Lokakuu\",\"Marraskuu\",\"Joulukuu\"],dayOfWeekShort:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],dayOfWeek:[\"sunnuntai\",\"maanantai\",\"tiistai\",\"keskiviikko\",\"torstai\",\"perjantai\",\"lauantai\"]},gl:{months:[\"Xan\",\"Feb\",\"Maz\",\"Abr\",\"Mai\",\"Xun\",\"Xul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dec\"],dayOfWeekShort:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Xov\",\"Ven\",\"Sab\"],dayOfWeek:[\"Domingo\",\"Luns\",\"Martes\",\"Mércores\",\"Xoves\",\"Venres\",\"Sábado\"]},hr:{months:[\"SijeÄanj\",\"VeljaÄa\",\"Ožujak\",\"Travanj\",\"Svibanj\",\"Lipanj\",\"Srpanj\",\"Kolovoz\",\"Rujan\",\"Listopad\",\"Studeni\",\"Prosinac\"],dayOfWeekShort:[\"Ned\",\"Pon\",\"Uto\",\"Sri\",\"ÄŒet\",\"Pet\",\"Sub\"],dayOfWeek:[\"Nedjelja\",\"Ponedjeljak\",\"Utorak\",\"Srijeda\",\"ÄŒetvrtak\",\"Petak\",\"Subota\"]},ko:{months:[\"1ì›”\",\"2ì›”\",\"3ì›”\",\"4ì›”\",\"5ì›”\",\"6ì›”\",\"7ì›”\",\"8ì›”\",\"9ì›”\",\"10ì›”\",\"11ì›”\",\"12ì›”\"],dayOfWeekShort:[\"ì¼\",\"ì›”\",\"í™”\",\"수\",\"목\",\"금\",\"í† \"],dayOfWeek:[\"ì¼ìš”ì¼\",\"월요ì¼\",\"화요ì¼\",\"수요ì¼\",\"목요ì¼\",\"금요ì¼\",\"í† ìš”ì¼\"]},lt:{months:[\"Sausio\",\"Vasario\",\"Kovo\",\"Balandžio\",\"Gegužės\",\"Birželio\",\"Liepos\",\"RugpjÅ«Äio\",\"RugsÄ—jo\",\"Spalio\",\"LapkriÄio\",\"Gruodžio\"],dayOfWeekShort:[\"Sek\",\"Pir\",\"Ant\",\"Tre\",\"Ket\",\"Pen\",\"Å eÅ¡\"],dayOfWeek:[\"Sekmadienis\",\"Pirmadienis\",\"Antradienis\",\"TreÄiadienis\",\"Ketvirtadienis\",\"Penktadienis\",\"Å eÅ¡tadienis\"]},lv:{months:[\"JanvÄris\",\"FebruÄris\",\"Marts\",\"AprÄ«lis \",\"Maijs\",\"JÅ«nijs\",\"JÅ«lijs\",\"Augusts\",\"Septembris\",\"Oktobris\",\"Novembris\",\"Decembris\"],dayOfWeekShort:[\"Sv\",\"Pr\",\"Ot\",\"Tr\",\"Ct\",\"Pk\",\"St\"],dayOfWeek:[\"SvÄ“tdiena\",\"Pirmdiena\",\"Otrdiena\",\"TreÅ¡diena\",\"Ceturtdiena\",\"Piektdiena\",\"Sestdiena\"]},mk:{months:[\"јануари\",\"февруари\",\"март\",\"април\",\"мај\",\"јуни\",\"јули\",\"авгуÑÑ‚\",\"Ñептември\",\"октомври\",\"ноември\",\"декември\"],dayOfWeekShort:[\"нед\",\"пон\",\"вто\",\"Ñре\",\"чет\",\"пет\",\"Ñаб\"],dayOfWeek:[\"Ðедела\",\"Понеделник\",\"Вторник\",\"Среда\",\"Четврток\",\"Петок\",\"Сабота\"]},mn:{months:[\"1-Ñ€ Ñар\",\"2-Ñ€ Ñар\",\"3-Ñ€ Ñар\",\"4-Ñ€ Ñар\",\"5-Ñ€ Ñар\",\"6-Ñ€ Ñар\",\"7-Ñ€ Ñар\",\"8-Ñ€ Ñар\",\"9-Ñ€ Ñар\",\"10-Ñ€ Ñар\",\"11-Ñ€ Ñар\",\"12-Ñ€ Ñар\"],dayOfWeekShort:[\"Дав\",\"ÐœÑг\",\"Лха\",\"Пүр\",\"БÑн\",\"БÑм\",\"ÐÑм\"],dayOfWeek:[\"Даваа\",\"ÐœÑгмар\",\"Лхагва\",\"ПүрÑв\",\"БааÑан\",\"БÑмба\",\"ÐÑм\"]},\"pt-BR\":{months:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],dayOfWeekShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayOfWeek:[\"Domingo\",\"Segunda\",\"Terça\",\"Quarta\",\"Quinta\",\"Sexta\",\"Sábado\"]},sk:{months:[\"Január\",\"Február\",\"Marec\",\"AprÃl\",\"Máj\",\"Jún\",\"Júl\",\"August\",\"September\",\"Október\",\"November\",\"December\"],dayOfWeekShort:[\"Ne\",\"Po\",\"Ut\",\"St\",\"Å t\",\"Pi\",\"So\"],dayOfWeek:[\"Nedeľa\",\"Pondelok\",\"Utorok\",\"Streda\",\"Å tvrtok\",\"Piatok\",\"Sobota\"]},sq:{months:[\"Janar\",\"Shkurt\",\"Mars\",\"Prill\",\"Maj\",\"Qershor\",\"Korrik\",\"Gusht\",\"Shtator\",\"Tetor\",\"Nëntor\",\"Dhjetor\"],dayOfWeekShort:[\"Die\",\"Hën\",\"Mar\",\"Mër\",\"Enj\",\"Pre\",\"Shtu\"],dayOfWeek:[\"E Diel\",\"E Hënë\",\"E MartÄ“\",\"E Mërkurë\",\"E Enjte\",\"E Premte\",\"E Shtunë\"]},\"sr-YU\":{months:[\"Januar\",\"Februar\",\"Mart\",\"April\",\"Maj\",\"Jun\",\"Jul\",\"Avgust\",\"Septembar\",\"Oktobar\",\"Novembar\",\"Decembar\"],dayOfWeekShort:[\"Ned\",\"Pon\",\"Uto\",\"Sre\",\"Äet\",\"Pet\",\"Sub\"],dayOfWeek:[\"Nedelja\",\"Ponedeljak\",\"Utorak\",\"Sreda\",\"ÄŒetvrtak\",\"Petak\",\"Subota\"]},sr:{months:[\"јануар\",\"фебруар\",\"март\",\"април\",\"мај\",\"јун\",\"јул\",\"авгуÑÑ‚\",\"Ñептембар\",\"октобар\",\"новембар\",\"децембар\"],dayOfWeekShort:[\"нед\",\"пон\",\"уто\",\"Ñре\",\"чет\",\"пет\",\"Ñуб\"],dayOfWeek:[\"Ðедеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"]},sv:{months:[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"],dayOfWeekShort:[\"Sön\",\"MÃ¥n\",\"Tis\",\"Ons\",\"Tor\",\"Fre\",\"Lör\"],dayOfWeek:[\"Söndag\",\"MÃ¥ndag\",\"Tisdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lördag\"]},\"zh-TW\":{months:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"å…月\",\"七月\",\"八月\",\"ä¹æœˆ\",\"å月\",\"å一月\",\"å二月\"],dayOfWeekShort:[\"æ—¥\",\"一\",\"二\",\"三\",\"å››\",\"五\",\"å…\"],dayOfWeek:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期å…\"]},zh:{months:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"å…月\",\"七月\",\"八月\",\"ä¹æœˆ\",\"å月\",\"å一月\",\"å二月\"],dayOfWeekShort:[\"æ—¥\",\"一\",\"二\",\"三\",\"å››\",\"五\",\"å…\"],dayOfWeek:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期å…\"]},ug:{months:[\"1-ئاي\",\"2-ئاي\",\"3-ئاي\",\"4-ئاي\",\"5-ئاي\",\"6-ئاي\",\"7-ئاي\",\"8-ئاي\",\"9-ئاي\",\"10-ئاي\",\"11-ئاي\",\"12-ئاي\"],dayOfWeek:[\"يەكشەنبە\",\"دۈشەنبە\",\"سەيشەنبە\",\"چارشەنبە\",\"پەيشەنبە\",\"جۈمە\",\"شەنبە\"]},he:{months:[\"×™× ×•×ר\",\"פברו×ר\",\"מרץ\",\"×פריל\",\"מ××™\",\"×™×•× ×™\",\"יולי\",\"×וגוסט\",\"ספטמבר\",\"×וקטובר\",\"× ×•×‘×ž×‘×¨\",\"דצמבר\"],dayOfWeekShort:[\"×'\",\"ב'\",\"×’'\",\"ד'\",\"×”'\",\"ו'\",\"שבת\"],dayOfWeek:[\"ר×שון\",\"×©× ×™\",\"שלישי\",\"רביעי\",\"חמישי\",\"שישי\",\"שבת\",\"ר×שון\"]},hy:{months:[\"Õ€Õ¸Ö‚Õ¶Õ¾Õ¡Ö€\",\"Õ“Õ¥Õ¿Ö€Õ¾Õ¡Ö€\",\"Õ„Õ¡Ö€Õ¿\",\"Ô±ÕºÖ€Õ«Õ¬\",\"Õ„Õ¡ÕµÕ«Õ½\",\"Õ€Õ¸Ö‚Õ¶Õ«Õ½\",\"Õ€Õ¸Ö‚Õ¬Õ«Õ½\",\"Õ•Õ£Õ¸Õ½Õ¿Õ¸Õ½\",\"ÕÕ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€\",\"Õ€Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€\",\"Õ†Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€\",\"Ô´Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€\"],dayOfWeekShort:[\"Ô¿Õ«\",\"ÔµÖ€Õ¯\",\"ÔµÖ€Ö„\",\"Õ‰Õ¸Ö€\",\"Õ€Õ¶Õ£\",\"ÕˆÖ‚Ö€Õ¢\",\"Õ‡Õ¢Õ©\"],dayOfWeek:[\"Ô¿Õ«Ö€Õ¡Õ¯Õ«\",\"ÔµÖ€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«\",\"ÔµÖ€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«\",\"Õ‰Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«\",\"Õ€Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«\",\"ÕˆÖ‚Ö€Õ¢Õ¡Õ©\",\"Õ‡Õ¡Õ¢Õ¡Õ©\"]},kg:{months:[\"Үчтүн айы\",\"Бирдин айы\",\"Жалган Куран\",\"Чын Куран\",\"Бугу\",\"Кулжа\",\"Теке\",\"Баш Оона\",\"ÐÑк Оона\",\"Тогуздун айы\",\"Жетинин айы\",\"Бештин айы\"],dayOfWeekShort:[\"Жек\",\"Дүй\",\"Шей\",\"Шар\",\"Бей\",\"Жум\",\"Ише\"],dayOfWeek:[\"Жекшемб\",\"Дүйшөмб\",\"Шейшемб\",\"Шаршемб\",\"Бейшемби\",\"Жума\",\"Ишенб\"]},rm:{months:[\"Schaner\",\"Favrer\",\"Mars\",\"Avrigl\",\"Matg\",\"Zercladur\",\"Fanadur\",\"Avust\",\"Settember\",\"October\",\"November\",\"December\"],dayOfWeekShort:[\"Du\",\"Gli\",\"Ma\",\"Me\",\"Gie\",\"Ve\",\"So\"],dayOfWeek:[\"Dumengia\",\"Glindesdi\",\"Mardi\",\"Mesemna\",\"Gievgia\",\"Venderdi\",\"Sonda\"]},ka:{months:[\"იáƒáƒœáƒ•áƒáƒ ი\",\"თებერვáƒáƒšáƒ˜\",\"მáƒáƒ ტი\",\"áƒáƒžáƒ ილი\",\"მáƒáƒ˜áƒ¡áƒ˜\",\"ივნისი\",\"ივლისი\",\"áƒáƒ’ვისტáƒ\",\"სექტემბერი\",\"áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი\",\"ნáƒáƒ”მბერი\",\"დეკემბერი\"],dayOfWeekShort:[\"კვ\",\"áƒáƒ შ\",\"სáƒáƒ›áƒ¨\",\"áƒáƒ—ხ\",\"ხუთ\",\"პáƒáƒ \",\"შáƒáƒ‘\"],dayOfWeek:[\"კვირáƒ\",\"áƒáƒ შáƒáƒ‘áƒáƒ—ი\",\"სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი\",\"áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი\",\"ხუთშáƒáƒ‘áƒáƒ—ი\",\"პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი\",\"შáƒáƒ‘áƒáƒ—ი\"]}},ownerDocument:document,contentWindow:window,value:\"\",rtl:!1,format:\"Y/m/d H:i\",formatTime:\"H:i\",formatDate:\"Y/m/d\",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,openOnFocus:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,minDateTime:!1,maxDateTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:\"\",touchMovedThreshold:5,onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:\"xdsoft_next\",prev:\"xdsoft_prev\",dayOfWeekStart:0,parentID:\"body\",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:\"\",id:\"\",fixed:!1,roundTime:\"round\",className:\"\",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1,insideParent:!1},E=null,n=null,R=\"en\",r={meridiem:[\"AM\",\"PM\"]},o={moment:{default_options:{format:\"YYYY/MM/DD HH:mm\",formatDate:\"YYYY/MM/DD\",formatTime:\"HH:mm\"},formatter:{parseDate:function(e,t){if(i(t))return n.parseDate(e,t);var a=moment(e,t);return!!a.isValid()&&a.toDate()},formatDate:function(e,t){return i(t)?n.formatDate(e,t):moment(e).format(t)},formatMask:function(e){return e.replace(/Y{4}/g,\"9999\").replace(/Y{2}/g,\"99\").replace(/M{2}/g,\"19\").replace(/D{2}/g,\"39\").replace(/H{2}/g,\"29\").replace(/m{2}/g,\"59\").replace(/s{2}/g,\"59\")}}}};L.datetimepicker={setLocale:function(e){var t=s.i18n[e]?e:\"en\";R!==t&&(R=t,a())},setDateFormatter:function(e){var t;E=\"string\"==typeof e&&o.hasOwnProperty(e)?(t=o[e],L.extend(s,t.default_options),t.formatter):e}};var t={RFC_2822:\"D, d M Y H:i:s O\",ATOM:\"Y-m-dTH:i:sP\",ISO_8601:\"Y-m-dTH:i:sO\",RFC_822:\"D, d M y H:i:s O\",RFC_850:\"l, d-M-y H:i:s T\",RFC_1036:\"D, d M y H:i:s O\",RFC_1123:\"D, d M Y H:i:s O\",RSS:\"D, d M Y H:i:s O\",W3C:\"Y-m-dTH:i:sP\"},i=function(e){return-1!==Object.values(t).indexOf(e)};function m(e,t,a){this.date=e,this.desc=t,this.style=a}L.extend(L.datetimepicker,t),a(),window.getComputedStyle||(window.getComputedStyle=function(a){return this.el=a,this.getPropertyValue=function(e){var t=/(-([a-z]))/g;return\"float\"===e&&(e=\"styleFloat\"),t.test(e)&&(e=e.replace(t,function(e,t,a){return a.toUpperCase()})),a.currentStyle[e]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){for(var a=t||0,n=this.length;a<n;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},L.fn.xdsoftScroller=function(D,y){return this.each(function(){function a(e){var t,a={x:0,y:0};return\"touchstart\"===e.type||\"touchmove\"===e.type||\"touchend\"===e.type||\"touchcancel\"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):\"mousedown\"!==e.type&&\"mouseup\"!==e.type&&\"mousemove\"!==e.type&&\"mouseover\"!==e.type&&\"mouseout\"!==e.type&&\"mouseenter\"!==e.type&&\"mouseleave\"!==e.type||(a.x=e.clientX,a.y=e.clientY),a}var o,i,s,d,u,t,l=L(this),f=0,c=100,n=!1,r=0,m=0,h=0,g=!1,p=0;\"hide\"!==y?(L(this).hasClass(\"xdsoft_scroller_box\")||(o=l.children().eq(0),f=Math.abs(parseInt(o.css(\"marginTop\"),10)),i=l[0].clientHeight,s=o[0].offsetHeight,d=L('<div class=\"xdsoft_scrollbar\"></div>'),u=L('<div class=\"xdsoft_scroller\"></div>'),d.append(u),l.addClass(\"xdsoft_scroller_box\").append(d),t=function(e){var t=a(e).y-r+p;t<0&&(t=0),t+u[0].offsetHeight>h&&(t=h-u[0].offsetHeight),l.trigger(\"scroll_element.xdsoft_scroller\",[c?t/c:0])},u.on(\"touchstart.xdsoft_scroller mousedown.xdsoft_scroller\",function(e){i||l.trigger(\"resize_scroll.xdsoft_scroller\",[y]),r=a(e).y,p=parseInt(u.css(\"marginTop\"),10),h=d[0].offsetHeight,\"mousedown\"===e.type||\"touchstart\"===e.type?(D.ownerDocument&&L(D.ownerDocument.body).addClass(\"xdsoft_noselect\"),L([D.ownerDocument.body,D.contentWindow]).on(\"touchend mouseup.xdsoft_scroller\",function e(){L([D.ownerDocument.body,D.contentWindow]).off(\"touchend mouseup.xdsoft_scroller\",e).off(\"mousemove.xdsoft_scroller\",t).removeClass(\"xdsoft_noselect\")}),L(D.ownerDocument.body).on(\"mousemove.xdsoft_scroller\",t)):(g=!0,e.stopPropagation(),e.preventDefault())}).on(\"touchmove\",function(e){g&&(e.preventDefault(),t(e))}).on(\"touchend touchcancel\",function(){g=!1,p=0}),l.on(\"scroll_element.xdsoft_scroller\",function(e,t){i||l.trigger(\"resize_scroll.xdsoft_scroller\",[t,!0]),t=1<t?1:t<0||isNaN(t)?0:t,f=parseFloat(Math.abs((o[0].offsetHeight-i)*t).toFixed(4)),u.css(\"marginTop\",c*t),o.css(\"marginTop\",-f)}).on(\"resize_scroll.xdsoft_scroller\",function(e,t,a){var n,r;i=l[0].clientHeight,s=o[0].offsetHeight,r=(n=i/s)*d[0].offsetHeight,1<n?u.hide():(u.show(),u.css(\"height\",parseInt(10<r?r:10,10)),c=d[0].offsetHeight-u[0].offsetHeight,!0!==a&&l.trigger(\"scroll_element.xdsoft_scroller\",[t||f/(s-i)]))}),l.on(\"mousewheel\",function(e){var t,a,n=(a=0,\"detail\"in(t=e.originalEvent)&&(a=t.detail),\"wheelDelta\"in t&&(a=-t.wheelDelta/120),\"wheelDeltaY\"in t&&(a=-t.wheelDeltaY/120),\"axis\"in t&&t.axis===t.HORIZONTAL_AXIS&&(a=0),a*=10,\"deltaY\"in t&&(a=t.deltaY),a&&t.deltaMode&&(1===t.deltaMode?a*=40:a*=800),a),r=Math.max(0,f-n);return l.trigger(\"scroll_element.xdsoft_scroller\",[r/(s-i)]),e.stopPropagation(),!1}),l.on(\"touchstart\",function(e){n=a(e),m=f}),l.on(\"touchmove\",function(e){var t;n&&(e.preventDefault(),t=a(e),l.trigger(\"scroll_element.xdsoft_scroller\",[(m-(t.y-n.y))/(s-i)]))}),l.on(\"touchend touchcancel\",function(){n=!1,m=0})),l.trigger(\"resize_scroll.xdsoft_scroller\",[y])):l.find(\".xdsoft_scrollbar\").hide()})},L.fn.datetimepicker=function(H,a){var n=this,p=17,D=13,y=27,v=37,b=38,k=39,x=40,T=9,S=116,M=65,w=67,j=86,J=90,z=89,N=!1,I=L.isPlainObject(H)||!H?L.extend(!0,{},s,H):L.extend(!0,{},s),r=0,o=function(O){var t,n,a,r,W,h,_=L('<div class=\"xdsoft_datetimepicker xdsoft_noselect\"></div>'),e=L('<div class=\"xdsoft_copyright\"><a target=\"_blank\" href=\"http://xdsoft.net/jqplugins/datetimepicker/\">xdsoft.net</a></div>'),g=L('<div class=\"xdsoft_datepicker active\"></div>'),F=L('<div class=\"xdsoft_monthpicker\"><button type=\"button\" class=\"xdsoft_prev\"></button><button type=\"button\" class=\"xdsoft_today_button\"></button><div class=\"xdsoft_label xdsoft_month\"><span></span><i></i></div><div class=\"xdsoft_label xdsoft_year\"><span></span><i></i></div><button type=\"button\" class=\"xdsoft_next\"></button></div>'),C=L('<div class=\"xdsoft_calendar\"></div>'),o=L('<div class=\"xdsoft_timepicker active\"><button type=\"button\" class=\"xdsoft_prev\"></button><div class=\"xdsoft_time_box\"></div><button type=\"button\" class=\"xdsoft_next\"></button></div>'),u=o.find(\".xdsoft_time_box\").eq(0),P=L('<div class=\"xdsoft_time_variant\"></div>'),i=L('<button type=\"button\" class=\"xdsoft_save_selected blue-gradient-button\">Save Selected</button>'),Y=L('<div class=\"xdsoft_select xdsoft_monthselect\"><div></div></div>'),A=L('<div class=\"xdsoft_select xdsoft_yearselect\"><div></div></div>'),s=!1,d=0;I.id&&_.attr(\"id\",I.id),I.style&&_.attr(\"style\",I.style),I.weeks&&_.addClass(\"xdsoft_showweeks\"),I.rtl&&_.addClass(\"xdsoft_rtl\"),_.addClass(\"xdsoft_\"+I.theme),_.addClass(I.className),F.find(\".xdsoft_month span\").after(Y),F.find(\".xdsoft_year span\").after(A),F.find(\".xdsoft_month,.xdsoft_year\").on(\"touchstart mousedown.xdsoft\",function(e){var t,a,n=L(this).find(\".xdsoft_select\").eq(0),r=0,o=0,i=n.is(\":visible\");for(F.find(\".xdsoft_select\").hide(),W.currentTime&&(r=W.currentTime[L(this).hasClass(\"xdsoft_month\")?\"getMonth\":\"getFullYear\"]()),n[i?\"hide\":\"show\"](),t=n.find(\"div.xdsoft_option\"),a=0;a<t.length&&t.eq(a).data(\"value\")!==r;a+=1)o+=t[0].offsetHeight;return n.xdsoftScroller(I,o/(n.children()[0].offsetHeight-n[0].clientHeight)),e.stopPropagation(),!1});function l(e){var t=e.originalEvent,a=t.touches?t.touches[0]:t;this.touchStartPosition=this.touchStartPosition||a;var n=Math.abs(this.touchStartPosition.clientX-a.clientX),r=Math.abs(this.touchStartPosition.clientY-a.clientY);Math.sqrt(n*n+r*r)>I.touchMovedThreshold&&(this.touchMoved=!0)}function f(){var e,t=!1;return I.startDate?t=W.strToDate(I.startDate):(t=I.value||(O&&O.val&&O.val()?O.val():\"\"))?(t=W.strToDateTime(t),I.yearOffset&&(t=new Date(t.getFullYear()-I.yearOffset,t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))):I.defaultDate&&(t=W.strToDateTime(I.defaultDate),I.defaultTime&&(e=W.strtotime(I.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes()))),t&&W.isValidDate(t)?_.data(\"changed\",!0):t=\"\",t||0}function c(m){function h(e,t){var a=e.replace(/([\\[\\]\\/\\{\\}\\(\\)\\-\\.\\+]{1})/g,\"\\\\$1\").replace(/_/g,\"{digit+}\").replace(/([0-9]{1})/g,\"{digit$1}\").replace(/\\{digit([0-9]{1})\\}/g,\"[0-$1_]{1}\").replace(/\\{digit[\\+]\\}/g,\"[0-9_]{1}\");return new RegExp(a).test(t)}function g(e,t){if(e=\"string\"==typeof e||e instanceof String?m.ownerDocument.getElementById(e):e){if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd(\"character\",t),a.moveStart(\"character\",t),a.select(),1}return!!e.setSelectionRange&&(e.setSelectionRange(t,t),!0)}}m.mask&&O.off(\"keydown.xdsoft\"),!0===m.mask&&(E.formatMask?m.mask=E.formatMask(m.format):m.mask=m.format.replace(/Y/g,\"9999\").replace(/F/g,\"9999\").replace(/m/g,\"19\").replace(/d/g,\"39\").replace(/H/g,\"29\").replace(/i/g,\"59\").replace(/s/g,\"59\")),\"string\"===L.type(m.mask)&&(h(m.mask,O.val())||(O.val(m.mask.replace(/[0-9]/g,\"_\")),g(O[0],0)),O.on(\"paste.xdsoft\",function(e){var t=(e.clipboardData||e.originalEvent.clipboardData||window.clipboardData).getData(\"text\"),a=this.value,n=this.selectionStart,a=a.substr(0,n)+t+a.substr(n+t.length);return n+=t.length,h(m.mask,a)?(this.value=a,g(this,n)):\"\"===L.trim(a)?this.value=m.mask.replace(/[0-9]/g,\"_\"):O.trigger(\"error_input.xdsoft\"),e.preventDefault(),!1}),O.on(\"keydown.xdsoft\",function(e){var t,a,n,r,o=this.value,i=e.which,s=this.selectionStart,d=this.selectionEnd,u=s!==d;if(48<=i&&i<=57||96<=i&&i<=105||8===i||46===i){for(t=8===i||46===i?\"_\":String.fromCharCode(96<=i&&i<=105?i-48:i),8===i&&s&&!u&&--s;;){var l=m.mask.substr(s,1),f=s<m.mask.length,c=0<s;if(!(/[^0-9_]/.test(l)&&f&&c))break;s+=8!==i||u?1:-1}if(e.metaKey&&(u=!(s=0)),o=u?(a=d-s,r=(n=m.mask.replace(/[0-9]/g,\"_\")).substr(s,a).substr(1),o.substr(0,s)+(t+r)+o.substr(s+a)):o.substr(0,s)+t+o.substr(s+1),\"\"===L.trim(o))o=n;else if(s===m.mask.length)return e.preventDefault(),!1;for(s+=8===i?0:1;/[^0-9_]/.test(m.mask.substr(s,1))&&s<m.mask.length&&0<s;)s+=8===i?0:1;h(m.mask,o)?(this.value=o,g(this,s)):\"\"===L.trim(o)?this.value=m.mask.replace(/[0-9]/g,\"_\"):O.trigger(\"error_input.xdsoft\")}else if(-1!==[M,w,j,J,z].indexOf(i)&&N||-1!==[y,b,x,v,k,S,p,T,D].indexOf(i))return!0;return e.preventDefault(),!1}))}F.find(\".xdsoft_select\").xdsoftScroller(I).on(\"touchstart mousedown.xdsoft\",function(e){var t=e.originalEvent;this.touchMoved=!1,this.touchStartPosition=t.touches?t.touches[0]:t,e.stopPropagation(),e.preventDefault()}).on(\"touchmove\",\".xdsoft_option\",l).on(\"touchend mousedown.xdsoft\",\".xdsoft_option\",function(){var e;this.touchMoved||(void 0!==W.currentTime&&null!==W.currentTime||(W.currentTime=W.now()),e=W.currentTime.getFullYear(),W&&W.currentTime&&W.currentTime[L(this).parent().parent().hasClass(\"xdsoft_monthselect\")?\"setMonth\":\"setFullYear\"](L(this).data(\"value\")),L(this).parent().parent().hide(),_.trigger(\"xchange.xdsoft\"),I.onChangeMonth&&L.isFunction(I.onChangeMonth)&&I.onChangeMonth.call(_,W.currentTime,_.data(\"input\")),e!==W.currentTime.getFullYear()&&L.isFunction(I.onChangeYear)&&I.onChangeYear.call(_,W.currentTime,_.data(\"input\")))}),_.getValue=function(){return W.getCurrentTime()},_.setOptions=function(e){var l={};I=L.extend(!0,{},I,e),e.allowTimes&&L.isArray(e.allowTimes)&&e.allowTimes.length&&(I.allowTimes=L.extend(!0,[],e.allowTimes)),e.weekends&&L.isArray(e.weekends)&&e.weekends.length&&(I.weekends=L.extend(!0,[],e.weekends)),e.allowDates&&L.isArray(e.allowDates)&&e.allowDates.length&&(I.allowDates=L.extend(!0,[],e.allowDates)),e.allowDateRe&&\"[object String]\"===Object.prototype.toString.call(e.allowDateRe)&&(I.allowDateRe=new RegExp(e.allowDateRe)),e.highlightedDates&&L.isArray(e.highlightedDates)&&e.highlightedDates.length&&(L.each(e.highlightedDates,function(e,t){var a,n=L.map(t.split(\",\"),L.trim),r=new m(E.parseDate(n[0],I.formatDate),n[1],n[2]),o=E.formatDate(r.date,I.formatDate);void 0!==l[o]?(a=l[o].desc)&&a.length&&r.desc&&r.desc.length&&(l[o].desc=a+\"\\n\"+r.desc):l[o]=r}),I.highlightedDates=L.extend(!0,[],l)),e.highlightedPeriods&&L.isArray(e.highlightedPeriods)&&e.highlightedPeriods.length&&(l=L.extend(!0,[],I.highlightedDates),L.each(e.highlightedPeriods,function(e,t){var a,n,r,o,i,s,d,u;for(u=L.isArray(t)?(i=t[0],s=t[1],d=t[2],t[3]):(o=L.map(t.split(\",\"),L.trim),i=E.parseDate(o[0],I.formatDate),s=E.parseDate(o[1],I.formatDate),d=o[2],o[3]);i<=s;)a=new m(i,d,u),n=E.formatDate(i,I.formatDate),i.setDate(i.getDate()+1),void 0!==l[n]?(r=l[n].desc)&&r.length&&a.desc&&a.desc.length&&(l[n].desc=r+\"\\n\"+a.desc):l[n]=a}),I.highlightedDates=L.extend(!0,[],l)),e.disabledDates&&L.isArray(e.disabledDates)&&e.disabledDates.length&&(I.disabledDates=L.extend(!0,[],e.disabledDates)),e.disabledWeekDays&&L.isArray(e.disabledWeekDays)&&e.disabledWeekDays.length&&(I.disabledWeekDays=L.extend(!0,[],e.disabledWeekDays)),!I.open&&!I.opened||I.inline||O.trigger(\"open.xdsoft\"),I.inline&&(s=!0,_.addClass(\"xdsoft_inline\"),O.after(_).hide()),I.inverseButton&&(I.next=\"xdsoft_prev\",I.prev=\"xdsoft_next\"),I.datepicker?g.addClass(\"active\"):g.removeClass(\"active\"),I.timepicker?o.addClass(\"active\"):o.removeClass(\"active\"),I.value&&(W.setCurrentTime(I.value),O&&O.val&&O.val(W.str)),isNaN(I.dayOfWeekStart)?I.dayOfWeekStart=0:I.dayOfWeekStart=parseInt(I.dayOfWeekStart,10)%7,I.timepickerScrollbar||u.xdsoftScroller(I,\"hide\"),I.minDate&&/^[\\+\\-](.*)$/.test(I.minDate)&&(I.minDate=E.formatDate(W.strToDateTime(I.minDate),I.formatDate)),I.maxDate&&/^[\\+\\-](.*)$/.test(I.maxDate)&&(I.maxDate=E.formatDate(W.strToDateTime(I.maxDate),I.formatDate)),I.minDateTime&&/^\\+(.*)$/.test(I.minDateTime)&&(I.minDateTime=W.strToDateTime(I.minDateTime).dateFormat(I.formatDate)),I.maxDateTime&&/^\\+(.*)$/.test(I.maxDateTime)&&(I.maxDateTime=W.strToDateTime(I.maxDateTime).dateFormat(I.formatDate)),i.toggle(I.showApplyButton),F.find(\".xdsoft_today_button\").css(\"visibility\",I.todayButton?\"visible\":\"hidden\"),F.find(\".\"+I.prev).css(\"visibility\",I.prevButton?\"visible\":\"hidden\"),F.find(\".\"+I.next).css(\"visibility\",I.nextButton?\"visible\":\"hidden\"),c(I),I.validateOnBlur&&O.off(\"blur.xdsoft\").on(\"blur.xdsoft\",function(){var e,t,a;I.allowBlank&&(!L.trim(L(this).val()).length||\"string\"==typeof I.mask&&L.trim(L(this).val())===I.mask.replace(/[0-9]/g,\"_\"))?(L(this).val(null),_.data(\"xdsoft_datetime\").empty()):((e=E.parseDate(L(this).val(),I.format))?L(this).val(E.formatDate(e,I.format)):(t=+[L(this).val()[0],L(this).val()[1]].join(\"\"),a=+[L(this).val()[2],L(this).val()[3]].join(\"\"),!I.datepicker&&I.timepicker&&0<=t&&t<24&&0<=a&&a<60?L(this).val([t,a].map(function(e){return 9<e?e:\"0\"+e}).join(\":\")):L(this).val(E.formatDate(W.now(),I.format))),_.data(\"xdsoft_datetime\").setCurrentTime(L(this).val())),_.trigger(\"changedatetime.xdsoft\"),_.trigger(\"close.xdsoft\")}),I.dayOfWeekStartPrev=0===I.dayOfWeekStart?6:I.dayOfWeekStart-1,_.trigger(\"xchange.xdsoft\").trigger(\"afterOpen.xdsoft\")},_.data(\"options\",I).on(\"touchstart mousedown.xdsoft\",function(e){return e.stopPropagation(),e.preventDefault(),A.hide(),Y.hide(),!1}),u.append(P),u.xdsoftScroller(I),_.on(\"afterOpen.xdsoft\",function(){u.xdsoftScroller(I)}),_.append(g).append(o),!0!==I.withoutCopyright&&_.append(e),g.append(F).append(C).append(i),I.insideParent?L(O).parent().append(_):L(I.parentID).append(_),W=new function(){var r=this;r.now=function(e){var t,a,n=new Date;return!e&&I.defaultDate&&(t=r.strToDateTime(I.defaultDate),n.setFullYear(t.getFullYear()),n.setMonth(t.getMonth()),n.setDate(t.getDate())),n.setFullYear(n.getFullYear()),!e&&I.defaultTime&&(a=r.strtotime(I.defaultTime),n.setHours(a.getHours()),n.setMinutes(a.getMinutes()),n.setSeconds(a.getSeconds()),n.setMilliseconds(a.getMilliseconds())),n},r.isValidDate=function(e){return\"[object Date]\"===Object.prototype.toString.call(e)&&!isNaN(e.getTime())},r.setCurrentTime=function(e,t){\"string\"==typeof e?r.currentTime=r.strToDateTime(e):r.isValidDate(e)?r.currentTime=e:e||t||!I.allowBlank||I.inline?r.currentTime=r.now():r.currentTime=null,_.trigger(\"xchange.xdsoft\")},r.empty=function(){r.currentTime=null},r.getCurrentTime=function(){return r.currentTime},r.nextMonth=function(){void 0!==r.currentTime&&null!==r.currentTime||(r.currentTime=r.now());var e,t=r.currentTime.getMonth()+1;return 12===t&&(r.currentTime.setFullYear(r.currentTime.getFullYear()+1),t=0),e=r.currentTime.getFullYear(),r.currentTime.setDate(Math.min(new Date(r.currentTime.getFullYear(),t+1,0).getDate(),r.currentTime.getDate())),r.currentTime.setMonth(t),I.onChangeMonth&&L.isFunction(I.onChangeMonth)&&I.onChangeMonth.call(_,W.currentTime,_.data(\"input\")),e!==r.currentTime.getFullYear()&&L.isFunction(I.onChangeYear)&&I.onChangeYear.call(_,W.currentTime,_.data(\"input\")),_.trigger(\"xchange.xdsoft\"),t},r.prevMonth=function(){void 0!==r.currentTime&&null!==r.currentTime||(r.currentTime=r.now());var e=r.currentTime.getMonth()-1;return-1===e&&(r.currentTime.setFullYear(r.currentTime.getFullYear()-1),e=11),r.currentTime.setDate(Math.min(new Date(r.currentTime.getFullYear(),e+1,0).getDate(),r.currentTime.getDate())),r.currentTime.setMonth(e),I.onChangeMonth&&L.isFunction(I.onChangeMonth)&&I.onChangeMonth.call(_,W.currentTime,_.data(\"input\")),_.trigger(\"xchange.xdsoft\"),e},r.getWeekOfYear=function(e){if(I.onGetWeekOfYear&&L.isFunction(I.onGetWeekOfYear)){var t=I.onGetWeekOfYear.call(_,e);if(void 0!==t)return t}var a=new Date(e.getFullYear(),0,1);return 4!==a.getDay()&&a.setMonth(0,1+(4-a.getDay()+7)%7),Math.ceil(((e-a)/864e5+a.getDay()+1)/7)},r.strToDateTime=function(e){var t,a,n=[];return e&&e instanceof Date&&r.isValidDate(e)?e:((n=/^([+-]{1})(.*)$/.exec(e))&&(n[2]=E.parseDate(n[2],I.formatDate)),a=n&&n[2]?(t=n[2].getTime()-6e4*n[2].getTimezoneOffset(),new Date(r.now(!0).getTime()+parseInt(n[1]+\"1\",10)*t)):e?E.parseDate(e,I.format):r.now(),r.isValidDate(a)||(a=r.now()),a)},r.strToDate=function(e){if(e&&e instanceof Date&&r.isValidDate(e))return e;var t=e?E.parseDate(e,I.formatDate):r.now(!0);return r.isValidDate(t)||(t=r.now(!0)),t},r.strtotime=function(e){if(e&&e instanceof Date&&r.isValidDate(e))return e;var t=e?E.parseDate(e,I.formatTime):r.now(!0);return r.isValidDate(t)||(t=r.now(!0)),t},r.str=function(){var e=I.format;return I.yearOffset&&(e=(e=e.replace(\"Y\",r.currentTime.getFullYear()+I.yearOffset)).replace(\"y\",String(r.currentTime.getFullYear()+I.yearOffset).substring(2,4))),E.formatDate(r.currentTime,e)},r.currentTime=this.now()},i.on(\"touchend click\",function(e){e.preventDefault(),_.data(\"changed\",!0),W.setCurrentTime(f()),O.val(W.str()),_.trigger(\"close.xdsoft\")}),F.find(\".xdsoft_today_button\").on(\"touchend mousedown.xdsoft\",function(){_.data(\"changed\",!0),W.setCurrentTime(0,!0),_.trigger(\"afterOpen.xdsoft\")}).on(\"dblclick.xdsoft\",function(){var e,t=W.getCurrentTime(),t=new Date(t.getFullYear(),t.getMonth(),t.getDate()),a=W.strToDate(I.minDate);t<(a=new Date(a.getFullYear(),a.getMonth(),a.getDate()))||(e=W.strToDate(I.maxDate),(e=new Date(e.getFullYear(),e.getMonth(),e.getDate()))<t||(O.val(W.str()),O.trigger(\"change\"),_.trigger(\"close.xdsoft\")))}),F.find(\".xdsoft_prev,.xdsoft_next\").on(\"touchend mousedown.xdsoft\",function(){var a=L(this),n=0,r=!1;!function e(t){a.hasClass(I.next)?W.nextMonth():a.hasClass(I.prev)&&W.prevMonth(),I.monthChangeSpinner&&(r||(n=setTimeout(e,t||100)))}(500),L([I.ownerDocument.body,I.contentWindow]).on(\"touchend mouseup.xdsoft\",function e(){clearTimeout(n),r=!0,L([I.ownerDocument.body,I.contentWindow]).off(\"touchend mouseup.xdsoft\",e)})}),o.find(\".xdsoft_prev,.xdsoft_next\").on(\"touchend mousedown.xdsoft\",function(){var o=L(this),i=0,s=!1,d=110;!function e(t){var a=u[0].clientHeight,n=P[0].offsetHeight,r=Math.abs(parseInt(P.css(\"marginTop\"),10));o.hasClass(I.next)&&n-a-I.timeHeightInTimePicker>=r?P.css(\"marginTop\",\"-\"+(r+I.timeHeightInTimePicker)+\"px\"):o.hasClass(I.prev)&&0<=r-I.timeHeightInTimePicker&&P.css(\"marginTop\",\"-\"+(r-I.timeHeightInTimePicker)+\"px\"),u.trigger(\"scroll_element.xdsoft_scroller\",[Math.abs(parseInt(P[0].style.marginTop,10)/(n-a))]),d=10<d?10:d-10,s||(i=setTimeout(e,t||d))}(500),L([I.ownerDocument.body,I.contentWindow]).on(\"touchend mouseup.xdsoft\",function e(){clearTimeout(i),s=!0,L([I.ownerDocument.body,I.contentWindow]).off(\"touchend mouseup.xdsoft\",e)})}),t=0,_.on(\"xchange.xdsoft\",function(e){clearTimeout(t),t=setTimeout(function(){void 0!==W.currentTime&&null!==W.currentTime||(W.currentTime=W.now());for(var e,t,a,n,r,o,i,s,d,u,l=\"\",f=new Date(W.currentTime.getFullYear(),W.currentTime.getMonth(),1,12,0,0),c=0,m=W.now(),h=!1,g=!1,p=!1,D=!1,y=[],v=!0,b=\"\";f.getDay()!==I.dayOfWeekStart;)f.setDate(f.getDate()-1);for(l+=\"<table><thead><tr>\",I.weeks&&(l+=\"<th></th>\"),e=0;e<7;e+=1)l+=\"<th>\"+I.i18n[R].dayOfWeekShort[(e+I.dayOfWeekStart)%7]+\"</th>\";for(l+=\"</tr></thead>\",l+=\"<tbody>\",!1!==I.maxDate&&(h=W.strToDate(I.maxDate),h=new Date(h.getFullYear(),h.getMonth(),h.getDate(),23,59,59,999)),!1!==I.minDate&&(g=W.strToDate(I.minDate),g=new Date(g.getFullYear(),g.getMonth(),g.getDate())),!1!==I.minDateTime&&(p=W.strToDate(I.minDateTime),p=new Date(p.getFullYear(),p.getMonth(),p.getDate(),p.getHours(),p.getMinutes(),p.getSeconds())),!1!==I.maxDateTime&&(D=W.strToDate(I.maxDateTime),D=new Date(D.getFullYear(),D.getMonth(),D.getDate(),D.getHours(),D.getMinutes(),D.getSeconds())),!1!==D&&(u=31*(12*D.getFullYear()+D.getMonth())+D.getDate());c<W.currentTime.countDaysInMonth()||f.getDay()!==I.dayOfWeekStart||W.currentTime.getMonth()===f.getMonth();){y=[],c+=1,a=f.getDay(),n=f.getDate(),r=f.getFullYear(),T=f.getMonth(),o=W.getWeekOfYear(f),d=\"\",y.push(\"xdsoft_date\"),i=I.beforeShowDay&&L.isFunction(I.beforeShowDay.call)?I.beforeShowDay.call(_,f):null,I.allowDateRe&&\"[object RegExp]\"===Object.prototype.toString.call(I.allowDateRe)&&(I.allowDateRe.test(E.formatDate(f,I.formatDate))||y.push(\"xdsoft_disabled\")),I.allowDates&&0<I.allowDates.length&&-1===I.allowDates.indexOf(E.formatDate(f,I.formatDate))&&y.push(\"xdsoft_disabled\");var k=31*(12*f.getFullYear()+f.getMonth())+f.getDate();(!1!==h&&h<f||!1!==p&&f<p||!1!==g&&f<g||!1!==D&&u<k||i&&!1===i[0])&&y.push(\"xdsoft_disabled\"),-1!==I.disabledDates.indexOf(E.formatDate(f,I.formatDate))&&y.push(\"xdsoft_disabled\"),-1!==I.disabledWeekDays.indexOf(a)&&y.push(\"xdsoft_disabled\"),O.is(\"[disabled]\")&&y.push(\"xdsoft_disabled\"),i&&\"\"!==i[1]&&y.push(i[1]),W.currentTime.getMonth()!==T&&y.push(\"xdsoft_other_month\"),(I.defaultSelect||_.data(\"changed\"))&&E.formatDate(W.currentTime,I.formatDate)===E.formatDate(f,I.formatDate)&&y.push(\"xdsoft_current\"),E.formatDate(m,I.formatDate)===E.formatDate(f,I.formatDate)&&y.push(\"xdsoft_today\"),0!==f.getDay()&&6!==f.getDay()&&-1===I.weekends.indexOf(E.formatDate(f,I.formatDate))||y.push(\"xdsoft_weekend\"),void 0!==I.highlightedDates[E.formatDate(f,I.formatDate)]&&(t=I.highlightedDates[E.formatDate(f,I.formatDate)],y.push(void 0===t.style?\"xdsoft_highlighted_default\":t.style),d=void 0===t.desc?\"\":t.desc),I.beforeShowDay&&L.isFunction(I.beforeShowDay)&&y.push(I.beforeShowDay(f)),v&&(l+=\"<tr>\",v=!1,I.weeks&&(l+=\"<th>\"+o+\"</th>\")),l+='<td data-date=\"'+n+'\" data-month=\"'+T+'\" data-year=\"'+r+'\" class=\"xdsoft_date xdsoft_day_of_week'+f.getDay()+\" \"+y.join(\" \")+'\" title=\"'+d+'\"><div>'+n+\"</div></td>\",f.getDay()===I.dayOfWeekStartPrev&&(l+=\"</tr>\",v=!0),f.setDate(n+1)}l+=\"</tbody></table>\",C.html(l),F.find(\".xdsoft_label span\").eq(0).text(I.i18n[R].months[W.currentTime.getMonth()]),F.find(\".xdsoft_label span\").eq(1).text(W.currentTime.getFullYear()+I.yearOffset),T=b=\"\";var x=0;!1!==I.minTime&&(S=W.strtotime(I.minTime),x=60*S.getHours()+S.getMinutes());var T,S,M=1440;if(!1!==I.maxTime&&(S=W.strtotime(I.maxTime),M=60*S.getHours()+S.getMinutes()),!1!==I.minDateTime&&(S=W.strToDateTime(I.minDateTime),E.formatDate(W.currentTime,I.formatDate)===E.formatDate(S,I.formatDate)&&(T=60*S.getHours()+S.getMinutes(),x<T&&(x=T))),!1!==I.maxDateTime&&(S=W.strToDateTime(I.maxDateTime),E.formatDate(W.currentTime,I.formatDate)===E.formatDate(S,I.formatDate)&&(T=60*S.getHours()+S.getMinutes())<M&&(M=T)),s=function(e,t){var a,n=W.now(),r=I.allowTimes&&L.isArray(I.allowTimes)&&I.allowTimes.length;n.setHours(e),e=parseInt(n.getHours(),10),n.setMinutes(t),t=parseInt(n.getMinutes(),10),y=[];var o=60*e+t;(O.is(\"[disabled]\")||M<=o||o<x)&&y.push(\"xdsoft_disabled\"),(a=new Date(W.currentTime)).setHours(parseInt(W.currentTime.getHours(),10)),r||a.setMinutes(Math[I.roundTime](W.currentTime.getMinutes()/I.step)*I.step),(I.initTime||I.defaultSelect||_.data(\"changed\"))&&a.getHours()===parseInt(e,10)&&(!r&&59<I.step||a.getMinutes()===parseInt(t,10))&&(I.defaultSelect||_.data(\"changed\")?y.push(\"xdsoft_current\"):I.initTime&&y.push(\"xdsoft_init_time\")),parseInt(m.getHours(),10)===parseInt(e,10)&&parseInt(m.getMinutes(),10)===parseInt(t,10)&&y.push(\"xdsoft_today\"),b+='<div class=\"xdsoft_time '+y.join(\" \")+'\" data-hour=\"'+e+'\" data-minute=\"'+t+'\">'+E.formatDate(n,I.formatTime)+\"</div>\"},I.allowTimes&&L.isArray(I.allowTimes)&&I.allowTimes.length)for(c=0;c<I.allowTimes.length;c+=1)s(W.strtotime(I.allowTimes[c]).getHours(),T=W.strtotime(I.allowTimes[c]).getMinutes());else for(e=c=0;c<(I.hours12?12:24);c+=1)for(e=0;e<60;e+=I.step){var w=60*c+e;w<x||M<=w||s((c<10?\"0\":\"\")+c,T=(e<10?\"0\":\"\")+e)}for(P.html(b),H=\"\",c=parseInt(I.yearStart,10);c<=parseInt(I.yearEnd,10);c+=1)H+='<div class=\"xdsoft_option '+(W.currentTime.getFullYear()===c?\"xdsoft_current\":\"\")+'\" data-value=\"'+c+'\">'+(c+I.yearOffset)+\"</div>\";for(A.children().eq(0).html(H),c=parseInt(I.monthStart,10),H=\"\";c<=parseInt(I.monthEnd,10);c+=1)H+='<div class=\"xdsoft_option '+(W.currentTime.getMonth()===c?\"xdsoft_current\":\"\")+'\" data-value=\"'+c+'\">'+I.i18n[R].months[c]+\"</div>\";Y.children().eq(0).html(H),L(_).trigger(\"generate.xdsoft\")},10),e.stopPropagation()}).on(\"afterOpen.xdsoft\",function(){var e,t,a,n;I.timepicker&&(P.find(\".xdsoft_current\").length?e=\".xdsoft_current\":P.find(\".xdsoft_init_time\").length&&(e=\".xdsoft_init_time\"),e?(t=u[0].clientHeight,(a=P[0].offsetHeight)-t<(n=P.find(e).index()*I.timeHeightInTimePicker+1)&&(n=a-t),u.trigger(\"scroll_element.xdsoft_scroller\",[parseInt(n,10)/(a-t)])):u.trigger(\"scroll_element.xdsoft_scroller\",[0]))}),n=0,C.on(\"touchend click.xdsoft\",\"td\",function(e){e.stopPropagation(),n+=1;var t=L(this),a=W.currentTime;if(null==a&&(W.currentTime=W.now(),a=W.currentTime),t.hasClass(\"xdsoft_disabled\"))return!1;a.setDate(1),a.setFullYear(t.data(\"year\")),a.setMonth(t.data(\"month\")),a.setDate(t.data(\"date\")),_.trigger(\"select.xdsoft\",[a]),O.val(W.str()),I.onSelectDate&&L.isFunction(I.onSelectDate)&&I.onSelectDate.call(_,W.currentTime,_.data(\"input\"),e),_.data(\"changed\",!0),_.trigger(\"xchange.xdsoft\"),_.trigger(\"changedatetime.xdsoft\"),(1<n||!0===I.closeOnDateSelect||!1===I.closeOnDateSelect&&!I.timepicker)&&!I.inline&&_.trigger(\"close.xdsoft\"),setTimeout(function(){n=0},200)}),P.on(\"touchstart\",\"div\",function(e){this.touchMoved=!1}).on(\"touchmove\",\"div\",l).on(\"touchend click.xdsoft\",\"div\",function(e){if(!this.touchMoved){e.stopPropagation();var t=L(this),a=W.currentTime;if(null==a&&(W.currentTime=W.now(),a=W.currentTime),t.hasClass(\"xdsoft_disabled\"))return!1;a.setHours(t.data(\"hour\")),a.setMinutes(t.data(\"minute\")),_.trigger(\"select.xdsoft\",[a]),_.data(\"input\").val(W.str()),I.onSelectTime&&L.isFunction(I.onSelectTime)&&I.onSelectTime.call(_,W.currentTime,_.data(\"input\"),e),_.data(\"changed\",!0),_.trigger(\"xchange.xdsoft\"),_.trigger(\"changedatetime.xdsoft\"),!0!==I.inline&&!0===I.closeOnTimeSelect&&_.trigger(\"close.xdsoft\")}}),g.on(\"mousewheel.xdsoft\",function(e){return!I.scrollMonth||(e.deltaY<0?W.nextMonth():W.prevMonth(),!1)}),O.on(\"mousewheel.xdsoft\",function(e){return!I.scrollInput||(!I.datepicker&&I.timepicker?(0<=(a=P.find(\".xdsoft_current\").length?P.find(\".xdsoft_current\").eq(0).index():0)+e.deltaY&&a+e.deltaY<P.children().length&&(a+=e.deltaY),P.children().eq(a).length&&P.children().eq(a).trigger(\"mousedown\"),!1):I.datepicker&&!I.timepicker?(g.trigger(e,[e.deltaY,e.deltaX,e.deltaY]),O.val&&O.val(W.str()),_.trigger(\"changedatetime.xdsoft\"),!1):void 0)}),_.on(\"changedatetime.xdsoft\",function(e){var t;I.onChangeDateTime&&L.isFunction(I.onChangeDateTime)&&(t=_.data(\"input\"),I.onChangeDateTime.call(_,W.currentTime,t,e),delete I.value,t.trigger(\"change\"))}).on(\"generate.xdsoft\",function(){I.onGenerate&&L.isFunction(I.onGenerate)&&I.onGenerate.call(_,W.currentTime,_.data(\"input\")),s&&(_.trigger(\"afterOpen.xdsoft\"),s=!1)}).on(\"click.xdsoft\",function(e){e.stopPropagation()}),a=0,h=function(e,t){do{if(!(e=e.parentNode)||!1===t(e))break}while(\"HTML\"!==e.nodeName)},r=function(){var e,t,a,n,r,o=(a=_.data(\"input\")).offset(),i=a[0],s=\"top\",d=o.top+i.offsetHeight-1,u=o.left,l=\"absolute\",f=L(I.contentWindow).width(),c=L(I.contentWindow).height(),m=L(I.contentWindow).scrollTop();I.ownerDocument.documentElement.clientWidth-o.left<g.parent().outerWidth(!0)&&(r=g.parent().outerWidth(!0)-i.offsetWidth,u-=r),\"rtl\"===a.parent().css(\"direction\")&&(u-=_.outerWidth()-a.outerWidth()),I.fixed?(d-=m,u-=L(I.contentWindow).scrollLeft(),l=\"fixed\"):(t=!1,h(i,function(e){return null!==e&&(\"fixed\"===I.contentWindow.getComputedStyle(e).getPropertyValue(\"position\")?!(t=!0):void 0)}),t&&!I.insideParent?(l=\"fixed\",d+_.outerHeight()>c+m?(s=\"bottom\",d=c+m-o.top):d-=m):d+_[0].offsetHeight>c+m&&(d=o.top-_[0].offsetHeight+1),d<0&&(d=0),u+i.offsetWidth>f&&(u=f-i.offsetWidth)),e=_[0],h(e,function(e){if(\"relative\"===I.contentWindow.getComputedStyle(e).getPropertyValue(\"position\")&&f>=e.offsetWidth)return u-=(f-e.offsetWidth)/2,!1}),n={position:l,left:I.insideParent?i.offsetLeft:u,top:\"\",bottom:\"\"},I.insideParent?n[s]=i.offsetTop+i.offsetHeight:n[s]=d,_.css(n)},_.on(\"open.xdsoft\",function(e){var t=!0;I.onShow&&L.isFunction(I.onShow)&&(t=I.onShow.call(_,W.currentTime,_.data(\"input\"),e)),!1!==t&&(_.show(),r(),L(I.contentWindow).off(\"resize.xdsoft\",r).on(\"resize.xdsoft\",r),I.closeOnWithoutClick&&L([I.ownerDocument.body,I.contentWindow]).on(\"touchstart mousedown.xdsoft\",function e(){_.trigger(\"close.xdsoft\"),L([I.ownerDocument.body,I.contentWindow]).off(\"touchstart mousedown.xdsoft\",e)}))}).on(\"close.xdsoft\",function(e){var t=!0;F.find(\".xdsoft_month,.xdsoft_year\").find(\".xdsoft_select\").hide(),I.onClose&&L.isFunction(I.onClose)&&(t=I.onClose.call(_,W.currentTime,_.data(\"input\"),e)),!1===t||I.opened||I.inline||_.hide(),e.stopPropagation()}).on(\"toggle.xdsoft\",function(){_.is(\":visible\")?_.trigger(\"close.xdsoft\"):_.trigger(\"open.xdsoft\")}).data(\"input\",O),d=0,_.data(\"xdsoft_datetime\",W),_.setOptions(I),W.setCurrentTime(f()),O.data(\"xdsoft_datetimepicker\",_).on(\"open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart\",function(){O.is(\":disabled\")||O.data(\"xdsoft_datetimepicker\").is(\":visible\")&&I.closeOnInputClick||I.openOnFocus&&(clearTimeout(d),d=setTimeout(function(){O.is(\":disabled\")||(s=!0,W.setCurrentTime(f(),!0),I.mask&&c(I),_.trigger(\"open.xdsoft\"))},100))}).on(\"keydown.xdsoft\",function(e){var t,a=e.which;return-1!==[D].indexOf(a)&&I.enterLikeTab?(t=L(\"input:visible,textarea:visible,button:visible,a:visible\"),_.trigger(\"close.xdsoft\"),t.eq(t.index(this)+1).focus(),!1):-1!==[T].indexOf(a)?(_.trigger(\"close.xdsoft\"),!0):void 0}).on(\"blur.xdsoft\",function(){_.trigger(\"close.xdsoft\")})},i=function(e){var t=e.data(\"xdsoft_datetimepicker\");t&&(t.data(\"xdsoft_datetime\",null),t.remove(),e.data(\"xdsoft_datetimepicker\",null).off(\".xdsoft\"),L(I.contentWindow).off(\"resize.xdsoft\"),L([I.contentWindow,I.ownerDocument.body]).off(\"mousedown.xdsoft touchstart\"),e.unmousewheel&&e.unmousewheel())};return L(I.ownerDocument).off(\"keydown.xdsoftctrl keyup.xdsoftctrl\").off(\"keydown.xdsoftcmd keyup.xdsoftcmd\").on(\"keydown.xdsoftctrl\",function(e){e.keyCode===p&&(N=!0)}).on(\"keyup.xdsoftctrl\",function(e){e.keyCode===p&&(N=!1)}).on(\"keydown.xdsoftcmd\",function(e){e.keyCode}).on(\"keyup.xdsoftcmd\",function(e){e.keyCode}),this.each(function(){var t,e=L(this).data(\"xdsoft_datetimepicker\");if(e){if(\"string\"===L.type(H))switch(H){case\"show\":L(this).select().focus(),e.trigger(\"open.xdsoft\");break;case\"hide\":e.trigger(\"close.xdsoft\");break;case\"toggle\":e.trigger(\"toggle.xdsoft\");break;case\"destroy\":i(L(this));break;case\"reset\":this.value=this.defaultValue,this.value&&e.data(\"xdsoft_datetime\").isValidDate(E.parseDate(this.value,I.format))||e.data(\"changed\",!1),e.data(\"xdsoft_datetime\").setCurrentTime(this.value);break;case\"validate\":e.data(\"input\").trigger(\"blur.xdsoft\");break;default:e[H]&&L.isFunction(e[H])&&(n=e[H](a))}else e.setOptions(H);return 0}\"string\"!==L.type(H)&&(!I.lazyInit||I.open||I.inline?o(L(this)):(t=L(this)).on(\"open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart\",function e(){t.is(\":disabled\")||t.data(\"xdsoft_datetimepicker\")||(clearTimeout(r),r=setTimeout(function(){t.data(\"xdsoft_datetimepicker\")||o(t),t.off(\"open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart\",e).trigger(\"open.xdsoft\")},100))}))}),n},L.fn.datetimepicker.defaults=s};!function(e){\"function\"==typeof define&&define.amd?define([\"jquery\",\"jquery-mousewheel\"],e):\"object\"==typeof exports?module.exports=e(require(\"jquery\")):e(jQuery)}(datetimepickerFactory),function(e){\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?module.exports=e:e(jQuery)}(function(c){var m,h,e=[\"wheel\",\"mousewheel\",\"DOMMouseScroll\",\"MozMousePixelScroll\"],t=\"onwheel\"in document||9<=document.documentMode?[\"wheel\"]:[\"mousewheel\",\"DomMouseScroll\",\"MozMousePixelScroll\"],g=Array.prototype.slice;if(c.event.fixHooks)for(var a=e.length;a;)c.event.fixHooks[e[--a]]=c.event.mouseHooks;var p=c.event.special.mousewheel={version:\"3.1.12\",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],n,!1);else this.onmousewheel=n;c.data(this,\"mousewheel-line-height\",p.getLineHeight(this)),c.data(this,\"mousewheel-page-height\",p.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],n,!1);else this.onmousewheel=null;c.removeData(this,\"mousewheel-line-height\"),c.removeData(this,\"mousewheel-page-height\")},getLineHeight:function(e){var t=c(e),a=t[\"offsetParent\"in c.fn?\"offsetParent\":\"parent\"]();return a.length||(a=c(\"body\")),parseInt(a.css(\"fontSize\"),10)||parseInt(t.css(\"fontSize\"),10)||16},getPageHeight:function(e){return c(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function n(e){var t,a,n=e||window.event,r=g.call(arguments,1),o=0,i=0,s=0,d=0,u=0;if((e=c.event.fix(n)).type=\"mousewheel\",\"detail\"in n&&(s=-1*n.detail),\"wheelDelta\"in n&&(s=n.wheelDelta),\"wheelDeltaY\"in n&&(s=n.wheelDeltaY),\"wheelDeltaX\"in n&&(i=-1*n.wheelDeltaX),\"axis\"in n&&n.axis===n.HORIZONTAL_AXIS&&(i=-1*s,s=0),o=0===s?i:s,\"deltaY\"in n&&(o=s=-1*n.deltaY),\"deltaX\"in n&&(i=n.deltaX,0===s&&(o=-1*i)),0!==s||0!==i){1===n.deltaMode?(o*=t=c.data(this,\"mousewheel-line-height\"),s*=t,i*=t):2===n.deltaMode&&(o*=a=c.data(this,\"mousewheel-page-height\"),s*=a,i*=a);var l,f=Math.max(Math.abs(s),Math.abs(i));return(!h||f<h)&&y(n,h=f)&&(h/=40),y(n,f)&&(o/=40,i/=40,s/=40),o=Math[1<=o?\"floor\":\"ceil\"](o/h),i=Math[1<=i?\"floor\":\"ceil\"](i/h),s=Math[1<=s?\"floor\":\"ceil\"](s/h),p.settings.normalizeOffset&&this.getBoundingClientRect&&(l=this.getBoundingClientRect(),d=e.clientX-l.left,u=e.clientY-l.top),e.deltaX=i,e.deltaY=s,e.deltaFactor=h,e.offsetX=d,e.offsetY=u,e.deltaMode=0,r.unshift(e,o,i,s),m&&clearTimeout(m),m=setTimeout(D,200),(c.event.dispatch||c.event.handle).apply(this,r)}}function D(){h=null}function y(e,t){return p.settings.adjustOldDeltas&&\"mousewheel\"===e.type&&t%120==0}c.fn.extend({mousewheel:function(e){return e?this.bind(\"mousewheel\",e):this.trigger(\"mousewheel\")},unmousewheel:function(e){return this.unbind(\"mousewheel\",e)}})});"],"sourceRoot":""}